Thursday 14 November 2024
Font Size
   
Friday, 07 May 2010 12:57

Comment casser des codes informatiques

Rate this item
(0 votes)

Une carte piratée...

Dans Sciences et Avenir

de mai 2010, nous racontons comment la carte bancaire de notre journaliste a pu être utilisée en tapant un code PIN erroné. Cette opération a pu être menée grâce à la découverte d’une faille dans le protocole utilisé par les cartes bancaires et sa publication par l’équipe de Ross Anderson du laboratoire de sécurité de Cambridge en début d’année.

Même si l’étendue de la fraude sera forcément limitée car la possession de cartes volées (ou volontairement prêtées !) est indispensable, le Groupement des Cartes bancaires a été contraint de procéder à des modifications sur les serveurs d’authentification des cartes à puces. Il existe en effet une parade à cette attaque. A la fin d’une transaction, la carte envoie à la banque une suite de chiffres dont l’un indique que le code PIN n’a pas été tapé. Cela bloque en général la transaction, sauf dans des cas exceptionnels comme le paiement au péage ou au parking. Sauf que dans ses investigations, le GIE a découvert que ce filtre n’était pas toujours utilisé. D’où les demandes de modifications sur les ordinateurs d’authentification. Cependant des exceptions subsistent (parking et péage évidemment !), notamment pour les paiements à l’étranger car beaucoup de pays n’ont pas recours aux codes PIN. C’est ce qui explique que notre carte française, utilisée en Grande-Bretagne, a pu être utilisée sans son code PIN.

...et une clé cassée

« Nous ne doutions pas que cela allait marcher. Mais la dernière étape a duré plus longtemps que prévu et a donné des sueurs froides à notre collègue de l'EPFL [Ecole Polytechnique Fédérale de Lausanne] », se souvient Pierrick Gaudry responsable à l'Inria du calcul géant qui a permis, fin décembre, de casser une "clé" informatique*. Cette clé numérique est en fait un grand nombre de 232 chiffres (768 bits en écriture binaire avec des 0 et des 1) servant à protéger la confidentialité des transactions par cartes bancaires ou sur Internet (par la méthode dite RSA). Elle permet en effet de générer d'autres nombres servant à coder et décoder les informations sensibles lors de ces opérations.

La « casser » revient en fait à trouver deux nombres qui sont des nombres premiers de 116 chiffres dont le produit redonne le nombre de 232 chiffres. En terme plus mathématique, il s'agit d'une factorisation. Il aura fallu environ deux ans de calculs pour y parvenir et 1500 ordinateurs en réseau (notamment ceux de la grille de calcul française, Grid5000). « Sur le plus gros réseau d'ordinateurs, le Jaguar du Département américain de l'Energie, cela n'aurait pris qu'une dizaine de jours avec ses 200000 processeurs », estime Pierrick Gaudry. Fort heureusement les clés vraiment utilisées actuellement dans les cartes bancaires et sur Internet sont plus grandes : plus de 900 bits ; certaines dépassant les 4000 bits.

Un des plus gros calculs jamais réalisé

« C'est sans doute l’un des plus gros calcul algébrique qu'un ordinateur ait effectué à ce jour », estime Pierrick Gaudry. Une vingtaine de programmes différents ont été nécessaires pour venir à bout de ce calcul.

La première étape consiste, comme souvent en maths, à changer le problème à résoudre. Plutôt que de factoriser le grand entier N de 232 chiffres, la méthode vise à trouver un couple de nombres X et Y dont les carrés sont égaux « modulo N » (C'est-à-dire que Y2 est le reste de la division euclidienne de X2 par N))... Un théorème mathématique explique ensuite comment trouver les facteurs premiers de N à partir de X et Y. Reste donc à fabriquer pas à pas ces nombres.

C'est le but de la seconde étape, qui elle aussi a l'air de contourner encore le problème. Les mathématiciens construisent des polynômes et testent leurs valeurs sur un grand ensemble de points (plus exactement des paires d'entiers). Le test, ou crible, permet de trouver de nouveaux entiers dont le produit donnera X et Y. « C'est la phase la plus longue. Elle occupe les trois quarts du temps de calcul », précise Pierrick Gaudry. A la fin du crible, il reste tout de même quelques 64 milliards de nombres pour alimenter la troisième et avant-dernière étape.

Cette fois il s'agit d'effectuer un calcul algébrique sur une matrice géante de quelques 192 millions de lignes et autant de colonnes. Soit 100 Go occupé en mémoire. Le résultat de l'exploration de la matrice doit fournir les bons X et Y.

Le sprint avant Noël

Il ne reste alors plus qu'à faire une sorte de racine carré pour trouver les bons nombres premiers. « Cette étape n'aurait dû prendre qu'un jour. A cause de deux bogues elle a pris plus de temps et comme nous voulions finir avant Noël, nous avons travaillé dur pour résoudre ces difficultés », se souvient Thorsten Kleinjung, le responsable de cette ultime phase à l'EPFL. Le 12 décembre, Thorsten Kleinjung peut envoyer le mél de victoire contenant les deux nombres de 116 chiffres.

L'ascension d'une telle montagne numérique, qui plus est inutile pour vider les coffres d'une banque, n'est pas une simple épreuve de maths sportives. Enormément de calculs arithmétiques demandent à un moment de factoriser les nombres. La méthode du crible algébrique, utilisée ici, est donc très prisée. Le moindre progrès, même de quelques pourcents, est donc appréciable en temps de calcul. « Arithmétique, informatique, algèbre... ce calcul nous fait voyager dans plein de domaines », conclut Pierrick Gaudry.

David Larousserie
Sciencesetavenir.fr

30/04/2010

 Lire dans notre dossier actuellement en vente :

- comment attaquer les cartes bancaires ?

- quelles réponses les mathématiciens apportent à ces défis ?

- comment crypter ces courriels ou surfer anonymement ?

- comment faire une transaction sans code PIN

- comment casser les cartes à puces en les « écoutant »

- comment crypter ses emails ou surfer anonymement

Authors: Nouvel Obs

pour en savoir plus...

French (Fr)English (United Kingdom)

Parmi nos clients