在 SSH 协议版本 1 中,可以使用 sshd_config 中的 ServerKeyBits 设置来设置临时会话密钥大小。有没有办法对 ssh 协议版本 2 执行此操作?
SSH 协议中使用了三种加密密钥:
- 服务器密钥
- (中间)临时会话密钥
- 最终的对称密钥
中间临时会话密钥是仅为该会话创建的非对称密码密钥。创建该密钥是为了在传递最终对称密钥时,无需使用服务器密钥对其进行加密。这样一来,如果服务器密钥被泄露,您就无法使用它从之前“记录”的会话中恢复最终对称密码密钥。这就是前向保密。
服务器密钥的大小由用户在创建时设置。最终对称密码的大小由 RFC 预设,并且是所选对称密码所固有的。中间密钥,即临时会话密钥,我不知道如何设置该密钥的大小。在 SSH 协议的版本 1 中,您可以使用 ServerKeyBits 设置来设置它。在协议的版本 2 中如何设置它?
在使用 diffie-hellman-group-exchange-sha256 作为密钥交换方法时,客户端似乎指定了最小、首选和最大模数大小。这是否意味着从服务器模数文件中删除较小的位大小(如建议的那样这里) 实际上会阻止在客户端要求时使用较小的临时密钥大小,还是说如果损坏的客户端只想要一个非常小的密钥,服务器是否只会使用其内置的固定模数之一?
答案1
与协议版本 1 相比,SSH 2 协议在安全性方面做出了许多改进,我想删除该选项就是其中之一。
据我所知,会话密钥大小在某种程度上是由服务器在选择指令提供的加密算法时隐式施加的Ciphers
。实际会话密钥大小最终将是客户端和服务器之间协商的实际密码。
OpenSSH 中支持的密码是:
3des-cbc
aes128-cbc
aes192-cbc
aes256-cbc
aes128-ctr
aes192-ctr
aes256-ctr
[email protected]
[email protected]
arcfour
arcfour128
arcfour256
blowfish-cbc
cast128-cbc
[email protected]
RFC 4253定义与每个密码相关的密钥大小,尽管从密码名称中不能立即看出的唯一密钥大小是: