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.

au sommaire


    Les Bulletins Electroniques (BE) sont un service ADIT

    Les Bulletins Electroniques (BE) sont un service ADIT

    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 RFID (Radio Frequency IdentificationRadio 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, gigue é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 SRAM - Static Random Access MemoryRandom Access Memory), qui permet d'identifier une empreinte 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 CMOS 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 connexesconnexes ci-dessous), la génération de nombres 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