Démarrage sécurisé vs démarrage mesuré : signatures, mesures TPM, attestation
Les deux mécanismes vérifient le logiciel suivant à chaque étape du démarrage, de la mise sous tension jusqu’à l’exécution du système d’exploitation. Le démarrage sécurisé vérifie la signature numérique de l’étape suivante et arrête le démarrage si elle n’est pas correctement signée. Le démarrage mesuré calcule un hachage de l’étape suivante et l’enregistre de manière cumulative dans les PCR (Platform Configuration Registers) du TPM, sans rien arrêter. Le démarrage sécurisé empêche ; le démarrage mesuré enregistre, pour que l’état puisse être vérifié et prouvé plus tard. Ce ne sont pas des alternatives : on les utilise souvent ensemble.
| Critère | Démarrage sécurisé | Démarrage mesuré |
|---|---|---|
| Ce qu’il vérifie | La signature numérique du logiciel suivant : la signature de l’éditeur sur le hachage de l’image doit se vérifier avec une clé de confiance | Le hachage (la mesure) du logiciel suivant : la valeur de ce qui a réellement été chargé est enregistrée telle quelle |
| En cas de problème | Arrête immédiatement le démarrage si la vérification échoue (application) | Laisse le démarrage se poursuivre et se contente d’enregistrer (journalisation) |
| Racine de confiance | Code de démarrage immuable en ROM et clé publique de vérification (souvent stockée sous forme de hachage dans des eFuses pour gagner de la place) | Un petit code de confiance qui s’exécute en premier et lance les mesures, plus le TPM qui conserve l’enregistrement |
| Si le logiciel a été altéré | La signature ne correspond pas, il ne s’exécute donc jamais ; un chargeur d’amorçage ou un noyau modifié ne peut pas démarrer | Le système démarre quand même, mais les valeurs des PCR diffèrent des valeurs attendues : la vérification de l’enregistrement le révèle plus tard |
| Prérequis | Une clé publique de vérification sur l’appareil et une clé privée de signature conservée en sécurité par l’éditeur ; combiné à l’anti-retour arrière (anti-rollback) pour empêcher la réinstallation d’anciennes versions | Les PCR du TPM (qui ne peuvent qu’être étendus, une nouvelle mesure y étant intégrée par hachage) et un enregistrement des mesures de chaque étape (le journal des événements) |
| Usage du résultat | Empêche un logiciel non autorisé de démarrer sur cet appareil. Pour montrer à d’autres ce qui a démarré, on le combine avec le démarrage mesuré ou un mécanisme similaire | Attestation à distance (valeurs des PCR signées avec une clé du TPM et présentées à un serveur) et scellement (libération de secrets, comme une clé de chiffrement de disque, uniquement si les PCR contiennent les valeurs attendues) |
| Limites | Il indique seulement si le code est signé par une clé de confiance : il ne distingue ni une ancienne version vulnérable mais valablement signée, ni un changement de configuration ; il ne protège que le chemin de démarrage | Il ne peut pas empêcher l’exécution de code malveillant, et l’enregistrement n’a de sens que si quelqu’un le vérifie ; les valeurs attendues des PCR changent à chaque mise à jour logicielle et doivent être gérées |
| Usages typiques | Smartphones, PC et de nombreux systèmes embarqués ; les produits livrés verrouillent aussi les ports de débogage comme JTAG | PC équipés d’un TPM, pour le chiffrement de disque et le contrôle de l’état de l’appareil avant l’accès au réseau ; les microcontrôleurs sans TPM utilisent dans le même but des schémas comme DICE, qui dérivent des clés à partir des mesures |
Les valeurs indiquées sont des ordres de grandeur typiques et varient selon la génération de procédé et le produit.