Quelle clé SSH choisir ? RSA, DSA, ou Ed25519 ?
SSH d’accord, mais pas en mode passoire
Voyant passer plusieurs failles de sécurité sur SSH ces derniers temps, je me suis posé une question à laquelle je n’avais pas réfléchi jusque là :
Quel type de chiffrement utiliser pour les connexions par clé SSH ?
Il faut savoir que les types de clés proposés par OpenSSH sont RSA, DSA, ECDSA et ED25519.
No future for DSA
Selon ArchWiki – un site qui explique bien cette problématique -, l’utilisation des clés DSA a été dépréciée depuis OpenSSH 7 pour cause de faille de sécurité. Autrement dit, sur Debian Stretch (future stable), vous ne pourrez plus utiliser DSA.
RSA 4096 est compatible avec tout
Les clés RSA ont l’avantage d’être utilisable depuis et vers n’importe quel système. Il faut une clé au minimum de 2048 (par défaut) mais idéalement de 4096 bits.
And the strongest is … ed25519
Les clés ECC (ECDSA et Ed25519) sont plus petites mais aussi sécurisées que leurs ancêtres, ce qui prend moins de ressources pour chiffrer et déchiffrer. L’algorithme utilisé par ECDSA est très critiqué par certains spécialistes de la sécurité (NSA inside), c’est pourquoi ed25519 a vu le jour. L’inconvénient d’ED25519 outre son nom difficile à retenir est qu’il n’est pas encore compatible avec tous les OS (il vous faudra un Debian 8+ et je vous parle pas des boitiers).
En résumé
Aujourd’hui la clé RSA 4096 est le meilleur rapport qualité/compatibilité mais vous pouvez déjà commencer à utiliser ED25519 pour les OS récents.
# Générer une clé RSA de 4096 bits
ssh-keygen -b 4096
# Générer une clé ED25519 de 256 bits (taille fixe)
ssh-keygen -t ed25519
# Copier sa clé publique sur un équipement
ssh-copy-id -i .ssh/id_rsa.pub nomduserveur
ssh-copy-id -i .ssh/id_ed25519.pub nomduserveur