Communications chiffrées : et si le ver n'était pas (que) dans la pomme ?

Auteurs

C'est devenu une banalité, mais l'information constitue le nouveau nerf de la guerre : qui accède au plus vite à une information la plus fiable possible dispose d'un avantage certain. Afin de se protéger dans le cadre de communications, de tout temps, la principale protection a consisté à empêcher un adversaire de lire le contenu des messages. Il s'agit justement d'un des objectifs de la cryptographie (écriture secrète littéralement), à savoir assurer la confidentialité des données.

La propriété de confidentialité est fournie par des tiers. En effet, les algorithmes mis en oeuvre sont complexes, au-delà de la portée de tout un chacun. En outre, la vitesse des communications comparée à celle des calculs nécessaires fait que tout un chacun s'appuie sur des solutions fournies par autrui : de BlackBerry à Skype en passant par des modules de chiffrement pour téléphones portables, garantir la confidentialité est devenu un véritable avantage concurrentiel.

Très régulièrement, des polémiques -- justifiées ou non, ce n'est pas à nous de juger -- viennent remettre en cause la sécurité apportée par ces produits. Qu'en est-il vraiment ? Telle est la problématique que nous présentons dans cet article.

Levons le voile tout de suite : il est techniquement simple d'introduire des faiblesses (invisibles) dans toutes les protections cryptographiques et, ce, que ce soit au niveau des algorithmes mathématiques (les fameuses trappes) ou au niveau de leur implémentation. De là à dire que des personnes, des entreprises ou des gouvernements le font volontairement ou systématiquement ... les enjeux pour les uns et les autres ne sont pas du tout les mêmes. Le problème dans cette histoire, et on le voit régulièrement avec le BlackBerry par exemple, c'est que personne ne peut prouver qu'il y a une telle faiblesse ou qu'il n'y en a pas. Inversement, en tant qu'utilisateur, nous ne pouvons que croire les représentants de l'éditeur qui nous assurent qu'il n'y a pas de telles faiblesses. Bref, on ne peut prouver ni l'absence ni la présence d'une faiblesse, d'où les spéculations récurrentes.

Un peu d'Histoire

En 1997, le gouvernement suédois audite Lotus Notes, la suite d'IBM pour gérer messagerie et conférences. Grand bien lui en prend car il découvre une faiblesse importante dans le chiffrement des messages.

À l'époque, les États-Unis interdisaient l'exportation de produits de cryptographie proposant des clés trop grandes. Ce fut la position prise par IBM pour se défendre, comme en atteste Eileen Rudden, vice-président de Lotus : The difference between the American Notes version and the export version lies in degrees of encryption. We deliver 64 bit keys to all customers, but 24 bits of those in the version that we deliver outside of the United States are deposited with the American government. That's how it works today.

Ces 24 bits constituent une différence critique. Pour qui ne les possède pas, casser une clé de 64 bits est pratiquement impossible. En revanche, casser une clé de 64 bits quand il n'en reste que 40 à deviner prend quelques secondes sur un ordinateur rapide.

Signalons de plus qu'à la même époque, ce logiciel équipait aussi le ministère de la défense allemand, le ministère de l'éducation français ... et bien d'autres.

Un peu avant, en 1995, l'affaire Hans Bühler mit en lumière une situation tout aussi révélatrice des tentatives de contrôle occulte sur la cryptologie [6]. Cet employé de la société suisse Crypto-AG, exportatrice en situation de quasi-monopole de matériel cryptologique à usage gouvernemental -- plus d'une centaine d'états clients pour leurs besoins militaires, diplomatiques, politiques, économiques -- fut retenu prisonnier en Iran en 1995 lors d'un de ses nombreux voyages commerciaux dans ce pays. L'Iran, suite à certaines indiscrétions d'hommes politiques dans la presse, concernant l'attentat terroriste dans une discothèque à Berlin (deux soldats US tués) et surtout l'assassinat en France de l'ex-premier ministre iranien Chapour Baktyar, a nourri un doute quant à la solidité réelle des matériels cryptologiques que lui vendait la société Crypto-AG. En effet, certaines déclarations suggéraient fortement l'accès à des informations provenant de trafics chiffrés et donc probablement décryptés. La détention et les interrogatoires d'Hans Bühler dans les prisons iraniennes permit à l'Iran de découvrir que la société Crypto-AG était tombée sous le contrôle de la NSA, ainsi que d'autres sociétés prestatrices des mêmes services -- dont certaines sociétés suédoises --, et que tous les matériels cryptologiques vendus à l'export -- quel que soit le pays -- contenaient des trappes permettant aux État-Unis un cassage plus facile.

Pour terminer sur ces exemples, mentionnons l'intervention de B. Ourghanlian (Chief Technology Officer et Chief Security Officer de Microsoft France depuis 2001) lors du SSTIC en 2006 [1]. Suite à une question du public de la conférence, M. Ourghanlian a reconnu que le gouvernement français s'était ému de la possibilité d'utiliser Bitlocker à des fins criminelles et lui avait demandé s'il était possible pour les services de l'état de disposer d'un moyen de déchiffrer un tel contenu. Il a été répondu qu'il n'existait pas de moyens logiciels (publics ou non) - hors bug d'implémentation - permettant de récupérer la clé de chiffrement ou de la recouvrer, en dehors du contexte d'une entreprise au sein de laquelle un annuaire Active Directory permet de séquestrer les clés des postes utilisateurs et donc d'accéder à leurs données chiffrées.

Disponible par exemple dans la dernière version du système de Microsoft, Vista, cette technologie permet de chiffrer les disques durs de manière sûre (en faisant abstraction des erreurs de programmation). Du coup, les gouvernements de plusieurs pays se sont inquiétés : quid si des terroristes ou autres "méchants" utilisent cela pour protéger leurs données ? Suite à une question du public de la conférence, M. Ourghanlian a reconnu que le gouvernement français avait demandé à ce qu'une clé de recouvrement soit installée dans Vista, ce que Microsoft a accepté de faire.

Il est essentiel de bien comprendre et d'accepter le fait que l'on ne peut à la fois protéger le citoyen contre les acteurs les plus dangereux de notre société (en d'autres termes, l'exercice des fonctions régaliennes de TOUT état) et autoriser la mise en circulation d'outils et de procédés de nature à nuire à l'intégrité et aux valeurs de nos démocraties. Toute sécurité a un prix qu'il nous faut tous payer. Il s'agit là d'un équilibre précaire, et de choix politiques de sociétés.

De ces quelques exemples, faut-il conclure que cette pratique est systématique ? Et si d'autres le font, qu'en est-il des entreprises françaises ? Nous ne nous prononçons bien évidemment pas sur ces questions et nous contentons de présenter ce qui est faisable d'un point de vue technique.

Petits rappels de cryptographie pour non-cryptographes

La cryptographie est la science du secret. Elle cherche à définir des algorithmes (primitives, protocoles, schémas) qui garantissent une propriété de sécurité donnée, et ce même dans un environnement hostile.

La cryptographie se construit avant tout sur le papier, avec des concepts mathématiques de plus en plus complexes (géométrie projective pour les courbes elliptiques, propriétés combinatoires de fonctions booléennes pour les algorithmes de chiffrement par blocs, par exemple). Toutefois, nous présentons dans cette partie quelques notions élémentaires sans utiliser de formules barbares pour que le lecteur néophyte comprenne bien les exigences liées à cette discipline. Il n'est en effet nul besoin d'être un "génie des maths" pour saisir les modes de fonctionnement et propriétés de la cryptographie.

Principe fondamental

La cryptographie est une science ancienne. Cependant, les moyens ont bien changé entre César et le téléphone rouge. La première révolution dans ce domaine a eu lieu à la fin du 19ème siècle lorsque Auguste Kerckhoffs énonça ses principes, le plus célèbre affirmant qu'un crypto-système devait être sûr même si tout de ce système est publiquement connu, excepté la clé employée. Un demi-siècle plus tard, Claude Shannon, un des pères de la cryptographie et de la théorie de l'information, résuma cela en posant "l'ennemi connaît le système" et caractérisa la notion de secret parfait.

La solidité d'un algorithme cryptographique residait auparavant dans le fait que l'adversaire ne le connaissait pas (exemple du code de César ou du Vigenère). À notre époque, ce principe est toujours appliqué, en particulier dans le monde civil. Par contraste, les algorithmes destinés à protéger des documents sensibles, classifiés ou militaires, ou encore un savoir-faire industriel et gouvernemental peu répandu sont souvent secrets. Cela ne contredit pas le principe de Kerckhoffs mais cacher l'algorithme complique la tâche de l'attaquant qui doit passer par une phase de reconstruction de l'algorithme [7] ou de désassemblage logiciel voire matériel (cas récent de l'algorithme crypto1 de Philips). Aujourd'hui, concevoir un bon algorithme chiffrement repose en grande partie sur l'art de l'ingénieur.

Il faut bien comprendre que cela n'empêche en rien l'attaque des communications . Par exemple, en février 2001, Eli Biham [2] a présenté une méthode de cassage du trafic chiffré du GSM, indépendante de l'algorithme utilisé, en exploitant une faille dans le protocole de gestion des clefs. La réponse faite par le groupement des constructeurs d'équipements GSM fut qu'une telle attaque serait trop chère à réaliser (sachant qu'il s'agit d'acheter ou de détourner un relais, ça reste à la portée de quelques uns quand même).

Plus frappant encore, le cas du DVD est symptomatique. Par défaut, tous les DVD sont chiffrés. Pour les lire, il faut donc posséder la bonne clé. Celle-ci est présente dans les logiciels ou matériels de lecture. Un petit groupe a analysé certains logiciels, parvenant ainsi à extraire la clé en 1999. Cette clé a permis ensuite la lecture de tous les DVD. Plus récemment encore, les DVD HD ont connu un problème identique (bien que la clé fut obtenue différemment). Dans les deux cas, ni l'algorithme, ni la clé n'étaient préalablement connus.

Primitives cryptographiques

Une primitive est une opération élémentaire. L'objectif n'étant pas un cours exhaustif de cryptographie, nous ne présenterons que les trois principales : le chiffrement, le hachage (hash) et la signature.

Un système de chiffrement permet à deux entités d'échanger des informations sans qu'une personne sur le canal puisse comprendre la teneur de ces informations. Nous l'avons évoqué précédemment, la robustesse de ce schéma vient d'un secret, souvent appelé clé. Il apparaît immédiatement un problème. Si l'émetteur chiffre le message, le destinataire doit également disposer de la clé pour le déchiffrer. C'est pourquoi on parle de chiffrement symétrique : le déchiffrement est l'inverse exact du chiffrement, et la clé doit donc être partagée.

Quand plusieurs entités souhaitent discuter en chiffrant leurs messages, il faut alors mettre en commun beaucoup de clés (pour n participants, il faut n(n-1)/2 clés). L'échange est lourd et compliqué, surtout que c'est là que réside la faiblesse : si un attaquant intercepte l'échange de clés, il peut alors déchiffrer toutes les communications a posteriori, à moins de changer de clef à chaque message, ce qui est la règle pour les communications gouvernementales.

La deuxième révolution en cryptographie a permis de résoudre en partie cela. Elle est due à Whitfield Diffie et Martin Hellman en 1976. Ils ont proposé des méthodes pour créer une asymétrie entre l'opération de chiffrement et celle de déchiffrement. En conséquence, chacun dispose de deux clés, l'une publique, à la disposition de tout le monde, l'autre privée conservée uniquement par le destinataire des messages. La connaissance de la clé publique n'apporte aucune information sur la clé privée et ne permet donc pas de déchiffrer les messages. À noter que le GCHQ (le "chiffre" anglais) a également découvert ce type de cryptographie quelques années auparavant, mais a décidé de le conserver secret. Il faut cependant conserver à l'esprit que la solidité de ces systèmes repose sur une conjecture qui n'a jamais été démontrée à ce jour : la difficulté calculatoire à retrouver la clef secrète à partir de la clef publique.

Actuellement, on utilise intensément les deux types de cryptographie. En effet, la première souffre de sa gestion des clés, et la seconde est particulièrement lente (et donc inadaptées aux communications en temps réel). Néanmoins, la combinaison des deux -- la cryptographie dite "hybride" dont le plus célèbre est le logiciel PGP ou GPG -- permet de régler le problème, du moins pour des trafics peu sensibles. On utilise la cryptographie asymétrique pour négocier une clé symétrique, qui est ensuite employée pour le reste de la transmission.

La seconde primitive que nous aborderons est le hachage. Il s'agit de fonctions capables de caractériser des données fournies en entrée (quelque soit la nature et la taille des données) en produisant une empreinte (le hash) propre à la donnée en entrée.

Les fonctions de hachage servent surtout à assurer l'intégrité de données. En effet, si le moindre bit en entrée change, alors la moitié de la sortie change aussi. Il est alors assez facile de détecter des modifications de données faites à l'insu du propriétaire.

Ces fonctions sont construites afin de vérifier quelques propriétés. Par exemple, elles doivent être à sens unique, c'est-à-dire qu'elles sont faciles à calculer dans un sens, mais difficiles (sinon impossibles) dans le sens contraire. Concrètement, si on donne une empreinte, il ne doit pas être facile de retrouver une donnée qui, entrée dans la fonction, produit cette empreinte.

Mais la difficulté principale de ces fonctions vient de la notion de collision. Telles que nous les avons définies ici, il existe un nombre infini de données en entrée. Or, les empreintes sont de taille fixe et finie. L'espace d'arrivée d'une fonction de hachage est donc bien plus petit que son espace de départ. Conséquence : plusieurs éléments de l'espace de départ auront la même empreinte. Quand on construit une fonction de hachage, il faut donc minimiser ces collisions. Plus compliqué encore, étant donnée une empreinte, on ne doit pas pouvoir reconstruire deux entrées ayant cette même empreinte. Il existe d'autres propriétés à garantir qui sortent du cadre de cet article, l'idée étant que construire une bonne fonction de hachage est compliqué. Il faut cependant conserver à l'esprit que la notion de complexité calculatoire sur laquelle repose la sécurité est également un problème ouvert.

Actuellement, les trois grandes familles de fonctions de hachage sont MD (Message Digest), RIPEMD et SHA (Secure Hash Algorithm). Des découvertes récentes ont permis de les attaquer au point de considérer que la famille MD est opérationnellement cassée. Pour RIPE, les fonctions sont construites sur MD et des collisions ont été trouvées. Enfin l'algorithme SHA-0 de la famille SHA est aussi cassé et SHA-1 et mal en point.

La dernière fonctionnalité cryptographique très utilisée est la signature numérique. Il s'agit de transposer au domaine numérique, tout ce que nous apporte la signature traditionnelle. Il existe de nombreux schémas de signature, et la majorité repose sur le même principe, c'est-à-dire la combinaison de chiffrement asymétrique et d'une fonction de hachage.

Étant donné un document, on souhaite garantir avec une signature numérique que 

Pour générer la signature d'un document, on commence par calculer son empreinte avec une fonction de hachage. Le signataire utilise alors sa clé privée pour chiffrer cette empreinte, l'empreinte chiffrée constituant la signature.

Pour vérifier la signature, il suffit de récupérer le document et la clé publique du signataire. Le vérifieur calcule l'empreinte du document. Il déchiffre ensuite la signature à l'aide de la clef publique du signataire et la compare à l'empreinte qu'il vient de calculer : si c'est identique, la signature est valide.

Il existe enfin, à côté des fonctionnalités cryptographiques, de nombreux protocoles qui les combinent, chacun apportant des propriétés de sécurité différentes (authentification, échange de clé, partage de secret, zero knowledge, échange équitable, anonymat, etc.). Tous reposent sur des constructions mathématiques pour lesquelles il est relativement aisé de donner des ordres de grandeur des meilleures attaques possibles.

Toutefois, si, sur le papier, ces algorithmes semblent difficilement vulnérables, la réalité est tout autre. Bien souvent, la transcription dans un ordinateur ou sur une puce affaiblit grandement la sécurité "papier". Malheureusement, on ne sait pas prouver la sécurité de l'implémentation d'un algorithme. Cet écart entre monde papier et monde silicium est un problème majeur en sécurité car de nombreuses entités (étatiques ou industrielles) ne tiennent pas compte de la réalité de l'implémentation et se satisfont de la complexité théorique pour évaluer la sécurité. Ainsi, la sécurité des systèmes d'information est globalement surestimée.

La cryptographie, une arme à triple tranchant

Après avoir présenté la cryptographie d'un point de vue technique, examinons maintenant l'aspect opérationnel qui en est fait.

Première lame : protection des données

La première (et évidente) utilisation correspond aux raisons mêmes de la création de cette discipline, à savoir la protection des données, des identités, etc.

Elle est utilisée de cette manière absolument partout, parfois même sans que l'on s'en rende compte (comme par exemple dans nos téléphones portables).

Bien souvent, elle est alors mise en avant pour vanter la sécurité du produit. Si c'est globalement vrai, il ne faut pourtant pas croire systématique tout ce que disent les vendeurs. Par exemple, l'entreprise allemande Drecom propose des disques durs chiffrés (Easy Nova Data Box) à l'aide du standard symétrique AES. Après quelques vérifications des chercheurs se sont rendus compte qu'il n'en était rien. À la place de ce standard cryptographique réputé, une simple opération arithmétique n'offrant aucune sécurité était employée [3] ...

Il va de soi que les "méchants" peuvent aussi l'utiliser afin de bénéficier des mêmes propriétés de sécurité pour eux. Par exemple, Mujahideen Secrets est un logiciel développé par le Global Islamic Media Front (GIMF) destiné à protéger les fichiers des terroristes islamistes.

Mujahideen Secrets
Mujahideen Secrets

Deuxième lame : le passage secret vers les systèmes d'information

Dans le monde de la sécurité informatique, deux termes font depuis quelques temps leur apparition et suscite une peur certaine de la part des responsables sécurité : nomadisme et dépérimètrisation. Ces deux barbarismes signifient que l'usager d'un système d'information est de plus en plus à l'extérieur du système. Il se connecte au travers de multiples moyens : VPN (Virtual Private Network), webmail, PDA/téléphone, etc. Quel que soit le point d'entrée vers l'intérieur du réseau, cela passent par un tunnel chiffré et authentifié.

Inversement, les employés à l'intérieur du périmètre veulent pouvoir accéder à leurs données, continuer à discuter avec ses amis, etc. Cela passe par l'utilisation, par exemple, de logiciels comme Skype qui s'installent sur les ordinateurs sans privilège, et passe au travers des par-feu pour se connecter à Internet. Là encore, cela passe par un tunnel chiffré et authentifié.

Dans les deux cas, un attaquant visant l'intérieur du réseau trouve donc un tunnel chiffré. Quel intérêt pour lui ? Quand les données sont chiffrées, seul le destinataire légitime peut les déchiffrer. Ainsi, ces canaux sont parfaits pour les attaquants car ils sont légitimes, et ils peuvent y faire passer tout ce qu'ils veulent sans risquer de se faire repérer. Et la sécurité procurée par l'utilisation du chiffrement peut se révéler finalement illusoire [8].

Troisième lame : cryptographie offensive pour renforcer les attaques

Très souvent, la cryptographie est vue comme une discipline défensive. Il existe cependant une utilisation moins connue de la cryptographie, destinées à renforcer les attaques. Par exemple, il est possible de concevoir des codes malicieux (virus) que seul le concepteur peut analyser [4]. Ainsi, même si un tel code est capturé, il est impossible de déterminer la cible réelle.

Autre possibilité, on a vu les années passées des épidémies de virus informatiques (Melissa, Code Red, Slammer pour n'en citer que quelques uns). Ces phénomènes ne se répètent plus à la même échelle, pour des raisons que nous ne détaillerons pas. Un des "reproches" récurrents fait à ces virus est d'être de mauvaise qualité, en particulier au niveau du code. Bien souvent, une fois un système corrompu, les cibles suivantes étaient sélectionnées aléatoirement. C'est assez simple puisqu'un ordinateur sur un réseau est représenté par un nombre (son adresse IP). On est pourtant en mesure de viser avec une bonne précision les cibles suivantes, simplement en biaisant le générateur aléatoire. On sait en effet construire des générateurs qui, par exemple, ne viseront que des nombres pairs ou impairs, ou que des adresses appartenant à tel État ou entreprise ... On se retrouve alors avec des petites armes informatiques diaboliquement précises.

Attaquer la cryptographie

Tout comme on cherche des algorithmes pour fournir des propriétés de sécurité, on cherche également des algorithmes pour les attaquer. Cette discipline s'appelle la cryptanalyse. Nous ne détaillerons pas ces attaques ici. Ce sont essentiellement des attaques "papiers" -- du moins pour les attaques publiées -- c'est-à-dire des attaques au niveau algorithmique. Bien souvent, ces attaques sont très générales à l'encontre des algorithmes cryptographiques : pour qu'elles réussissent, il faudrait une puissance de calcul phénoménale ou un temps quasi-infini ou disposer d'une quantité de texte clair et/ou chiffré dépassant tout ce qui sera jamais chiffré par ces algorithmes. Cependant, parfois, quelques avancées algorithmiques permettent de réussir plus rapidement.

Par exemple, le précédent standard de chiffrement symétrique, le DES (Data Encryption Standard) a été validé en 1976 par les États-Unis. Il fut proposé par IBM en 1975, modifié et validé par la NSA et donc fortement suspecté dès lors de contenir des trappes -- cela reste de nos jours encore un problème ouvert. En effet, un des composants de l'algorithme, bien que public, n'était justifié par aucune connaissance publique de l'époque, sans pour autant être le fruit du hasard. Ce n'est que des années plus tard, en 1990, lorsque Eli Biham et Adi Shamir publièrent un article sur la cryptanalyse différentiel qu'on comprit que ces composants avaient été choisis de sorte à être particulièrement robustes. Cela confirma que le choix de ce composant avait une réelle justification, connue à l'époque par les gens d'IBM ... entre autres. En effet, un des concepteurs du DES, Walter Tuchman, reconnut plus tard : They asked us to stamp all our documents confidential... We actually put a number on each one and locked them up in safes, because they were considered U.S. government classified. They said do it. So I did it.

Dans la suite de cet article, nous présentons quelques techniques pour s'en prendre à la cryptographie, selon trois angles différents, aucune ne relevant d'une attaque directe contre l'algorithme cryptographique :

Ajouter des trappes

Il s'agit probablement de l'aspect le plus critique de la cryptographie : la capacité à dissimuler des faiblesses de nature mathématique dans le système cryptographique, indétectables même en analysant l'algorithme mathématique. Le caractère critique tient au fait que la complexité des algorithmes cryptographiques est devenue telle qu'il est désormais impossible de garantir l'absence de faiblesses volontaires. Le meilleur exemple est probablement celui des systèmes de chiffrement par bloc, véritables enfers combinatoires dont la taille rend même impossible la représentation exhaustive et l'analyse de l'algorithme. Par exemple, pour analyser toutes les possibilités d'approximations linéaires (dans le cadre de la cryptanalyse linéaire dite de Matsui) pouvant cacher une telle "faiblesse", il faudrait tester pour l'AES, 2384 approximations, ce qui est impossible. D'autres possibilités de trappes, notamment de nature combinatoire, peuvent être imaginées.

Ces trappes peuvent être classées en deux catégories selon l'endroit où elles sont dissimulées~:

Dans les deux cas, l'un des principaux outils pour mettre en oeuvre des trappes est la simulabilité des tests statistiques [10]. Face à la complexité calculatoire impossible à affronter pour les systèmes cryptographiques modernes, la seule solution pour le défenseur consiste en une analyse statistique, en particulier de la qualité de l'aléa des différents composants d'un système (clef, cryptogramme, etc.). Or la notion d'aléa est une donnée relative à une batterie de tests statistiques. Il est d'ailleurs assez amusant de constater que si les algorithmes de chiffrement eux peuvent éventuellement être publics -- principe de Kerckhoffs oblige -- il n'en est pas de même pour les tests statistiques "gouvernementaux", lesquels sont généralement classifiés. Partant de là, celui qui conçoit un système cryptographique trappé peut abuser ces tests et les manipuler afin de faire croire à l'analyste que l'algorithme présente toutes les bonnes propriétés cryptographiques souhaitables.

Attaques par fuites d'information

Supposons maintenant que la cryptographie mise en place soit parfaite, inviolable et sans porte dérobée : que reste-t-il ? On peut déjà observer l'utilisation de la cryptographie. À de nombreuses reprises, cela a permis de venir à bout d'algorithmes pourtant considérés comme sûrs.

Cette classe d'attaques s'appelle "par fuite d'information" ou "par canaux cachés". Par exemple, si on est capable de mesurer le temps d'exécution de certaines opérations, on peut alors reconstruire les données utilisées, c'est-à-dire le secret.

Prenons le cas (extrêmement simplifié) de la vérification d'un mot de passe. Supposons qu'un attaquant cherche à le deviner. Il commence par entrer "AAAAAAAA" et recommence en entrant ensuite "BAAAAAAA", et ainsi de suite jusque "ZAAAAAAA". Pour chaque test, il mesure précisément le temps. Comment fonctionne la vérification du mot de passe ? Si le premier caractère est bon, on vérifie le deuxième. S'il est bon, on vérifie le troisième, et ce jusqu'à tester la dernière lettre. On se rend donc compte qui selon que la première lettre est bonne ou pas, l'algorithme prendra plus ou moins de temps. En testant les 26 possibilités, notre attaquant a commis 25 erreurs, mais une de ces 26 tentatives a pris un petit peu plus de temps que les autres : cela signifie que le premier caractère (au moins) était bon. L'attaquant connaît ainsi la première lettre du mot de passe. Il recommence pour les lettres suivantes jusqu'à obtenir le mot de passe complet.

Dans cet exemple, la fuite d'information est sur le temps, mais il en existe de nombreuses autres (ex.: chaleur, énergie). De telles attaques existent surtout dans le monde de la carte à puce, qui propose des contre-mesures adaptées à chacune.

Attaques sur le canal

Les attaques par fuite d'information visent la cryptographie, afin de reconstruire les données manipulées par les algorithmes. Toutefois, quand la cryptographie est en jeu, elles ne constituent pas la seule cible. En effet, il ne faut pas oublier que la cryptographie apporte des informations sur ceux qui l'utilisent.

Le principe des attaques sur le canal de communication est de profiter des informations annexes à la cryptographie pour récupérer des informations. Comme dans toute communication, qu'elle soit chiffrée ou non, on a une source et un destinataire. Le simple fait de connaître cela peut révéler de nombreuses informations.

En guise d'illustration, commentons les 4 figures ci-après. Il s'agit de l'analyse d'une boîte mail sur une période d'un peu moins de deux ans. Chaque noeud représente une adresse email, et chaque lien (on appelle cela une arête) signifie qu'un mail a été échangé (soit en tant que destinataire direct, soit en copie). Chaque arête a un poids qui correspond au nombre de mails échangés entre deux adresses.

(a) Réseau complet (b) Fusion des atomes représentants la même personne
(c) Suppression des arêtes de poids 1 (d) Nettoyage du réseau

L'analyse de ce type de graphe (on parle de Social Network Analysis) apporte deux types d'information :

En (a), le graphe complet permet déjà de distinguer différentes zones. Les cercles représentent trois personnes qui envoient beaucoup des messages à beaucoup de monde en même temps. Comme ce graphe résulte de l'analyse d'une seule boîte mail (celle du cercle en haut à droite), cela signifie que cette personne se trouve dans deux cercles de relations distinctes. En revanche, et contrairement à ce que l'image laisse croire, il n'y a aucun point de passage entre les deux cercles de gauches, si ce n'est le propriétaire de la boîte mail. Les zones plus denses à la frontière des cercles traduisent les appartenances aux relations des deux cercles. En (b), on a simplement fusionné les adresses mails du propriétaire de la boîte : 5 noeuds sont devenus un, au centre du plus grand cercle. Cela permet de voir un peu plus clair dans les zones denses évoquées précédemment, et on commence à distinguer des sous-groupes plus ou moins distincts (voir les "taches" plus ou moins denses). En (c), on a supprimé toutes les arêtes de poids 1 (i.e. un seul email entre les 2 noeuds). En rouge, les noeuds sans arête, c'est-à-dire des personnes liées par un seul mail. Quand on les supprime en (d) on constate la disparition d'un des 3 cercles. Cela signifie soit que l'appartenance à ce groupe est récente, soit qu'il n'en a jamais vraiment fait partie.

L'analyse de tels graphes est complexe et demande de connaître précisément la nature des données. On doit à la fois combiner une analyse structurelle, sémantique, mais on peut également prendre le facteur temps en considération, pour suivre l'évolution du graphe. Cela permet d'en apprendre beaucoup sur les personnes, et les liens entre elles. On l'aura compris, cette analyse fait complètement abstraction du contenu des échanges. Ainsi, qu'ils soient chiffrés ou non ne la perturbe nullement.

La cryptographie, un enjeu stratégique ?

C'est indéniable, la cryptographie augmente la sécurité ... en théorie. En pratique, mettre en oeuvre de la cryptographie s'avère particulièrement complexe.

Nous disposons en France de très bonnes écoles de cryptographie et de chercheurs de renommée internationale. Malheureusement, nous sommes nous-mêmes victime de notre succès et de nos certitudes. En effet, la cryptographie est très souvent assimilée à la sécurité de l'information, alors qu'elle n'en est qu'un sous domaine, parmi d'autres.

Reprenons le célèbre exemple du BlackBerry en passant outre sur toutes les spéculations possibles, par exemple quant au fait qu'il soit obligé de passer par un serveur aux États-Unis ou en Angleterre pour s'en servir. Faisons l'hypothèse que la cryptographie est parfaite, que RIM, le concepteur du BlackBerry n'a introduit aucune porte dérobée, aucune trappe à la demande d'on ne sait quel gouvernement. Que reste-t-il ? Un outil sûr, certes.

En se plaçant dans la position de RIM, que peuvent-ils faire ? Juste surveiller qui communique avec qui. Et à quelle fréquence. Et à quel volume. Etc. Bref, tous les éléments nécessaires à une très fine analyse de réseau social telle que nous l'avons rapidement présentée. Alors que les autres risques sont spéculatifs, celui-ci ne fait aucun doute et ne demande aucune intervention pour exister (à la différence d'une trappe qui demande une modification logicielle) puisque la simple observation du système donne ces informations.

Deux questions viennent alors immédiatement à l'esprit. Premièrement, quel avantage cela apporterait à RIM, surtout en regard du risque encouru si cela venait à être découvert ? Deuxièmement, pourquoi focaliser ce type de risque sur RIM, alors que tous les opérateurs téléphoniques et autres fournisseurs d'accès Internet peuvent faire exactement la même chose ? D'ailleurs, n'analysent-ils pas déjà nos échanges à des fins de profilage marketing et ciblage publicitaire ? Et que se passerait-il si notre "opérateur historique" venait à délocaliser une partie de ses activités opérationnelles, comme l'administration de son infrastructure ?

Bref, la cryptographie est une avancée nécessaire à la sécurité de l'information, mais uniquement si on arête de croire qu'elle résout tous les problèmes et qu'on la sort du monde papier où elle naît pour l'évaluer dans la réalité, en tenant compte du contexte externe. En outre, il serait temps de regarder un peu plus loin, dans le monde où elle est déployée, lui aussi regorgeant de vulnérabilités, souvent bien plus faciles à exploiter pour des attaquants malicieux, et sans beaucoup de moyens.

Bibliographie

[1] BitLocker : mise en oeuvre des spécifications du TCG au sein de Windows
    B. Ourghanlian, SSTIC 2006
    http://actes.sstic.org/SSTIC06/BitLocker/

[2] E. Barkan, E. Biham et N. Keller, Instant Ciphertext Only Cryptanalysis
    of GSM Encrypted Coomunications, Proceedings of CRYPTO 2003, Lecture Notes
    in Computer Science 2729, pp. 600--616, Springer Verlag, 2003.

[3] Enclosed, but not encrypted: cracking a crypto hard drive case
    Christiane Rütten, Heise Security
    http://www.heise-online.co.uk/security/Enclosed-but-not-encrypted--/features/110136

[4] Eric Filiol, Strong Cryptography Armoured Computer Viruses Forbidding Code Analysis: the Bradley virus.
    Proceedings of the 14th EICAR Conference, pp.- 201--217, mai 2005. Une version française est 
    disponible dans Eric Filiol, Le virus Bradley ou l'art du blindage total. Journal de la sécurité 
    informatique MISC, numéro 20, juillet 2005.

[5] E. Filiol et F. Raynal, Malicious Cryptography, CanSecWest 2008, Vancouver, Mars 2008.

[6] E. Filiol et P. Richard, Cybercriminalité: les mafias envahissent le web, éditions Dunod, 
    novembre 2006, ISBN 2-1005-0278-6.

[7] E. Filiol, Techniques de reconstruction en théorie des codes et en cryptologie, Thèse de doctorat, 
    Ecole Polytechnique, 2001.

[8] E. Filiol, F. Jennequin et G. Delaunay, Malware-based Information Leakage over IPSEC Tunnels. Proceedings of 7th European
    Conference on Information Warfare and Security (ECIW 2008), Plymouth, UK, june 2008.

[9] E. Wegrzynowski, Des trappes dans les clefs, Actes de la conférence SSTIC 2003, Juin 2003, http://www.sstic.org/

[10] Eric Filiol. La simulabilité des tests statistiques. Journal de la sécurité informatique MISC, numéro 22, novembre 2005. 
     Une version étendue est publiée dans E. Filiol, Techniques virales avancées, chapitre 3, Collection Iris, Springer Verlag, 2007.



Last modified: Tue Mar 11 15:08:48 CET 2008