当我开始处理 *nix 服务器时,openssh 服务器带有 dsa 和 rsa 主机密钥,而 openssh 客户端更喜欢 rsa 密钥。如今,openssh 服务器具有 dsa、rsa 以及 ecdsa 主机密钥,而 openssh 客户端更喜欢 ecdsa 主机密钥。
在多大程度上我仍然需要/想要将 openssh 配置为提供 dsa 主机密钥?
主要是想知道非openssh客户端实现。
当我开始处理 *nix 服务器时,openssh 服务器带有 dsa 和 rsa 主机密钥,而 openssh 客户端更喜欢 rsa 密钥。如今,openssh 服务器具有 dsa、rsa 以及 ecdsa 主机密钥,而 openssh 客户端更喜欢 ecdsa 主机密钥。
在多大程度上我仍然需要/想要将 openssh 配置为提供 dsa 主机密钥?
主要是想知道非openssh客户端实现。
我想不出任何至少不支持 RSA 的广泛使用的东西,如果您在仅支持 DSA 的 Windows(例如)上使用终端仿真器,您应该停止使用它并下载腻子或更新它。
该选项可提供兼容性。但是,它也增加了您的安全面;攻击者可以通过说服客户端仅声明支持 DSA 来削弱您的密码学。这个场景比较牵强。如果它与您有关,那么您应该禁用 DSA。
我能想象到的唯一可能导致严重妥协的情况是,如果您的一个用户在不受信任或受到威胁的计算机上使用 DSA 密钥对,该计算机总是协商 DSA 并生成重复的临时值以创建 DSA 签名;结果将是用户的密钥可能被泄露,但这似乎不是攻击者抵抗力最小的路径。除非您的系统被国际间谍使用,否则您可能无需担心。请在我们的姊妹网站之一上查看此问题:https ://security.stackexchange.com/q/29262/12223 。
实际上并没有直接的方法来禁用 DSA。 Debian 错误 528046提出了它并提供了一个补丁(用于 PubKeyTypes 选项),并得到了支持,但自 2009 年以来一直没有采取行动,没有任何上游证据。
您的答案可能在这里找到:
https://security.stackexchange.com/questions/5096/rsa-vs-dsa-for-ssh-authentication-keys
出于各种原因,大多数建议都是针对 RSA 密钥的,因此 DSA 密钥主要是为了向后兼容。DSA 是在 SSH2 出现时引入的,因为当时 RSA 仍然是专利,而且 DSA 更加开放。这已经改变了。
由于所有这些,DSA 密钥几乎毫无用处。它们会起作用,如果您要求,ssh-keygen 甚至会生成它们,但是必须有人专门提出要求,这意味着如果您强迫他们使用 RSA,他们可以使用 RSA。据我所知,仅 DSA 没有做任何事情。DSA 密钥可以禁止。
我能在安全方面提出的唯一原因是,如果素数分解下降但离散对数没有下降,那么 RSA 下降但 DSA 代表。在这种情况下,您会问如何禁用 RSA。如果离散对数下降大于 RSA 和 DSA 下降。但是,如果您的 ssh 仍然需要 1024 位的 DSA,请立即修复。