Confidentialité à long terme des Infrastructures de gestion de clés (PKI)

Publié le 02 mars 2012 par Lbloch

Sommaire-

Ubiquité des PKI (Public Key Infrastructures)

Chi-Sung Laih, Shang-Ming Jen et Chia-Yu Lu ont publié dans le numéro de janvier 2012, vol. 55 N° 1, des Communications of the Association for Computing Machinery un article intitulé Long-Term Confidentiality of PKI.

La sécurité des échanges sur le réseau, que ce soit pour les transactions commerciales en ligne, pour les actes administratifs et médicaux ou pour les communications privées, repose sur des Infrastructures de gestion de clés (Public Key Infrastructures, PKI), qui sont maintenant partout, et qui émettent les clés de chiffrement utilisées pour la signature électronique et pour le chiffrement des données, ce qui garantit l'authentification et la confidentialité des communications.

Cryptographie à clés publiques ou à clés partagées

Les PKI utilisent conjointement deux méthodes, le chiffrement symétrique et le chiffrement asymétrique, qui reposent sur des méthodes mathématiques complètement différentes. Ces deux méthodes sont d'un usage complémentaire.

La cryptographie asymétrique repose sur la détention, par chaque partie impliquée dans une échange chiffré, de deux clés : une clé publique et une clé privée. La clé privée ne circule jamais sur le réseau, ainsi le risque de sa compromission est très faible. Quiconque veut envoyer un message chiffré à un correspondant chiffre avec la clé publique du destinataire, qui est dans tous les bons annuaires, par exemple celui de la PKI utilisée. Ce système semble parfait, il a un inconvénient, les calculs sont lourds et donc lents.

La cryptographie symétrique à clé partagée repose sur la possession, par les parties prenantes à la communication, d'une même clé. Les calculs en cryptographie symétrique sont bien plus simples qu'en cryptographie asymétrique, mais le point faible est qu'il faut bien échanger des clés, ce qui impose un transport sur le réseau, au cours duquel la clé risque d'être compromise.

La solution consiste donc à utiliser le chiffrement asymétrique pour l'échange de la clé partagée destinée au chiffrement symétrique. Cet échange a lieu une seule fois, au début d'une session de communication, et tous les échanges ultérieurs ont lieu avec la clé partagée obtenue par ce procédé. Ainsi sont palliés et la lenteur des calculs nécessaires aux algorithmes asymétriques tels que RSA Rivest-Shamir-Adleman, et le risque de faire circuler une clé partagée sur le réseau.

L'algorithme symétrique peut être IDEA, à clés de 128 bits, créé par James L. Massey et Xuejia Lai, ou Rijndael inclus dans AES (Advanced Encryption Standard). Notons que les systèmes de communication chiffrés tels que SSL (Secure Socket Layer) utilisés pour les transactions par le Web, la relève de courrier électronique et la connexion conversationnelle à distance par SSH (Secure Shell) fonctionnent de cette façon.

Une PKI a pour fonction de distribuer, selon le procédé qui vient d'être exposé, des clés certifiées. Une clé certifiée est une clé signée par une autorité de certification digne de confiance. Les clés publiques sont publiées incluses dans des certificats.

Kerberos est une PKI un peu particulière, avec un centre de distribution de clés (KDC) qui fonctionne en général uniquement en chiffrement symétrique, bien que le RFC 4556 propose le recours au chiffrement à clé publique pour l'authentification de la transaction initiale d'enrôlement d'un client du système. En effet, sans le recours à ce procédé, l'introduction d'un nouvel utilisateur ne peut se faire qu'au moyen de la communication en clair d'un mot de passe robuste, ce qui est très gênant. Kerberos est à ce jour la seule solution d'authentification disponible qui soit compatible avec tous les systèmes informatiques existants et tous les types d'usage (pas seulement pour les applications Web), il s'agit donc d'un cas particulier assez inévitable.

La question de la sécurité à long terme

La sécurité de certains documents doit être assurée à long terme : la question se pose donc de savoir si les procédés techniques qui les protègent aujourd'hui seront toujours aussi protecteurs dans trente ans, par exemple, et si ce n'est pas le cas, par quel moyen pourra-t-on améliorer leur protection quand ce sera nécessaire, et quand des procédés plus puissants seront disponibles.

La sécurité des documents est assurée par des procédés cryptographiques selon deux exigences : la garantie de l'authenticité, et celle de la confidentialité.

L'exigence d'authentification a fait l'objet de plusieurs travaux et du RFC 3126, Electronic Signature Format for Long-term Electronic Signatures. Chi-Sung Laih [1] et ses co-auteurs se sont attachés à la question de la confidentialité, plus difficile et moins étudiée.

Les menaces sur la cryptographie

Pour étudier les menaces qui pèsent sur les moyens de la confidentialité des données, les auteurs prennent l'exemple de l'algorithme RSA a clé publique (cryptographie asymétrique), utilisé par la majorité des PKI, et identifient deux menaces qui planent sur la pérennité de la protection qu'il assure : la cryptanalyse quantique, et les progrès de la factorisation.

Il est clair que l'avènement de la cryptanalyse quantique, quand il se produira (et s'il se produira), sera pour la cryptographie un cataclysme équivalent a celui qui a provoqué la disparition des dinosaures. Il faudra tout reprendre sur de nouvelles bases, la cryptographie quantique en l'occurrence. Mais en attendant, les progrès de la factorisation (décomposition en facteurs premiers) des grands nombres, s'ils sont moins médiatiques, sont plus réels et très réguliers. En 1999 l'équipe de Cavallar a factorisé un module RSA [2] de 512 bits (155 chiffres décimaux), en 2009 l'équipe de Kleinjung en a factorisé un de 768 bits (232 chiffres décimaux). Bien que la factorisation d'un module de 1 024 bits soit des milliers de fois plus difficile que celle d'un module de 768 bits, on s'attend à ce que ce soit réalisé vers 2020. On ne connaît pas d'algorithme de factorisation en temps polynomial, ils sont tous exponentiels. Le meilleur algorithme disponible, selon la thèse de Jean-Sébastien Coron citée ci-dessus, est l'algorithme du crible algébrique, dont le temps de calcul pour factoriser un module RSA de n bits est donné par :

La robustesse de l'algorithme RSA repose sur l'hypothèse que la factorisation du produit de deux grands nombres premiers est un calcul hors de portée des moyens actuels. Mettre RSA à l'abri des progrès de la factorisation demanderait d'utiliser des clés plus longues. Aujourd'hui la plupart des utilisateurs de RSA emploient des clés de 1 024 bits. Il faudrait passer à 2 048 bits, mais cela pose des problèmes logistiques considérables : si une PKI a émis des milliers de clés, dont certaines installées dans des dispositifs matériels tels que des cartes à puces ou des clés USB, effectuer la mise à jour de ces dispositifs peut s'avérer une tâche inaccessible.

Déterminer la période de risque pour la confidentialité

Les auteurs commencent par définir ce qu'ils appellent la Privacy-Free Window ou PFW (fenêtre de perte de confidentialité). Prenons le cas d'un fichier chiffré à la date courante tc et qui doit rester secret jusqu'à sa date d'expiration te. Supposons qu'à une date tp les clés publiques générées en tc soient factorisées, il en résulte que le fichier considéré peut être compromis. Même si les clés publiques ne sont pas factorisées, un autre risque peut survenir, la compromission des clés de session par une avancée de la cryptnanalyse. Si un de ces événements survient avant la date te, la confidentialité du fichier ne peut plus être garantie.

La fenêtre de perte de confidentialité (PFW) est le laps de temps qui s'écoule entre la date où l'avancée technologique anéantit la robustesse de la clé qui protège la donnée considérée, en rendant possible la factorisation de la clé publique, et la date d'expiration à compter de laquelle la donnée n'a plus à être protégée soit entre tc et te.

Si les clés n'avaient été utilisées que pour garantir l'authenticité du document par une signature, la période de garantie peut être prolongée au-delà de la date tc par les procédés décrits par le RFC 3126. Mais il n'existe pas de telle solution pour prolonger la période de confidentialité.

La propriété de confidentialité asymétrique des PKI

Il n'existe donc aucun procédé pour prolonger la période de confidentialité d'un document dont la clé de chiffrement est compromise par les progrès de la cryptanalyse. Mais Chi-Sung Laih et ses co-auteurs ont imaginé un moyen de contournement , qui évite de redéployer les clés et les certificats de tous les utilisateurs d'une PKI, opération forcément lourde et souvent même impossible.

Ils observent que si les utilisateurs des PKI utilisent souvent des clés de 1 024 bits, les autorités de certification des mêmes PKI ont plus souvent recours à des clés de 2 048 bits, voire de 4 096 bits. Le fait que l'autorité de certification (CA) utilise des clés plus robustes que les utilisateurs ordinaires introduit une asymétrie dans la protection, dont ils proposent de tirer parti.

Les auteurs envisagent un cryptosystème analogue à Kerberos, avec un protocole adapté selon leurs recommandations. Kerberos postule des clés de session pré-calculées pour les échanges entre les utilisateurs et l'autorité de certification. À l'inverse, le protocole conforme aux recommandations de nos auteurs ne suppose pas l'existence préalable de clés partagées, mais repose sur la cryptographie à clés publiques pour obtenir une sécurité équivalente au moment de l'échange.

Dans le cas d'un protocole de type Kerberos, quand l'utilisateur A veut échanger des données confidentielles avec l'utilisateur B :

  1. il informe le serveur S de ce projet ;
  2. S répond par un message, chiffré avec la clé publique de A, qui contient un ticket chiffré avec la clé publique de B et une clé de session ;
  3. A peut alors envoyer à B le ticket et partager ainsi la clé de session ;
  4. B répond à A par un message chiffré avec la clé de session, ce qui conclut la cérémonie d'échange de clés.

Selon ce scénario, la confidentialité du document échangé repose sur les échanges n° 2 et n° 3, chiffrés avec les clés publiques de A et de B, longues de 1 024 bits, et de ce fait destinées à être compromises vers 2019.

À l'inverse, dans le cas d'un protocole conforme au scénario proposé par nos auteurs, la sécurité du document sera assurée par des échanges chiffrés avec la clé publique de S, plus longue (2 048 ou 4 096 bits) ; il suffit de faire passer les échanges de clés de session entre A et B par le serveur S, ainsi il seront chiffrés avec la clé privée de ce dernier, plus robuste :

  1. A établit une session avec S, dont les échanges auront le niveau de protection conféré par la clé de S (2 048 ou 4 096 bits) ;
  2. B établit également une session avec S, avec le même niveau de protection ;
  3. les tickets reçus par A et B ont donc été émis avec un niveau de protection élevé, ce qui donne le même niveau de protection à leurs échanges mutuels.

De surcroît, comme les clés de session entre A et S, entre B et S et entre A et B ont été générées à partir de la clé publique de S, elles peuvent, en tant que de besoin, être régénérées à volonté après une élévation du niveau de sécurité de S ; en effet, s'il peut être très difficile de redéployer toute une infrastructure de sécurité sur l'ensemble des postes des utilisateurs, mettre à niveau les serveurs centraux est plus facile, ils sont par définition moins nombreux, et administrés par les autorités qui contrôlent la PKI.

Conclusion

Chi-Sung Laih, Shang-Ming Jen et Chia-Yu Lu ont ainsi mis au point un procédé relativement simple à mettre en œuvre, apte à prolonger la période de confidentialité conférée par une PKI. Leur article procure en outre un algorithme pour déterminer la période de risque, dite Privacy-Free Window (PFW), ce qui permet à l'administrateur de la PKI de planifier les actions nécessaires au maintien des conditions de sécurité des données protégées.

Voir en ligne : Communications of the Association for Computing Machinery

[1] Professeur au Département Electrical Engineering de la National Cheng Kung University, à Tainan (Taiwan), il est mort en 2010.

[2] Un module RSA est le produit N de deux grands nombres premiers p et q de taille voisine. N est un élément de la clé publique, p et q sont des éléments de la clé privée. Décomposer N en ses deux facteurs premiers livre la clé privée. Cf. par exemple la thèse de Jean-Sébastien Coron