一个比另一个更安全吗?
5 回答
SSH使用公钥/私钥对,
id_rsa
您的RSA私钥(基于素数)也是如此,它比您的id_dsa
DSA私钥(基于指数)更安全。确保您的私钥安全并广泛共享您的公钥id_rsa.pub
和id_dsa.pub
公钥。
DSA 不安全
如果您的计算机的随机数生成器低于标准, DSA 有一个可猜测的参数,这将揭示您的密钥。 ECDSA(DSA 的椭圆曲线升级)同样容易受到攻击。即使有良好的随机数,DSA 也有其他强度问题/(这些也可以在 Diffie-Hellman中找到)。
OpenSSH 创建不安全的 1024 位密钥(解决方法),现在尽可能使用 Ed25519
椭圆曲线密码学通过更小的密钥大小提供了更高的复杂性。 Ed25519(基于平面建模椭圆曲线的复杂性)是首选实现,因为它假定缺乏干预(泄露的文件显示美国OpenSSH 6.5或GnuPG 2.1(请参阅完整列表)。
Ed25519 不可用时使用 4096 位 RSA
4096 位的 RSA 密钥大小应该具有与 Ed25519 相当的复杂性。
Ed25519 仍然比 RSA 更受欢迎,因为担心 RSA 可能容易受到与 DSA 相同的强度问题的影响,尽管预计将该漏洞应用于 RSA 会相当困难。
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
默认启用以允许客户端自动迁移到更好的算法。
用户可以考虑手动启用此选项。
是的,rsa 被认为更安全。
2014 年 10 月,OpenSSH 7(Ubuntu 16.04LTS 的默认设置)禁用了对 DSA 的默认支持。将此视为 DSA 不再是推荐方法的强烈迹象。
https://www.gentoo.org/support/news-items/2015-08-13-openssh-weak-keys.html