web-dev-qa-db-fra.com

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

Dans mon répertoire /etc/ssh/, je vois trois cas pour lesquels 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?

12
fouric

Ce sont des clés générées à l'aide d'algorithmes de cryptage différents. Vous pouvez choisir d’utiliser différentes formes de cryptage lors de l’utilisation de SSH, ce qui est assez similaire à la possibilité de choisir différentes méthodes de cryptage pour le WiFi (WPA2, WPA, WEP, etc.).

SSH utilise le chiffrement à clé publique, ce qui signifie que lorsque vous vous connectez à un serveur SSH, il diffuse une clé publique que vous pouvez utiliser pour chiffrer le trafic supplémentaire à envoyer à ce serveur. Si le serveur est configuré pour utiliser RSA, il s'agira d'une clé générée par l'algorithme RSA.

Votre ordinateur renvoie sa propre clé publique RSA à partir du fichier de clé que vous avez répertorié 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 quelconque de ces algorithmes. Votre ordinateur vous 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:

https://security.stackexchange.com/questions/5096/rsa-vs-dsa-for-ssh-authentication-keys

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

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

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

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

8
Zoasterboy

Avez-vous besoin de tous?
Non, votre serveur ssh n’en nécessite qu’un seul et le client ne doit prendre en charge que 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 systèmes cryptographiques à clé publique et est largement utilisé pour la transmission sécurisée de données. Sa sécurité repose sur factorisation entière , de sorte qu'un RNG 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 ( Algorithme de signature numérique ) 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 signatures mais plus lent pour la validation. La sécurité peut être cassée si des générateurs de mauvais nombres sont utilisés .

ECDSA ( Algorithme de signature numérique à courbe elliptique ) est une implémentation à courbe elliptique de DSA (algorithme de signature numérique). La cryptographie à courbe elliptique est capable de fournir le même niveau de sécurité que RSA avec une clé plus petite. Il partage également le désavantage de la DSA d’être sensible aux mauvais GNR.

EdDSA ( Algorithme de signature numérique Edwards-curve ) est un schéma de signature numérique utilisant une variante de Signature Schnorr basé sur - Courbes Edwards torsadées . La création de signature est déterministe dans EdDSA et sa sécurité est basée sur le caractère insoluble de certains problèmes de logarithme discret. Il est donc plus sûr que DSA & ECDSA, qui requiert une qualité aléatoire de haute qualité pour chaque signature.

Ed25519 , est le schéma de signature EdDSA, mais avec SHA-512/256 et Curve25519 ; c'est une courbe elliptique sécurisée que offre une meilleure sécurité que DSA, ECDSA, & EdDSA, et offre de meilleures performances (non perceptible par l'homme).


Autres notes
Les clés RSA sont les plus largement utilisées et semblent donc être les mieux supportées.

ECDSA (introduit dans OpenSSH v5.7 ) est plus léger en calcul que DSA, mais la différence n’est perceptible que si vous possédez une machine disposant d’une très faible puissance de calcul.

À compter de OpenSSH 7. , 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 oepnSSH 6.5 .

5
Enkouyami