technologie nfc - lip6

39
Technologie NFC Wafa Badreddine [email protected]

Upload: others

Post on 02-Jan-2022

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Technologie NFC - LIP6

Technologie NFCWafa Badreddine

[email protected]

Page 2: Technologie NFC - LIP6

Wafa Badreddine PROGRES

Plan

• Introduction

• Caractéristiques techniques & Fonctionnement

• Modes de communication

• APDU & AID

• Projet Android

!2

Page 3: Technologie NFC - LIP6

Wafa Badreddine PROGRES

Introduction

• 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)

!3

Page 4: Technologie NFC - LIP6

Wafa Badreddine PROGRES

Introduction• Le NFC est intégré dans certains téléphones portables sous

forme d’une antenne, ainsi que sur certaines cartes de transport ou de paiement (permettant le paiement sans contact)

!4

Page 5: Technologie NFC - LIP6

Wafa Badreddine PROGRES

Caractéristiques techniques

• Le NFC (Near Field Communication) est une technologie permettant 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/s

!5

Page 6: Technologie NFC - LIP6

Wafa Badreddine PROGRES

Fonctionnement• 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.

• Par défaut tous les appareils sont des cibles !6

Page 7: Technologie NFC - LIP6
Page 8: Technologie NFC - LIP6
Page 9: Technologie NFC - LIP6

Wafa Badreddine PROGRES

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 par l’é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)

!9

Page 10: Technologie NFC - LIP6

Wafa Badreddine PROGRES

Fonctionnement

• Deux modes de communication existent

• Passif

• Actif

!10

Page 11: Technologie NFC - LIP6

Wafa Badreddine PROGRES

Fonctionnement 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’énergie

!11

Page 12: Technologie NFC - LIP6

Wafa Badreddine PROGRES

Fonctionnement 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 propre

!12

Page 13: Technologie NFC - LIP6

Wafa Badreddine PROGRES

Normes• 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’échange!13

Page 14: Technologie NFC - LIP6

Wafa Badreddine PROGRES

Collisions

• 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 garde

!14

Page 15: Technologie NFC - LIP6

Wafa Badreddine PROGRES!15

Communication

Page 16: Technologie NFC - LIP6

Wafa Badreddine PROGRES

Intérêts

• Faible portée

• Sécurité

• Utilisation naturelle

• Mode passif

• Economie d’énergie

!16

Page 17: Technologie NFC - LIP6

Wafa Badreddine PROGRES

Comparaison NFC/RFID

• NFC englobe les fonctionnalités de RFID

• Emulation de tag RFID

• Possibilité de P2P (communication active)

!17

Page 18: Technologie NFC - LIP6

Wafa Badreddine PROGRES

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

• Utilisation différente

!18

Page 19: Technologie NFC - LIP6

Wafa Badreddine PROGRES

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é wifi

!19

Page 20: Technologie NFC - LIP6

Wafa Badreddine PROGRES

Sé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 messages

!20

Page 21: Technologie NFC - LIP6

Wafa Badreddine PROGRES

Modes de communication NFC

• La communication NFC a trois modes différents:

• Reader/Writer Mode

• Card Emmulation Mode (Host Card Emulation)

• Peer to Peer Mode

!21

Page 22: Technologie NFC - LIP6

Wafa Badreddine PROGRES

• L’équipement NFC est capable de lire des tags (étiquettes électroniques), pour récolter des informations pratiques, ou pour lancer une action de manière automatique.

• Exemples d'utilisations :

• Paiement par carte

• Automatisation d'une tâche : lancer une application à l'approche du tag NFC.

!22

Mode Reader/Writer

Page 23: Technologie NFC - LIP6

Wafa Badreddine PROGRES

Mode Reader/Writer• Ce mode permet également de donner la fonctionnalité de

commutateur à 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 fonction GPS du téléphone, et au deuxième passage, le tag désactive cette même fonction.

!23

Page 24: Technologie NFC - LIP6

Wafa Badreddine PROGRES

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.

!24

Page 25: Technologie NFC - LIP6

Wafa Badreddine PROGRES

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.

!25

Page 26: Technologie NFC - LIP6

Wafa Badreddine PROGRES

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

!26

Page 27: Technologie NFC - LIP6

Wafa Badreddine PROGRES

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.

!27

Page 28: Technologie NFC - LIP6

Wafa Badreddine PROGRES

• La première commande entre un lecteur et une carte NFC/HCE est SELECT AID

!28

Page 29: Technologie NFC - LIP6

Wafa Badreddine PROGRES

Lecture et Ecriture de tags NFC avec Android

!29

Page 30: Technologie NFC - LIP6

Wafa Badreddine PROGRES

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.

!30

Page 31: Technologie NFC - LIP6

• L’application créée au cours de ce projet peut être lancée sur un émulateur (fonctionnalité fournie par SDK Android) ou sur un té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.

Page 32: Technologie NFC - LIP6

Wafa Badreddine PROGRES

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)

• Récepteur: un deuxième téléphone agissant comme une carte NFC (Attribuer au téléphone HCE AID4)

!32

Page 33: Technologie NFC - LIP6

Wafa Badreddine PROGRES

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 un message 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.

!33

Page 34: Technologie NFC - LIP6

• 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.

Page 35: Technologie NFC - LIP6

Wafa Badreddine PROGRES

Modification du Manifest

• Vérifiez si le téléphone supporte la technologie NFC 1.<uses-feature 2.android:name="android.hardware.nfc" 3.android:required="true"/>

!35

Page 36: Technologie NFC - LIP6

• Ajoutez les permissions nécessaires à votre application afin de pouvoir utiliser le NFC. 

<uses-permission android:name="android.permission.NFC"></uses-permission>

Page 37: Technologie NFC - LIP6

Wafa Badreddine PROGRES

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.

!37

Page 38: Technologie NFC - LIP6

• 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é pour dé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 faudra surcharger la méthode onNewIntent() de l'activité.  Cette méthode sera appelée à chaque fois qu'un tag est détecté par le lecteur. 

Page 39: Technologie NFC - LIP6

• Cette méthode convertit une chaine de caractères au format NDEF

• private NdefMessage getMessageAsNdef(String message) {}

• Cette méthode lit un message NDEF contenu dans un tag

• private NdefMessage[] getNdefMessages(Intent intent) {}

• Méthode permettant de formater et\ou d'écrire de nouvelles données sur un tag NFC

• boolean writeTag(NdefMessage message) {}