Site WWW de Laurent Bloch
Slogan du site

ISSN 2271-3905
Cliquez ici si vous voulez visiter mon autre site, orienté vers des sujets moins techniques.

Pour recevoir (au plus une fois par semaine) les nouveautés de ce site, indiquez ici votre adresse électronique :

Deux articles de Stefan Saroiu, Jubayer Mahmod et Matthew Hicks :
L’attaque “Volt Boot” sur la mémoire statique du SoC
dans le numéro d’août 2025 des CACM
Article mis en ligne le 17 août 2025

par Laurent Bloch

Jubayer Mahmod (chercheur à Virginia Tech au moment de l’écriture de l’article, désormais ingénieur de sécurité chez Amazon AWS) et Matthew Hicks (professeur à Virginia Tech) ont écrit l’article principal SRAM Has No Chill : Exploiting Power Domain Separation to Steal On-Chip Secrets, Stefan Saroiu (chercheur chez Microsoft) en a écrit une présentation synthétique Defending Data from SRAM-Based Attacks, les deux doivent être lus en symbiose, quand on commence à perdre pied dans l’article principal très détaillé on peut se raccrocher à la synthèse pour garder la vue d’ensemble, puis retourner au principal pour savoir vraiment ce qui se passe dans les entrailles des circuits électroniques.

Miniaturisation de l’électronique

Les ordinateurs (y compris les téléphones contemporains) stockent des données dans des mémoires (storage) et leur appliquent des traitements par des processeurs, constitués de circuits capables d’effectuer des opérations sur les données.

Les progrès de la micro-électronique ont permis de placer un processeur sur une unique plaquette de silicium (en 1970), puis plusieurs processeurs sur cette même plaquette (1 cm2 pour les téléphones, 3 ou 4 cm2 pour les ordinateurs), maintenant toute une série de processeurs, processeurs graphiques, audio, vidéo, mémoires cache, mémoires tampon (buffer en anglais), etc., jusqu’à 96 milliards de transistors, toujours sur la même plaquette, on parle alors de System on Chip ou SoC.

Hiérarchie de mémoires

  • Mémoires externes : disques durs, disques SSD (de l’anglais Solid-State Drive), clés USB, cartes SIM et SD de téléphones ou de liseuses. Les données enregistrées sur ce type de support y résident de façon permanente, y compris quand l’appareil est hors tension. Si l’on veut protéger ces données contre un espion ou contre un voleur, il convient de les chiffrer (ce qui est fait par défaut pour les téléphones Android ou iOS, par exemple). La question de leur protection est alors celle de la protection de la clé de chiffrement, conservée dans la mémoire interne de l’ordinateur (ou du téléphone, c’est la même chose).
  • Mémoire interne : appelée aussi mémoire vive, c’est celle avec laquelle communique directement le processeur pour effectuer calculs et autres traitements. Les données qu’elle contient disparaissent à la mise hors-tension. Elle existe sous deux formes principales :
    • Mémoire vive dynamique (DRAM, pour Dynamic Random Access Memory) : c’est la variante la moins chère et la moins encombrante, c’est donc elle qui constitue l’essentiel de la capacité mémoire de l’appareil. Les composants DRAM sont enfichés sur la carte mère de l’appareil et reliés directement au SoC. Sans trop entrer dans les détails, chaque position mémoire contient un bit (0 ou 1) dans un condensateur (chargé ou déchargé) commandé par un transistor. Comme le condensateur se décharge spontanément, il doit être rafraîchi avec une période de quelques millisecondes.
    • Mémoire vive statique (SRAM, pour Static Random-Access Memory) : chaque position de mémoire nécessite, pour contenir un bit (0 ou 1), une bascule constituée de six transistors (pour la technologie la plus répandue). Les cellules de mémoire SRAM sont plus chères et plus encombrantes que les DRAM, mais plus rapides, et n’ont pas besoin d’être rafraîchies. Elles sont le plus souvent utilisées pour des dispositifs de mémoire de plus petite taille, mais d’usage intensif : caches, Translation lookaside buffer (TLB) et autres buffers (zones de travail du processeur), implantés généralement sur le SoC lui-même.

L’attaque Cold Boot

Comme les mémoires vives, DRAM ou SRAM, perdent leurs données à la mise hors tension, les concepteurs de systèmes ont longtemps considéré que leur contenu était sûr, et notamment que les clés de chiffrement des mémoires externes pouvaient y résider en clair et en toute sécurité.

Mais en 2009 J.A. Halderman et ses collègues publièrent l’attaque Cold Boot, qui permettait d’extraire le contenu d’une mémoire DRAM après la mise hors tension, à condition de la refroidir immédiatement à une température de -50°C (on trouve des bombes d’azote liquide ou de sprays équivalents dans toutes les bonnes drogueries) : on dispose alors de quelques dizaines, voire centaines de secondes pour opérer. Un attaquant peut ainsi voler un appareil en fonctionnement, téléphone ou laptop, refroidir les composants DRAM, rebooter l’appareil à partir d’une clé USB équipée d’un OS instrumenté pour ce piratage, et ainsi récupérer les données convoitées, par exemple la clé de chiffrement d’une mémoire externe.

Cette manipulation demande un certain professionnalisme, mais pour obtenir des secrets d’État ou financiers elle est envisageable.

Cette publication a déclenché une petite panique dans le monde de la sécurité, et des travaux de recherche afin d’élaborer des parades. Plusieurs solutions logicielles furent proposées, généralement assises sur le chiffrement de la mémoire DRAM, mais c’était difficile : il fallait absolument éviter que les clés de chiffrement et l’état du système de chiffrement séjournent à aucun moment... dans la DRAM. Finalement les industriels du matériel proposèrent des extensions matérielles qui chiffraient la DRAM par des procédés entièrement réalisés en SRAM, sur le SoC.

Tous ces procédés reposaient sur une hypothèse fondamentale : la SRAM, sur le SoC, était inviolable, parce qu’elle perdait ses données instantanément à la mise hors tension, pas de condensateurs lambins et paresseux.

C’est alors qu’arrivent Jubayer Mahmod, Matthew Hicks et leur attaque Volt Boot ...

Anatomie d’un SoC contemporain

L’article de Jubayer Mahmod et de Matthew Hicks m’en a beaucoup appris sur l’organisation physique des composants actuels. J’avais déjà appris des choses surprenantes sur la propagation du signal d’horloge dans un circuit (les processeurs courants sont des machines synchrones, et cette propagation consomme un tiers de la surface et de la puissance électrique du circuit). Là j’apprends que la surface du SoC est partagée en domaines alimentés séparément les uns des autres, à des tensions différentes, voire hors tension quand ils sont inactifs. Le tout est supervisé par un Power management integrated circuit (PMIC).

Cette gestion fine de l’alimentation électrique a des effets très positifs sur les performances et sur la dissipation thermique, mais elle compromet la sécurité de la SRAM. 

L’attaque Volt Boot sur la SRAM

En effet, la SRAM a toutes les chances de ne pas être dans le même domaine d’alimentation que le cœur du processeur, ce qui va permettre de redémarrer l’appareil (avec un OS malfaisant) en gardant la SRAM sous tension, ce qui va permettre de la lire.

Il suffit alors d’identifier le point d’alimentation du domaine qui contient la SRAM, en s’aidant de la documentation du fournisseur, de le connecter à une alimentation adéquate (facile, c’est expliqué dans l’article), et de rebooter l’appareil avec un OS convenablement instrumenté (tout le monde sait faire), pour siphonner les données convoitées.

Nos auteurs ont effectué la manœuvre sur des SoC Broadcom pour Raspberry Pi 3 et 4 (CPU ARM Cortex A53 et A72) et NXP pour carte iMX53, CPU ARM Cortex A8. Bon, ils ont eu à résoudre quantité de petits problèmes, électriques notamment, décrits dans l’article, mais l’inviolabilité de la SRAM est réfutée.

Messieurs Mahmod et Hicks se sont adonnés à d’autres turpitudes du même acabit, par exemple récupérer des données à partir de la mémoire cache ou des registres (qui sont en principe en SRAM sur le SoC). Le résultat n’en est pas changé : la SRAM n’est plus sûre.

Des contre-mesures ?

La publication initiale de ce travail en 2022 a bien sûr suscité des recherches de contre-mesures. Dans quelles directions ?

 Supprimer le découpage du SoC en plusieurs domaines d’alimentation électrique distincts : ce serait perdre tous les bénéfices qu’apporte ce découpage des points de vue de la performance et de l’efficacité énergétique, ce n’est pas envisageable.
 Effacer la mémoire au cours de la procédure d’extinction du système : une telle mesure serait contournable par une déconnexion abrupte.
 Remise à zéro de la mémoire au démarrage : une telle possibilité n’est généralement pas disponible sur les processeurs existants, et demanderait des modifications du matériel.
 Dispositif TrustZone des processeurs ARM récents : ce dispositif d’isolation mémoire assurée par le matériel semble garantir la protection de la SRAM.
 Démarrage de l’appareil par une image du système authentifiée par une signature électronique et dont le condensat cryptographique (hash) serait gravé dans le microcode ou dans quelque autre endroit inviolable semble aussi une voie d’investigation prometteuse.
Cela dit une telle exigence de démarrage authentifié a aussi des inconvénients, pour la mise à jour du microcode par exemple. Et tous les appareils ne disposent pas de cette fonction.

Ce travail, subventionné par la DARPA, agence du Département de la Défense américain (DoD), invalide le paradigme du traitement on-chip comme une défense efficace contre le vol de données.