FireFoX
DZSatien Accro
- Inscrit
- 6/4/07
- Messages
- 601
Petite histoire de la carte à puce
La carte à puce ou carte à microprocesseur est une révolution technologique apparue en 1974 grâce à Roland Moreno son créateur qui a gagné notre quotidien en moins de 30 ans. Devenu un indispensable outil et objet de consommation, la carte à puce apparaît comme un sésame pour bons nombres de nos transactions quotidiennes. Présente dans nos mobiles, sur nos cartes bancaires, sur notre carte de santé, la puce est un véritable porte-clé cryptographique capable de garantir la sécurité de bon nombre d'échanges.
Dans ce parcours, nous allons présenter la technologie de la carte à puce au travers de son architecture, puis nous nous focaliserons sur son aspect sécuritaire en abordant le profil de certains attaquants et leurs motivations. Enfin, nous donnerons quelques contre-mesures pour se prémunir de certaines attaques.
Les différents types de cartes à puce.
Il existe essentiellement 4 types de cartes à puce:
La carte à mémoire personnalisée est une carte à mémoire simple qui fournit en plus un système de protection en logique cablée: ce système peut être une zone protégée en écriture après destruction d'un fusible, une zone protégée en lecture et écriture par un code confidentiel.
Enfin celle qui nous intéresse, la carte à microprocesseur, est un véritable micro-ordinateur avec son microprocesseur, de la mémoire RAM ( Random Acess Memory) allouée aux calculs, et de la mémoire allouée aux données. Elle est généralement munie d'un système d'exploitation COS (Chip Operating System) aussi appelé le masque ou "Hard Mask" qui est stocké dans la ROM (Read Only Memory) au moment de sa conception et ne peut donc pas être modifié durant la vie de la carte.
Pour les cartes avec contact, les composants sont logés sous la partie visible de la puce que l'on appelle contacts. Ceux-ci permettent d'établir tous les échanges entre la puce et l'extérieur que ce soit pour l'alimentation ou les échanges de données.
Enfin, les cartes sans contact possède les mêmes caractéristiques fonctionnelles que les cartes à microprocesseur; elles sont alimentées par induction (l'induction est un principe physique qui permet de transformer l'énergie mécanique ( le mouvement) placée dans un champ magnétique en énergie électrique) et équipée d'une antenne pour communiquer à des distances de quelques centimètres par radiofréquence (13,56 MHz principalement).
Présentation physique d'une carte à puce.
Le support plastique de la puce ( la carte) a des dimensions précises ( 85,6 mm par 54 mm pour 0,76 mm d'épaisseur) définies par les standards de normalisation AFNOR (pour la france) et ISO/IEC 7816-x pour l'international. Le standard ISO 7816-2 par exemple, définit les dimensions de la puce ( surface <25 mm^2 et d'épaisseur <0,3 mm). Évoquer les standards physiques de la carte à puce n'est pas anodin: ils contribuent à la sécurité de la carte à puce. L'objet "carte" est en effet le premier contact (visuel) qu'un commerçant ou toute autre personne a sur cette technologie. Il apparaît clair qu'un commerçant refusera d'encaisser un client à l'aide d'une carte toute blanche, sans hologrammes ou sans logo bancaire. Il en est de même si le client présente une carte à puce triangulaire, héxagonale voire rectangulaire avec un format non normalisé. Le format a effectivement une importance pour le terminal de paiement (ou lecteur de cartes): une carte dont le format n'est pas conforme ne pourra pas être lue par le terminal.
Architecture des cartes à puce.
Nous avons vu qu'une carte était composé d'un microprocesseur et différents types de mémoire: la ROM, la RAM et une zone mémoire allouée au stockage de données. Cette mémoire est basée soit sur la technologie de l'EPROM soit de l'EEPROM. L'EPROM est une mémoire ineffaçable ( la puce est enfermée dans un enrobage opaque aux ultraviolets) alors que l'EEPROM est effaçable puis réinscriptible. Nous allons maintenant détailler l'ensemble des contacts d'une carte à puce.
Une carte à puce possède 8 contacts dont 2 sont Réservés à de Futurs Usages. La puce dispose d'un contact masse et d'un contact Vcc par lequel l'alimentation de la puce se fait.la puce fonctionne sur une tension comprise entre 4,75 et 5,25 V et à une intensité de 200mA. Le contact Reset permet de définir les protocoles de communications et de remettre à 0 le compteur mémoire. Le contact I/O permet de lire et d'écrire des données en série et en mode half-duplex cadencé par l'horloge qui est le contact CLK. Le contact Vpp permet de fournir l'alimentation nécessaire à l'écriture en EEPROM. Si la technologie utilisée est l'EPROM alors l'un des contacts devient FUSE et ce contact permet de vérifier, à l'aide d'un ohmmètre que l'on place entre la masse et FUSE, si le fusible permettant l'accès à l'EPROM a bien été détruit.
Les acteurs de la vie des cartes à puce.
Nous allons dans cette partie présenter les entités qui interviennent dans la vie d'une carte à puce depuis sa phase de fabrication jusqu'à sa destruction logique ou physique. Les principaux acteurs sont :
Introduction à la sécurité des cartes à puces.
Avant de s'intéresser à la sécurité d'un système, il est important de faire une étude qualitative et quantitative des risques afin que la solution sécuritaire proposée soit le plus adéquate possible. Pour illustrer ce propos prenons un exemple. On considère que l'on veuille se prémunir contre le vol d'une moto de valeur machande 7000 euros. Pour ce faire, il y a deux extrêmes absurdes à éviter :
Cet exemple illustre un paramètre très important en sécurité générale: la dissuasion. Tout bon responsable sécurité doit admettre que la sécurité absolue n'existe pas et il faut s'assurer que le dispositif sécuritaire mis en place présente un coût supérieur à contourner que les intérêts qu'il protège. Pour mettre en place un bon dispositif de sécurité, il faut faire une bonne évaluation des risques en essayant notamment d'évaluer la convoitise de ce que l'on veut sécuriser. La convoitise est une donnée distincte du coût d'un objet. Par exemple une fusée spatiale est beaucoup moins convoitée qu'une auto malgré son coût bien plus élevé. Cette considération permet d'estimer le risque sécuritaire. Et pour faire une bonne évaluation des risques il faut s'intéresser au profil des attaquants, à leurs objectifs ainsi qu'aux moyens à leur disposition pour les réaliser.
Profils des attaquants de cartes à puce et motivations.
Une bonne approche pour saisir les risques liées aux cartes à puce est de s'intéresser aux motivations des attaquants. Ces dernières peuvent être découpées ainsi :
L'obtention de données est une attaque qui vise les cartes contenant des données personnelles. On peut citer les cartes de santé, ou les cartes permettant l'accès à des données sensibles de type militaire. Dans le premier cas, l'accès aux données d'une carte de santé relève de l'atteinte à la vie privée et dans le deuxième cas, les pertes peuvent être financières ou humaines.
L'usurpation d'identité est une attaque menée sur les cartes à puce programmées pour authentifier un individu. Typiquement, l'application de ces cartes est le contrôle d'accès, le démarrage d'une auto.
Il reste enfin la notoriété : une catégorie d'attaquant n'ont que des objectifs publicitaires; ils cherchent à se faire connaître soit dans le milieu du hacking ( ils mènent des attaques via un pseudonyme et cherche à se faire reconnaître à travers elles, parfois dans le but de faire de la contre-publicité à un système ou de diffuser des messages à caractère politique ) soit dans le milieu de la sécurité ( attaquer pour trouver des failles et améliorer le système).
Cible des attaquants de cartes à puce.
Une attaque sur une carte à puce vise toujours un des composants présentés en partie précédemment (partie architecture) parce qu'ils contiennent toutes les informations sensibles. L'attaquant va toujours chercher à lire ou modifier :
Attaques physiques sur cartes à puces.
On appelle attaque physique, toute attaque menée sur la puce en tant que composant matériel électronique. Ces attaques supposent une connaissance approfondie de l'architecture d'une carte à puce. La présentation de la partie sur l'architecture est non-exhaustive c'est-à-dire qu'en général l'attaquant possède encore plus d'informations spécifiques sur la cible avant l'attaque.
Les attaques physiques sont elle-mêmes rangées en deux sous-catégorie :
Les attaques non-invasives ne vont s'intéresser qu'à des paramètres externes à la puce liés à son fonctionnement. Ces attaques sont plus répandues ( car moins coûteuses ) et plus pernicieuses car elles n'altèrent en rien le fonctionnement de la carte et ne permet donc pas à son détenteur de soupçonner l'existence même de l'attaque.
Attaques invasives
Les attaques invasives sont des attaques menées en général par des experts et requiert du matériel au coût très élevé. Pour ce type d'attaque, il faut tout d'abord isoler le composant électronique et pour cela, l'attaquant met à nu le circuit imprimé, que ce soit chimiquement ou physiquement ( cela revient à "casser " la protection en plastique qui entoure le circuit. Ensuite, l'attaquant doit avoir des connaissances électroniques pour comprendre l'architecture de la puce pour contourner les protections électroniques. Cela passe par la reconstitution de circuits à l'aide d'un FIB (Focus Ion Beam)(Un FIB est un outil utilisé en électronique permettant de réaliser des microcircuits) la lecture ou la modification de bits par LASER. Ce sont des attaques de Reverse-engineering c'est-à-dire que l'attaquant va tenter de récupérer le maximum d'information sur le circuit pour en déduire la les algorithmes utilisés, la manière dont ils ont été implémentés, les sécurités misent en place, pour enfin peut-être tenter de récupérer tout ou partie de la clé.
Attaques non-invasives
Les attaques non-invasives exploitent les canaux cachés du microprocesseur. Dans ce type d'attaque, on va mesurer un paramètre physique extérieur de la puce pendant son activité; on ne touche donc pas à l'intégrité physique de la puce. Ce paramètre physique peut être le temps de calcul, le courant, ou le champ électromagnétique émis par la puce.
Ces attaques sont typiquement des attaques à clair connu c'est-à-dire que l'attaquant va soumettre au chiffrement de la puce un ensemble de messages bien choisis. Pendant que la puce chiffrera ces messages l'attaquant relèvera les données du paramètre physique mesuré. Une fois ces paramètres récupérés, l'attaquant par analyse directe des données ou par analyse statistique en déduira des données sur la clé.
Dans ces attaques on retrouve la "Timing Attack" qui exploitent le temps d'éxécution d'une puce, la SPA ( Simple Power Analysis ) et la DPA ( Differential Power Analysis) qui mesure le courant consommé par la puce pendant son activité et enfin la SEMA (Simple Electro Magnetic Analysis) et la DEMA ( Differential Electro- Magnetic Analysis) qui exploitent le rayonnement électromagnétiques dû à l'effet inductif produit par le courant passant dans les circuits de la puce. Dans les attaques SPA et SEMA l'analyse des données est directe alors qu'elle est statistique pour les DPA et DEMA.
Attaques logiques sur cartes à puces.
Les attaques logiques exploitent les failles algorithmiques permettant à l'attaquant de contourner les protections mises en place. Nous allons dans cette partie en présenter deux.
La première concerne le code PIN. En théorie, le code PIN ne peut être tenté que 3 fois après quoi la carte se bloque. Pour que ce dispositif de sécurité fonctionne correctement il faut disposer d'un compteur que l'on incrémente avant la demande de code PIN. Si tel n'est pas le cas, cela signifie que la carte demande le code PIN teste s'il est correct ou non et incrémente ensuite le compteur. La faille exploitable dans le deuxième cas est que l'attaquant peut tenter son code PIN, attendre la réponse de la carte et la retirer juste avant l'incrémentation s'il est erroné permettant ainsi à l'attaquant de tenter éventuellement les 10000 codes possibles ( 10000 s'il n'a pas de chance ). Ce type d'attaque n'est évidemment pas possible chez un commerçant mais devient tout-à-fait réalisable dans certains automates revendeurs de cassettes vidéo ou même aux billeteries automatiques d'une certaine société de réseau férrée ( la carte n'est pas avalée comme dans un DAB).
Une deuxième attaque logique présentée ici est celle de la datation. Il existe des attaques dite de rejeu et qui consiste à éxécuter plusieurs fois la même action par une application qui ne l'a a priori autorisée qu'une seule fois. Prenons l'exemple d'un individu qui cherche à faire un virement d'un compte A vers un compte B. Si un attaquant intercepte un message électronique permettant de créditer son propre compte il peut a priori renvoyer ce message n fois à la banque de la victime pour récupérer son argent. La faille exploitée est liée au problème de la datation et à la mise en place d'un compteur permettant de ne réaliser qu'une et une seule fois le virement.
Solutions pour cartes à puces contre les attaques non-invasives.
Les attaques non-invasives consistent essentiellement à déterminer l'activité de la puce pour en déduire des informations secrètes et cela passe par analyse de paramètres physiques ( tels que le temps d'éxécution, le courant, le champ magnétique...), qui s'avèrent être un réel canal subliminal d'informations. Les contre-mesures à ce type d'attaques vont consister donc soit à brouiller l'information qui passe par ces canaux soit à atténuer ou éliminer le signal émis.
Pour brouiller l'information l'encarteur possède plusieurs techniques néanmoins semblables :
Générer de l'activité aléatoire, c'est introduire des opérations leurres et aléatoires que la puce effectuera en parallèle pour induire l'attaquant en erreur. Ce brouillage est donc algorithmique. En pratique, la puce effectue des calculs aléatoires en parallèle et cache donc les opérations réellement effectuées par la puce dans le cadre cryptographique.
Reste enfin les techniques qui visent à atténuer le signal émis par la puce dans ces canaux parallèles: celles ci reposent sur le hardware et l'encarteur va pour cela essentiellement chercher à minimiser la consommation de la puce, de sorte que les attaques par analyse de courant ou de champs magnétique soient plus difficilement réalisable. L'encarteur réduit également la taille des composants et dispose des couches de métal pour protéger la puce.
Solutions pour cartes à puces contre les attaques invasives.
Pour se prémunir des attaques invasives, la solution consiste à détecter l'attaque pour bloquer dans un premier temps l'activité de la puce et dans un deuxième d'envisager le suicide logique de la puce après cette attaque afin qu'aucune donnée n'ait été transmise. Pour cela, deux solutions sont adoptées aujourd'hui, l'une est physique l'autre est logique.
Une solution physique consiste à placer la puce sous des couches de métal sur lesquels on place des détecteurs d'activité anormale. Ceux-ci sont sensibles à la température, aux UV, aux rayons X et communique à la puce toute opération suspecte. C'est alors que la puce se bloquera voire provoquera sa mort logique.
Une solution logique supplémentaire pour éviter les attaques invasives est d'introduire régulièrement dans les calculs des contrôles d'intégrité permettant de s'assurer que les données n'aient été modifiées par l'extérieur. Cette technique est également utilisée pour se prémunir des attaques par injection de fautes ( DFA ).
La carte à puce ou carte à microprocesseur est une révolution technologique apparue en 1974 grâce à Roland Moreno son créateur qui a gagné notre quotidien en moins de 30 ans. Devenu un indispensable outil et objet de consommation, la carte à puce apparaît comme un sésame pour bons nombres de nos transactions quotidiennes. Présente dans nos mobiles, sur nos cartes bancaires, sur notre carte de santé, la puce est un véritable porte-clé cryptographique capable de garantir la sécurité de bon nombre d'échanges.
Dans ce parcours, nous allons présenter la technologie de la carte à puce au travers de son architecture, puis nous nous focaliserons sur son aspect sécuritaire en abordant le profil de certains attaquants et leurs motivations. Enfin, nous donnerons quelques contre-mesures pour se prémunir de certaines attaques.
Les différents types de cartes à puce.
Il existe essentiellement 4 types de cartes à puce:
- les cartes à mémoire simple
- les cartes à mémoire personnalisée
- les cartes à microprocesseur
- les cartes sans contact
La carte à mémoire personnalisée est une carte à mémoire simple qui fournit en plus un système de protection en logique cablée: ce système peut être une zone protégée en écriture après destruction d'un fusible, une zone protégée en lecture et écriture par un code confidentiel.
Enfin celle qui nous intéresse, la carte à microprocesseur, est un véritable micro-ordinateur avec son microprocesseur, de la mémoire RAM ( Random Acess Memory) allouée aux calculs, et de la mémoire allouée aux données. Elle est généralement munie d'un système d'exploitation COS (Chip Operating System) aussi appelé le masque ou "Hard Mask" qui est stocké dans la ROM (Read Only Memory) au moment de sa conception et ne peut donc pas être modifié durant la vie de la carte.
Pour les cartes avec contact, les composants sont logés sous la partie visible de la puce que l'on appelle contacts. Ceux-ci permettent d'établir tous les échanges entre la puce et l'extérieur que ce soit pour l'alimentation ou les échanges de données.
Enfin, les cartes sans contact possède les mêmes caractéristiques fonctionnelles que les cartes à microprocesseur; elles sont alimentées par induction (l'induction est un principe physique qui permet de transformer l'énergie mécanique ( le mouvement) placée dans un champ magnétique en énergie électrique) et équipée d'une antenne pour communiquer à des distances de quelques centimètres par radiofréquence (13,56 MHz principalement).
Présentation physique d'une carte à puce.
Le support plastique de la puce ( la carte) a des dimensions précises ( 85,6 mm par 54 mm pour 0,76 mm d'épaisseur) définies par les standards de normalisation AFNOR (pour la france) et ISO/IEC 7816-x pour l'international. Le standard ISO 7816-2 par exemple, définit les dimensions de la puce ( surface <25 mm^2 et d'épaisseur <0,3 mm). Évoquer les standards physiques de la carte à puce n'est pas anodin: ils contribuent à la sécurité de la carte à puce. L'objet "carte" est en effet le premier contact (visuel) qu'un commerçant ou toute autre personne a sur cette technologie. Il apparaît clair qu'un commerçant refusera d'encaisser un client à l'aide d'une carte toute blanche, sans hologrammes ou sans logo bancaire. Il en est de même si le client présente une carte à puce triangulaire, héxagonale voire rectangulaire avec un format non normalisé. Le format a effectivement une importance pour le terminal de paiement (ou lecteur de cartes): une carte dont le format n'est pas conforme ne pourra pas être lue par le terminal.
Architecture des cartes à puce.
Nous avons vu qu'une carte était composé d'un microprocesseur et différents types de mémoire: la ROM, la RAM et une zone mémoire allouée au stockage de données. Cette mémoire est basée soit sur la technologie de l'EPROM soit de l'EEPROM. L'EPROM est une mémoire ineffaçable ( la puce est enfermée dans un enrobage opaque aux ultraviolets) alors que l'EEPROM est effaçable puis réinscriptible. Nous allons maintenant détailler l'ensemble des contacts d'une carte à puce.
Une carte à puce possède 8 contacts dont 2 sont Réservés à de Futurs Usages. La puce dispose d'un contact masse et d'un contact Vcc par lequel l'alimentation de la puce se fait.la puce fonctionne sur une tension comprise entre 4,75 et 5,25 V et à une intensité de 200mA. Le contact Reset permet de définir les protocoles de communications et de remettre à 0 le compteur mémoire. Le contact I/O permet de lire et d'écrire des données en série et en mode half-duplex cadencé par l'horloge qui est le contact CLK. Le contact Vpp permet de fournir l'alimentation nécessaire à l'écriture en EEPROM. Si la technologie utilisée est l'EPROM alors l'un des contacts devient FUSE et ce contact permet de vérifier, à l'aide d'un ohmmètre que l'on place entre la masse et FUSE, si le fusible permettant l'accès à l'EPROM a bien été détruit.
Les acteurs de la vie des cartes à puce.
Nous allons dans cette partie présenter les entités qui interviennent dans la vie d'une carte à puce depuis sa phase de fabrication jusqu'à sa destruction logique ou physique. Les principaux acteurs sont :
- L'encarteur : C'est lui qui fabrique la carte, conçoit et intègre le COS dans la mémoire morte (ROM). L'encarteur c'est le fabricant de cartes: en france, il en existe essentiellement trois: OBERTHUR CS, GEMPLUS, et AXALTO.
- L'émetteur : c'est lui qui propose les cartes aux utilisateurs: typiquement c'est une banque, une société. Il est le propriétaire légal des cartes mises sur le marché.
- Le fournisseur d'applications : c'est le partenaire de l'émetteur pour intégrer dans la carte les applications nécessaires à l'émetteur. En général, le fournisseur d'applications et l'encarteur sont les mêmes acteurs.
- Le fournisseur d'applications : c'est le partenaire de l'émetteur pour intégrer dans la carte les applications nécessaires à l'émetteur. En général, le fournisseur d'applications et l'encarteur sont les mêmes acteurs.
- L'opérateur : c'est lui qui dialogue avec la carte et sert de médiateur entre une application et un fournisseur d'application.
- L'utilisateur : c'est celui qui a la carte en sa possession et fait usage de ses applications.
Introduction à la sécurité des cartes à puces.
Avant de s'intéresser à la sécurité d'un système, il est important de faire une étude qualitative et quantitative des risques afin que la solution sécuritaire proposée soit le plus adéquate possible. Pour illustrer ce propos prenons un exemple. On considère que l'on veuille se prémunir contre le vol d'une moto de valeur machande 7000 euros. Pour ce faire, il y a deux extrêmes absurdes à éviter :
- engager 2 personnes à plein temps pour se charger de sa surveillance ( le coût est approximativement de 3000 euros par mois).
- n'acheter qu'un cadenas de vélo ( coût fixe de 30 euros).
Cet exemple illustre un paramètre très important en sécurité générale: la dissuasion. Tout bon responsable sécurité doit admettre que la sécurité absolue n'existe pas et il faut s'assurer que le dispositif sécuritaire mis en place présente un coût supérieur à contourner que les intérêts qu'il protège. Pour mettre en place un bon dispositif de sécurité, il faut faire une bonne évaluation des risques en essayant notamment d'évaluer la convoitise de ce que l'on veut sécuriser. La convoitise est une donnée distincte du coût d'un objet. Par exemple une fusée spatiale est beaucoup moins convoitée qu'une auto malgré son coût bien plus élevé. Cette considération permet d'estimer le risque sécuritaire. Et pour faire une bonne évaluation des risques il faut s'intéresser au profil des attaquants, à leurs objectifs ainsi qu'aux moyens à leur disposition pour les réaliser.
Profils des attaquants de cartes à puce et motivations.
Une bonne approche pour saisir les risques liées aux cartes à puce est de s'intéresser aux motivations des attaquants. Ces dernières peuvent être découpées ainsi :
- le gain financier
- l'obtention de données
- l'usurpation d'identité
- la notoriété
L'obtention de données est une attaque qui vise les cartes contenant des données personnelles. On peut citer les cartes de santé, ou les cartes permettant l'accès à des données sensibles de type militaire. Dans le premier cas, l'accès aux données d'une carte de santé relève de l'atteinte à la vie privée et dans le deuxième cas, les pertes peuvent être financières ou humaines.
L'usurpation d'identité est une attaque menée sur les cartes à puce programmées pour authentifier un individu. Typiquement, l'application de ces cartes est le contrôle d'accès, le démarrage d'une auto.
Il reste enfin la notoriété : une catégorie d'attaquant n'ont que des objectifs publicitaires; ils cherchent à se faire connaître soit dans le milieu du hacking ( ils mènent des attaques via un pseudonyme et cherche à se faire reconnaître à travers elles, parfois dans le but de faire de la contre-publicité à un système ou de diffuser des messages à caractère politique ) soit dans le milieu de la sécurité ( attaquer pour trouver des failles et améliorer le système).
Cible des attaquants de cartes à puce.
Une attaque sur une carte à puce vise toujours un des composants présentés en partie précédemment (partie architecture) parce qu'ils contiennent toutes les informations sensibles. L'attaquant va toujours chercher à lire ou modifier :
- du code éxécutable
- des données
- des secrets pour accéder au système
Attaques physiques sur cartes à puces.
On appelle attaque physique, toute attaque menée sur la puce en tant que composant matériel électronique. Ces attaques supposent une connaissance approfondie de l'architecture d'une carte à puce. La présentation de la partie sur l'architecture est non-exhaustive c'est-à-dire qu'en général l'attaquant possède encore plus d'informations spécifiques sur la cible avant l'attaque.
Les attaques physiques sont elle-mêmes rangées en deux sous-catégorie :
- les attaques invasives
- les attaques non-invasives
Les attaques non-invasives ne vont s'intéresser qu'à des paramètres externes à la puce liés à son fonctionnement. Ces attaques sont plus répandues ( car moins coûteuses ) et plus pernicieuses car elles n'altèrent en rien le fonctionnement de la carte et ne permet donc pas à son détenteur de soupçonner l'existence même de l'attaque.
Attaques invasives
Les attaques invasives sont des attaques menées en général par des experts et requiert du matériel au coût très élevé. Pour ce type d'attaque, il faut tout d'abord isoler le composant électronique et pour cela, l'attaquant met à nu le circuit imprimé, que ce soit chimiquement ou physiquement ( cela revient à "casser " la protection en plastique qui entoure le circuit. Ensuite, l'attaquant doit avoir des connaissances électroniques pour comprendre l'architecture de la puce pour contourner les protections électroniques. Cela passe par la reconstitution de circuits à l'aide d'un FIB (Focus Ion Beam)(Un FIB est un outil utilisé en électronique permettant de réaliser des microcircuits) la lecture ou la modification de bits par LASER. Ce sont des attaques de Reverse-engineering c'est-à-dire que l'attaquant va tenter de récupérer le maximum d'information sur le circuit pour en déduire la les algorithmes utilisés, la manière dont ils ont été implémentés, les sécurités misent en place, pour enfin peut-être tenter de récupérer tout ou partie de la clé.
Attaques non-invasives
Les attaques non-invasives exploitent les canaux cachés du microprocesseur. Dans ce type d'attaque, on va mesurer un paramètre physique extérieur de la puce pendant son activité; on ne touche donc pas à l'intégrité physique de la puce. Ce paramètre physique peut être le temps de calcul, le courant, ou le champ électromagnétique émis par la puce.
Ces attaques sont typiquement des attaques à clair connu c'est-à-dire que l'attaquant va soumettre au chiffrement de la puce un ensemble de messages bien choisis. Pendant que la puce chiffrera ces messages l'attaquant relèvera les données du paramètre physique mesuré. Une fois ces paramètres récupérés, l'attaquant par analyse directe des données ou par analyse statistique en déduira des données sur la clé.
Dans ces attaques on retrouve la "Timing Attack" qui exploitent le temps d'éxécution d'une puce, la SPA ( Simple Power Analysis ) et la DPA ( Differential Power Analysis) qui mesure le courant consommé par la puce pendant son activité et enfin la SEMA (Simple Electro Magnetic Analysis) et la DEMA ( Differential Electro- Magnetic Analysis) qui exploitent le rayonnement électromagnétiques dû à l'effet inductif produit par le courant passant dans les circuits de la puce. Dans les attaques SPA et SEMA l'analyse des données est directe alors qu'elle est statistique pour les DPA et DEMA.
Attaques logiques sur cartes à puces.
Les attaques logiques exploitent les failles algorithmiques permettant à l'attaquant de contourner les protections mises en place. Nous allons dans cette partie en présenter deux.
La première concerne le code PIN. En théorie, le code PIN ne peut être tenté que 3 fois après quoi la carte se bloque. Pour que ce dispositif de sécurité fonctionne correctement il faut disposer d'un compteur que l'on incrémente avant la demande de code PIN. Si tel n'est pas le cas, cela signifie que la carte demande le code PIN teste s'il est correct ou non et incrémente ensuite le compteur. La faille exploitable dans le deuxième cas est que l'attaquant peut tenter son code PIN, attendre la réponse de la carte et la retirer juste avant l'incrémentation s'il est erroné permettant ainsi à l'attaquant de tenter éventuellement les 10000 codes possibles ( 10000 s'il n'a pas de chance ). Ce type d'attaque n'est évidemment pas possible chez un commerçant mais devient tout-à-fait réalisable dans certains automates revendeurs de cassettes vidéo ou même aux billeteries automatiques d'une certaine société de réseau férrée ( la carte n'est pas avalée comme dans un DAB).
Une deuxième attaque logique présentée ici est celle de la datation. Il existe des attaques dite de rejeu et qui consiste à éxécuter plusieurs fois la même action par une application qui ne l'a a priori autorisée qu'une seule fois. Prenons l'exemple d'un individu qui cherche à faire un virement d'un compte A vers un compte B. Si un attaquant intercepte un message électronique permettant de créditer son propre compte il peut a priori renvoyer ce message n fois à la banque de la victime pour récupérer son argent. La faille exploitée est liée au problème de la datation et à la mise en place d'un compteur permettant de ne réaliser qu'une et une seule fois le virement.
Solutions pour cartes à puces contre les attaques non-invasives.
Les attaques non-invasives consistent essentiellement à déterminer l'activité de la puce pour en déduire des informations secrètes et cela passe par analyse de paramètres physiques ( tels que le temps d'éxécution, le courant, le champ magnétique...), qui s'avèrent être un réel canal subliminal d'informations. Les contre-mesures à ce type d'attaques vont consister donc soit à brouiller l'information qui passe par ces canaux soit à atténuer ou éliminer le signal émis.
Pour brouiller l'information l'encarteur possède plusieurs techniques néanmoins semblables :
- le chiffrement interne des bus et des mémoires
- la génération d'activité aléatoire
Générer de l'activité aléatoire, c'est introduire des opérations leurres et aléatoires que la puce effectuera en parallèle pour induire l'attaquant en erreur. Ce brouillage est donc algorithmique. En pratique, la puce effectue des calculs aléatoires en parallèle et cache donc les opérations réellement effectuées par la puce dans le cadre cryptographique.
Reste enfin les techniques qui visent à atténuer le signal émis par la puce dans ces canaux parallèles: celles ci reposent sur le hardware et l'encarteur va pour cela essentiellement chercher à minimiser la consommation de la puce, de sorte que les attaques par analyse de courant ou de champs magnétique soient plus difficilement réalisable. L'encarteur réduit également la taille des composants et dispose des couches de métal pour protéger la puce.
Solutions pour cartes à puces contre les attaques invasives.
Pour se prémunir des attaques invasives, la solution consiste à détecter l'attaque pour bloquer dans un premier temps l'activité de la puce et dans un deuxième d'envisager le suicide logique de la puce après cette attaque afin qu'aucune donnée n'ait été transmise. Pour cela, deux solutions sont adoptées aujourd'hui, l'une est physique l'autre est logique.
Une solution physique consiste à placer la puce sous des couches de métal sur lesquels on place des détecteurs d'activité anormale. Ceux-ci sont sensibles à la température, aux UV, aux rayons X et communique à la puce toute opération suspecte. C'est alors que la puce se bloquera voire provoquera sa mort logique.
Une solution logique supplémentaire pour éviter les attaques invasives est d'introduire régulièrement dans les calculs des contrôles d'intégrité permettant de s'assurer que les données n'aient été modifiées par l'extérieur. Cette technique est également utilisée pour se prémunir des attaques par injection de fautes ( DFA ).
Dernière édition: