103

一个比另一个更安全吗?

4

5 回答 5

71

id_rsa.pub和是和id_dsa.pub的公钥。id_rsaid_dsa

如果您询问SSH,id_rsaRSA密钥,可以与 SSH 协议 1 或 2 一起使用,而id_dsaDSA密钥,只能与 SSH 协议 2 一起使用。 两者都非常安全,但 DSA 似乎确实是这些天的标准(假设您的所有客户端/服务器都支持 SSH 2)。

更新:由于这是写的,DSA 已被证明是不安全的。下面的答案中提供了更多信息。

于 2010-05-12T18:43:19.503 回答
56

SSH使用公钥/私钥对id_rsa您的RSA私钥(基于素数)也是如此,比您的id_dsa DSA私钥(基于指数)更安全。确保您的私钥安全并广泛共享您的公钥id_rsa.pubid_dsa.pub公钥。

DSA 不安全

如果您的计算机的随机数生成器低于标准, DSA 有一个可猜测的参数,这将揭示您的密钥。 ECDSA(DSA 的椭圆曲线升级)同样容易受到攻击。即使有良好的随机数,DSA 也有其他强度问题PDF格式/(这些也可以在 Diffie-Hellman中找到)。

OpenSSH 创建不安全的 1024 位密钥解决方法,现在尽可能使用 Ed25519

椭圆曲线密码学通过更小的密钥大小提供了更高的复杂性。 Ed25519(基于平面建模椭圆曲线的复杂性)是首选实现,因为它假定缺乏干预(泄露的文件显示美国OpenSSH 6.5GnuPG 2.1(请参阅完整列表)。

Ed25519 不可用时使用 4096 位 RSA

4096 位的 RSA 密钥大小应该具有与 Ed25519 相当的复杂性。

Ed25519 仍然比 RSA 更受欢迎,因为担心 RSA 可能容易受到与 DSA 相同的强度问题的影响,尽管预计将该漏洞应用于 RSA 会相当困难。

于 2015-01-09T06:33:12.610 回答
5

rsa 被认为更安全。

Julio报道,不再使用OpenSSH 8.2 (2020 年 5 月,十年后)

未来的弃用通知

现在可以1以不到 5 万美元的价格对 SHA-1 哈希算法执行选择前缀攻击。
出于这个原因,我们将在不久的将来的版本中禁用默认依赖 SHA-1 的“ssh-rsa”公钥签名算法

(请参阅“ SHA-1 是混乱的:SHA-1 上的第一个选择前缀冲突和对 PGP 信任网络的应用” Leurent, G 和 Peyrin, T (2020))

不幸的是,尽管存在更好的替代方案,但该算法仍然被广泛使用,它是原始 SSH RFC 指定的唯一剩余的公钥签名算法。

更好的选择包括:

  • RFC8332 RSA SHA-2 签名算法 rsa-sha2-256/512。
    这些算法的优点是使用与“”相同的密钥类型ssh-rsa,但使用安全的 SHA-2 哈希算法。
    这些从 OpenSSH 7.2 开始就受支持,并且如果客户端和服务器支持它们,则默认情况下已经使用它们。

  • ssh-ed25519 签名算法。
    OpenSSH 从 6.5 版开始支持它。

  • RFC5656 ECDSA 算法:ecdsa-sha2-nistp256/384/521。
    OpenSSH 从 5.7 版开始支持这些功能。

要检查服务器是否正在使用弱 ssh-rsa 公钥算法进行主机身份验证,请在ssh-rsa从 ssh(1) 的允许列表中删除该算法后尝试连接到它:

ssh -oHostKeyAlgorithms=-ssh-rsa user@host

如果主机密钥验证失败并且没有其他支持的主机密钥类型可用,则应升级该主机上的服务器软件。

OpenSSH 的未来版本将UpdateHostKeys默认启用以允许客户端自动迁移到更好的算法。
用户可以考虑手动启用此选项

于 2020-05-28T04:35:48.317 回答
1

是的,rsa 被认为更安全。

2014 年 10 月,OpenSSH 7(Ubuntu 16.04LTS 的默认设置)禁用了对 DSA 的默认支持。将此视为 DSA 不再是推荐方法的强烈迹象。

https://www.gentoo.org/support/news-items/2015-08-13-openssh-weak-keys.html

于 2016-05-27T09:01:41.620 回答
-9

一种使用DSA,一种使用RSA

于 2010-05-12T18:41:18.333 回答