Pour casser les clefs de chiffrement, la NSA a dû «tricher»
Les communications sur Internet n’auraient plus aucun secret pour la NSA : l’agence nationale de renseignement américaine peut déchiffrer l’ensemble des communications normalement sécurisées, ont révélé, mercredi 5 septembre, The Guardian et le New York Times.
Au cœur de la sécurité des communications sur Internet se trouve le protocole SSL (et son successeur TLS), utilisé par la vaste majorité des sites internet, notamment les services de messagerie ou les magasins en ligne. Pour mieux comprendre ces techniques et comment la NSA arrive à briser la protection pendant l’envoi, nous avons interrogé Thomas Chopitea, expert en sécurité informatique au CERT Société générale.
Qu’est-ce que le protocole SSL ?
Thomas Chopitea : SSL est le prédécesseur de TLS, qui lui a succédé en 2001, un protocole cryptographique très largement utilisé à travers le Web pour sécuriser tout type d’échanges. TLS garantit que le site sur lequel vous êtes connecté est vraiment le site qu’il prétend être, et que les données que vous transmettez à celui-ci sont illisibles par un tiers durant leur transit.
Comment cette technologie garantit-elle la sécurité des communications ?
TLS protège les informations en les chiffrant, les rendant ainsi illisibles par un adversaire qui aurait placé une écoute entre votre ordinateur et le site Web distant. Techniquement, le chiffrement se fait en utilisant une combinaison d’algorithmes de cryptographie asymétrique (très gourmande en ressources informatiques, donc lente) et symétrique (plus rapide). La première est utilisée pour s’authentifier et pour échanger une clé de chiffrement symétrique, qui sera ensuite utilisée pendant le reste de la session.
Lorsqu’un navigateur demande à se connecter de manière sécurisée à un site, celui-ci lui présente un certificat contenant sa clé publique. Afin que le navigateur puisse être sûr que le certificat est authentique, un certificat doit être “signé” par une autorité de certification. Ces signatures sont à leur tour vérifiées avec des certificats desdites autorités, qui sont inclus de base dans le navigateur web [comme Internet Explorer, Firefox ou Chrome].
Comment savoir qu’un site est réellement sécurisé ? Quelles sont les autorités de certification ?
Un site à proprement parler ne peut pas être “sécurisé” par TLS, mais uniquement les communications vers ce site. Pour savoir si un site chiffre ses communications, il suffit de jeter un œil à la barre d’adresse et de lire l’adresse web, l’URL : si elle commence par https://, avec le s, c’est que les communications sont chiffrées. Sinon, si rien n’est affiché ou si http:// est affiché sans le s, elles ne le sont pas. Certains certificats ont des fonctions “étendues”, et permettent d’afficher un nom à côté de l’URL.
Quelle est l’implication des agences de renseignement dans la création de ces standards de sécurité ?
La NSA est connue pour avoir été impliquée dans la qualification ou la création de certains standards de sécurité conjointement avec le NIST [Institut national des standards et technologies], un des plus grands éditeurs de standards américain. L’exemple le plus connu est le FIPS, le standard de sécurité utilisé par les agences gouvernementales américaines. C’est aussi le travail de la NSA de sécuriser leurs propres systèmes, ils ont donc intérêt – tout à fait légitimement – à contribuer à leurs standards.
Comment la sécurité des communications a-t-elle été mise à mal par la NSA ? Quelles sont les techniques de déchiffrement ?
Les révélations d’Edward Snowden sur les capacités de déchiffrement de la NSA sont significatives, car elles confirment que la NSA a mis en place un système lui permettant de maintenir le contrôle sur l’établissement des standards cryptographiques que nous connaissons aujourd’hui. Un tel contrôle permettrait d’y installer des moyens de contournement connus uniquement de la NSA, surtout pour les implémentations des standards propriétaires (ils ne sont pas “ouverts”, leur code source n’est pas rendu public).
Transposé à un cas d’architecture classique, le protocole cryptographique est le plan du bâtiment, et son implémentation est la maison finale. Les matériaux, l’orientation de la maison ou le type de sol sur lequel elle est construite sont laissés au libre arbitre de l’architecte. N’importe qui peut se réveiller un beau matin et dire “je vais implémenter TLS”. Il choisira son langage de programmation, sa plateforme de développement. Et même en programmant son implémentation, il utilisera ou non des bonnes pratiques du langage, etc.
Heureusement, certaines implémentations sont plus populaires que d’autres. OpenSSL est un exemple d’implémentation libre des protocoles SSL/TLS. Microsoft possède sa propre implémentation de SSL et TLS, dont le code source n’est pas accessible publiquement. Une règle de base en cryptographie est de ne jamais implémenter un protocole soi-même. C’est là que sont commises les erreurs ! De très nombreux informaticiens ont planché des heures sur OpenSSL, et des failles sont encore régulièrement découvertes.
On peut dire que la NSA “triche” : elle ne s’attaque pas (officiellement) aux mathématiques fondamentales des algorithmes, mais plutôt à leurs standards d’implémentation, en y insérant des “erreurs” intentionnelles qu’elle seule est capable d’exploiter. Par ailleurs, il existe beaucoup d’autres erreurs non intentionnelles, fréquemment découvertes par des chercheurs en sécurité informatique, qui se font une joie de rendre publiques leurs découvertes. Les erreurs d’implémentation sont la voie principale par laquelle les protocoles et algorithmes sont “cassés”.
La NSA utiliserait la “force brute” (en testant toutes les combinaisons possibles) pour des déchiffrements. Pourquoi utiliser cette technique, habituellement jugée la plus simple ?
La “force brute” est la technique la plus simple, mais très loin d’être la plus pratique – la plupart du temps, réaliser une attaque par force brute prendrait plusieurs milliards d’années. La force brute consiste à tester toutes les combinaisons de clés possibles sur un texte chiffré donné, afin de retrouver son texte original (dit texte “en clair”). Or, le nombre de combinaisons possibles moyen aujourd’hui est de l’ordre de 2256, un nombre astronomique, qu’il est pratiquement impossible de parcourir avec la technologie actuelle.
Tous les algorithmes cryptographiques sont vulnérables à la force brute. On dit d’ailleurs qu’un algorithme est “cassé” dès lors qu’une attaque plus “intelligente” est trouvée, réduisant significativement le nombre d’essais.
Certains géants du Net disent avoir implémenté la “forward secrecy” pour mieux protéger leurs utilisateurs. Cette technique est censée empêcher de capter la clé utilisée pour chiffrer la session, en n’envoyant que des indications pour la générer, et non pas la clé elle-même. Cette technique a-t-elle un quelconque intérêt face à la surveillance d’État ?
Oui. Une façon pour les États de contourner TLS est de demander (sous ordre d’un juge, par exemple) aux sites concernés (Google, Facebook, Microsoft, etc.) la clé privée de leur certificat (cette clé est utilisée pour déchiffrer tout ce qui a été chiffré avec leur clé publique). Avec cette clé privée, et un enregistrement des données chiffrées en TLS, il est possible de retrouver l’échange de clé initial et de déchiffrer le reste de la conversation.
Avec la forward secrecy, l’échange de clé se produit de manière à ce que la clé ne transite jamais, mais puisse être calculée par les deux parties prenantes à l’échange : un tiers qui intercepte les communications ne pourra pas la connaître. De cette manière, même si la NSA arrivait à récupérer la clé privée et à déchiffrer l’échange de clés, elle ne pourrait pas déchiffrer le reste de la conversation. A moins, comme nous l’avons vu, qu’elle puisse exploiter des erreurs d’implémentation dans ce protocole.
Source : Le Monde – Guénaël Pépin
Sorry, the comment form is closed at this time.