如何在 OpenSSH 中设置会话密钥大小?

如何在 OpenSSH 中设置会话密钥大小?

在 SSH 协议版本 1 中,可以使用 sshd_config 中的 ServerKeyBits 设置来设置临时会话密钥大小。有没有办法对 ssh 协议版本 2 执行此操作?

SSH 协议中使用了三种加密密钥:

  1. 服务器密钥
  2. (中间)临时会话密钥
  3. 最终的对称密钥

中间临时会话密钥是仅为该会话创建的非对称密码密钥。创建该密钥是为了在传递最终对称密钥时,无需使用服务器密钥对其进行加密。这样一来,如果服务器密钥被泄露,您就无法使用它从之前“记录”的会话中恢复最终对称密码密钥。这就是前向保密。

服务器密钥的大小由用户在创建时设置。最终对称密码的大小由 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定义与每个密码相关的密钥大小,尽管从密码名称中不能立即看出的唯一密钥大小是:

  • “3des-cbc”——将被弃用,但由于历史原因仍包含在内——有效密钥长度为 112 位
  • 普通的“arcfour”是 RC4,在使用弱密钥时会出现问题,应谨慎使用 - 密钥长度为 128 位(参见此问答关于“arcfour”和“arcfour128”之间的区别)
  • [电子邮件保护]-RFC 7539据我所知还有一个 256 位密钥

相关内容