Alors que les cartes à puce savent générer des nombres aléatoires, utilisés pour le cryptage, les puces RFID, purement passives, ne peuvent pas le faire et ne servent donc qu'à étiqueter des objets. Mais une astuce permettrait de passer outre et d'élargir l'utilisation de ces puces RFID, peu coûteuses.
Cela vous intéressera aussi

Une équipe de trois chercheurs de l'Université du Massachussets financée par la NSF (National Science Foundation) vient de publier ses travaux sur la génération de nombre aléatoires dans les puces RFIDRFID (Radio Frequency Identification). Ce type de circuit possède par nature des caractéristiques intrinsèques aléatoires qui permettent la génération de tels nombres (délais entre les portesportes des transistors, giguegigue électronique, métastabilité). Cependant la lecture de ces valeurs nécessite l'ajout d'un mécanisme de capture annexe à la puce.

Les chercheurs proposent une méthode qu'ils ont baptisée FERNS (pour Fingerprint Extraction and Random Numbers from SRAMSRAM - Static Random Access Memory), qui permet d'identifier une empreinte numériqueempreinte numérique à partir de l'état des transistors de la mémoire de la puce RFID lors de sa mise sous tension. Les cellules SRAM décrites dans l'étude sont composées de six transistors CMOSCMOS qui définissent une unité de stockage. Selon le procédé de fabrication, chacune de ces cellules va être initialisée à 0 ou à 1 après la phase de stabilisation qui suit la mise sous tension. Certaines de ces cellules seront invariablement initialisées avec la même valeur, alors qu'un certain nombre d'autres vont osciller entre les deux états à chaque mise sous tension. Des lectures répétées de l'état après initialisation permettent de différencier parmi les unités de mémoire celles qui se stabilisent de façon aléatoire de celles qui prennent toujours la même valeur. Les premières sont alors assimilées à du bruit, alors que les secondes définissent une empreinte numérique caractéristique de chaque puce RFID. Après la caractérisation d'un composant, une simple lecture associée à un filtrage après calcul de la distance de Hamming permet d'identifier de manière unique le circuit. Bien que l'extraction d'empreintes numériques à partir de mémoires ait déjà fait l'objet d'études et de brevets (voir les Sujets connexes ci-dessous), la génération de nombres aléatoiresnombres aléatoires constitue une avancée réelle dans le domaine. De plus, le très faible coût de la solution et l'augmentation des mémoires volatiles intégrées aux puces RFID promettent un bel avenir à cette technologie. L'équipe de l'Université du Massachusetts va maintenant étudier la vulnérabilité aux attaques de leur solution ainsi que la qualité des empreintes générées.

Profiter du hasard déjà à l'œuvre dans les mémoires

FERNS permet aussi la génération de nombres aléatoires. Celle-ci découle directement de la distribution elle-même aléatoire des cellules SRAM qui constituent l'empreinte. En effet, la connaissance de la localisation des bits d'identification permet de déduire où sont situés les cellules qui s'initialisent au hasard pour chaque puce. Les 2048 bits de la mémoire (256 octetsoctets) sont alors injectés dans une fonction de hachagefonction de hachage universelle NH qui permet de générer un nombre aléatoire de 128 bits. Cette clé peut ensuite être utilisée pour crypter les échanges entre la puce et le dispositif de lecture pour la duréedurée de la session (jusqu'à réinitialisation du circuit). Le générateurgénérateur ainsi réalisé n'est pas lié à un algorithme pseudo-aléatoire (qui au bout d'un moment répète les nombres générés) et a l'avantage d'être intégré par nature au circuit.

Les tests ont été réalisés à la fois sur des étiquettes virtuelles actives, des micro-contrôleurs TI MSP430F 1232 et des puces IntelIntel WISP, chaque composant étant constitué de blocs mémoire de 256 octets. Les résultats montrent que la méthode FERNS appliquée à tous ces dispositifs permet de générer des nombres aléatoires de 128bits qui passent les tests statistiques de cryptographiecryptographie du NISTNIST (National Institute for Standards and Technology).

Par Vincent Reboul