5 min de lecture

Ce que les attaques par canal auxiliaire m'ont appris sur la patience

Ma première attaque par corrélation a échoué. Les coefficients de corrélation restaient quasi uniformes sur les 256 hypothèses de clé, et ce pour chaque position d'octet. J'ai passé presque une journée à éplucher la documentation de ChipWhisperer, puis une demi-journée encore à scruter la logique de déclenchement, avant de mettre le doigt sur le vrai problème : la résistance de shunt que j'avais soudée sur la ligne VCC était trop élevée, et la chute de tension qu'elle provoquait saturait l'entrée de l'oscilloscope sur les cycles d'horloge les plus chargés. Le signal que je voulais récupérer disparaissait sous les artefacts d'écrêtage. Les maths étaient justes. C'est la physique du montage qui clochait, et j'avais passé deux jours à déboguer la mauvaise couche.

S'en est suivie une démarche de débogage méthodique qui ne m'a plus quitté. Une variable à la fois. Caractériser le bruit de fond avant de toucher à l'analyse. Comprendre son instrumentation avant d'accorder la moindre confiance à ses données. Un shunt moins résistif. Resserrer la plage de tension en entrée de l'oscilloscope. Capturer une seule trace et l'examiner à l'œil : la courbe de consommation a-t-elle bien la morphologie attendue d'une ronde AES ? Le déclenchement tombe-t-il au bon instant du chiffrement ? La fenêtre de capture englobe-t-elle vraiment l'opération visée ? Ce n'est qu'une fois ces réponses franchement affirmatives qu'on peut se permettre de collecter des traces à grande échelle. Le bon ordre, c'est : d'abord comprendre sa mesure, ensuite appliquer son modèle. L'essentiel du temps gaspillé en expérimentation vient de l'inversion de ces deux étapes.

L'attaque qui a finalement récupéré la clé AES de 128 bits en intégralité, en 4 800 traces, devait tout à la méthode et rien au génie. L'idée décisive n'avait rien de mathématique : la Correlation Power Analysis est bien documentée et son implémentation va de soi dès lors que la mesure est propre. L'idée décisive était opérationnelle : l'échec ne tenait pas à un manque de données, mais à leur qualité. Empiler des traces sur un montage de mesure bancal ne converge sur rien du tout. On récolte seulement un jeu de données plus gros, et tout aussi inexploitable. La nuance est capitale, et on la sous-estime constamment, qu'on parle de techniques offensives ou de pratiques défensives. Le goulot d'étranglement, c'est presque toujours ce que l'on mesure et comment, jamais le volume que l'on a accumulé.

Le parallèle avec la traque des menaces est direct, et trop rarement relevé. Chercher une activité persistante dans un environnement ressemble en tout point à récupérer une clé dans des mesures de consommation bruitées : vous avez une hypothèse, vous avez des données imparfaites, et la tentation est de vous jeter sur l'analyse tout de suite. Les analystes qui débusquent régulièrement ce que les autres laissent passer ne sont pas ceux qui manient la logique de détection la plus sophistiquée. Ce sont ceux qui, avant de commencer, ont pris le temps de connaître leurs sources : trous de couverture, latence d'acheminement des journaux, normalisation des horodatages, ce que le SIEM indexe par rapport à ce qu'il collecte sans jamais l'interroger, et les hôtes qui ne remontent absolument aucune télémétrie. Dans les deux mondes, la patience n'est rien d'autre qu'une méthode qui avance plus lentement que le problème ne semble l'exiger. C'est aussi la seule qui finit toujours par payer.