ASCADv2, une nouvelle version de la base de données pour le test et l’étude de l’extraction d’information d’une implémentation cryptographique par l’apprentissage profond


La caractérisation de la sensibilité des systèmes embarqués vis-à-vis des attaques par analyse des canaux auxiliaires est un sujet d’importance pour l’ANSSI. Un effort conséquent est mené avec l’aide des Centres d’Evaluation de la Sécurité des Technologies de l’Information (CESTI) pour devancer tous les progrès qui pourraient être faits dans ce domaine. En particulier, les laboratoires de l’ANSSI s’intéressent à l’application des méthodes d’apprentissage profond (deep learning en anglais) comme techniques de cryptanalyse. Pour enrichir la compréhension générale de ce phénomène par la communauté d’experts, l’ANSSI propose plusieurs bases publiques de tests pour la comparaison des résultats d’apprentissage profond, dont la plus récente est la base de données ASCADv2.

Au cours de l’exécution d’un calcul cryptographique sur un système embarqué comme une carte à puce, il est parfois possible de retrouver de l’information sur les paramètres secrets ou les données utilisateurs en exploitant la dépendance statistique entre le comportement du matériel et la valeur des données manipulées. Cette dépendance peut, par exemple, être observée via la mesure du temps de calcul, de la consommation de courant ou du rayonnement électromagnétique des composants électroniques.

Depuis leur introduction dans le domaine public dans les années 90, les attaques dites « par analyse de canaux auxiliaires » ont été beaucoup étudiées et, pour les contrer, de nombreuses contre-mesures ont été développées par les industriels du domaine. Elles consistent essentiellement à décomposer aléatoirement les données manipulées et à opérer les calculs cryptographiques sur ces parties tout en assurant que la recombinaison des résultats partiels permette de reconstruire la donnée attendue (p.e. une signature ou un message chiffré).

Dans le cadre de leurs activités de recherche, le laboratoire Exploration et recherche en Détection (LED) et le laboratoire Sécurité des Composants (LSC) ont conjointement publiés plusieurs bases de données, nommées ASCAD, ainsi que des modèles qui illustrent l’efficacité des nouvelles techniques d’apprentissage profond pour ce domaine.

Les premières versions d’ASCAD ont été obtenues à partir des traces d’émission électromagnétiques et de consommation de courant d’un composant grand public ATmega815 lors d’un chiffrement AES128 dont l’implémentation a été publiée. Deux jeux de données sont disponibles: ASCAD à clef fixe et ASCAD à clef variable.
Les jeux de données permettent de reproduire les résultats présentés dans l’article Study of « Deep Learning Techniques for Side-Channel Analysis and Introduction to ASCAD Database« . Cet article a pour objectif de poser, le plus précisément possible, les bases de l’application de l’apprentissage profond à l’extraction d’information sur les paramètres secrets d’une implémentation cryptographique. Il met en évidence l’efficacité de l’apprentissage profond pour une implémentation 8bit d’AES protégée par une contre-mesure simple et fournit une méthodologie dans la recherche des meilleurs modèles pour une analyse de sécurité.

La nouvelle version du jeu de données, ASCADv2, a été obtenue à partir des traces de consommation de courant d’un composant public STM32 de type ARM Cortex M, sur une implémentation d’AES128 dont l’implémentation est également publiée.
L’implémentation opère sur des mots de 32bits, et propose des contre-mesures plus élaborées que celles mises en oeuvre pour les premières versions d’ASCAD. Grâce à une difficulté d’attaque plus élevée, cette nouvelle base permet ainsi de tester les limites des techniques d’apprentissages profond. L’article « Side Channel Analysis against the ANSSI’s protected AES implementation on ARM » montre la pertinence de ce nouveau jeu de données en étudiant la résistance de chacune des contre-mesures et en introduisant une nouvelle technique d’analyse : l’apprentissage multi-tâches.

En complément, des scripts basés sur les bibliothèques Python Keras et Tensorflow ont été publiés sur le compte GitHub de l’ANSSI, permettant ainsi de rejouer les analyses décrites dans les articles.

Au-delà de permettre la reproduction des résultats, l’ANSSI souhaite également fournir à la communauté des bases publiques de test permettant de comparer différents résultats d’apprentissage et d’améliorer ainsi la compréhension générale de la communauté des experts du domaine.

Liens externes