Méthodes et modèles pour la vérification formelle de l'attestation à distance sur microprocesseur
Auteur / Autrice : | Jonathan Certes |
Direction : | Benoît Morgan |
Type : | Thèse de doctorat |
Discipline(s) : | Sureté de logiciel et calcul de haute performance |
Date : | Soutenance le 22/06/2023 |
Etablissement(s) : | Toulouse 3 |
Ecole(s) doctorale(s) : | École doctorale Mathématiques, informatique et télécommunications (Toulouse) |
Partenaire(s) de recherche : | Laboratoire : Institut de Recherche en Informatique de Toulouse (1995-....) |
Jury : | Président / Présidente : Philippe Quéinnec |
Examinateurs / Examinatrices : Benoît Morgan, Marie-Laure Potet, Aurélien Francillon, Eric Alata, Sébastien Bardin, Abdelmalek Benzekri, Guy Gogniat | |
Rapporteur / Rapporteuse : Marie-Laure Potet, Aurélien Francillon |
Mots clés
Mots clés contrôlés
Mots clés libres
Résumé
Dans ce manuscrit, nous considérons comme problématique la sécurisation de l'exécution d'un algorithme dans un environnement complexe. Nous partons du principe que nous ne pouvons pas vérifier qu'à tout instant, cette exécution est sécurisée, même dans le cadre d'un adversaire distant. Néanmoins, il est possible de détecter une intrusion, une compromission de cet algorithme, à un instant donné et d'établir une racine de confiance dynamique. Pour cela, il existe le protocole d'attestation à distance. Sécuriser l'exécution du protocole nécessite d'établir une racine de confiance statique, vis-à-vis des capacité d'un adversaire. Cette racine de confiance statique, lorsqu'elle est accompagnée d'une vérification formelle, a jusqu'à présent été établie sur des microcontrôleurs simples, tels que la famille des MSP430. L'obtenir sur ces systèmes nécessite des composants matériels dédiés, suffisamment simples pour que la vérification formelle reste possible. Afin de permettre la vérification formelle de système matériels plus complexes, nous proposons une approche de vérification formelle automatique et industrialisable. L'objectif de cet approche est de minimiser l'effort d'abstraction et ainsi réduire l'impact de l'explosion combinatoire. Ensuite, en nous appuyant sur les architectures des SoC modernes, nous envisageons d'étendre le domaine d'application de l'attestation à distance vérifiée formellement. Notre cas d'étude vise à établir une racine de confiance statique sur un microprocesseur pris sur étagère: le ARM Cortex-A9. Pour cela, nous devons sécuriser l'exécution d'une fonction d'attestation et maintenir la confidentialité d'un secret. Nous proposons une définition de la sécurité sur cette famille de systèmes, en tenant compte de l'augmentation de la surface d'attaque et des capacités d'un adversaire privilégié. Nous décomposons ces capacités en des problématiques décorrélées, que nous pouvons traiter indépendamment pour permettre la vérification formelle. Nous réalisons une implémentation, que nous confrontons à notre définition de la sécurité et apportons la preuve que celle-ci est vérifiée. La solution que nous proposons ne nécessite pas de modification matérielle, mais simplement d'une extension sous forme d'un périphérique de confiance, implémenté dans un circuit de logique programmable. Considérer les architectures propriétaires apporte cependant une problématique: sans accès aux sources, nous ne pouvons pas modéliser formellement leur comportement. Également, vis-à-vis de notre modèle de menace fort, nous ne considérons pas que le microprocesseur constitue un environnement sûr. Nous proposons donc de reconstruire un mécanisme de gestion des privilèges externe à celui-ci, dans la partie matérielle de notre périphérique de confiance. Ce mécanisme s'appuie sur des hypothèses émises vis-à-vis du comportement du microprocesseur, que nous auditons pour pouvoir y accorder un fort degré de confiance.