从SSH握手过程中解释http://www.cathaycenturies.com/blog/?p=1635
密钥交换
顺便问一下,对于进程如何在服务器和客户端上使用公钥和私钥以及会话密钥,是否有一些参考呢?
谢谢。
发布于 2016-06-15 21:48:46
是。密钥交换的密钥对每个密钥交换都有更改。
是。除非您传输大量数据,否则您的会话持续时间足够长,或者强制重新键控(或者配置重键操作比需要的频率更频繁)。服务器和客户端配置中的RekeyLimit
选项。
每次生成它们时,它们都以私钥和公钥作为输入。这是否意味着不同会话的会话密钥是相同的,只要私钥和公钥保持不变?
如上段所述。这些都是为密钥交换而生成的密钥。它们不是前面在前面的问题中讨论过的身份验证密钥或主机密钥。
这是密钥交换的要点。我真的很喜欢下面这张解释它的图片(来自维基百科)。它们是根据每个私钥的知识独立生成的,但是通过网络传输的数据(公钥)不足以构造这个共享秘密。
如果是,用户身份验证是否使用在客户端和服务器上生成的会话密钥,还是只使用客户端和服务器上的公钥和私钥?
不是的。会话密钥用于通过网络对信道进行加密。关键是在密钥交换之前,数据在网络上传输不安全,任何人都可以拦截/修改/插入任何数据。密钥交换后,用密码对数据进行加密,用MAC对数据进行认证。
有很多关于SSH协议的信息。OpenSSH项目有一个专门的页面,具有为SSH协议实现的所有标准(RFC)。也许最重要的是RFC4253。此外,开放源码可以解释很多。
我希望我说得更清楚了。如果有什么遗漏,请告诉我。
https://unix.stackexchange.com/questions/290025
复制相似问题