web-dev-qa-db-fra.com

Clé SSH: Ed25519 vs RSA

Beaucoup de gens recommandent d'utiliser Ed25519 au lieu de RSA clés pour SSH.

La page d'introduction de Ed25519 ( http://ed25519.cr.yp.to/ ) dit:
[..] breaking it has similar difficulty to breaking [..] RSA with ~3000-bit keys [..]

Donc, en parlant seulement de sécurité (pas de vitesse!), Pourquoi devrait-on pas préférer RSA 4096 plus de Ed25519?
Si Ed25519 ne fournit qu'une force de clé de ~ 3000 bits, RSA avec 4096 bits devrait être beaucoup plus sûr?

50
Ben Richard

Les points forts et leurs équivalences perdent tout sens lorsqu'ils atteignent la zone de "ne peuvent pas être rompus avec la technologie existante et prévisible", car il n'y a rien de plus sûr que cela. C'est un réflexe courant d'essayer de considérer les tailles de clés comme fournissant une sorte de marge de sécurité, mais ce type de raisonnement échoue au-delà d'un certain point.

Fondamentalement, les algorithmes les plus connus pour briser le RSA et pour briser les courbes elliptiques étaient déjà connus il y a 25 ans. Depuis lors, l'efficacité de la rupture s'est améliorée grâce à des ordinateurs plus rapides, à un rythme qui était correctement prédit . C'est un hommage aux chercheurs qu'ils ont pu, grâce à de nombreux réglages fins, suivre ce rythme, comme le montre ce graphique:

Factorization records over time

(extrait de cette réponse ).

L'essentiel est que, même si une clé plus grande offre une résistance prévisible plus longue, ce type de prédiction ne fonctionne que tant que des améliorations technologiques peuvent être, en effet, prédites, et quiconque prétend qu'il sait quels ordinateurs pourront faire plus de 50 ans à partir de maintenant est soit un prophète, un fou, un menteur, ou tout cela ensemble.

Dans 50 ans, la formule optimiste donnée dans la réponse citée ci-dessus ((année - 2000) * 32 + 512) signifie que, au mieux, les enregistrements RSA pourraient envisager d'approcher 2592 bits.

La conclusion est qu'il n'y a aucun moyen significatif de comparer les clés RSA 3000 bits et 4000 bits, du point de vue de la sécurité. Ils sont tous deux "incassables dans un avenir prévisible". Une clé ne peut pas être moins cassée que non cassée.

Un point supplémentaire et important est que les clés "permanentes" dans SSH (les clés que vous générez et stockez dans des fichiers) sont utilisées uniquement pour signatures. Briser une telle clé permettrait à un attaquant de se faire passer pour le serveur ou le client, mais pas pour décrypter une session enregistrée antérieure (la clé de cryptage réelle est dérivée d'un échange de clé éphémère Diffie-Hellman, ou une variante de courbe elliptique de celui-ci). Ainsi, que votre clé puisse être cassée ou non au cours du siècle prochain n'a aucune importance. Pour atteindre une sécurité "ultime" (au moins, dans le contexte du monde informatique), tout ce dont vous avez besoin pour votre clé SSH est une clé qui ne peut pas être cassée maintenant, avec la science et la technologie comme elles sont connus maintenant.

Un autre point de vue sur la même chose est que vos connexions ne peuvent être aussi sécurisées que les deux points de terminaison. Rien n'oblige vos ennemis, qu'ils soient de mauvais criminels, des espions ou tout autre chose, à essayer de vous vaincre en jouant "juste" et en essayant de briser votre crypto dès le départ. Embaucher des milliers et des milliers d'informateurs pour espionner tout le monde (et les uns sur les autres) coûte très cher, mais cela a été fait , ce qui est beaucoup plus que ce que l'on peut dire à propos de la rupture d'une seule clé RSA de 2048 morceaux.

59
Tom Leek