Encryption 什么';id_rsa.pub和id_dsa.pub之间的区别是什么?

Encryption 什么';id_rsa.pub和id_dsa.pub之间的区别是什么?,encryption,ssh,rsa,public-key-encryption,dsa,Encryption,Ssh,Rsa,Public Key Encryption,Dsa,一个比另一个更安全吗?一个使用一个使用。id\u rsa.pub和id\u dsa.pub是id\u rsa和id\u dsa的公钥 如果您是针对SSH进行询问,id\u rsa是一个密钥,可以与SSH协议1或2一起使用,而id\u dsa是一个密钥,只能与SSH协议2一起使用。两者都非常安全,但DSA现在似乎已经成为标准(假设您的所有客户端/服务器都支持SSH 2) 更新:自写入此文件以来,DSA已显示不安全。下面的答案提供了更多信息。使用 id\u rsa是您的私钥(基于素数),它比您的id

一个比另一个更安全吗?

一个使用一个使用。

id\u rsa.pub
id\u dsa.pub
id\u rsa
id\u dsa
的公钥

如果您是针对
SSH
进行询问,
id\u rsa
是一个密钥,可以与SSH协议1或2一起使用,而
id\u dsa
是一个密钥,只能与SSH协议2一起使用。两者都非常安全,但DSA现在似乎已经成为标准(假设您的所有客户端/服务器都支持SSH 2)

更新:自写入此文件以来,DSA已显示不安全。下面的答案提供了更多信息。

使用
id\u rsa
是您的私钥(基于素数),它比您的
id\u dsa
私钥(基于指数)更安全。保护您的私钥安全,并广泛共享您的
id\u rsa.pub
id\u dsa.pub
公钥

DSA有一个如果你的计算机的随机数生成器是低于标准的,这将揭示你的秘密密钥。(DSA的椭圆曲线升级)。即使有好的随机数,DSA也有(这些是)

OpenSSH现在创建不安全的1024位密钥()

通过更小的密钥大小提供更高的复杂性。(基于的复杂性)是首选的实施方式,因为它假定没有干预(泄露的文件显示美国)

不幸的是,Ed25519仍然相当新,需要or(请参阅)

当Ed25519不可用时,使用带4096位的RSA 4096位的RSA密钥大小应具有与Ed25519相当的复杂性


Ed25519仍然是RSA的首选,因为担心RSA可能会受到与DSA相同的强度问题的攻击,尽管将该漏洞应用于RSA可能会非常困难。

是的,RSA被认为更安全

2014年10月,OpenSSH 7(Ubuntu 16.04LTS的默认版本)禁用了对DSA的默认支持。这是一个强烈的信号,表明DSA不再是推荐的方法

rsa被认为更安全

不再是了(2020年5月,十年后),随着

日后弃用通知书 现在可以对SHA-1哈希算法执行选择前缀攻击,费用不到5万美元。
因此,我们将在不久的将来的版本中禁用默认依赖于SHA-1的“ssh rsa”公钥签名算法

(见“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的未来版本将默认启用更新主机密钥,以允许客户端自动迁移到更好的算法。
<强>用户可以考虑手动启用此选项>/P>
假设您只是使用默认名称(逻辑上看起来很像),那么Theaterus正好击中了它的头部。您没有回答问题的真正部分:哪个更安全。因为这是最重要的答案,所以投了反对票。不需要。我不同意这一点。今天(虽然程度较轻,也是在2010年发布时),1024位(DSA可用的最大密钥大小)被认为太弱。因此,RSA是更好的选择。至于SSH V1:十年前我没有考虑过这个安全性。@ AdAMKATZ DSA支持2009位以来的2048位和3072位密钥。大多数ssh客户端/服务器支持更大的DSA密钥,包括OpenSSH和PuTTY。大多数密钥生成器也支持更大的DSA密钥,但OpenSSH的ssh keygen仍然不支持(尽管ssh和sshd都支持)。对于Linux,您可以使用OpenSSL生成更大的DSA密钥,如中所述。有趣!我不知道这一点,这当然有助于在这两个领域之间提高水平(尽管缺少OpenSSH支持是非常糟糕的)。不过,我不会说DSA是标准(无论是现在还是2010年),而RSA绝对是(我们正在向Ed25519等椭圆曲线系统过渡)。只有一个更正:自2009年以来,DSA支持2048位和3072位密钥(根据)。更多信息请参见我的评论。InfosecSE有一个更深入的讨论。它引用了一个例子,表明DSA不再安全,即使密钥大小更大。我更新了这个答案,以便更全面地了解DSA的问题。它现在比InfosecSE的答案(同样有效)更详细。当你将鼠标悬停在一些链接上时,会有更多的细节。这篇文章教会了我很多,需要更多的投票。