Classification des cartes à puce
Les systèmes de carte à puce sont classifiés en termes des fonctionnalités du système embarqué, ainsi que de la façon dont le système utilise ces dernières pour communiquer.
En fonction de leurs fonctions, nous avons deux variantes : cartes de stockage mémoire et cartes multifonctions :
Cartes de stockage mémoire
Les cartes de stockage mémoire permettent de garder des données importantes avec une fonctionnalité robuste de validation/identification. Le transfert de données est géré par le lecteur. Possédant de la mémoire non volatile (flash-I 2C), elles peuvent avoir aussi un mécanisme de protection d’accès par mot de passe.
Elles peuvent avoir une fonction spécifique, comme dans le cas des cartes téléphoniques qui peuvent être rechargeables ou jetables à la fin de leur utilisation ; à chaque appel effectué, un espace mémoire est effacé.
Cartes multifonction
Les cartes multifonctions intègrent un niveau plus élevé de sécurisation des transactions ainsi que la possibilité de gérer différents types d’informations d’accès sur un même système. Un exemple peut être une carte étudiante permettant d’avoir accès aux services numériques de la bibliothèque ainsi que la recharge des repas au restaurant universitaire.
Sécurisation de l’information dans les cartes à puce
Le coté pratique des systèmes à carte à puce, va s’accompagner de la nécessité de protéger les informations qui sont transférées d’un coté à l’autre durant une transaction quelconque. Ce besoin se manifeste fortement pour des applications où sont transmises des informations personnelles, qui ne doivent pas être accessibles que par les entités concernées par la transaction (clé du compte bancaire, document d’identité civile, etc).
La difficulté consiste à implanter les systèmes de protection de la puce. Cette protection doit être dans les deux sens de communication (la puce, en tant que système embarqué, et le lecteur, avec ou sans contact) de façon à éviter le succès de tout type d’attaque de la part d’un utilisateur malveillant.
Un mécanisme de protection doit alors être ajouté au niveau physique sur les signaux qui sont transmis, afin d’éviter toute fuite d’information, vis à vis des techniques d’attaque existantes sur les circuits intégrés et notamment, sur les cartes à puce.
Techniques d’attaque
Une attaque sur un système électronique consiste dans la récupération des signaux en utilisant différentes méthodes. Ceci est possible en ayant comme objectif l’extraction d’informations utiles ou réplication du comportement du composant d’origine, en violant la propriété intellectuelle et le caractère privé des informations gérées par le système électronique. Nous pouvons classifier les techniques d’attaque dans deux grands groupes : invasives et non invasives (figure 2.8).
Techniques Invasives
Ces techniques demandent une manipulation directe du matériel, impliquant une altération physique de sa structure. C’est le type de technique la plus coûteuse et complexe en terme de mise en place. Un traitement corrosif (HNO3) permet d’avoir accès à la puce électronique (fig. 2.9.a), qui permet de placer des micro sondes et capturer des signaux à l’intérieur de la puce (fig. 2.9.b).
Une autre variante de technique implique l’utilisation d’équipements spécialisés, tel que le FIB (Focused Ion Beam – Sonde Ionique focalisée), qui permet la modification du comportement des transistors de la puce via la variation des dépôts sur le matériel, ou simplement en changeant un état logique, à la recherche de désactiver le mécanisme de protection interne.
Techniques Non Invasives
Ce type d’attaques essaie d’avoir accès localement au dispositif, mais sans aucun endommagement du type physique sur le processeur par contact électrique.
En utilisant l’observation-mesure de signaux générés par le système existant, puis l’analyse mathématique de l’information, il est possible de discriminer et extrapoler les caractéristiques des informations importantes transférées.
Le traitement de signaux, la statistique et cryptographie participent activement à ce type de technique.
Elles sont connues comme attaques du canal actif (active side channel attacks), vu qu’elles se réalisent sur le canal de communication des données. Nous pouvons citer, entre autres :
Mécanismes de Protection
Comme contre mesure, les concepteurs de circuits intégrés établissent des méthodologies pour masquer le plus possible toute trace contenue sur le canal de communication qui puisse faciliter aux attaquants la découverte du comportement du processeur et encore les codes de cryptage transmis. Du coté algorithmique, des techniques robustes sont implémentées pendant la transmission de données pour altérer la structure des données. Dans le cadre du projet PROSECURE 32 , un des moyens de protection réalisé utilise le masquage des informations sur l’alimentation du circuit, avec l’étude des régulateurs de tension programmables, leur ajout de sources d’aléa et un démarrage programmable des étapes.
L’autre fonctionnalité concernée dans la protection de données, vient de l’intérieur du processeur, dont il utilise des processus de cryptage de données. Le processeur nécessite une source de valeurs impossibles à prédire pour leur utilisation tant que les clés uniques d’initialisation des algorithmes de chiffrement (AES, RSA, etc) sont maintenues.
Pour tel motif, nous avons besoin d’un bloc générateur de valeurs binaires aléatoires fiable, capable d’assurer les deux types de techniques de masquage possibles, sans pour autant occuper une grande surface physique ou consommant une énergie plus grande que le reste du système cryptographique. Nous allons décrire le comportement et proposer une classification des générateurs afin de retenir une solution utile pour
Les générateurs de valeurs aléatoires. notre système
Les générateurs de valeurs aléatoires
Les générateurs de valeurs aléatoires (RNG – Random Number Generator ) produisent des valeurs qui ne suivent aucun ordre ou séquence en particulier.
La figure 2.10 illustre d’une manière simple l’utilité d’un RNG dans le processus de cryptage du message vis à vis d’un potentiel attaquant. Le processeur utilise les valeurs du générateur aléatoire pour altérer la structure du message, de façon à ce qu’elles ne soient pas accessibles qu’au récepteur du message.
Vu de l’extérieur, le message transmis est incohérent et nécessite de l’analyse pour son exploitation.
Types de générateurs aléatoires
Le critère de classification des générateurs aléatoires coïncide avec celui des sources d’aléa. Il existe deux groupes : Générateur de Valeurs Pseudoaléatoires, PRNG (Pseudo Random Number Generator ), utilise des fonctions récursives arithmétiques-logiques de nature déterministe. Les données de sortie possèdent une distribution qui s’approche de l’aléatoire.
Son efficacité dépend donc de la robustesse de l’algorithme utilisé et de sa faible périodicité. Il est alors possible d’utiliser des techniques non invasives pour reconstruire le comportement des séquences et en conséquence l’algorithme générateur. Ceci justifie que ce générateur ne soit pas optimal comme bloc fondamental en cryptographie. Générateur de Valeurs Purement Aléatoires – TRNG (True Random Number Generator ), est un générateur plus robuste. Ils utilisent une source physique d’aléa, caractérisée par une distribution gaussienne.
Caractéristiques d’un TRNG
Un TRNG doit générer des séquences aléatoires sous un format défini : entiers, binaires, caractères, etc. Dans notre contexte, nous allons parler plus précisément de séquences binaires. Ceci reproduit exactement le tirage d’une monnaie en l’air. Un tirage effectué a un instant donné, ne provoque aucune influence sur le tirage prochain. Chaque événement de la séquence obtenue, dit « aléatoire » possède donc une indépendance mutuelle. Ainsi, la probabilité d’avoir des ’0’ ou des ’1’ doit être très proche du 50 %. Malheureusement, du à diverses facteurs physiques, cette condition n’est pas obtenue directement. Le biais dans une séquence impliquera la présence d’un correcteur.
Un TRNG doit satisfaire deux propriétés fondamentales :
Posséder une distribution statistique uniforme, car une distribution non uniforme permet aux attaquants d’espérer des séquences répétitives à la sortie du générateur. Contenir une source d’entropie, responsable de la caractéristique aléatoire, sujet à une étape de compensation du biais.
Techniques utilisées pour la conception des TRNG.
Comme mentionné précédemment, le TRNG se base sur l’utilisation d’une source physique d’aléa. Dans le cas de l’implantation sur silicium, l’aléa est extrait des propriétés intrinsèques des semiconducteurs. Nous allons, dans cette section, nous focaliser sur les techniques usuellement utilisées et centrées sur un approche analogique.
Caractéristiques du Système à Concevoir
Maintenant, nous allons définir les caractéristiques à satisfaire pendant la conceptionréalisation du système. La mise en oeuvre du circuit doit donner la priorité à une réalisation en analogique. L’IP à concevoir, d’un point de vue générique possède les caractéristiques suivantes :
– Tension d’alimentation : 3.3V.
– Adaptable à un processeur RISC 32 bits.
– Débit du RNG requis : supérieur à 50Kbps.
– Taille d’une trame à générer : au 32 – 64 bits par trame générée.
– Le générateur doit être construit de façon à rester le plus indépendant possible
du reste du circuit (consommation minimale souhaitée et-ou désactivation externe du système).
– Réalisation en technologie standard.
– Le générateur doit passer des tests de vérification d’aléa standard.
Le tableau 2.1 résume les différentes caractéristiques des implémentations des TRNG dans la littérature, vis-à-vis de l’état de l’art des solutions analogiques sur technologie standard de fabrication.
L’étude des architectures implique l’analyse des techniques mais aussi des caractéristiques et résultats obtenus (pas cités en détail dans toutes les publications). Cela représente un compromis entre la technologie de fabrication, le contexte d’application et la consommation.