Quelle est la différence entre les clés RSA, DSA et ECDSA utilisées par ssh?

13

Dans mon /etc/ssh/répertoire, je peux voir trois que j'ai trois types différents de clés 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

Quelles sont les différences entre les clés RSA, DSA et ECDSA de ssh, et ai-je besoin des trois?

fouric
la source

Réponses:

9

Ce sont des clés générées à l'aide de différents algorithmes de chiffrement. Vous pouvez choisir d'utiliser différentes formes de cryptage lorsque vous utilisez SSH, quelque peu similaire à la possibilité de choisir différentes méthodes de cryptage pour le WiFi (WPA2, WPA, WEP, etc.).

SSH utilise le cryptage à clé publique, ce qui signifie que lorsque vous vous connectez à un serveur SSH, il diffuse une clé publique que vous pouvez utiliser pour crypter davantage de trafic à envoyer à ce serveur. Si le serveur est configuré pour utiliser RSA, ce sera une clé générée par l'algorithme RSA.

Votre ordinateur renvoie sa propre clé RSA publique à partir du fichier de clés que vous avez indiqué dans votre question. Le serveur a besoin de cette clé pour se reconnecter et répondre.

Les trois clés existent sur votre ordinateur car tout serveur SSH auquel vous vous connectez peut être configuré pour utiliser l'un de ces algorithmes. Votre ordinateur renverra une clé unique correspondant au type utilisé par le serveur, votre clé ayant été générée sur votre ordinateur par le même algorithme.

Voici quelques ressources supplémentaires:

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

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

http://en.wikipedia.org/wiki/RSA_(algorithm)

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

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

Zoasterboy
la source
2
Vous avez brièvement expliqué pourquoi les trois sont là, le but d'une clé ssh et ce que les clés ont en commun: les clés utilisent des algorithmes de chiffrement. Ce dont vous n'avez pas parlé quelle est la différence entre les clés RSA, DSA et ECDSA.
Enkouyami
6

En avez-vous besoin tous?
Non, votre serveur ssh n'en a besoin que d'un et le client n'a besoin que de prendre en charge ce type de clé pour les connexions ssh.


RSA, DSA, ECDSA, EdDSA et Ed25519 sont tous utilisés pour la signature numérique, mais seul RSA peut également être utilisé pour le cryptage.

RSA ( Rivest – Shamir – Adleman ) est l'un des premiers cryptosystèmes à clé publique et est largement utilisé pour la transmission sécurisée de données. Sa sécurité repose sur une factorisation entière , donc un RNG (Random Number Generator) sécurisé n'est jamais nécessaire. Comparé à DSA, RSA est plus rapide pour la validation de signature mais plus lent pour la génération.

DSA ( Digital Signature Algorithm ) est une norme fédérale de traitement de l'information pour les signatures numériques. Sa sécurité repose sur un problème logarithmique discret . Comparé à RSA, DSA est plus rapide pour la génération de signature mais plus lent pour la validation. La sécurité peut être rompue si des générateurs de mauvais numéro sont utilisés .

ECDSA ( Elliptical curve Digital Signature Algorithm ) est une implémentation à courbe elliptique de DSA (Digital Signature Algorithm). La cryptographie à courbe elliptique est en mesure de fournir le même niveau de sécurité que RSA avec une clé plus petite. Il partage également l'inconvénient du DSA d'être sensible aux mauvais RNG.

EdDSA ( Edwards-curve Digital Signature Algorithm ) est un schéma de signature numérique utilisant une variante de la signature Schnorr basée sur des courbes Twisted Edwards . La création de signature est déterministe dans EdDSA et sa sécurité est basée sur l'intraçabilité de certains problèmes de logarithme discret, il est donc plus sûr que DSA et ECDSA qui nécessite un caractère aléatoire de haute qualité pour chaque signature.

Ed25519 , est le schéma de signature EdDSA, mais en utilisant SHA-512/256 et Curve25519 ; c'est une courbe elliptique sécurisée qui offre une meilleure sécurité que DSA, ECDSA et EdDSA, plus a de meilleures performances (non perceptible humainement).


Autres notes Les
clés RSA sont les plus utilisées et semblent donc être les mieux prises en charge.

ECDSA, (introduit dans OpenSSH v5.7 ), est plus léger en calcul que DSA, mais la différence n'est perceptible que si vous avez une machine avec une puissance de traitement très faible.

Depuis OpenSSH 7.0 , SSH ne prend plus en charge les clés DSA (ssh-dss) par défaut. Une clé DSA fonctionnait partout, conformément à la norme SSH (RFC 4251 et suivantes).

Ed25519 a été introduit dans openSSH 6.5 .

Enkouyami
la source
1
Est-ce EdDSA ou ECDSA ?
muru
@muru C'est ECDSA. Je mettrai à jour la réponse avec des informations sur les deux et je corrigerai le lien.
Enkouyami
Ce que je n'ai pas pu trouver, c'est quand EdDSA a été introduit dans OpenSSH.
Enkouyami
Un ordinateur quantique peut-il tous les casser?
Kjeld Flarup
@KjeldFlarup, Oui; sur la base des réponses et des commentaires sur security.stackexchange.com/questions/211587/… , un ordinateur quantique pourrait tout casser.
Enkouyami