Language agnostic 如何为服务器身份验证编写私钥/公钥系统?
我猜这可能是发布在某个地方,我搜索过,但什么也找不到 我有一个运行游戏服务器的服务器,我希望有一个TCP服务器(可能是用Ruby编写的),该服务器将提供一个伪会话,并且几乎没有可用的命令(如重新启动游戏服务器、发送日志等) 我想要的是一种类似SSH的身份验证,其中人们拥有公共和私有DSA密钥(我知道如何生成),并且服务器将公钥识别为正确的身份验证 我并不是在寻找代码实现,而是主要寻找应该如何构建它 我当时的想法是:Language agnostic 如何为服务器身份验证编写私钥/公钥系统?,language-agnostic,public-key,private-key,dsa,Language Agnostic,Public Key,Private Key,Dsa,我猜这可能是发布在某个地方,我搜索过,但什么也找不到 我有一个运行游戏服务器的服务器,我希望有一个TCP服务器(可能是用Ruby编写的),该服务器将提供一个伪会话,并且几乎没有可用的命令(如重新启动游戏服务器、发送日志等) 我想要的是一种类似SSH的身份验证,其中人们拥有公共和私有DSA密钥(我知道如何生成),并且服务器将公钥识别为正确的身份验证 我并不是在寻找代码实现,而是主要寻找应该如何构建它 我当时的想法是: [客户端]连接到服务器 [服务器]发送公钥 [客户端]发送使用服务器公钥编码的
连接到服务器[客户端]
发送公钥[服务器]
发送使用服务器公钥编码的公钥[客户端]
将密钥与授权客户端数据库进行比较[服务器]
生成会话密钥,使用客户端发布加密发送[Server]
解码会话密钥并开始发送始终伴随会话密钥的消息[客户端]
如果我的问题不清楚,我当然很乐意编辑我的帖子:-)。如果你想要一个类似SSL的实现,那么为什么不直接使用SSL?如果你想要一个类似SSL的实现,那么为什么不直接使用SSL?而不是SSH,为什么不使用SSH?或者使用SSL,它几乎无处不在地支持任何平台的库 首先,这更容易。编写、测试、审查和维护代码 第二,它更安全。如果您不明白为什么需要对邮件进行签名,那么您可能忽略了什么?老实说,即使是经过大量审查的TLS(SSL),在最近公布的重新协商缺陷中也存在严重缺陷。即使你知道你在做什么,设计一个安全的协议也是很困难的
顺便说一句,SSH和SSL为每个协议记录计算一个消息身份验证码,这样中间的人就不能篡改消息内容。为什么不使用SSH而不是SSH呢?或者使用SSL,它几乎无处不在地支持任何平台的库 首先,这更容易。编写、测试、审查和维护代码 第二,它更安全。如果您不明白为什么需要对邮件进行签名,那么您可能忽略了什么?老实说,即使是经过大量审查的TLS(SSL),在最近公布的重新协商缺陷中也存在严重缺陷。即使你知道你在做什么,设计一个安全的协议也是很困难的
顺便说一句,SSH和SSL为每个协议记录计算一个消息身份验证码,这样中间的人就不能篡改消息内容。如果您选择实现自己的安全层(这有时是正确的答案),那么有很多微妙之处需要注意。从阅读我认为关于主题的决定性坟墓开始:
Bruce Schneier的如果您选择实现自己的安全层(这有时是正确的答案),那么有很多微妙之处需要注意。从阅读我认为关于主题的决定性坟墓开始:
Bruce Schneier的不要忘记时间戳或nonce,这样你就不会受到重播攻击。不要忘记时间戳或nonce,这样你就不会受到重播攻击。这是不可能的,我不希望他们有一个真正的shell访问机器。然而,我完全理解SSL的要点。出于某种原因,我认为这并不完全是事实。事实上,我不知道X.509证书可以扮演PK系统的角色。然后我会调查这一点,谢谢你为我指引了一个更好的方向@ThibaultMartin Lagarette SSH不必暗示“真正的shell访问机器”。您可以将其限制为通信。SSH是不可能的,我不希望他们拥有对机器的真正shell访问权限。然而,我完全理解SSL的要点。出于某种原因,我认为这并不完全是事实。事实上,我不知道X.509证书可以扮演PK系统的角色。然后我会调查这一点,谢谢你为我指引了一个更好的方向@ThibaultMartin Lagarette SSH不必暗示“真正的shell访问机器”。你可以把它限制在通讯上。