La technologie sans contact NFC – Aspects...
Transcript of La technologie sans contact NFC – Aspects...
La technologie sans contact NFC –Aspects protocolaires et sécurité
Fabrice Peyrard, Emmanuel Conchon([email protected])
La technologie sans contact en champs proche
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)
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
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
3
La technologie sans contact en champs proche
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)
4
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
5
La technologie sans contact en champs proche
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)
6
Comparaison des technologies PAN/BAN
7
NFC et Internet des Objets (IoT)
8
NFC et Internet des Objets (IoT)
Wireless Pairing
9
NFC et Internet des Objets (IoT)
Applications domestiques Enregistrement de garantie
Maintenance à distance
Mise à jour de Firmware
10
NFC et Internet des Objets (IoT)
Applications domestiques Contrôle domotique
Eclairage
Température
Consommation
Compteurs
…
11
NFC et Internet des Objets (IoT)
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)
12
NFC et Internet des Objets (IoT)
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 »
13
Exemples de déploiement de solutions NFC/RFID
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
14
NFC en France
15
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
16
NFC en France
17
Source: AFSCM « Vademecum » 2013
NFC en France
Mise en œuvre d’une solution Cityzi
18
Source: AFSCM « Vademecum » 2013
NFC en France
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
19
Mode Reader-Writer RFID: plusieurs tags et 1 lecteur,
NFC: 1 tag et plusieurs lecteurs
Mode Peer-To-Peer
Mode Tag Emulation
20
Mode de communication NFC
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
21
NFC et normes
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
22
NFC et normes
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
Pile protocolaire NFC
24
Pile protocolaire NFC
25
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
26
NDEF Record
Format de message
Transport en P2P
27
NDEF Messages NDEF Messages
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
Exemple pour l’URI Composé de deux champs
URI ID code
Définit le protocole à utiliser
URI field (en UTF-8)
28
1 http://www.irit.fr
NDEF Messages
29
SNEP (Simple NDEF Exchange Protocol)
Protocole très simple basé sur le principe requête/réponse
Taille maximum des messages échangés: 232-1
Gestion de la fragmentation
30
SNEP (Simple NDEF Exchange Protocol)
31
SNEP (Simple NDEF Exchange Protocol)
Protocole très simple basé sur le principe requête/réponse
Taille maximum des messages échangés: 232-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
32
SNEP (Simple NDEF Exchange Protocol)
Requêtes
Réponses
33
Mode Reader / Writer
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, …
Technologies supportées ISO 14443 A/B, Mifare Ultralight, Classic/Standard 1K/4K
NXP DESFire, Sony Felica, Innovision Topaz, Jewel tag
34
More Reader / Writer et Android
Modification des permissions
Gestion des activités en fonction des tags
35
Mode Peer-to-Peer
Echange P2P bidirectionnel de données
Entre terminaux mis dos-à-dos
Principalement utilisé avec « Android Beam »
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
37
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 lesformats NDEF standards (URI, MIME…)
Coté émetteur
38
Mode Peer-to-Peer et Android
Coté récepteur L’activité doit
s’enregistrerpour découvrirles messagesNDEF
39
Mode Peer-to-Peer et Android
Les échanges Beam reposent en théorie sur SNEP/NPP mais le lien retourn’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é
40
Mode émulation de Tag
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 cartesencombré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)
41
Mode émulation de Tag et Android
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
42
Source: http://developer.android.com/guide/topics/nfc/nfc.html
Mode émulation de Tag et Android
Possibilité d’utiliser le Secure Element en mode HCE
43
Source: http://developer.android.com/guide/topics/nfc/nfc.html
Mode émulation de Tag et Android
Le mode HCE à la différence des autres modes ne fonctionne pas avec desActivités Android mais des services Peut fonctionner en arrière plan
44
Manifest
Mode émulation de Tag et Android
Plusieurs services peuvent fonctionner en parallèle s’ils utilisent des AID différents
45
Mode émulation de Tag et Android
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
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
apdu_example.c http://goo.gl/YMZkWC Compilation: # gcc –o apdu_example apdu_example.c -lnfc
47
NFC ET LA SÉCURITÉ
48
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 desdonnées
49
Architecture sécurisée d’un terminal NFC
50
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
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
51
NDEF Signatures
Ex SmartPoster
Source: Rolland et al, « Security Vulnerabilities of the NDEF Signature Record Type», Proceedings of Third International Workshop on Near Field Communication 2011
52
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
53
ISO/IEC 13157 (NFC-SEC)
54
Elliptic Curve (EC) Key Pair Elliptic Curve (EC) Key Pair
Avec KDF utilisant un algorithme AES-XCBC-128
ISO/IEC 13157 (NFC-SEC)
SSE établit un secret partagé MKSSE entre deux entités compatibles NFC-SEC
SCH fournit un canal sécurisé entre entités NFC-SEC grâce aux clés MKSCH, KESCH, KISCH
55
ISO/IEC 13157 (NFC-SEC)
56
(KISCH)(KISCH)
(KESCH)
(KESCH)
Destruction des secrets partagés et des clés associés au liens
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)
Clonage de Tags 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
57
Failles de sécurité
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
58
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
59
Failles de sécurité
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
60
0xffffffffffff 0xa0a1a2a3a4a50xb0b1b2b3b4b5 0x4d3a99c351dd0x1a982c7e459a 0000000000000xd3f7d3f7d3f7 0xaabbccddeeff
Failles de sécurité
Echange protocolaire du processus d’authentification pour accéder au secteur
Avec Ar = succ2(Nt) et At = succ3(Nt)
61
Failles de sécurité
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
62
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
63
Attaque par relais
Pour y remédier une solution consiste à utiliser un algorithme de bornage dedistance 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 deréponse
Solutions non parfaites Mafia Fraud, Terrorist Fraud, Distance Fraud etc.
64
Attaque par relais
65
source: « Vulnérabilités des RFID » Zenk Security
NFC EN PRATIQUE
66
NFC dans la pratique
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
67
NFC Embarqué dans la pratique: Raspberry Pi / ACR122
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 équipementspi@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
68
NFC Embarqué dans la pratique: Raspberry Pi / ACR122
Interrogation des tagspi@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
69
NFC Embarqué dans la pratique: Raspberry Pi / ACR122
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
70
NFC Embarqué dans la pratique: Raspberry Pi / ACR122
Echange de bas niveau ISO DEP 14443-4pi@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.
71
NFC Embarqué dans la pratique: Raspberry Pi / ACR122
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
72
NFC Embarqué dans la pratique: Raspberry Pi / ACR122
Emulation UIDpi@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
73
NFC Embarqué dans la pratique: Raspberry Pi / ACR122
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
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èsroot@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