Quelle taille pour une clé SSH ?

1024, 2048, 4096, 8192, 16256 bits ? Jusqu’à quelle taille est-il possible techniquement de générer une clé SSH ? Aujourd’hui j’utilise mon blog pour faire un « appel à témoin ». Si vous avez la réponse, je vous invite à réagir !

J’ai récemment entendu dure qu’il y aurait une limite théorique à la taille des clés SSH, située à 4096 bits. OpenSSH ne limite pas la génération des clés à des valeurs supérieures comme j’ai pu en faire l’expérience avec une clé de 8192 bits. En ADSL, l’échange de la clé et l’authentification semblent presque immédiat, je n’ai pas noté de lenteur.

D’autre part, j’aimerais connaitre l’impact d’une clé de 4000 bits en terme de sécurité par rapport à une clé de 2048 puis une clé de 4096 bits. Pourquoi utilisons nous ces multiples ? Je vous demanderais simplement d’être rigoureux dans vos réponses, si possible en citant vos sources !

Quelques pistes :

La recommandation en matière de sécurité du gouvernement :

Depuis 2004, l’ANSSI recommande d’utiliser des tailles de clés RSA d’au moins 1536 bits, soit exactement le double de la taille qui vient d’être factorisée, pour un usage ne dépassant pas l’année 2010. Cette exigence est portée à 2048 bits pour un usage ne dépassant pas 2020. Ces tailles de clés, portées par le référentiel général de sécurité (RGS), permettent de garantir un bon niveau de sécurité au vu de l’état de l’art cryptographique et des puissances de calcul actuels.

Pour autant, des tailles inférieures peuvent être acceptables et offrir un niveau de sécurité adapté à certains usages. Dans ce cas, c’est au responsable de la gestion de ces clés d’évaluer le risque qu’il prend par rapport à l’impact qu’aurait la factorisation de l’une de ses clés. Une clé de cette taille peut en effet s’avérer insuffisante dès lors que la valeur des données qu’elle protège est plus grande que le coût de sa factorisation.

Cet article où l’auteur explique avoir généré une clé de 8192 bits sans que cela n’ait l’air de lui poser problème.

Merci de vos éclaircissements 🙂

10 commentaires sur “Quelle taille pour une clé SSH ?

  1. Ça doit être moi qui t’avait dit ça, mais apparemment c’est totalement faux. Allez, je retente ma chance, on ne peut pas avoir une clef asymétrique de plus de 4096bits dans une clef GPG ? (ou alors j’ai tout simplement rêvé)

    Sinon pour le transfert sur ADSL, notons que 8192 bits ça fait ~1ko, donc on a vu pire même pour un modem 56K. Il semblerait que le problème d’une clef très longue provient surtout de la consommation de CPU plus importante. Bon maintenant, quand c’est juste pour une connexion ssh, pas sûr que ça se remarque plus que ça …

    Et comme t’es censé révoquer tes clefs une fois de temps en temps, et qu’une fois révoquée tu t’en tape que les gens connaissent ta clef privée (c’est pas comme si tu avais chiffré des documents top secrets avec), au final je pense que tu t’en tape un peu.

  2. Je ne vais pas vraiment répondre à ta question puisque j’ai l’impression que tu donnes déjà la réponse.
    Cela dépend de l’usage que tu veux en faire. Aujourd’hui on conseille 2048 mais on ne peut pas savoir jusque quand cela encore valable.
    Personne ne sait ce qui se passera dans le future. Si un jour on réussi à développer les calculateurs quantiques (pas pour tout de suite, d’accord), il faudra chercher une autre méthode de chiffrement car même une clé de 10gb te sera inutile.

    Pourquoi utiliser 1024, 2048,… ? Je suis intéressé de savoir s’il y a une raison technique, mais je pense simplement plus facile à retenir pour tout bon geek qui pense en puissance de 2.

  3. mart je crois que tu as un peu lu mon article en travers 😉

    1) Ma question porte sur la possibilité ou non de créer une clé suppérieure à 4096 bits. Est-ce que le logiciel le permet ? Moi j’ai entendu dire que non, ce n’est pas « ma réponse » c’est l’objet même de mon interrogation.

    2) Je ne demande pas non plus l’intérêt d’utiliser une clé de 1024 ou de 2048 mais de 4000 bits tout rond. En quoi cela impacte la sécurité de la clé ? Est-ce que part exemple, une clé de 2048 et une clé de 4000 bits n’auraient pas exactement la même valeur ? Est-ce que c’est le palier des multiples (1024, 2048, 4096) qui donne à une clé son degré de sécurisation supplémentaire ? Est-ce qu’entre une clé de 2047 bits et une clé de 2048 bits, il y a un facteur 1000 de sécurité parce qu’on utilise un octet de plus ?

  4. L’algorithme RSA n’a pas de limite de la taille de la clé. Je suppose que la limite logiciel est causé par la quantité de nombre premier connu par le logiciel.
    Les paliers des multiples sont surement dû à l’optimisation de la factorisation.

  5. J’ai cherché. La réponse à la première question serait pour des raisons légale. Il est illégale au État-Unis de chiffrer au dessus de 4096 bits.

  6. J’ai effectué des tests. J’ai put facilement faire une clé de 8208 bits. Alors que GnuPGP refuse au dessus de 4096 bits.

    Après réflexion, les paliers de base 2 n’ont aucune influence (N := pq).

    Je vous conseil de lire ce document qui explique de manière assez simple ( par rapport à d’autre ) http://people.math.jussieu.fr/~hindry/cryptorsa.pdf

    PS : Désolé de ces messages multiple :/

  7. Non non bien sur aucun problème 🙂 Merci de m’avoir mis sur la bonne voie, j’ai résolu le mystère ! Mille merci !

    L’algorythme RSA ne peut à l’heure actuelle être craqué que par factorisation de la clé de chiffrement. Les clés inférieures à 1024 bits sont compromises, il est donc très facile de les déchiffrer.

    Pourquoi est-il vital d’utiliser uniquement les nombres RSA ?

    Cela vient en fait de l’algorithme lui même, voici ce que dit Wikipedia :

    En mathématiques, les nombres RSA sont des nombres semi-premiers (c’est-à-dire des nombres qui ont exactement deux facteurs premiers), liés à l’algorithme Rivest Shamir Adleman. Ces nombres sont à la base de la compétition de factorisation RSA, organisée par la société RSA Security, dont le but était d’obtenir leur factorisation. Des récompenses ont été offertes pour les factorisations de RSA-576 à RSA-2048. La compétition est interrompue depuis mai 2007.

    Les premiers nombres RSA générés, de RSA-100 à RSA-500, furent baptisés en référence à leurs nombres de chiffres décimaux ; plus tard, néanmoins, en commençant avec RSA-576, les chiffres binaires furent comptés à la place. Une exception à ceci est le nombre RSA-617, qui a été créé avant le changement du schéma de numération.

    2048 est un nombre RSA – c’est-à-dire un grand nombre semi-premier qui fait partie de la compétition de factorisation RSA. Un prix d’une valeur de 200 000 $ a été offert par RSA Security pour la réussite de sa factorisation. Personne n’en profitera puisque depuis le 18 mai 2007, le RSA a subitement décidé de ne plus faire appel au public pour factoriser ses clés.

    En ce qui concerne les clés supérieures à 4096 bits, je vais maintenant faire des tests pour contrôler la consommation ne CPU que cela engendre. Quitte à sécuriser, je ne vois aucune raison de ne pas le faire sérieusement avec des clés de 8192 bits ou de 16256 bits, ce qui je rappelle ne représente qu’un kilo-bit à notre époque.

  8. Avec l’augmentation de la puissance de nos pc, j’ai comme meme du mal a croire que l’on ne puisse pas utiliser des clés de 8192 bits, mais est ce qu’il y a une véritable utilité d’utilisé à l’heure actuel des clés de 16256 bits pour protéger ces données ?

  9. Le RSA-768 a été cassé en début d’année. Ils leurs a fallu tout de même 2 ans et 1544 machines pour cassé une seule clé ! (http://www.numerama.com/magazine/14824-securite-la-cle-rsa-768-bits-est-cassee-l-inria-recommande-au-moins-2048-bits.html).

    Il faut en vouloir pour cassé une clé de 768 bits, c’est pas si facile Vincent. Donc avec une clé de 4096 bits, on n’est tranquille.

    La principal difficulté sera le temps de génération du modulus (N := pq; p et q sont des nombres premier) de grande taille.

    Exemple pour une clé de 768 bits :

    N = 1230186684530117755130494958384962720772853569595334792197322452151726400507263657518745202199786469389956474942774063845925192557326303453731548268507917026122142913461670429214311602221240479274737794080665351419597459856902143413

    p = 33478071698956898786044169848212690817704794983713768568912431388982883793878002287614711652531743087737814467999489

    q=
    36746043666799590428244633799627952632279158164343087642676032283815739666 511279233373417143396810270092798736308917

    Je vous laisse donc imaginé la taille de N pour 16256 bis :D.

    Il est préférable de changé régulièrement de clé de taille 2096 ou 4096 bits que de faire des clés de plus grande taille.

    Les clés de 1024 bits reste sûr, elles sont utilisé notamment par les serveurs racines DNS pour DNSSEC.

L'espace de discussion de cet article est désormais fermé.