Petite leçon sur les cartes.

Statut
N'est pas ouverte pour d'autres réponses.

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:
  • les cartes à mémoire simple
  • les cartes à mémoire personnalisée
  • les cartes à microprocesseur
  • les cartes sans contact
La carte à mémoire simple est une carte dont le micromodule ( ou puce) ne renferme qu'une certaine quantité de mémoire ( de l'ordre de quelques kilobits). Elles peuvent être considérées comme des petites disquettes et n'importe qui peut ( à l'aide d'un équipement librement disponible dans le commerce) y lire et écrire des informations. Ces cartes sont réalisées en technologie EEPROM ( mémoire effaçable et réinscriptible ) et n'apporte aucune sécurité.

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.
Parmi tous ces acteurs, vient se glisser celui qui dans ce document nous intéresse: l'attaquant. L'attaquant appartient toujours à l'une des entités ci-dessus et nous allons voir effectivement dans la partie suivante qu'il peut avoir différents profils ainsi que différents objectifs. Nous allons tenter de cerner ces profils pour mieux appréhender la sécurité de la carte à puce.



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).
Dans le premier cas, on est à peu près certain que notre deux-roues restera en notre possession mais cette méthode présente un gros défaut: elle est très coûteuse . Dans le deuxième cas, la moto est à la merci de n'importe quel voleur amateur voire même d'un individu lambda muni d'une scie à métaux: cette méthode est inefficace.

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é
Le gain financier peut être direct ou indirect selon l'usage consacré de la carte. S'il s'agit d'une carte bancaire, obtenir de la carte la code PIN permet de prélever des billets dans un DAB (gain direct), s'il s'agit d'une carte pour télévision à péage ou d'un téléphone mobile, l'obtention de codes secrets permet de d'accéder à des données payantes gratuitement ( gain indirect).

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
Lire le code éxécutable n'est pas dommageable à moins qu'il ne soit secret ce qui est fortement déconseillé d'après le Principe de Kerckhoffs ("La sécurité d'un système cryptographique ne doit pas dépendre de la préservation du secret de l'algorithme. La sécurité ne repose que sur le secret de la clé." ) La modification du code éxécutable est très sensible parce qu'il permet de prendre le contrôle de tout ou partie de la carte puisque le COS gère toutes les données et les algorithmes contenus sur la carte. Le risque lié à la lecture ou à la modification de données ( qu'elles soient cryptographiques ,personnelles ou sensibles) est évident. La modification de secret peut permettre à l'attaquant de prendre le contrôle de la carte. Cette technique est utilisée aussi dans les attaques de type DFA (Differential Fault Analysis) que nous traiterons dans la partie suivante.



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 invasives sont des attaques menées directement sur le composant électronique. Elles supposent de posséder un matériel spécifique et des connaissances électroniques. Une attaque invasive ne permet pas en général de pouvoir réutiliser la puce. Ce sont des attaques de Reverse engineering visant à faire "parler" la puce par reconstruction de circuits ou par lecture de données sur le composant.

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
Chiffrer les bus et les mémoires signifie que les données ne transitent jamais en clair même à l'intérieur de la puce et donc que seul le COS est en mesure de lire ces informations. Par conséquent, toute attaque par analyse d'activité sera vaine dans la mesure où l'attaquant ne récupèrera que des données chiffrées. Il existe une technique dans le même esprit que cette dernière qui consiste à appliquer ( pseudo-aléatoirement) un masque binaire permettant de chiffrer ces mêmes données. L'idée est de se rapprocher du principe du One Time Pad, sans la contrainte d'échange de clés grandes, en générant du pseudo-aléa à partir d'une clé courte.

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:
Merci kenzo , chaque jour on apprend
 
traduction

Merci pour cette explication.
Serait-il possible d'avoir la version originale ? Ce n'est pas que je suis contre la traduction automatique mais certaines phrases me semblent déformées au point d'être obscures.
Merci.
 
waouuuuu un vrai casse tête extraterrestre :fool:

i faudrait inventer un décodeur pour comprendre ça...:laugh:

Mais je suppose que ceux qui sont dans le coup te comprendront:music_whistling:
 
Merci pour la leçon

mais bien trop compliqué pour mon petit cerveau

a+
 
Merci pour ces informations,

Serait il possible d'avoir le texte original ?

La traduction automatique est difficile à lire tout de même :s
 
bonjour, je reconnais que Kenzo s'est cassé la tête pour nous renseigner, sauf qu'il a utilisé un texte en Anglais qu'il a passé sur un traduscteur anglais français sur internet et ça donne un charabia que même l'auteur n'y compredrait rien du tout !
merci pour le peine que tu t'es donné mais on y comprend rien et pourtant les cartes à puce c'est mon metier.
bon courage
 
bonjour, je reconnais que Kenzo s'est cassé la tête pour nous renseigner, sauf qu'il a utilisé un texte en Anglais qu'il a passé sur un traduscteur anglais français sur internet et ça donne un charabia que même l'auteur n'y compredrait rien du tout !
merci pour le peine que tu t'es donné mais on y comprend rien et pourtant les cartes à puce c'est mon metier.
bon courage

bonsoir lazhar si tu peut nous faire une meilleur traduction alors fait le vu que c'est ton metier @++:Invision-Board-Fran

ps :elle et facile la critique.
 
dicussion sat

:LolLolLolLol:

tres bien la petite leçon , mais enfin le contexte n'est pas ce qu'il devrait.
d'abord remercier l'auteur ,et laisser le theme dans son originalité
ce serait beaucoup mieux pour un développeur analyste comme moi .
alors avant de lancer des explications de ce genre vérifier le fondement a sa juste valeur,il apparait beaucoup d'erreurs dans le texte , et oui personne n'est parfait ! !!

cordialement

le_duc54

PS : il est possible que je connaisse l'auteur
 
elle et pas mieux c'elle la et en francais @++:laugh:

merci a l'auteur au passage
 
Dernière édition:
arreter de critiquer a chaque fois que un menbre essaie de nous faire aprrendre 2 / 3 truc sur les carte si les pros qui se permette de critique meme si c est un copie/traduction lui au moins il partage voila et stop les critique a 2 balles please
ps/je ferme la discussion ca comence a deraper
 
Statut
N'est pas ouverte pour d'autres réponses.
Retour
Haut