Technologie NFC
Wafa Badreddine
wafa.badreddine@lip6.fr
Plan
•
Introduction•
Caractéristiques techniques & Fonctionnement•
Modes de communication•
APDU & AID•
Projet AndroidIntroduction
•
Technologie de communication sans fil•
Sans contact•
Simple d’utilisation•
Near Field : courte distance (cm)•
Extension de la norme définissant RFID•
RFID (Radio Frequency IDentification)Introduction
•
Le NFC est intégré dans certains téléphones portables sousforme d’une antenne, ainsi que sur certaines cartes de transport ou de paiement (permettant le paiement sans contact)
Caractéristiques techniques
•
Le NFC (Near Field Communication) est une technologiepermettant d’échanger des données à une distance très faible (moins de 5 cm), entre deux appareils équipés de NFC sans contact
•
Fréquence : 13.56 MHz•
Distance : <= 10cm•
Débit : de 106 à 420 Kbits/sFonctionnement
•
Induction de champ magnétique•
La communication NFC se fait entre un initiateur et une cible•
un initiateur: émetteur du champ magnétique, Target ou Initiator•
une cible: un Tag, un récepteur•
L’initiateur est l’appareil qui souhaite communiquer•
La cible reçoit la requête et répond➡
Le tag est interrogé et l’émetteur interroge.Qu’est ce qu’un tag NFC ?
•
Les tags NFC peuvent être des étiquettes, des autocollants ou même des bracelets contenant de petites micro puce pouvant stocker une petite quantité d’informations afin de le transférer à un autre dispositif utilisant le NFC. Ainsi, un téléphone portable peut également être un tag NFC dans le cas d’un fonctionnement en pair-à-pair.•
Un tag est composé de trois parties principales:•
la puce: sert à stocker les données.•
l’antenne: L’antenne sert à capter l’énergie radio émise parl’équipement NFC au passage du tag NFC. Cette énergie permet le démarrage de la puce.
•
l’autocollant de papier ou de vinyle (matière synthétique plus résistante que l’adhésif papier)Fonctionnement
•
Deux modes de communication existent•
Passif•
ActifFonctionnement Passif
•
L’initiateur génère un champ électromagnétique à partir du quel le récepteur va être alimenté en énergie.•
Un appareil initie la connexion•
Il fourni le champ magnétique•
L’appareil cible va moduler le champ existant•
Le champ magnétique peut être utilisé comme source d’énergieFonctionnement actif
•
Le récepteur et l’initiateur disposent de leur propre source d’énergie et communiquent en alternant le champélectromagnétique qu’ils génèrent.
•
Les deux appareils génèrent des champs•
Ils désactivent la génération lors de l’attente•
Les deux appareils nécessites une source d’énergie propreNormes
•
Standardisée par ISO 18092•
Vitesse de transfert•
Méthode d’encodage•
Modulation•
Architecture des trames•
Protocole utilisé•
ISO 14443•
Définit la communication avec des circuits intégrés sans contact•
NDEF (NFC Data Exchange Format)•
Définit le format d’échangeCollisions
•
Rares (faible portée)•
Collision avoidance•
Ecoute avant d’émettre•
Attend tant qu’une émission est en cours•
Commence l’émission une fois le canal libre et après un temps de gardeCommunication
Intérêts
•
Faible portée•
Sécurité•
Utilisation naturelle•
Mode passif•
Economie d’énergieComparaison NFC/RFID
•
NFC englobe les fonctionnalités de RFID•
Emulation de tag RFID•
Possibilité de P2P (communication active)Comparaison NFC/Bluetooth
•
Portée : 10cm / 10m•
Temps d’établissement de la connexion•
<0.1s / 6s•
NFC propose mode actif / passif•
Débit : 424 Kbits/s / 2.1 Mbits/s•
Usages
•
Paiement : carte bancaire NFC / téléphone•
Billetterie : transport / spectacle•
Lecture d’information : transport / magasin•
Contrôle d’accès•
Carte de visite électronique•
Appairage Bluetooth, clé wifiSécurité: Déni de service
•
Denial of Service•
Occuper la canal de fréquence radio•
Envoyer des données à un appareil•
Si NFC est activé, il lira tous les messagesModes de communication NFC
•
La communication NFC a trois modes différents:•
Reader/Writer Mode•
Card Emmulation Mode (Host Card Emulation)•
Peer to Peer Mode•
L’équipement NFC est capable de lire des tags (étiquettes électroniques), pour récolter des informations pratiques, ou pour lancer une action de manièreautomatique.
•
Exemples d'utilisations :•
Paiement par carte•
Automatisation d'une tâche : lancer une application à l'approche du tag NFC.Mode Reader/Writer
Mode Reader/Writer
•
Ce mode permet également de donner la fonctionnalité decommutateur à un tag NFC. En effet, il est possible sur certaines applications de programmer le tag de façon à ce que la première fois qu’on passe l’équipement dessus, il réalise une certaine
action et qu’en repassant l’équipement une deuxième fois, il réalise une autre action.
•
Exemple d'utilisation :•
Au premier passage du téléphone, le tag active la fonctionGPS du téléphone, et au deuxième passage, le tag désactive cette même fonction.
Mode émulation de cartes
•
Le terminal mobile fonctionne comme une carte sans contact. La carte SIM du portable peut être utilisée pour stocker des informations chiffrées sécurisées.•
Exemples d'utilisations :•
Paiement sans contact.•
Gestion des coupons de réduction ou des points de fidélité dans un magasin.Mode Pair-à-Pair
•
Ce mode de fonctionnement permet l'échange d'informations entre deux appareils équipés du NFC.•
Exemple d'utilisation :•
Un échange de photos entre une tablette et un Smartphone.•
Récupération des contacts téléphonique lors d’un changement de portable.AID
•
Le lecteur identifie le contenu d’une carte NFC/HCE grâce au:•
AID (Application IDentifier)•
Les AIDs sont en hexadécimal.•
Exemple: Carte Visa a un AID spécifique AID1:A0000000031010
APDU
•
Le lecteur et la caret NFC/HCE communiquent entre eux grâce au:•
APDU (Application Protocol Data Unit)•
C’est un ensemble de commandes et réponses APDU•
APDU a un format standard•
Les cartes bancaires (Visa, Master,…) sont lues partout dans le monde grâce à cette standardisation.•
La première commande entre un lecteur et une carte NFC/HCE est SELECT AIDLecture et Ecriture de tags NFC avec Android
Introduction
•
La réalisation du projet nécessite la prise en main d’outils tels que l’environnement de développement Android Studio et l’API Android NFC qui sont présentés ci-après.•
L’application créée au cours de ce projet peut être lancée sur un émulateur (fonctionnalité fournie par SDK Android) ou sur untéléphone réel.
•
Le test de l’application sur l’émulateur a montré les limites de l’émulateur qui été très long à se lancer.•
Aussi, nous utilisons un téléphone réel pour tester l’application, bénéficiant de la fonctionnalité NFC.Projet: Modes de communication
•
On va s’intéresser à deux modes NFC:•
Mode Read/writer:•
Emetteur: Téléphone NFC (Select AID1, Select AID2,…)•
Récepteur: une carte NFC: navigo ou carte bancaire•
Mode Card Emulation•
Emetteur: Téléphone NFC (Select AID4)API Android NFC
•
L’API d’Android propose un accès à la fonctionnalité NFC d’un téléphone grâce au package android.nfc. Ce dernier permet aux applications de lire et écrire unmessage NDEF dans les tags NFC.
•
Le package contient 4 classes :•
NfcManager : Gestionnaire de haut niveau, utilisé pour obtenir le NfcAdapter de l’appareil•
NfcAdapter : Représente l'adaptateur NFC de l'appareil, qui est le point d'entrée pour effectuer des opérations NFC.•
NdefMessage : Représente un message de données NDEF, qui est le format standard dans lequel les "enregistrements" porteurs de données sont transmis entre les périphériques et les tags•
NdefRecord : Représente un enregistrement, qui est livré dans un NdefMessage et décrit le type de données partagées et transporte les données lui-même.•
Le package android.ncf.tech propose des classes qui donnent accès aux caractéristiques de la technologie d’un tag, qui varie selon le type de tag scanné.•
Un tag scanné peut supporter plusieurs technologies.Modification du Manifest
•
Vérifiez si le téléphone supporte la technologie NFC1.<uses-feature
2.android:name="android.hardware.nfc"
3.android:required="true"/>
• Ajoutez les permissions nécessaires à votre application afin de pouvoir utiliser le NFC.
<uses-permission
android:name="android.permission.NFC"></uses-
permission>
Implémentation de la classe TagWriterActivity
•
Ajoutez une nouvelle activité à votre application:TagWriterActivity.
•
Cette activité sera destinée à écrire des informations sur un tag NFC.•
Il faut également surcharger la méthode onResume() de l'activité pour activer la découverte de tag.•
Surchargez de même la méthode onPause de l'activité pourdésactiver l'écoute des tags quand l’activité est mise en pause.
•
A la lecture d'un tag, Android crée automatiquement une nouvelle intention contenant les informations sur le tag détecté;•
pour pouvoir récupérer cette intention, il vous faudrasurcharger la méthode onNewIntent() de l'activité. Cette
méthode sera appelée à chaque fois qu'un tag est détecté par le lecteur.