Évaluation de la sécurité physique des SoC
Publié le mercredi 24 mars 2021
Thèse soutenue par Thomas Trouchkine, du laboratoire sécurité des composants de l’ANSSI, le 24 mars 2021.
Jury :
Jessy Clédière (Directeur de thèse)
Karine Heydemann (Rapportrice)
Philippe Maurine (Rapporteur)
Clémentine Maurice (Examinatrice)
Marie-Laure Potet (Examinatrice et Présidente du Jury)
Jean-Max Dutertre (Examinateur)
Patrick Schaumont (Examinateur)
Lilian Bossuet (Examinateur)
Patrick Haddad (Invité)
Guillaume Bouffard (Invité, co-encadrant)
Résumé :
De nos jours, nos appareils mobiles sont utilisés pour réaliser des opérations sensibles telles que du paiement, de l’identification ou la gestion de services santé. Historiquement, ces opérations sont réalisées par des appareils conçus et évalués pour résister à diverses attaques: les éléments sécurisés. En revanche, les appareils mobiles sont conçus pour fournir la meilleure performance possible et ne subissent aucune évaluation de sécurité. Cet état de fait interroge sur la résistance de ces appareils face aux attaques classiques contre lesquelles se protègent les éléments sécurisés.
Parmi ces attaques, nous nous proposons, dans cette thèse, d’étudier les attaques par perturbations. Ces attaques consiste à modifier les conditions d’exécution du circuit ciblé afin d’induire des erreurs dans son fonctionnement. Ces erreurs volontaires, communément appelées fautes, permettent de créer des failles dans la cible pouvant aller jusqu’à la cryptanalyse d’un algorithme de chiffrement ou l’authentification d’un utilisateur non autorisé.
Bien que ces méthodes d’attaques soient connues et étudiées sur les éléments sécurisés, les appareils modernes reposent sur des processeurs modernes présentant des différences par rapport aux processeur des éléments sécurisés. Cela peut être le nombre de module qu’ils embarquent, leur finesse de gravure ou des optimisations.
L’impact de ces différences sur la sécurité des processeur n’a pas été étudié en prenant en compte la possibilité d’induire des fautes. C’est ce que nous réalisons dans cette thèse. Nous définissons une méthode permettant de caractériser les effets de perturbations sur un processeur moderne que nous appliquons sur trois processeurs représentatifs des appareils existants: le BCM2837, le BCM2711b0 et l’Intel Core i3-6100T. Nous avons également utilisés deux moyens de perturbation classiques: l’injection d’onde électromagnétique et l’utilisation d’un laser. L’étude de ces cibles, en variant les moyens d’injections de faute, nous a permis de déterminer qu’elles réagissent toutes de manière similaire aux différentes perturbations malgré leur différente architecture. L’effet le plus marquant étant la modification des instructions exécutées.
Ce type de faute est très fort car il permet de modifier une partie du programme exécuté pendant son exécution. Vérifier le programme avant de l’exécuter ne protège en rien face à ce type de fautes, par exemple. C’est pourquoi nous avons également étudié la résistance des mécanismes de sécurité présents dans ces cibles face à ce type de faute. Nous avons notamment réussi à cryptanalyser l’implémentation de l’algorithme de chiffrement AES de la bibliothèque OpenSSL, très utilisé dans les systèmes utilisant Linux. Nous avons également étudié la résistance du mécanisme d’authentification des utilisateurs d’un système Linux en regardant le programme sudo .Cette étude nous a, en particulier, révélé que la communauté manque d’outils efficace pour analyser ce type de programmes face aux fautes. En effet, les programmes s’exécutant dans un environnement Linux bénéficient de nombreux mécanismes liés au noyau Linux qui rendent l’exécution d’un programme difficile à étudier.