Le cryptage bon pour la corbeille?

Publié : 18.11.2006 - 18h47 par Saluki

Un petit article dans "Le Monde" de ce soir:
ici

Il y a de quoi frémir pour les achats en ligne.
Et ce ne serait pas un patch qui pourrait le corriger, apparemment.
Comme je n'y connais rien, je livre simplement l'info.


Publié : 18.11.2006 - 21h05 par GIL

bon je dois être ignare, mais j'ai pas bien compris le rapport entre les puces et Intel ... d'autant plus que j'ai jamais utilisé la puce de ma carte à crédit dans mes achats en ligne .... :?: :?: :?:


Publié : 18.11.2006 - 22h41 par Eric Schuepbach

GIL a écrit :bon je dois être ignare, mais j'ai pas bien compris le rapport entre les puces et Intel ... d'autant plus que j'ai jamais utilisé la puce de ma carte à crédit dans mes achats en ligne .... :?: :?: :?:


Ne te laisse pas abuser par la photo d'une puce de carte de crédit ! Relis attentivement l'article. Il est bien question de casser une clé numérique en se basant sur l'analyse des réactions du microprocesseur d'un ordinateur en cours d'utilisation de la dite clé.

De fait, c'est un peu le même principe que le cambrioleur qui reconstitue le code d'accès d'un coffre-fort en écoutant son mécanisme à l'aide d'un stéthoscope.


Publié : 19.11.2006 - 15h38 par GIL

merci eric, je devais pas être réveillé hier ... c'est tout compris !

reste à voir la mise en pratique de tels logiciels pouvant "observer" le comportement du processeur ...


Publié : 21.11.2006 - 17h48 par Verfasser

Il a déjà été montré (cf. http://www.wisdom.weizmann.ac.il/~trome ... /cache.pdf ) que la détermination indirecte des zones mémoire accédées par un programme (par exemple les lookup tables utilisés par un programme de chiffrage AES) est possible.

Une mémoire cache d'un CPU est partagée par tous les process tournant sur ce CPU. Typiquement, seuls une vingtaine de bits les moins significatifs de l'adresse physique de la mémoire accédée sont utilisés pour identifier l'emplacement du cache qui va recevoir une copie de la donnée tenue en mémoire centrale. Seul le contrôle final de la présence en cache d'une donnée se fera sur l'ensemble des bits de l'adresse.

Il est donc possible pour un process espion de balayer rapidement un espace de plusieurs MBytes, qui va éjecter de la cache CPU une grande partie des données utilisées par un process de chiffrage (par exemple AES) qui utiliserait le même CPU.

Au context switch suivant, le process AES va charger dans la cache ses propres données, éjectant ceux du process espion.

Au context switch suivant, le process espion, en balayant son espace mémoire, peut identifier quelles sont les adresses causant un ralentissement, c-à-d celles qui ont été éjectées du cache par le process AES, ce qui permet, si on a une bonne idée de l'organisation du code AES espionné, de déterminer quels lookup tables AES ont été accédés, ce qui donne une bonne idée des bits de la clé de chiffrement.

Au bout de quelques context switches, le process espion peut donc commencer à avoir une bonne idée du comportement d'accès mémoire du process AES, et donc des bits de la clé qui genèrent ces accès mémoire.

La nouvelle méthode d'attaque dont parle l'article dans Le Monde est une variante de la précédente, qui utilise le fait que des branchements dans le code exécutable peuvent aussi produire des ralentissements, car un CPU moderne a tendance a prédigérer les instructions de la branche qu'il considère la plus probable, et sera notablement ralenti si sa prédiction était mauvaise.

Ces types d'attaque nécessitent de pouvoir faire tourner un code espion sur le même CPU que le système qu'on veut attaquer. Installer un programme espion sur un ordinateur distant est en genéral une opération non-triviale (si on exclut les gens insouciants qui installent n'importe quel widget, screen saver ou freeware douteux qu'ils trouvent sur le net, ou double-cliquent sans réfléchir sur les attachments des e-mails qu'ils reçoivent), donc ces types d'attaque ne sont donc aujourd'hui que très théoriques.

Notons que si on parvient à installer et lancer un programme (par exemple un attachment e-mail) sur un ordinateur distant, le plus simple pour capturer une clé de chiffrage serait simplement pour le process espion d'inspecter directement l'espace mémoire utilisé par le process victime pour y localiser la clé, au lieu de commencer à faire des mesures statistiques de variabilité de temps d'accès du cache ou du pipeline d'exécution / branch prediction unit... 8)