Carte à puce
RFID
De Benoit B, le Mercredi 28 Mars 2007 à 2:10 pm
Niveau : Débutant
Le terme RFID signifie identification par radio fréquences (''radio frequency identification''). Cette technologie est généralement utilisée pour assurer la traçabilité d'objets comme des articles de supermarché ou des conteneurs de marchandise. Elle est également employée pour ''tatouer'' les animaux de compagnie. Les applications ne cessent de se multiplier et dépassent souvent le cadre de la traçabilité, comme par exemple le passeport électronique qui fait en plus intervenir des mécanismes cryptographiques. Dans ce cadre là, on parle plutôt de carte à puce sans contact. Dans cet article nous n'aborderons pas ce type de dispositif dédiés à la sécurité (voir article carte à puce sans contact).
Un système RFID est composé d'un lecteur capable de lire et écrire sur un ''transpondeur RFID'' aussi appelé TAG ou carte selon les cas. Il existe deux types de transpondeurs : les passifs qui tirent leur source d'énergie du champ électromagnétique généré par le lecteur, et les actifs qui ont besoin d'une pile pour fonctionner.
Lors du passage de TAG (ou d'une carte) devant un lecteur RFID, le lecteur demande aux transpondeurs de donner leur identité, un système d'anti-collision permet au lecteur de lire l'identifiant de chacun des TAG individuellement. La communication se fait par ondes électromagnétiques de faible puissance. La fréquence de celles-ci dépend des applications et de la portée désirée.
Les transpondeurs RFID sont composés d'une antenne permettant de capter le champ électromagnétique généré par le lecteur (et dans le cas des TAG passifs de capter l'énergie nécessaire à leur fonctionnement), et d'un circuit capable de recevoir et d'émettre dans la plage de longueur d'onde utilisée par le lecteur. Le débit d'une telle transmission s'échelonne entre 106 et 848 kbits/s suivant les modèles Selon le standard ISO/IEC 14443 la transaction peut être effectuée jusqu'à 10 cm de distance.
Le fonctionnement de la carte à puce
De Benoit B, le Lundi 26 Février 2007 à 2:51 pm
Niveau : Débutant
On estime à environ 2 milliards le nombre de cartes à puce circulant à la surface du globe actuellement. Ces dernières sont utilisées dans des domaines variés, généralement liés à la sécurité des réseaux (Téléphonie Mobile, service bancaire, identité, contrôle d'accès...).
Comment fonctionnent ces cartes à puce, appelées aussi « smart card »?
Pour comprendre le fonctionnement des cartes à puce, il est important de connaître leur architecture. Elles sont composées:
- D'un processeur effectuant les calculs et qui gère l'accès aux différentes ressources grâce à son système d'exploitation (Logiciel interne dédié au fonctionnement de la carte à puce)
- D'une zone mémoire permettant de stocker les informations privées.
- D'un bloc dédié au chiffrement des informations.
- D'une interface électrique par contact ou signaux radio-fréquence permettant la lecture et l'écriture des données, et l'alimentation du dispositif (typiquement, le contact doré sur les cartes bancaires)
Lors de l'insertion dans un dispositif de lecture (ou lors de l'interrogation à distance par radio fréquence) la carte est "réveillée". Elle émet une réponse et indique ainsi au lecteur les capacités de la carte ( état de la carte, version utilisée, type de transfert...). On peut ensuite effectuer un dialogue à l'aide de commandes, connues à la fois par le lecteur et la carte ( identification, Paiement......).
Le futur des cartes à puce
De Benoit B, le Lundi 12 Février 2007 à 3:59 pm
Niveau : Débutant
Des applications basées sur des cartes à puce ne cessent d'émerger. Elles sont présentes depuis plusieurs années dans nos téléphones portables ou nos cartes bancaires. La tendance va se perpétuer notamment avec le futur passeport électronique. De plus, leur adoption bénéficie de la législation sur la signature électronique et de l'engagement des administrations en faveur des télé-déclarations.
Pour répondre à un plus grand nombre de besoins, des projets de recherche comme InspireD ont pour but de spécifier et valider la carte du futur. Elle portera le nom de TPD pour ''Trusted Personal Devices'', les premières versions devraient arriver durant l'année 2007.
Les améliorations sont nombreuses : processeur 32 bits, système multi-tâche et multi-thread, mémoire virtuelle, gestion de droits multimédia (DRM), services sans contacts, intégration de la biométrie, gestion de flux voix et vidéo, gestion simultanée des communications (USB, ISO 7816, NFC et MMC), écran, timer temps réel (pour l'horodatage sécurisé) ...
Toutes ces nouvelles fonctionnalités permettent de définir de nouvelles architectures logicielles qui comportent par exemple une pile de communication IP. De plus, la mémoire disponible pour l'utilisateur va considérablement augmenter. Elle atteint aujourd'hui plusieurs dizaines de kilo octets, et devrait bientôt atteindre quelques giga octets.
La tendance est également à l'amélioration de la sécurité de l'interface avec le monde réel. L'un des inconvénients des cartes actuelles est qu'elles ne disposent pas de leurs propres entrées/sorties. Pour remédier à ce problème, certaines cartes disposeront d'un écran et d'un clavier permettant l'utilisation de technique OTP (One Time Password) ou de saisir directement le code PIN sans passer par un appareil externe.
Toutes ces évolutions matérielles et logicielles vont permettre l'émergence de nouvelles applications pour les cartes à puce, comme le visa biométrique, la carte grise, la carte d'identité, l'accès aux locaux sécurisés. Elles sont déjà utilisées dans les systèmes de télévision payante à la demande. Enfin, elles autoriseront la cohabitation de plusieurs applications. Ainsi les cartes bancaires pourraient contrôler l'accès aux applications et aux locaux. Cependant l'adoption de cartes multi-applications est freinée par la peur des différents acteurs de partager leurs données.
Chronologie
• 1997 JavaCard
• 1998 JavaCard+GSM SIM
• 1999 JavaCard+RSA
• 2000 WAP MicroBrowser
• 2001 Biometric (FingerPrint)
• 2002 RMI
• 2003 .NET Card
• 2004 TCP/IP Full Duplex (processeur à 100Mhz et RSA2048 en 50ms)
• 2005 Linux
• 2006 Multi-Channel (processeur à 200Mhz, Bluetooth/UWB et RSA2048 en 10ms)
• 2007 Streaming (full TV sattelite)
• 2008 Spontaneous networking (JINI, processeur à 200Mhz)
• 2009 GRID
• 2010 processeur à 800Mhz, Dynamic Display
Avantages sécuritaires de la carte à puce
De Benoit B, le Vendredi 09 Février 2007 à 3:06 pm
Niveau : Débutant
Apparues dans les années 70 (premier brevet en 1970), les premières cartes à puce étaient de simples cartes mémoire avec déjà deux avantages majeurs : elles sont transportables et l'information contenue pouvait être sécurisée. La carte téléphonique en est l'application la plus parlante, des petits fusibles fabriqués en usine dans la puce étaient « grillés » à chaque unité consommée, tout en restant pratique à transporter la carte était impossible à recharger.
Avec les progrès phénoménaux de l'électronique, les cartes à puce disposent maintenant de véritables microprocesseurs capable de calculs complexes. Certaines sont capables de réaliser des opérations de cryptographie d'autres sont même programmables en Java ! Cependant leur avantage principal dans le domaine de la sécurité tient à leur capacité à garder une information secrète.
Pour mieux comprendre cela, rappelons que pour échanger une information de manière sécurisée, cette information doit être « chiffrée ». Les techniques de chiffrement utilisent deux clefs : une clef dite publique, qui permet de coder un message et une clef privée qui permet de déchiffrer le message ainsi codé. N'importe qui peut donc coder un message avec la clef publique, mais seul le possesseur de la clef privée peut les lire correctement. Il est donc fondamental de préserver le secret de la clef privée, quiconque l'obtiendrait, pourrait immédiatement lire tous les messages chiffrés avec la clef publique et se faire passer pour le propriétaire légitime de la clef !
C'est là qu'interviennent les cartes à puce. Habituellement les clefs privées sont stockées sur le poste de l'utilisateur ou sur un disque externe (clef USB...) et sont utilisées par le processeur de l'ordinateur pour les calculs cryptographiques. Cela pose de nombreux problèmes : la sécurité du support tout d'abord, il suffit d'accéder à un poste ou à une clef USB pour acquérir la clef privée, mais aussi la sécurité des traitements. En effet la clef étant chargée dans l'ordinateur le temps des traitements de nombreuses méthodes peuvent être mise en place pour la récupérer et il est délicat de sécuriser complètement un poste de travail.
Dans le cas des cartes à puce, la clef privée ne sort jamais de la carte : les traitements sont effectués en interne. Les performances sont inférieures à un traitement par le poste de travail mais la sécurité est sans commune mesure. La carte elle même est protégée par un code PIN et une procédure de blocage si un code incorrect est saisi plusieurs fois. Autant dire que l'attaquant a peu de chance de trouver un code PIN sur 10000 en trois essais !
De plus les cartes à puce sont développées pour résister à des attaques matérielles complexes à mettre en oeuvre, comme l'étude des rayonnements électromagnétiques ou l'analyse de la consommation électrique lors d'un calcul cryptographique. La protection contre ces attaques est très peu, voir pas du tout prise en compte lorsque la cryptographie est réalisée sur le poste client.