一个比另一个更安全吗?
Answers:
SSH使用公钥/私钥对,因此
id_rsa
您的RSA私钥(基于质数)也是如此,它比id_dsa
DSA私钥(基于指数)更安全。保持私钥安全,id_rsa.pub
并id_dsa.pub
广泛共享您的公钥。
如果您计算机的随机数生成器未达到标准水平,则DSA具有可猜测的参数,该参数会显示您的秘密密钥。 ECDSA(DSA的椭圆曲线升级)同样容易受到攻击。即使具有良好的随机数,DSA也需要考虑其他强度问题(在Diffie-Hellman中也可以找到这些问题)。
OpenSSH创建不安全的1024位密钥(解决方法),现在默认情况下禁用DSA。
椭圆曲线密码术以较小的密钥大小提供了更高的复杂性。 Ed25519(基于平面建模的椭圆曲线的复杂度)是首选的实现方式,因为它假定没有干预(泄漏的文件显示,美国国家安全局削弱了加密标准)。
不幸的是,Ed25519仍然很新,需要OpenSSH 6.5或GnuPG 2.1(请参阅完整列表)。
4096位的RSA密钥大小应具有与Ed25519相当的复杂性。
尽管人们担心RSA可能会遭受与DSA相同的强度问题,但Ed25519仍然比RSA更为可取,尽管将这种利用方法应用于RSA的难度将大大提高。
是的,rsa被认为更安全。
2014年10月,OpenSSH 7(Ubuntu 16.04LTS的默认设置)已禁用DSA的默认支持。将此作为有力的信号,表明不再推荐使用DSA。
https://www.gentoo.org/support/news-items/2015-08-13-openssh-weak-keys.html
rsa被认为更安全。
现在不一样了(2020年5,十年后),用OpenSSH的8.2,作为报告由胡里奥
未来弃用通知
现在可以1执行不到USD $ 50K对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签名算法。
自6.5版以来,OpenSSH已支持它。RFC5656 ECDSA算法:ecdsa-sha2-nistp256 / 384/521。
自5.7版以来,OpenSSH已支持这些功能。要检查服务器是否使用弱ssh-rsa公钥算法进行主机身份验证,请
ssh-rsa
从ssh(1)的允许列表中删除该算法后,尝试连接到该服务器:ssh -oHostKeyAlgorithms=-ssh-rsa user@host
如果主机密钥验证失败,并且没有其他受支持的主机密钥类型可用,则应升级该主机上的服务器软件。
OpenSSH的未来版本将
UpdateHostKeys
默认启用,以允许客户端自动迁移到更好的算法。
用户可以考虑手动启用此选项。