Aller au contenu

Les PUF : dériver une clé des défauts de fabrication d'une puce

Les PUF : dériver une clé des défauts de fabrication d’une puce

Section intitulée « Les PUF : dériver une clé des défauts de fabrication d’une puce »

Deux puces sorties du même masque, de la même galette de silicium, à la minute près, ne sont pas identiques. La gravure a des tolérances, le dopage se répartit de façon légèrement inégale, les épaisseurs d’oxyde varient de quelques atomes. Ces écarts sont trop petits pour gêner le fonctionnement du circuit et trop petits pour être reproduits à la demande, même par le fondeur qui les a involontairement produits. Une fonction physiquement non clonable, ou PUF, consiste à mesurer ces écarts et à s’en servir comme d’un secret.

L’idée est séduisante au point d’être suspecte : une clé qui n’est stockée nulle part, puisqu’elle est le circuit lui-même. C’est la promesse qui circule dans les brochures, et elle est à peu près aussi exacte qu’une recette de cuisine qui oublierait la cuisson. Ce qui suit décrit le mécanisme réel, ce qu’il faut ajouter autour pour qu’il fonctionne, et les familles de PUF que la recherche a démontées.

→ Lire l’explication complète de la marmotte

Une PUF se présente comme une fonction : on lui soumet un défi, elle renvoie une réponse. Le lien entre les deux ne vient d’aucun calcul programmé, mais de la physique du circuit interrogé.

La famille la plus déployée est la PUF SRAM. Une cellule de mémoire statique est faite de deux inverseurs qui se contredisent : à la mise sous tension, avant que quoi que ce soit n’ait été écrit, la cellule bascule vers 0 ou vers 1 selon celui des deux transistors qui est marginalement plus rapide. Ce déséquilibre est fixé par la fabrication. Lire l’état de démarrage de quelques milliers de cellules fournit donc une empreinte propre à la puce, et deux puces voisines donnent des empreintes sans rapport.

L’autre grande famille mesure des délais de propagation. La PUF à arbitre lance deux signaux dans deux chemins logiques censés être symétriques et regarde lequel arrive le premier : les écarts de gravure décident du vainqueur. Le défi sélectionne le trajet, la réponse est le résultat de la course.

La différence entre les deux familles n’est pas de l’ordre du détail. Une PUF SRAM fournit une empreinte unique de taille fixe, utile pour dériver une clé. Une PUF à arbitre accepte un très grand nombre de défis distincts, ce qui permet des protocoles d’authentification défi-réponse — et c’est précisément cette richesse qui l’a rendue attaquable.

Ce que la brochure oublie : la réponse est bruitée

Section intitulée « Ce que la brochure oublie : la réponse est bruitée »

Une PUF ne mesure pas une valeur, elle mesure une tendance. Une cellule SRAM franchement déséquilibrée donnera toujours le même bit ; une cellule presque équilibrée tirera à pile ou face à chaque démarrage, et basculera selon la température, la tension d’alimentation et le vieillissement du circuit. Sur une empreinte de plusieurs milliers de bits, quelques pourcents sont donc instables d’une lecture à l’autre.

Pour une clé cryptographique, c’est éliminatoire. Un seul bit faux dans une clé AES et le déchiffrement ne produit rien d’exploitable : il n’existe pas de « presque la bonne clé ». Une PUF brute ne peut donc pas servir de clé, et cette phrase suffit à disqualifier la moitié des argumentaires commerciaux du domaine.

Le dispositif qui rend la chose utilisable s’appelle un extracteur flou (fuzzy extractor), et il travaille en deux temps.

À l’enrôlement, en usine, on lit l’empreinte une première fois, on en dérive la clé, et on calcule des données d’aide (helper data) : essentiellement le syndrome d’un code correcteur d’erreurs, qui décrit comment rattraper l’écart entre une lecture future et la référence. Ces données d’aide sont stockées en mémoire non volatile, et — point contre-intuitif mais central — elles n’ont pas besoin d’être secrètes.

À la régénération, le circuit relit l’empreinte, bruitée différemment, combine cette lecture avec les données d’aide, corrige les bits divergents, et retrouve la clé exacte de l’enrôlement.

Deux fonctions se succèdent là-dedans, et les confondre est l’erreur classique. La réconciliation d’information corrige les erreurs. L’amplification de confidentialité comprime ensuite le résultat corrigé en une clé, en tenant compte de ce que les données d’aide ont fatalement divulgué. Car elles divulguent : un syndrome de code correcteur est une fonction de l’empreinte, donc une fuite partielle. Le calcul d’entropie restante doit la soustraire, et une publication de 2023 montre que sur une SRAM biaisée — dont les cellules ne tirent pas 0 et 1 à parts égales — la fuite via des codes concaténés peut suffire à rendre l’entropie résiduelle insuffisante, obligeant à injecter des bits aléatoires supplémentaires. Une étude de 2018 avait établi un cas plus brutal encore : avec un simple code à répétition et une PUF peu entropique, l’entropie restante peut tomber à zéro.

D’où une pratique répandue, le tri des cellules fortes : à l’enrôlement, on ne retient que les cellules qui donnent le même bit à chaque mise sous tension, ce qui abaisse le taux d’erreur et réduit d’autant la correction nécessaire. On paie ce confort en surface de silicium, puisqu’il faut bien plus de cellules que de bits de clé.

Les objectifs de fiabilité annoncés par les industriels tournent autour d’une probabilité d’échec de régénération inférieure à 10⁻⁹. Ces chiffres viennent de documents commerciaux et de contextes d’essai particuliers ; ils ne constituent pas un seuil normatif universel, et il faut les lire comme ce qu’ils sont — des engagements de fournisseur, à vérifier dans les conditions d’emploi réelles.

Le gain n’est pas d’obtenir une clé « plus sûre » qu’une clé tirée d’un bon générateur d’aléa. Il est ailleurs, et il est logistique autant que cryptographique.

Supprimer l’injection de clés en usine. Approvisionner un million de microcontrôleurs en clés uniques suppose normalement un poste de personnalisation : un équipement qui génère la clé, l’écrit dans la puce, et constitue de ce fait un point où toutes les clés du parc transitent. Avec une PUF, chaque puce dérive sa propre clé racine de sa propre physique ; il n’y a plus de base de clés à produire, à transporter, ni à ne pas perdre.

Ne pas conserver la clé au repos. Entre deux usages, la clé racine n’existe pas dans le circuit. Elle est reconstruite à la mise sous tension et effacée ensuite. Un attaquant qui démonte une puce éteinte et lit intégralement sa mémoire non volatile n’y trouve que des données d’aide, qui ne valent rien sans le silicium dont elles décrivent les défauts.

Ancrer une chaîne de confiance. La clé racine issue de la PUF sert à chiffrer les autres clés, selon le même étagement que le chiffrement par enveloppe et la distinction entre clé de chiffrement de clés et clé de données. La PUF occupe le sommet de cet arbre, là où un HSM place une clé maîtresse protégée par son enveloppe physique.

Cette technologie est industriellement déployée, pas expérimentale : les PUF SRAM équipent des éléments sécurisés du commerce, et le fournisseur historique du domaine, Intrinsic ID, a été racheté par Synopsys en mars 2024, ce qui en dit assez sur la valeur attribuée au procédé. Les implémentations se présentent aujourd’hui surtout comme des logiciels qui exploitent la SRAM déjà présente dans le circuit, plutôt que comme des blocs matériels dédiés.

Les PUF à délais, celles qui acceptent de nombreux défis, ont une faiblesse structurelle : leur comportement est modélisable. Une PUF à arbitre se décrit raisonnablement comme une fonction à seuil linéaire dont les poids sont les écarts de gravure. Un attaquant qui peut soumettre des défis et observer les réponses collecte des couples, les donne à un apprenticiel, et obtient un modèle qui prédit les réponses aux défis qu’il n’a jamais essayés. Il n’a pas cloné la puce ; il a appris à l’imiter, ce qui produit le même résultat pour tout protocole d’authentification.

Les parades ont consisté à composer plusieurs PUF pour briser la linéarité — XOR de plusieurs arbitres, PUF à retour, PUF Interpose. L’histoire de ces dix dernières années est celle d’une course perdue à peu près à chaque étape :

  • les variantes XOR, longtemps réputées solides, ont cédé aux réseaux de neurones, avec des travaux de 2021 qui les attaquent plus vite, sur de plus grands paramètres et avec moins de couples collectés qu’auparavant ;
  • la PUF Interpose, proposée précisément pour résister à cela, a été modélisée dès 2020 par une approche « diviser pour régner », en des temps de calcul allant de quelques secondes à quelques jours ;
  • les PUF à double arbitre, que l’apprentissage classique n’avait pas entamées, ont été prédites à plus de 86 % par apprentissage profond en 2019 ;
  • une attaque de 2020 ajoute l’insulte à l’injure : un canal auxiliaire de consommation électrique relevé sur une PUF de référence entraîne un modèle qui attaque ensuite d’autres puces identiques.

La leçon est à retenir dans son bon sens, car les deux lectures excessives sont fausses. Les PUF ne sont pas « cassées » : la PUF SRAM utilisée pour dériver une clé unique, non exposée à un interrogatoire arbitraire, reste un ancrage solide et déployé. Mais une PUF n’est pas une primitive cryptographique de confiance par construction. Sa sécurité dépend de l’absence d’un oracle d’interrogation, de l’entropie réelle du silicium, de la qualité de l’extracteur flou, et de la résistance du dispositif à l’observation physique. Ce ne sont pas des hypothèses accessoires : ce sont les hypothèses.

C’est la différence entre « non clonable » au sens du fondeur et « non modélisable » au sens de l’attaquant. Le premier adjectif figure dans le nom de la technologie ; le second, qui est celui dont on aurait besoin, n’y figure pas.

La normalisation existe, en deux parties, et elle est utile justement parce qu’elle refuse de traiter la PUF comme une boîte noire magique.

ISO/IEC 20897-1:2020 fixe les exigences de sécurité : propriétés des sorties, résistance à l’altération, non-clonabilité, pour une PUF individuelle comme pour un lot de production. Elle décrit aussi des cas d’usage types, puisque le niveau de sécurité exigible dépend de l’emploi. La génération d’aléa est explicitement hors de son périmètre — une PUF est une source d’identité reproductible, pas un générateur de hasard, et confondre les deux est une faute de conception.

ISO/IEC 20897-2:2022 donne les méthodes d’essai, et sa table des matières est un bon résumé de ce qu’il faut interroger chez un fournisseur : stabilité (la même puce redonne-t-elle la même réponse ?), aléa (les réponses sont-elles bien distribuées ?), unicité (deux puces diffèrent-elles assez ?), résistance à l’altération, non-clonabilité mathématique — c’est le critère qui recouvre les attaques par modélisation — et non-clonabilité physique. Une deuxième édition de cette partie est en préparation.

La norme se rattache explicitement à ISO/IEC 19790, qui porte les exigences applicables aux modules cryptographiques, avec une justification qui résume l’intérêt du procédé : une PUF est une façon d’éviter de stocker des paramètres de sécurité, ce qui élève la sécurité d’ensemble du module. Même raisonnement que les certifications FIPS et Critères communs appliquent aux HSM : ce qui compte n’est pas la revendication, c’est la méthode d’essai qui la soutient.

« Pas de clé stockée, donc rien à voler. » La clé est stockée : dans le silicium. Un attaquant qui emporte l’équipement emporte le résonateur, le réseau de cellules, les écarts de gravure — donc la clé, à condition de savoir les lire. La PUF déplace le secret d’une mémoire vers une structure physique, ce qui change radicalement le coût de l’extraction mais ne l’annule pas. Le gain réel est contre un adversaire qui lit la mémoire ; il est bien plus faible contre un laboratoire équipé pour l’analyse physique.

« C’est unique, donc c’est secret. » L’unicité et le secret sont deux propriétés distinctes, et une PUF à arbitre interrogeable fournit un unique parfaitement public au bout de quelques milliers de couples défi-réponse. L’empreinte d’un pneu est unique ; elle n’est pas confidentielle pour autant.

Rien de dramatique : une clé racine tirée d’un bon générateur d’aléa et conservée dans une zone protégée fait le même travail, et c’est ce que font la grande majorité des équipements. Ce qu’on perd en renonçant aux PUF est logistique : il faut un poste de personnalisation en usine, donc un endroit par lequel passent toutes les clés d’un parc, avec sa chaîne de garde, ses sauvegardes et son risque de compromission unique. À l’inverse, adopter une PUF sans son extracteur flou, sans mesure d’entropie réelle et sans savoir si le composant est interrogeable par un attaquant revient à remplacer un risque connu et gérable par un risque inconnu présenté comme nul. La formule « la clé n’est stockée nulle part » est le genre d’affirmation qui devrait déclencher une question plutôt qu’un bon de commande.

Quand une usine fabrique des puces électroniques, elle les veut toutes identiques, et elle n’y arrive pas tout à fait. Les motifs gravés dans le silicium ont des tolérances, de l’ordre de quelques atomes, qui n’empêchent pas la puce de fonctionner mais qui font que deux puces jumelles ne sont jamais exactement pareilles. Ces petits défauts sont involontaires, et l’usine elle-même serait incapable de refaire les mêmes sur commande. L’idée des PUF est de mesurer ces défauts et de s’en servir comme d’un mot de passe propre à chaque puce, qu’on n’a jamais eu besoin d’écrire dedans.

Le problème est que la mesure n’est pas tout à fait la même d’une fois sur l’autre : il fait plus chaud, la puce a vieilli, et quelques points du relevé changent. Pour un mot de passe informatique, c’est rédhibitoire, car il faut le retrouver exactement, au caractère près : il n’y a pas de « presque juste ». On ajoute donc un mécanisme de rattrapage. À la sortie d’usine, on relève l’empreinte une première fois et on enregistre à côté des indications qui permettront de corriger les écarts futurs. Ces indications n’ont pas besoin d’être cachées : seules, elles ne servent à rien, car elles décrivent les défauts d’une puce sans les contenir. À chaque démarrage, la puce relit son empreinte, la corrige avec ces indications, et retrouve le mot de passe exact.

L’intérêt principal n’est pas que ce mot de passe soit meilleur qu’un autre, mais qu’on n’ait plus à le fabriquer et à le transporter. Normalement, pour donner un mot de passe différent à un million d’appareils, il faut une machine en usine qui les produise et les inscrive, et cette machine voit passer tous les mots de passe du parc : c’est un endroit très intéressant pour un voleur. Avec une PUF, chaque appareil trouve le sien tout seul, dans ses propres défauts.

Il y a une limite importante, et elle a fait beaucoup de dégâts dans une partie de cette famille de techniques. Certaines PUF sont conçues pour répondre à un grand nombre de questions différentes, afin de prouver leur identité en répondant à chaque fois à une question nouvelle. Des chercheurs ont montré qu’en posant quelques milliers de questions et en notant les réponses, un programme d’apprentissage automatique devine ensuite les réponses aux questions qu’il n’a jamais posées. Il n’a pas copié la puce, il a appris à l’imiter, ce qui suffit pour se faire passer pour elle. Les versions conçues pour résister à cela ont été percées les unes après les autres. La forme simple, celle qui produit une seule empreinte sans répondre à des questions, n’est pas concernée et reste très utilisée.

La formule publicitaire qu’il faut accueillir avec méfiance est celle qui dit que la clé n’est stockée nulle part. Elle est stockée : dans la matière de la puce. Celui qui emporte l’appareil emporte aussi ses défauts de fabrication, et s’il dispose d’un laboratoire capable de les examiner, il a la clé. La technique ne supprime donc pas le secret, elle le met ailleurs — dans un endroit beaucoup plus coûteux à lire, ce qui est déjà très utile, mais ce n’est pas la même chose que de dire qu’il n’y a plus rien à voler.

À lire aussi

  • Créer, vérifier et utiliser les clés dès le départInstaller les réflexes de génération, vérification, usage séparé et protection de clés avant d’aborder les primitives qui les consomment.
  • Évaluer la force d’une protectionExpliquer comment raisonner en bits de sécurité, en durée de confidentialité et en coût réel d’attaque, sans réduire la décision à la longueur d’une clé.
  • ISORéférence normative internationale pour les systèmes de management, les contrôles et la gestion des risques.
  • IECCoéditeur des normes ISO/IEC et repère clé dès que la sécurité touche l’industrie, l’énergie ou les équipements.

Pages voisines