id_rsa.pub和id_dsa.pub有什么区别?

时间:2010-05-12 18:38:10

标签: encryption ssh rsa public-key-encryption dsa

一个人比另一个人更安全吗?

5 个答案:

答案 0 :(得分:61)

id_rsa.pubid_dsa.pubid_rsaid_dsa的公钥。

如果您询问SSHid_rsaRSA密钥,可以与SSH协议1或2一起使用,而id_dsa是{ {3}}密钥,只能与SSH协议2一起使用。两者都非常安全,但DSA似乎确实是最近的标准(假设所有客户端/服务器都支持SSH 2)。 < / p>

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

答案 1 :(得分:39)

SSH使用public/private key pairs,所以 id_rsa是您的RSA私钥(基于素数),比您的id_dsa DSA私钥更安全(基于指数) )。确保您的私钥安全,并广泛分享您的id_rsa.pubid_dsa.pub公钥。

DSA is insecure

如果您的计算机的随机数生成器低于标准,则DSA会有guessable parameter,这将显示您的密钥。 ECDSA(DSA&#39;椭圆曲线升级)is similarly vulnerable。即使有良好的随机数,DSA也有other strength concernsPDF(这些是also found in Diffie-Hellman)。

OpenSSH会创建不安全的1024位密钥workaround,现在为disables DSA by default

Use Ed25519 when possible

Elliptic curve cryptography使用较小的密钥大小提高了复杂性。 Ed25519(基于plane-modeled elliptical curves的复杂性)是首选实施方案,因为它假设缺乏干预(泄露的文件显示美国NSA weakens crypto standards)。

不幸的是,Ed25519仍然相当新,需要OpenSSH 6.5GnuPG 2.1(请参阅full list)。

当Ed25519不可用时,使用带有4096位的RSA

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

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

答案 2 :(得分:2)

rsa被认为更安全。

不再(十年后的2020年5月),OpenSSH 8.2reported冠以Julio

未来弃用通知

现在可以1对SHA-1哈希算法执行选定的前缀攻击,而费用不超过5万美元。
因此,我们将在不久的将来的版本中禁用默认情况下依赖SHA-1的“ ssh-rsa”公钥签名算法。

(请参见“ {SHA-1 is a Shambles: First Chosen-Prefix Collision on SHA-1 and Application to the PGP Web of Trust” 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(1)的允许列表中删除ssh-rsa算法后,尝试连接到该服务器:

ssh -oHostKeyAlgorithms=-ssh-rsa user@host

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

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

答案 3 :(得分: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

答案 4 :(得分:-6)

一个使用DSA,一个使用RSA