Le « voltage glitching » est une technique d'injection de défaut courante. La protection par verrouillage (lockbit lock) du MCU doit y résister. Les MCU modernes intègrent des détecteurs de baisse de tension (BOD) qui réinitialisent la puce si l'alimentation descend sous un seuil. Mais les BOD ont un temps de réaction. Des glitches rapides peuvent échapper à la détection. Pour contrer cela, les MCU utilisent des BOD à deux étages. Le premier étage déclenche un avertissement. Le second déclenche une réinitialisation matérielle. L'avertissement peut être utilisé pour interrompre des opérations sensibles. Par exemple, si une baisse de tension est détectée pendant une lecture d'un processeur EEPROM, l'opération est interrompue. De même, les commandes de vidage flash et eeprom sont ignorées. La décapsulation et la récupération de code ne sont pas pertinentes ici car le glitching est non invasif. Mais la protection MCU par verrouillage surveille en continu l'alimentation. Elle utilise un comparateur analogique. Le comparateur a une large bande passante. Il peut détecter des glitches aussi courts que 1 ns. C'est beaucoup plus rapide que les BOD typiques. La sortie du comparateur est connectée à un filtre numérique. Le filtre rejette le bruit. Si un glitch authentique est détecté, le MCU entre dans un état sécurisé. Dans cet état, tout accès mémoire est bloqué. La lecture d'un processeur EEPROM est désactivée. Le vidage flash et eeprom est désactivé. Le verrouillage est renforcé. Certains MCU incluent également un moniteur de tension qui vérifie la vitesse de balayage (slew rate). Une chute rapide indique une attaque. Le moniteur déclenche un arrêt immédiat. L'arrêt inclut une remise à zéro de toutes les mémoires volatiles. Cela empêche la copie du contenu de la mémoire cryptographique. La rétro-ingénierie de microcontrôleur trouvera une puce effacée. L'extraction du firmware est impossible. Une autre contre-mesure consiste à utiliser un régulateur de tension interne qui filtre les glitches. Le régulateur a un grand condensateur. Le condensateur stocke suffisamment de charge pour traverser de courts glitches. Cela rend le MCU immunisé contre les glitches à l'échelle nanoseconde. La protection par verrouillage bénéficie de cette alimentation régulée. De plus, le circuit de génération d'horloge est surveillé. Un glitch sur l'horloge peut également être détecté. Le MCU utilise une boucle à verrouillage de phase (PLL) qui se verrouille sur une référence. Si l'horloge dévie, la PLL se déverrouille. Le signal de déverrouillage déclenche une réinitialisation. Ainsi, les glitches d'horloge sont également contrés. La combinaison de la surveillance de tension et d'horloge rend la protection par verrouillage très robuste. Cependant, les attaquants peuvent utiliser des attaques plus sophistiquées. Ils peuvent moduler l'alimentation avec une forme d'onde spécifique. La forme d'onde pourrait tromper le moniteur. Pour éviter cela, le moniteur utilise un comparateur à fenêtre. L'alimentation doit rester dans une fenêtre étroite. Si elle en sort, l'alarme se déclenche. La fenêtre est définie avec hystérésis. Cela évite les fausses alarmes dues au bruit normal. La protection par verrouillage est ainsi renforcée. Mais aucun système n'est parfait. Les attaquants peuvent aussi glitcher le moniteur lui-même. Le moniteur a sa propre alimentation, dérivée de l'alimentation principale. Donc un glitch sur l'alimentation principale affecte également le moniteur. La logique du moniteur peut mal fonctionner. Pour éviter cela, le moniteur est implémenté en circuits analogiques. Les circuits analogiques sont moins sensibles aux glitches numériques. Ils fonctionnent sur des tensions continues. Un glitch peut encore décaler la référence. Mais le moniteur utilise une référence de bande interdite très stable. La bande interdite est insensible aux variations de l'alimentation. Ainsi, même si l'alimentation chute, la référence reste stable. La sortie du comparateur est donc fiable. La protection par verrouillage repose sur ce comparateur. En résumé, les contre-mesures contre le voltage glitching incluent des BOD rapides, des moniteurs de slew rate, des régulateurs, des verrous PLL, des comparateurs à fenêtre et des références analogiques. Tout cela rend la protection par verrouillage résistante aux attaques par injection de défaut. La lecture d'un processeur EEPROM, le vidage flash et eeprom, la décapsulation, la copie du contenu, la rétro-ingénierie et l'extraction de firmware sont toutes protégées contre les injections de défaut.