La technologie sans contact en champs proche La technologie sans contact NFC Aspects protocolaires et sécurité Famille des technologies sans contact Etiquettes RFID (Radio Frequency Identification) Carte sans contact Stockage des données confidentielles avec garantie d authenticité Near Field Communication (NFC) Fabrice Peyrard, Emmanuel Conchon (emmanuel.conchon@irit.fr) Les étiquettes RFID première génération Fonction d identification Faible volume de données stockées/échangées Pas ou peu de sécurité Fonctionnement passif L énergie est envoyée par le lecteur pour assurer la communication 2 La technologie sans contact en champs proche La technologie sans contact en champs proche Les cartes sans contact Date des années 80 sous la forme de badge (pour l identification essentiellement) Dans les années 90, elles se sont développées sous la forme de carte de micro paiement, cartes de fidélités, de transport etc Depuis les années 2000 des cartes sécurisées se sont imposées avec des fonctionnalités de stockage des données confidentielles, d authentification Exemple: le passeport biométrique Une carte = une fonction Les cartes sans contact Mifare Classic (NXP) Taille: 1k (existe aussi en 4k) 768 octets de stockage répatis sur 16 secteurs 1 secteur de sécurité contenant deux clés (A et B) permettant de protéger l accès aux autres secteurs Mifare UltraLight (NXP) Taille: 512bits Pas de sécurité Mifare DESFire (NXP) Intègre des algorithmes de chiffrement (3-DES, AES) Authentification basée sur MAC Test de proximité pour éviter les attaques par relay Certification Critère Commun EAL4+ (conçu, testé et vérifié méthodiquement) 3 4
La technologie sans contact en champs proche La technologie sans contact en champs proche Mifare Plus (NXP) La remplaçante de la Mifare Classic Renforcement de la sécurité avec une certification EAL 4 FELICA (Sony) Clé de chiffrement générée dynamiquement à chaque transaction Certification Critère Commun EAL 4 Topaz Tag Innovision Java Card Contactless La technologie NFC Un équipement NFC peut avoir plusieurs fonctions et intégrer de manière native la sécurité Peut être vu comme une extension de la technologie RFID Caractéristiques Communication basée sur la technologie radio à 13.56 MHz Très courte portée 1 à 4 cm max Faibles débits (106 / 216 / 414 kbps) Communication établie sans paramétrage (no discovery, no pairing) en 0.1sec Deux types d équipements: Lecteur actif (NFC Initiator) Tag passif (NFC Target) 5 6 Comparaison des technologies PAN/BAN NFC et Internet des Objets (IoT) 7 8
NFC et Internet des Objets (IoT) NFC et Internet des Objets (IoT) Wireless Pairing Applications domestiques Enregistrement de garantie Maintenance à distance Mise à jour de Firmware 9 10 NFC et Internet des Objets (IoT) NFC et Internet des Objets (IoT) Applications domestiques Contrôle domotique Eclairage Température Consommation Compteurs Objet avec composant NFC et bus I2C Interconnecté au microcontrôleur de l objet En mode Peer-To-Peer si l objet est autoalimenté En mode Tag si l objet est alimenté par le lecteur (smarphone) 11 12
NFC et Internet des Objets (IoT) Exemples de déploiement de solutions NFC/RFID Apple et NFC Un rouleau compresseur du déploiement NFC Centré sur le paiement sans contact (Apple Pay Service) Sécurité augmenté et garantie sur iphone 6 et iphone 6 Plus Un Secure Element embarqué Un biocapteur Touch ID fingerprint verification «An innovative biosensor security function built into the Apple Watch» Barcelona Contacless Plus de 8000 tags NFC déployés à travers la ville Fourniture d informations locales sur le quartier Permet le téléchargement d applications spécifiques Réservation de vélo MediHandTrace à l hôpital Nord de Marseille Suivi du respects des procédure d hygiène des personnels infirmiers Etiquette RFID dans les chaussures de personnels Lecteur au niveau des distributeurs hydro alcooliques connectés 13 14 NFC en France NFC en France Technologie poussée par l Association Française du Sans Contact Mobile Marque Cityzi Repose sur la carte SIM comme élément de sécurité Orange, Bouygues Telecom et SFR notamment sont membres de l AFSCM Les applications Cityzi reposent sur trois acteurs Le fournisseur de service Développe une cardlet qui sera stockée sur la carte SIM, une application mobile et une plateforme NFC L opérateur mobile Fournit un espace sur la carte SIM pour le déploiement des cardlets ainsi qu un service de téléchargement et de blocages OTA des applications L utilisateur final 15 16
NFC en France NFC en France Mise en œuvre d une solution Cityzi Source: AFSCM «Vademecum» 2013 Source: AFSCM «Vademecum» 2013 17 18 NFC en France Mode de communication NFC Validation de l application Cityzi (cardlet + application) Effectuée par un laboratoire référencé par l AFSCM Prend environ 15j et coute environ 5000 Valable jusqu à la mise à jour de l application Mode Reader-Writer RFID: plusieurs tags et 1 lecteur, NFC: 1 tag et plusieurs lecteurs Mode Peer-To-Peer Mode Tag Emulation 19 20
NFC et normes NFC et normes Deux normes sont utilisées pour les communications en champs proches entre un lecteur et un tag ISO 14443-A (représente environ 85% des tags dans le monde) Poussée par Philips SemiConductors devenue depuis NXP et reposant sur al technologie MIFARE ISO 14443-B Poussée par Innovatron-Moreno Une norme définit les communications pour le voisinage (50-60cm) ISO 15693 Equivalente à la norme ISO 18000-3 pour le RFID Le principal organisme en charge de la spécification des standards est le NFC Forum Regroupement de nombreux industriels (Samsung, Nokia, Sony, Visa ) Objectif de standardisation pour assurer l inter-operabilité des équipements en définissant notamment le modèle des données Assure également une compatibilité avec la norme ISO 14443 Les spécifications sont ensuite reprises est standardisées par plusieurs organismes dont l ISO et l ECMA ISO 18092 / ECMA 340: NFC IP-1 ISO 21481 / ECMA 352: NFC IP-2 21 22 NFC et normes Pile protocolaire NFC D autres organismes contribuent également sur des domaines spécifiques ETSI/SCP (Smart Card Platform) pour l interface entre la carte SIM et le contrôleur NFC Global Platform pour les spécifications du Secure Element et l hébergement des applications EMVCo pour l impact sur les applications de paiement 23 24
Pile protocolaire NFC Pile protocolaire NFC LLCP (Logical Link Control Protocol) SNEP (Simple NDEF Exchange Protocol) NDEF (NFC Data Exchange Format) RTD (Record Type Definition): URI, smart poster, signature Applications: Bluetooth Secure Simple Pairing (SSP) Connection Handover of WiFi or Bluetooth communications Personal Health Device Communication ISO/IEEE Std. 11073-20601 25 26 NDEF Messages NDEF Messages NDEF Record Les NDEF Record peuvent être de différents types: MIME (RCF 2046) URI (RFC 3986) NFC_FORUM_RTD: Smart poster EXTERNAL_RTD: Pour les types propriétaires Format de message Transport en P2P Exemple pour l URI Composé de deux champs URI ID code Définit le protocole à utiliser URI field (en UTF-8) 1 http://www.irit.fr 27 28
NDEF Messages SNEP (Simple NDEF Exchange Protocol) Protocole très simple basé sur le principe requête/réponse Taille maximum des messages échangés: 2 32-1 Gestion de la fragmentation 29 30 SNEP (Simple NDEF Exchange Protocol) SNEP (Simple NDEF Exchange Protocol) Protocole très simple basé sur le principe requête/réponse Taille maximum des messages échangés: 2 32-1 Gestion de la fragmentation S appuie sur la couche LLCP pour la création d un canal de communication en mode connecté Format de messages Requête Réponse 31 32
SNEP (Simple NDEF Exchange Protocol) Mode Reader / Writer Requêtes Comparable aux QR-Codes En lecture en renvoyant une information (texte, URI, ) mais permet surtout La réécriture de données La protection des données par des clés Différents conditionnements tags, stickers, porte-clés, montres, bracelets, Réponses Technologies supportées ISO 14443 A/B, Mifare Ultralight, Classic/Standard 1K/4K NXP DESFire, Sony Felica, Innovision Topaz, Jewel tag 33 34 More Reader / Writer et Android Mode Peer-to-Peer Modification des permissions Echange P2P bidirectionnel de données Entre terminaux mis dos-à-dos Gestion des activités en fonction des tags Principalement utilisé avec «Android Beam» 35 Applications Partage de liens et de pages Internet Assistant de connections WiFi et Bluetooth Paiements sans contact (Google Wallet, Orange Cash) Echange de vcards E-ticketing 36
Mode Peer-to-Peer et Android Mode Peer-to-Peer et Android Format de données d Android Beam: Messages NDEF Respect du standard du NFC-Forum Fourniture dans l API d un ensemble de classe permettant de manipuler les formats NDEF standards (URI, MIME ) Coté émetteur 37 38 Mode Peer-to-Peer et Android Mode Peer-to-Peer et Android Coté récepteur L activité doit s enregistrer pour découvrir les messages NDEF Les échanges Beam reposent en théorie sur SNEP/NPP mais le lien retour n est pas disponible Impossible d établir une communication bidirectionnelle avec un seul lien Android beam Complexifie la mise en place de mécanismes de sécurité Challenges Négociation de clés Nativement il n est pas possible d accéder directement aux protocoles SNEP/NPP depuis l API Android Android Beam nécessite une action volontaire de l utilisateur «Tap» pour être initié 39 40
Mode émulation de Tag Mode émulation de Tag et Android Le terminal émule un tag passif Le lecteur ne distingue pas un tag réel d un tag virtuel Le lecteur peut contenir plusieurs tags virtuels fini les portes cartes encombrés Utilisation d un ID par application (AID) Android peut émuler un tag si seulement si l écran du smartphone est actif Exemples London Oyster Card (AID?) Google Wallet (AID F0F00777FF5511) SwipeYours (AID A0000000031010) US-Card MSD (Magnetic Stripe Data) Visa paywave Payment System (AID A0000000031010) Plusieurs cartes émulées peuvent cohabiter sur un terminal Android Pour déterminer la carte à utiliser Android s appuie sur les Application IDs (AID) AID conformes à la norme ISO7816-4 Source: http://developer.android.com/ guide/topics/nfc/nfc.html 41 42 Mode émulation de Tag et Android Mode émulation de Tag et Android Possibilité d utiliser le Secure Element en mode HCE Le mode HCE à la différence des autres modes ne fonctionne pas avec des Activités Android mais des services Peut fonctionner en arrière plan Manifest Source: http://developer.android.com/guide/topics/nfc/nfc.html 43 44
Mode émulation de Tag et Android Mode émulation de Tag et Android Plusieurs services peuvent fonctionner en parallèle s ils utilisent des AID différents Exemple échanges APDU CardEmulation et CardReader fournis par google AID de l application: F222222222 CardEmuSample.apk http://goo.gl/ump1bz et CardReadSample.apk http://goo.gl/nlo1go 45 46 Mode émulation de Tag et Android Interrogation de la carte émulée depuis un ACR122 grâce à libnfc Le téléphone Android est bien détecté comme un Tag APDU émis par l ACR Réponse du terminal Android Dans la réponse nous trouvons l acquittement de la demande (les 2 derniers octets): 90 00 Le code transmis dans le reste de la réponse: 30 30 30 30 31 31 31 31 pour 00001111 NFC ET LA SÉCURITÉ apdu_example.c http://goo.gl/ymzkwc Compilation: # gcc o apdu_example apdu_example.c -lnfc 47 48
Architecture sécurisée d un terminal NFC Architecture sécurisée d un terminal NFC Host-Controller Application Execution Environment (AEE) Contrôle, communications et périphériques (OS) NFC-Controller ContactLess Front-end (CLF) Conversion du signal HF et des données binaires Secure Element Trusted Execution Environment (TEE) Environnement sécurisé pour exécuter et stocker des applications et des données 49 50 NDEF Signatures NDEF Signatures L authenticité et le contrôle d intégrité peuvent être assurés au niveau des messages NDEF grâce à un mécanisme de signature Enregistrement (Record) optionnel qui permet de signer les enregistrements qui le précède Ex SmartPoster Rolland a montré en 2011 que ce mécanisme présentait des limitations Signature d un groupe d enregistrement mais pas nécessairement de l ensemble Possibilité d avoir des signatures différentes parfaitement légitimes prise une par une mais qui ne peuvent être associées Attaque par recomposition des enregistrements Source: Rolland et al, «Security Vulnerabilities of the NDEF Signature Record Type», Proceedings of Third International Workshop on Near Field Communication 2011 51 52
ISO/IEC 13157 (NFC-SEC) ISO/IEC 13157 (NFC-SEC) Publiée sous forme de standard en 2010 Objectif: renforcer la sécurité au niveau Liaison de donnée sur un lien NFC Elliptic Curve (EC) Key Pair Elliptic Curve (EC) Key Pair Avec KDF utilisant un algorithme AES-XCBC-128 53 54 ISO/IEC 13157 (NFC-SEC) ISO/IEC 13157 (NFC-SEC) SSE établit un secret partagé MK SSE entre deux entités compatibles NFC-SEC SCH fournit un canal sécurisé entre entités NFC-SEC grâce aux clés MK SCH, KE SCH, KI SCH (KE SCH ) (KI SCH ) Destruction des secrets partagés et des clés associés au liens (KI SCH ) (KE SCH ) 55 56
Failles de sécurité Failles de sécurité Attaques du chiffrement Crypto1 NXP Mifare Classic 1K Reverse Engineering Faiblesse du générateur pseudo-aléatoire Ecoutes passives (sniffing) Pas de chiffrement standard des échanges de données NFC Norme ISO/IEC 13157 pour le chiffrement Peer-To-Peer, mais aucune implémentation Captures de trafic Lecteur/Tag (Proxmark3) ClonagedeTags Nombreux contrôles d accès utilisent seulement l UID Carte NFC chinoise entièrement réinscriptible (UID compris) Outils matériel Proxmark3 Outils logiciel mfcuk, mfoc, nfc-mfclassic Exmple: clonage carte d accès de l Université de Toulouse Contrôle d accès aux bâtiments, ascenseurs, laboratoires Identification uniquement avec l UID de la carte Utilisation matérielle (3min) Proxmark3 NFC/RFID Carte MUT Mifare Classic 1K Carte chinoise Mifare 1K Utilisation logicielle (30min) Debian 7.6 64bits NFCLib 1.7.1 MFCUK/MFOC 57 58 Failles de sécurité Failles de sécurité Pour copier une carte Mifare Classique, il faut pouvoir Cloner tous ses secteurs Besoin des clés A et B Copier son UID Pour retrouver les clés plusieurs solutions sont possibles Attaque par force brute Nested Attack S appuie sur des vulnérabilités de l algorithme Crypto 1 utilisé par les Mifare Classic Le générateur de nombre aléatoire utilise des LFSR (Linear Feedback Shift Register) prédictibles Les nombres dépendent de la quantité de cycle d horloge entre le moment où le lecteur est allumé et le moment où le nombre aléatoire est demandé Comme l attaquant contrôle le protocole, il contrôle aussi le temps Nécessite de connaître au moins quelques clés (48bits) Les clés par défaut sont connues 0xffffffffffff 0xa0a1a2a3a4a5 0xb0b1b2b3b4b5 0x4d3a99c351dd 0x1a982c7e459a 000000000000 0xd3f7d3f7d3f7 0xaabbccddeeff 59 60
Failles de sécurité Failles de sécurité Echange protocolaire du processus d authentification pour accéder au secteur Avec Ar = succ 2 (Nt) et At = succ 3 (Nt) Principe de l attaque On s authentifie auprès d un bloc avec une clé connue pour obtenir un nonce Nt On répète l opération pour obtenir Nt Avec Nt et Nt on détermine la distance temporelle qui les séparent et donc le nombre de décalages du LFSR A partir de ce moment, il ne reste plus qu à tenter de s authentifier sur un autre secteur Dark-side Attack Utilise les bits de parités pour retrouver les clés Pendant l authentification, le tag vérifie les bits de parités avant de vérifier Ar Si un des 8 bits de parité est faux, le tag ne répond pas, s ils sont corrects, le tag envoie un message d erreur chiffré lorsque Ar est incorrect NACK code 0x5 Ce message chiffré est ensuite utilisé pour retrouver des bits de la clé Relativement rapide: 30min sur un laptop, 10min sur un matériel dédié type Proxmark 61 62 Attaque par relais Attaque par relais Principe Les terminaux mobiles proposent de nombreux modes de communication WiFi Bluetooth 4G Peu de systèmes vérifient la présence physique de la carte Pour y remédier une solution consiste à utiliser un algorithme de bornage de distance ou Distance Bouding Introduit par Brands et Chaum en 1993 Principe: Mesure des temps aller retour des échanges entre le lecteur et le tag Emission de trois échanges suivant des vitesses lente, rapide puis de nouveau lente La partie rapide permet de détecter si un relay se trouve sur la communication Amélioré par Hancke et Kuhn en 2005 pour les RFID Seulement 2 échanges un lent puis un rapide L échange lent permet d échanger une valeur commune L échange rapide permet de lancer des défis n admettant qu un faible temps de réponse Solutions non parfaites Mafia Fraud, Terrorist Fraud, Distance Fraud etc. 63 64
Attaque par relais NFC EN PRATIQUE source: «Vulnérabilités des RFID» Zenk Security 65 66 NFC dans la pratique NFC Embarqué dans la pratique: Raspberry Pi / ACR122 Environnement Linux sur la base Debian Raspberry Pi LibNFC 1.7.1 Applications sous Android 4.4.2 Lecteur NFC externe type ACR122 Lecteur NFC enfichable type NXP Explorer Compilation et installation de libnfc git clone https://code.google.com/p/libnfc/ sudo autoreconf vis sudo./configure --prefix=/usr --sysconfdir=/etc sudo make sudo make install Détection des équipements pi@raspberrypi ~ $ sudo nfc-scan-device nfc-scan-device uses libnfc libnfc-1.7.1-12-gb978c45 2 NFC device(s) found: - ACS / ACR122U PICC Interface: acr122_usb:001:010 - ACS / ACR122U PICC Interface: acr122_usb:001:009 67 68
NFC Embarqué dans la pratique: Raspberry Pi / ACR122 NFC Embarqué dans la pratique: Raspberry Pi / ACR122 Interrogation des tags pi@raspberrypi ~ $ sudo nfc-list nfc-list uses libnfc libnfc-1.7.1-12-gb978c45 NFC device: ACS / ACR122U PICC Interface opened 1 ISO14443A passive target(s) found: ISO/IEC 14443A (106 kbps) target: ATQA (SENS_RES): 00 04 UID (NFCID1): 84 2b 47 f0 SAK (SEL_RES): 08 NFC device: ACS / ACR122U PICC Interface opened 1 ISO14443A passive target(s) found: ISO/IEC 14443A (106 kbps) target: ATQA (SENS_RES): 00 04 UID (NFCID1): be 60 45 a8 SAK (SEL_RES): 08 Interrogation simultanée des tags sur le même lecteur (déterminisme par l anticollision) pi@raspberrypi ~ $ sudo nfc-list nfc-list uses libnfc libnfc-1.7.1-12-gb978c45 NFC device: ACS / ACR122U PICC Interface opened 2 ISO14443A passive target(s) found: ISO/IEC 14443A (106 kbps) target: ATQA (SENS_RES): 00 04 UID (NFCID1): be 60 45 a8 SAK (SEL_RES): 08 ISO/IEC 14443A (106 kbps) target: ATQA (SENS_RES): 00 04 UID (NFCID1): 84 2b 47 f0 SAK (SEL_RES): 08 69 70 NFC Embarqué dans la pratique: Raspberry Pi / ACR122 NFC Embarqué dans la pratique: Raspberry Pi / ACR122 Echange de bas niveau ISO DEP 14443-4 pi@raspberrypi ~ $ sudo nfc-dep-target NFC device: ACS / ACR122U PICC Interface opened NFC device will now act as: D.E.P. (undefined baud ratepassive mode) target: NFCID3: 12 34 56 78 9a bc de ff 00 00 BS: 00 BR: 00 TO: 00 PP: 01 General Bytes: 12 34 56 78 Waiting for initiator request... Initiator request received. Waiting for data... Received: Hello World! Sending: Hello Mars! Data sent. pi@raspberrypi ~ $ sudo nfc-dep-initiator NFC device: ACS / ACR122U PICC Interface openedd.e.p. (212 kbpspassive mode) target: NFCID3: 12 34 56 78 9a bc de ff 00 00 BS: 00 BR: 00 TO: 09 PP: 03 General Bytes: 12 34 56 78 Sending: Hello World! Received: Hello Mars! nfc_initiator_deselect_target: RF Transmission Error 71 72
NFC Embarqué dans la pratique: Raspberry Pi / ACR122 NFC Embarqué dans la pratique: Raspberry Pi / ACR122 Emulation UID pi@new-host-4 ~ $ sudo nfc-emulate-uid NFC device: ACS / ACR122U PICC Interface opened [+] Try to break out the auto-emulation, this requires a second NFC device! [+] To do this, please send any command after the anti-collision [+] For example, send a RATS command or use the "nfc-anticol" or "nfc-list" tool. [+] Received initiator command: [+] Configuring communication [+] Done, the emulated tag is initialized with UID: DEADBEEF pi@raspberrypi ~ $ sudo nfc-list nfc-list uses libnfc libnfc-1.7.1-12-gb978c45 NFC device: ACS / ACR122U PICC Interface opened 1 ISO14443A passive target(s) found: ISO/IEC 14443A (106 kbps) target: ATQA (SENS_RES): 04 00 UID (NFCID3): 08 ad be ef SAK (SEL_RES): 20 ATS: 75 33 92 03 73 74 NFC Embarqué dans la pratique: Raspberry Pi / ACR122 Ecriture tag Mifare Classic avec libnfc Ensemble des secteurs Clés A et B Conditions d accès root@labnfc:/home/fabrice/proxmark3/client# nfc-mfclassic w a dumpdata1.mfd NFC reader: ACS / ACR122U PICC Interface opened Found MIFARE Classic card: ISO/IEC 14443A (106 kbps) target: ATQA (SENS_RES): 00 04 UID (NFCID1): 84 2b 47 f0 SAK (SEL_RES): 08 Guessing size: seems to be a 1024-byte card Writing 64 blocks... Done, 63 of 64 blocks written. root@labnfc:/home/fabrice/proxmark3/client# 75