ssh使用的RSA,DSA和ECDSA密钥之间有什么区别?


13

/etc/ssh/目录中,我可以看到三个具有三种不同类型的ssh密钥:

-rw------- 1 root root    607 Oct  4 22:43 ssh_host_dsa_key
-rw-r--r-- 1 root root    623 Oct  4 22:43 ssh_host_dsa_key.pub
-rw------- 1 root root    241 Oct  4 22:43 ssh_host_ecdsa_key
-rw-r--r-- 1 root root    194 Oct  4 22:43 ssh_host_ecdsa_key.pub
-rw------- 1 root root   1602 Oct  4 22:43 ssh_host_rsa_key
-rw-r--r-- 1 root root    378 Oct  4 22:43 ssh_host_rsa_key.pub

ssh的RSA,DSA和ECDSA密钥有什么区别,我是否需要这三个密钥?

Answers:


9

它们是使用不同加密算法生成的密钥。使用SSH时,您可以选择使用不同形式的加密,这有点类似于为WiFi选择不同的加密方法(WPA2,WPA,WEP等)的能力。

SSH使用公共密钥加密,这意味着当您连接到SSH服务器时,它会广播一个公共密钥,您可以使用该公共密钥来加密要发送到该服务器的其他流量。如果服务器配置为使用RSA,它将是RSA算法生成的密钥。

您的计算机从问题中列出的密钥文件中发回自己的公共RSA密钥。服务器需要此密钥才能连接回您并回复。

所有这三个密钥都存在于您的计算机上,因为您要连接的任何给定SSH服务器都可能配置为使用这些算法中的任何一种。您的计算机将发回与服务器使用的类型匹配的唯一密钥,该密钥是通过相同的算法在计算机上生成的。

以下是一些其他资源:

/security/5096/rsa-vs-dsa-for-ssh-authentication-keys

http://en.wikipedia.org/wiki/Public-key_cryptography

http://zh.wikipedia.org/wiki/RSA_(算法)

http://en.wikipedia.org/wiki/Digital_Signature_Algorithm

http://en.wikipedia.org/wiki/Elliptic_Curve_DSA


2
您简要讨论了为什么这三个都存在,ssh密钥的用途,以及这些密钥的共同点:密钥使用加密算法。您没有谈论RSA,DSA和ECDSA密钥之间的区别是什么。
Enkouyami

6

需要所有这些吗?
不,您的ssh服务器只需要一个,客户端仅需要支持用于ssh连接的一种密钥。


RSA,DSA,ECDSA,EdDSA和Ed25519都用于数字签名,但只有RSA也可以用于加密。

RSARivest–Shamir–Adleman)是最早的公钥密码系统之一,被广泛用于安全数据传输。它的安全性取决于整数分解,因此永远不需要安全的RNG(随机数生成器)。与DSA相比,RSA的签名验证速度更快,但生成速度较慢。

DSA数字签名算法)是用于数字签名的联邦信息处理标准。它的安全性取决于离散的对数问题。与RSA相比,DSA的签名生成速度更快,但验证速度较慢。如果使用错误的数字生成器,可能会破坏安全性。

ECDSA椭圆曲线数字签名算法)是DSA(数字签名算法)的椭圆曲线实现。椭圆曲线密码术能够以较小的密钥提供与RSA相对相同的安全级别。它还具有DSA对不良RNG敏感的缺点。

EdDSA爱德华兹曲线数字签名算法)是一种使用基于扭曲爱德华兹曲线Schnorr签名变体的数字签名方案。签名创建在EdDSA中是确定性的,其安全性是基于某些离散对数问题的难处理性,因此它比DSA和ECDSA更安全,后者要求每个签名都具有高质量的随机性。

Ed25519EdDSA签名方案,但使用SHA-512 / 256Curve25519;它是一条安全的椭圆形曲线,比DSA,ECDSA和EdDSA 提供更好的安全性,并且具有更好的性能(人为注意)。


其他说明
RSA密钥使用最广泛,因此似乎得到最好的支持。

ECDSA(在OpenSSH v5.7中引入)在计算上比DSA轻,但是除非您有一台处理能力非常低的机器,否则差异并不明显。

OpenSSH 7.0开始,默认情况下SSH不再支持DSA密钥(ssh-dss)。根据SSH标准(RFC 4251及更高版本),DSA密钥可用于任何地方。

Ed25519在openSSH 6.5中引入。


1
是EdDSA还是ECDSA
muru

@muru这是ECDSA。我将同时通过这两个信息更新答案并修复链接。
Enkouyami

我找不到的是在OpenSSH中引入EdDSA时。
Enkouyami

量子计算机可以将它们全部破坏吗?
Kjeld Flarup

@KjeldFlarup,是的; 根据security.stackexchange.com/questions/211587/…上的答案和评论,量子计算机可以将它们全部破坏。
Enkouyami
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.