Norme NFC - Romain Menetrier PAUG
-
Upload
paris-android-user-group -
Category
Technology
-
view
2.563 -
download
5
Transcript of Norme NFC - Romain Menetrier PAUG
NEAR FIELD COMMUNICATION
Romain MenetrierCTO @Connecthings
Sommaire
• Qu’est-ce que le NFC ?
• Pourquoi le NFC ?
• Historique
• Fonctionnements & standards
• Usages
• NFC & Android
Qu’est-ce que le NFC ?
Qu’est-ce que le NFC ?
Pour les pessimistes : NFC = Not Currently Found
Pour les optimistes : NFC = New Future is Coming
(copyright @PierreMetivier)
Qu’est-ce que le NFC ?
• NFC = Near Field Communication, communication en champs proche
• Interaction/sélection physique : on approche le téléphone du tag NFC pour déclencher l’interaction (toucher, pointer).
• Sécurité (présence de l’utilisateur), Contexte (localisation), Intention (toucher)
• Création en 2004 du NFC Forum, mais basée sur une technologie existante et éprouvée : RFID (premier brevet 1983)
• Interopérable avec l’infrastructure SmartCard (cartes à puces) existante
• Technologie destinée aux téléphones portables
Utilisation
• on approche son téléphone du tag NFC
• le téléphone réagit à la lecture des données en déclenchant l’action correspondante : lecture d’information, paiement, ...
Pourquoi s’y intéresser dès à présent ?
• Vous avez peut-être déjà un object équipé :
• carte sans contact : transport (Navigo, Oyster, Octopus, ...) ou entreprise (ouverture de porte, restaurant, ...),
• téléphones Nexus S, Galaxy SII, BlackBerry Bold 9900, Nokia C7 (env. 20 modèles commercialisés) ...
• carte SIM Orange > juin 2011
• «FeliCa Port» sur les PC portables Sony
Pourquoi s’y intéresser dès à présent ?
• Les villes déploient les tags sur leurs arrêts de transport en commun ou lieux culturels: Nice, Caen, Marseille, ...
• Un appel à projet du gouvernement pour le déploiement de services mobiles NFC (20M€)
• Lancement de téléphones équipés par les fabricants : Nokia, Samsung, ... (150 000 téléphones en France)
• Support logiciel sur les téléphones Symbian, Meego, Android, Windows phone, ...
• => Fin des expérimentations et lancement à grande échelle
Pourquoi le NFC ?
Avantages / Inconvénients
• Interaction sans lancement de logiciel au préalable
• Facilité du geste
• Coût du lecteur = 10€, mais tag = 0,1->1€
• Stockage de données relativement faible (jusqu’à 8Ko, mais souvent une centaine d’octets), mais supérieur à un code barre 2D
NFC et les autres technologies sans contact
• Codes barre 2D : volume de données plus important, pas de problème de lecture lié à la caméra, NFC peut écrire des données
• Bluetooth : moins cher, connexion plus facile (pas d'appariement)
• Wifi : moins cher, espace plus réduit plus facile à contrôler
• GPS : position relative précise (<10cm)
NFC : aperçu des usages possibles
• Obtenir de l’information en touchant une affiche
• Utiliser son téléphone comme ticket pour un concert
• Rejoindre un réseau WiFi en approchant son téléphone d’une borne
• Valider son titre de transport avec son téléphone
• Payer
• Partager des cartes de visites en approchant 2 téléphones
Le NFC s’intègre aux objets physiques
Historique
NFC est basé sur la RFID
• RFID = Radio Frequency Identification
• Un lecteur RFID peut lire et écrire à distance sur une puce RFID
• La distance entre le lecteur et le tag peuvent être de plusieurs dizaines de mètres
• Technologie éprouvée : premier brevet en 1983
• Utilisation pour l’identification animale, les passeports, le suivi des prêts dans les bibliothèques, le passage automatisé de péages d’autoroute, ...
NFC : Historique
• 2004 : Nokia, Philips (NXP) et Sony créent le NFC Forum
• 2006 : premières spécifications pour les tags NFC, premier téléphone NFC : Nokia 6131, API NFC pour J2ME
• 2009 : standard P2P, communication pair à pair entre périphériques NFC (ce mode n’existe pas en RFID), pour le transfert de données
• 2010 : premier téléphone NFC Android : Samsung Nexus S, API NFC pour Android
Téléphones
2004
Nokia Field Force NFC Shellcoque NFC pour 5140
2008
Nokia 6212 NFCsuccesseur du 6131, largement utilisé par les développeurs
2005
Nokia 3220 + NFC Shell2010
Samsung Nexus Spremier téléphone Android NFC
2005
Samsung SGH-D500E NFCpremier téléphone NFC, utilisé pour le pilote de Caen fin 2005
2011
Samsung Galaxy SIIFonctionnalités NFC uniquement en Corée du sud (France : oct 2011)
2006
Nokia 6131 NFCpremier téléphone NFC disponible commercialement
?‣NXP prévoit 40M de téléphone équipés en 2011‣Sortie des premiers téléphones NFC BlackBerry, HTC (Android), LG (Android), ...
Fonctionnement & standards
RFID
• Un tag RFID est composé d’une antenne (couplage avec le lecteur) et d’une puce (modulation du champ magnétique)
• Les puces RFID peuvent être :
➡ passives : le courant nécessaire au fonctionnement est fourni par le champ magnétique généré par le lecteur
➡ actives : une alimentation est présente pour augmenter la portée => le tag émet en permanence, problème de sécurité
➡ semi actives : une alimentation est présente mais n’est utilisé que pour l’enregistrement de données de traçabilité (sonde de température par exemple)
RFID
4 bandes de fréquences utilisées :
125-135KHz 13,56MHz UHF GHz
Identification prochePas de problème de
lecture
Portée de 1mTolérance aux perturbations
Standardisé au niveau mondial (ISO 14443,
ISO 15693)
Portée de 10mLa fréquence dépend
du paysCoût faible des puces
Identification d’animaux, ... NFC !Tracabilité : livres de bibliothèques, anti-vol dans les
magasins, péages d’autoroute ...
NFC est compatible avec SmartCard
• SmartCard = carte à puce
• Technologie répandue : premier déploiement massif en 1983 pour la carte de téléphone «Télécarte»
• Utilisé pour l’identification, l’authentification, le stockage de données et d’applications
• Communication par contact entre le lecteur et la puce
• Utilisation pour les cartes bleues, les cartes SIM de nos téléphones portables, ...
NFC = RFID + SmartCard
Le NFC est une extension de SmartCard, standardisant l’utilisation de celles-ci à travers une communication RFID (ISO 18092).
Un périphérique NFC combine donc l’interface d’une carte à puce et un lecteur RFID.
[RFID] 13,56 MHz : compromis entre distance de lecture et sensibilité aux perturbations environnementales (métal, autres champs magnétiques), standard mondial (contrairement aux autres fréquences)
[SmartCard] ISO 14443-4 : standard pour l’utilisation sans contact d’une SmartCard
NFC Forum
• Fondé en 2004 par Philips, Nokia et Sony
• 140 membres, dont Microsoft, Visa, Samsung, Google, France Telecom, Texas Instrument, Inside Secure, PayPal, ...
• Mission : assurer l’interopérabilité entre tous les périphériques et les services NFC, développer l’écosystème
• Définit des standards et des certifications pour les périphériques et services compatibles
NFC Forum : spécifications
Le NFC Forum prévoit 3 modes de fonctionnement : • Reader/Writer : lecture et écriture de l’information contenue dans un
tag• Card emulation : émulation logicielle d’un tag ou d’une interface de
carte à puce• P2P : (non défini dans la norme RFID) transfert pair à pair, pour le
transfert de fichiers ou l’appariement BlueTooth par exemple
NFC Forum : spécifications
CommunicationCommunication
PucesPuces
DonnéesDonnées
NFC Forum : Communication
La communication entre 2 périphériques NFC est basée sur la norme ISO 14443 :
• débit 106 à 424 Kbps,
• portée théorique jusqu’à 10 cm, mais en pratique < 4cm
• half duplex ou full duplex
• correction d’erreur
Le NFC Forum spécifie également le support de la communication FeliCa
NFC Forum : Communication
La norme ISO 14443 se divise en 2 types
➡ ISO 14443 A : modulation sur 100% d’amplitude, le bit d’information est calculé d’après le bit précédent
➡ ISO 14443 B : modulation sur 10% d’amplitude, lecture directe du bit d’information
Android : • type A = NfcA• type B = NfcB
NFC Forum : Communication
Felica (Sony)
Norme de communication supportée par le NFC Forum mais non standardisée ISO
Usage plutôt au Japon
Android : • Felica = NfcF• ISO15693 = NfcV
ISO 15693
Norme de communication non supportée par le NFC Forum mais standardisée ISO
Supporté par Android
Lecture théorique jusqu’à 1m (pas avec une antenne RFID d’un téléphone...)
NFC Forum : Puces
Le NFC Forum prévoit 4 types de tags (gestion des données dans la mémoire et interface de commande) :
Type Taille mémoire Type communication Exemple tag
Type 1 96 à 512 octets ISO 14443 ATopaz
(Innovision/Broadcom)
Type 2 48 à 192 octets ISO 14443 Atags Mifare Ultra Light de
NXP
Type 3 256 octets à 9 KoNon ISO 14443 mais
semblabletags FeliCa de Sony
Type 4 1 à 8 Ko ISO 14443 A ou B tags DesFire de NXP
Android : • type 1 et 2 = NfcA• type 3 = NfcF• type 4 = NfcA ou NfcB
NFC Forum : Puces
Exemple de structure mémoire (tag type 2)
Octet 1 Octet 2 Octet 3 Octet 4
block 0 Serial number UID0 UID1 UID2 Internal0
block 1 Serial number UID3 UID4 UID5 UID6
block 2 Interne /blocage Internal1 Internal2 Lock0 Lock1
block 3Capacités du
ContenantCC0 CC1 CC2 CC3
block 4 Données Data0 Data1 Data2 Data3
block 5 Données Data4 Data5 Data6 Data7
block 6 Données Data8 Data9 Data10 Data11
... Données ... ... ... ...
block 15 Données ... ... ... ...
Identifiant du tag
Blocage en écriture
Données
NFC Forum : NDEF
• NDEF = NFC Data Exchange Format
• Spécifications utilisée pour l’échange de données entres périphériques NFC (tags ou lecteurs)
• Encapsulation : un bloc NDEF peut contenir un ou plusieurs enregistrements NDEF
NFC Forum : Stockage NDEF dans un tag
• Un tag NFC Forum doit contenir un en-tête décrivant le contenu : le Capability Container (CC, sur 4 octets)
• Premier octet : décrit la présence ou non d’un enregistrement NDEF dans le tag (E1h = données présentes)
• Deuxième octet : donne la version de la spécification NFC Forum (10h = version 1.0)
• Troisième octet : donne la taille mémoire totale du tag en nombre de blocs de 8 octets (ex type 2: 06h = 6 blocs de 8 octets = 48 octets)
• Quatrième octet : donne la capacité de lecture et d’écriture sur l’espace de données (ex 00h = le premier ‘0’ indique une lecture sans restrictions, le deuxième ‘0’ indique une écriture possible sans restrictions)
Un tag dans lequel est présent cet entête est dit «formaté NDEF»
E1h 10h 06h 00h
NFC Forum : message NDEF
• Le premier bloc de 8 octets est un entête décrivant l’enregistrement :
7 MB (Message Begin) 1 = début du message NDEF
6 ME (Message End) 1 = fin du message NDEF
5 CF (Chunk Flag)1 = indique le début d’un enregistrement parcellaire
4 SR (Short Record)1 = format d’enregistrement court, simplifié
3 IL (Id Length)1 = l’enregistrement a un identifiant (optionnel)
2
TNF (Type Name Format)
Type de données sur 3 octets
1
0
NFC Forum : type NDEF
• Les 3 octets du TNF décrivent le type de format des données
0x00 Vide
0x01 type NFC Forum
0x02 Media type (MIME)
0x03 URI absolue
0x04 type externe (non géré par le NFC Forum)
0x05 type inconnu (= MIME application/octet-stream)
0x06type inchangé (utilisé pour les messages parcellaires)
0x07 type réservé pour un usage futur
NFC Forum : type NDEF NFC Forum
• Un type NFC Forum est utilisé quand il n’existe pas d’équivalent MIME ou que l’espace de stockage réduit implique l’utilisation d’une identification de type plus courte
Format : «urn:nfc:wkt:U»
Uniform Resource Name espace de nom NFC Well Know Type (=type NFC Forum) Url
• Le type NFC Forum peut être raccourci pour être écrit dans sa version courte (ici : U)
NFC Forum : types NFC Forum
URL (type «U»)
Le contenu est défini par un octet précisant le préfixe :
‣ 0x00 pour aucun préfixe,
‣ 0x01 pour «http://www.»,
‣ 0x05 pour «tel:»
‣ 0x06 pour «mailto:»
NFC Forum : types NFC Forum
Smart Poster (type «Sp»)
Le contenu est composé de plusieurs enregistrements NDEF :
‣ URI : obligatoire, 1 seul enregistrement
‣ Title : optionnel, titre affiché lors de lecture
‣ Action : optionnel, indique comment doit être traité l’enregistrement par le lecteur : enregistrement, ouverture, ...
‣ Icon : image
‣ Size : taille du contenu ciblé par l’url
‣ Type : type du contenu ciblé par l’url
NFC Forum : Exemple d’enregistrement NDEF
Position Contenu Longueur Explication
0 0xD1 1Entête NDEF : TNF = 0x01 (type NFC Forum), MB=1, ME=1 (1 seul
message)
1 0x02 1 Longueur du type (2 octets)
2 0x0E 1 Longueur des données (14 octets)
3 «Sp» 2 type SmartPoster
5 0xD1 1Entête NDEF : TNF = 0x01 (type NFC Forum), MB=1, ME=1 (1 seul
message)
6 0x01 1 Longueur du type (1 octets)
7 0x09 1 Longueur des données (9 octets)
8 «U» 1 type Url
9 0x01 1 Préfixe «http://www.»
10«google.fr
»9 contenu URL
NFC Forum : Exemples NDEF
Type Name Format Type Name Description
MIME text/x-vCard Carte de visite vCard
MIME text/x-vCalendar RDV calendrier
NFC Forum RTD urn:nfc:wkt:Sp Smart Poster
NFC Forum RTD urn:nfc:wkt:U URI
Global Platform : SmartCard
‣ SmartCard = espace sécurisé (besoin de s’authentifier pour communiquer)
‣ espace de stockage réduit (souvent 4Ko)
‣ Comme pour SSL, nécessité de passer par une autorité de certification pour avoir accès (Opérateur mobile, TSM = Trusted Security Manager)
Global Platform : communication SmartCard
‣ Protocole de communication ISO 14443-4, entre une applet (SmartCard) et un lecteur
‣ Messages APDU (Application Protocol Data Unit) = suite d’octets
‣ séquence de communication : envoi de commande suivi d’une réponse
Exemples d’utilisation
‣increménte 2 dans l’application 1
=> réponse OK
‣lit la valeur de l’application 1
=> réponse OK 2
Exemples d’utilisation
‣increménte 2 dans l’application 1
=> réponse OK
‣lit la valeur de l’application 1
=> réponse OK 2
Global Platform : applet SmartCard
‣ application SmartCard = applet (standard JavaCard)
‣ la taille disponible pour l’applet est très réduit
‣ l’espace doit être partagé avec les autres applications
Global Platform : exemple Compteur
Source : http://julienb.developpez.com/tutoriels/java/introjavacard/#LV
Global Platform : exemple Compteur
Pour quels usages ?
AuthentificationPaiementTicketsAccès à l’informationDéclenchement d’actionsConnexionEchange d’informations
Authentification (SmartCard)
• Contrôle d’accès : ouverture de porte, suivi de tournée
• Authentification sur un service ou un programme : Intranet entreprise, réseau social, ...
Bénéfice : un seul objet stocke nos identités, objet que l’on possède toujours avec soi (téléphone)
Paiement (SmartCard)
• Acheter son pain à la boulangerie
• Acheter son titre de transport dans le bus ou à l’arrêt
• Acheter son entrée à la piscine
Bénéfice : pas de file d’attente, pas de monnaie
Tickets (SmartCard)
• Ticket de concert
• Entrée musée
• Coupons de réduction
Accès à l’information (Reader)
• SmartPoster ou Url
• Accès au horaires temps réel sur un arrêt de bus
• Lecture vidéo, audio sur des cartels dans les musées
• Magasins les plus proches pour acheter un produit présent sur une affiche
Déclenchement d’actions (Reader)
• Appel téléphonique
• SMS (destinataire + message prérempli)
• Déblocage de niveau secret dans un jeu (Angry Bird)
• Demande d’ajout d’ami Facebook
Connexion (Reader)
• Connexion automatique à un réseau wifi
• Pairing BlueTooth
Echange d’information (P2P)
• Echange de cartes de visite vCards
• Synchronisation de niveau dans un jeu
• Connexion d’utilisateurs sur Facebook, Twitter, Google+, ...
NFC & Android
Kit de développementSupport du NFCApplications
Kit de développement
P2P, Reader : • SDK : SDK Android
• tags & lecteurs NFC : (entre 1 et 5€ par tag, lecteur entre 40 et 100€)
➡ http://www.tagstore.com ➡ http://www.rfidshop.com ➡ http://www.identivenfc.com ➡ http://www.toptunniste.fi➡ http://www.smartcardfocus.com
• téléphone NFC : Samsung Nexus S (env 500€), Samsung Galaxy SII (très bientôt...)
Card Emulation : • SDK : SmartCard API for Android http://code.google.com/p/seek-for-android/
• Developer kit : https://www.cardsolutions-shop.com/shop/gi-de/ (69€) et un téléphone Android compatible (http://code.google.com/p/seek-for-android/wiki/Devices)
• Lecteur NFC USB conseillé : ACR122 http://www.smartcardfocus.com/shop/ilp/id~242/ACR122/p/index.shtml (env 46€)
Android : Support du NFC
Mode Reader/writer : supporté
Mode Card Emulation :
• Pour le moment, Android ne peut émuler que des tags NFC (limité), pas des SmartCard
• besoin de l’accès à l’élément sécurisé (puce SmartCard)
• mais le téléphone peut avoir 2 élément sécurisé (puce SmartCard interne + SIM)
• Téléphones Google : Google Wallet utilise l’élément sécurisé interne du téléphone => pas d’accès au mode émulation de carte
• Téléphones Cityzi : basé sur la SIM, accès via SDK Cityzi pour les éditeurs de service Cityzi
P2P :
• le SDK Android implémente une version différente de celle préconisée par le NFC Forum
• mais l’émission/réception de messages NDEF fonctionne sans soucis !
Applications NFC Android
NFC Reader & Writer
Lecture et écriture de tags NFChttps://market.android.com/details?id=com.connecthings.tagwriter
NFC TagInfo
Information détaillée sur les tags lus par l’applicationhttps://market.android.com/details?id=at.mroland.android.apps.nfctaginfo
NFC Task Launcher
Automatiser le système Android à l’aide de tags (activer/désactiver wifi ou GPS, ...)https://market.android.com/details?id=com.jwsoft.nfcactionlauncher
Market Android / applications NFC : 2 en janvier 2011, 135 maintenant
Crédits images
http://www.flickr.com/photos/wheatfields/4946287200http://www.flickr.com/photos/michel_langendijk/3403952323http://www.flickr.com/photos/chewie/65493124http://www.flickr.com/photos/timo/http://www.flickr.com/photos/nnova/2891151531http://www.flickr.com/photos/feuilllu/http://www.flickr.com/photos/74845103@N00/344484735/http://www.flickr.com/photos/electrolux-design-lab/6035579292/http://www.dailymotion.com/video/xfk9cz_studio-13-16-smart-muse_creationhttp://www.nfc-forum.orghttp://www.nexperts.comhttp://www.ics.com/company/news/nfc_hackathon/
Android skaters image is reproduced from work created and shared by Google and used according to terms described in theCreative Commons 3.0 Attribution License.
NFC Forum N-Mark is a registered Trademark of NFC Forum.
Sauf mentions contraires, les images Flicker utilisées sont soumises à la licence Creative Commons CC-BY-SA (http://creativecommons.org/licenses/by-sa/3.0/deed.fr)
Questions ?
ContactEmail : [email protected] : @romemore
ContactEmail : [email protected] : @romemore