Le démarrage sécurisé établit une chaîne de confiance dès la mise sous tension du MCU. Le verrou (lockbit) du MCU est le premier maillon de cette chaîne. Il vérifie l'authenticité et l'intégrité du premier chargeur d'amorçage. Si la vérification échoue, le MCU s'arrête. Cela empêche l'exécution de firmware malveillant. Un attaquant tentant de vider la mémoire flash et l'EEPROM peut être contrarié car le chargeur lui-même est verrouillé. La lecture d'un processeur EEPROM ne peut avoir lieu qu'après authentification. Le démarrage sécurisé utilise des signatures cryptographiques. Le MCU possède une clé publique intégrée dans l'OTP. La signature du chargeur est vérifiée par rapport à cette clé. Si la signature correspond, l'exécution continue. Le verrou garantit que la clé OTP ne peut pas être modifiée. Elle est physiquement immuable. La décapapsulation et la récupération de code pourraient révéler les bits OTP, mais ils ne peuvent pas les modifier. L'attaquant pourrait essayer de copier le contenu de la mémoire cryptographique contenant la clé, mais l'OTP n'est pas copiable. La rétro-ingénierie du microcontrôleur peut lire la clé publique, mais cela est inoffensif. La clé privée est détenue par le fabricant. L'extraction du firmware n'est autorisée qu'après la réussite du démarrage sécurisé. Cependant, si l'attaquant peut contourner le démarrage sécurisé en glitchant la vérification de la signature, il peut charger un code arbitraire. Ce code pourrait alors vider la flash. Le démarrage sécurisé doit donc être résistant aux injections de fautes. De nombreux MCU implémentent des vérifications redondantes de la signature. Ils utilisent également une exécution différée pour permettre la détection des glitches. Le verrou du MCU est renforcé par des moteurs de hachage matériels. Ces moteurs calculent la signature rapidement et de manière déterministe. Des attaques temporelles sur la vérification de la signature sont possibles. Si la vérification se termine prématurément, l'attaquant peut deviner la clé. Mais la clé est publique, donc le timing n'aide pas. La sécurité repose sur la clé privée inconnue. L'attaquant ne peut pas falsifier les signatures. Il ne peut donc pas remplacer le chargeur. Il ne peut que tenter de perturber la vérification. L'injection de fautes est la principale menace. Pour atténuer cela, certains MCU vérifient la signature deux fois. Ils surveillent également la tension d'alimentation et l'horloge pendant la vérification. Si des anomalies sont détectées, ils se réinitialisent. La réinitialisation annule toute tentative de vider la flash et l'EEPROM. La lecture d'un processeur EEPROM est également protégée car l'EEPROM n'est accessible qu'après le démarrage sécurisé. Dans certaines conceptions, l'EEPROM contient des données d'étalonnage qui ne sont pas sensibles. Mais le firmware principal est dans la flash. Le démarrage sécurisé garantit que seul un firmware signé s'exécute. Cela empêche des ransomwares comme LockBit d'injecter du code malveillant. LockBit cible généralement Windows, mais des variantes embarquées existent. Elles pourraient essayer de remplacer le firmware par une version demandant une rançon. Le démarrage sécurisé empêche cela. Cependant, l'attaquant pourrait encore exploiter des vulnérabilités dans le chargeur lui-même. Le chargeur est un petit morceau de code. Il peut avoir des débordements de tampon. Si l'attaquant peut en exploiter un, il peut prendre le contrôle avant la vérification de la signature. Puis il peut désactiver le verrou. C'est une attaque logicielle. Le verrou du MCU doit également protéger le chargeur contre l'écrasement. De nombreux MCU ont un secteur de démarrage protégé. Ce secteur est protégé en écriture par un verrou matériel. Le verrou contrôle cette protection. L'attaquant pourrait essayer de glitcher le fusible de protection en écriture. En cas de succès, il peut remplacer le chargeur par un chargeur malveillant. Ce chargeur malveillant viderait alors la flash. La décapapsulation et la récupération de code ne sont pas nécessaires. Ainsi, le verrou du MCU doit inclure plusieurs fusibles. Certains fusibles contrôlent la protection en écriture du chargeur. D'autres contrôlent l'accès au débogage. Ils sont séparés. L'attaquant doit tous les casser. Cette approche en couches augmente la difficulté. Le démarrage sécurisé prend également en charge l'attestation à distance. Le MCU peut signaler son état de démarrage à un serveur distant. Si l'attestation échoue, le serveur peut révoquer les identifiants. Cela est utile contre l'extraction du firmware car le firmware extrait ne peut pas être attesté. L'attaquant ne peut pas usurper l'attestation sans la clé privée. Cette clé est à l'intérieur du MCU. La lecture d'un processeur EEPROM ne peut pas la récupérer. Vider la flash et l'EEPROM ne la révélera pas car elle est dans un stockage sécurisé dédié. La décapapsulation et la récupération de code pourraient la trouver, mais alors la puce est détruite. Copier le contenu de la mémoire cryptographique de la clé est impossible si elle est stockée dans un enclave sécurisé. La rétro-ingénierie des enclaves sécurisées est extrêmement difficile. L'extraction de firmware depuis les enclaves est également impossible car l'enclave a son propre verrou. Ainsi, le démarrage sécurisé, combiné à une racine de confiance matérielle, crée une barrière redoutable. Le verrou du MCU n'est pas qu'un simple bit ; c'est un système de vérifications. En conclusion, le démarrage sécurisé renforce le verrou du MCU en garantissant que seul un code authentifié s'exécute. Il résiste aux tentatives de vidage flash et EEPROM, de lecture de processeur EEPROM, de décapapsulation, de copie de contenu, de rétro-ingénierie et d'extraction de firmware, à condition que les protections matérielles et contre les fautes soient adéquates.