题 SSH密钥对生成:RSA还是DSA?


SSH支持两种密钥对签名算法:RSA和DSA。哪个是首选,如果有的话?对于RSA,可接受的最小密钥长度是多少?


102
2017-07-13 19:18






答案:


RSA通常是首选(现在专利问题已经结束),因为它可以达到4096位,其中DSA必须精确到1024位(在 ssh-keygen)。 2048位是 ssh-keygenRSA密钥的默认长度,我没有看到使用较短密钥的任何特殊原因。 (最小可能是768位;我认为这是否是“可接受的”是情境性的。)


70
2017-07-13 19:25



我经常想知道为什么人们觉得需要用2048位密钥保证他们的ssh连接,当你的银行,你可能信任,不太可能超过256位,并且更可能坚持128位。我当然不是说使用大钥匙有什么问题,我只是...说'。 - msanford
银行SSL连接是使用的另一种密码,更具体地说,用于交易主要部分的密钥仅生成并用于该事务,然后被丢弃。 - Ophidian
原因实际上与缩放有关。加密并不便宜,您的密钥强度越高,您可以提供的SSL连接就越少。如果您有一个零售银行,每个消费者都试图使用SSL,那么您将不得不选择一个兼容的密钥套件,但它也匹配您的硬件。 - Spence
msanford:就像Ophidian所说的那样,它们是不同类型的加密。对于几乎任何目的,256位RSA密钥都是完全无用的。对称密钥在128-512bit范围内,而不对称 开始 在768位,并且在大约1500-2000bit及以上是安全的。 768位公钥可以并且已经被破坏。 128位对称不能(本身)实际上被破坏。 - Thomas
@xenoterracide,ssh使用openssl库。当SSH首次启动时,它使用RSA / DSA密钥进行主机验证并为会话设置对称密钥。这与SSL服务器和客户端遵循的程序相同,因此您会发现我们人们谈论SSH,他们经常会参考允许为SSL完成的研究和文档 - Walter


它不是关于对称或非对称加密。它是关于需要更高位数以实现可接受的安全级别的特定算法(RSA和DSA)。例如,ECC也是非对称加密,但它在比RSA或DSA低得多的位数上提供了良好的安全性。


5
2017-11-11 19:31





如果您最近实施了SSH,您也可以考虑使用ECDSA!


5
2017-11-03 13:17





银行用于SSL连接的256位证书是对称的密码,例如3DES或AES,因此位数较低。当您看到1024和2048(甚至4096)时,这些是非对称密码。


3
2017-08-05 23:01





DSA密钥的签名比RSA密钥短得多(对于相同的“安全级别”),因此使用DSA的一个原因是在受限环境中。


1
2017-07-12 21:08