La Technologie NFC. Near Field Communication (NFC) Par



Documents pareils
NFC Near Field Communication

La technologie NFC pour plus de mobilité

Club Utilisateurs 2 ème Réunion, 8 Octobre 2014 International RFID Congress, Marseille. Diffusion Restreinte

Outil de démonstration : Application PassNFC

livre blanc la communication NFC une révolution pour la relation client

NOVEMBRE 2009 DOCUMENT FONCTIONNEL COMMUN (DOFOCO) DES APPLICATIONS BILLETTIQUES SUR MOBILE NFC

Les tablettes. Présentation tablettes Descriptif Fournisseurs Caractéristiques Comparatifs Conseils Perspectives Démonstration

Présentation de la plateforme Diagnostic RFID

L identification par radio fréquence principe et applications

Kit pédagogique RFID-EDUC

Un nouveau modèle d'identité NFC compatible avec l'écosystème mobile, et cas d'usage

Technologies mobiles & Tourisme: la révolution? Denis Genevois Marche-en Janvier 2011

CHOIX ET USAGES D UNE TABLETTE TACTILE EN ENTREPRISE

U N I V E R S I T E P A R I S - E S T M A R N E - LA- V A L L E E

Cours n 12. Technologies WAN 2nd partie

Android comme périphérique annexe.

Béatrice Bertrand CDDP de l Eure. Béatrice Bertrand CDDP de l'eure

5.5 Utiliser le WiFi depuis son domicile

CULTe Le samedi 9 février2008 à 15h. Conf 1 : WIFI, les bases

#IOT. Internet #IGE36 #INTTIC.

LA DIVERSITE DES SUPPORTS ANDROID

Sécurisation des paiements en lignes et méthodes alternatives de paiement

Environnement Zebra Link-OS version 2.0

Cisco Certified Network Associate

Optimisez le potentiel sans fil de votre ordinateur portable ou de votre PC de bureau

Les liaisons SPI et I2C

QU EST-CE QUE LA RFID?

Perception et utilisation des solutions de radio-identification (RFID) dans les entreprises françaises

Environnement Zebra Link-OS version 2.0

Le NFC et sa place dans un monde sans fil

Université de La Rochelle. Réseaux TD n 6

Pour la première fois, la carte SIM d un téléphone devient aussi une carte bancaire sécurisée

Le réseau sans fil "Wi - Fi" (Wireless Fidelity)

Michel Leduc VP Marketing Neowave 28 Mars 2013 XIXème Forum Systèmes et Logiciels pour les NTIC dans le Transport

Plate formes mobiles. Utilisation. Contexte 9/29/2010 IFC 2. Deux utilisations assez distinctes :

Les Réseaux sans fils : IEEE F. Nolot

Foire aux questions sur Christie Brio

LOGO Smartphones, tablettes, et autres gadgets quel impact sur notre métier d ASR

How To? Sécurité des réseaux sans fils

Le rôle Serveur NPS et Protection d accès réseau

Ce document décrit une solution de single sign-on (SSO) sécurisée permettant d accéder à Microsoft Exchange avec des tablettes ou smartphones.

Charte d installation des réseaux sans-fils à l INSA de Lyon

ADSL. Étude d une LiveBox. 1. Environnement de la LiveBox TMRIM 2 EME TRIMESTRE LP CHATEAU BLANC CHALETTE/LOING NIVEAU :

LES OUTILS DE LA MOBILITE

Catalogue Produits. Puces d identification électronique. Lecteurs. Biolog-Tiny. Biolog-RS et ES. Biolog-FS et FD. Tiny Puce Aiguille.

Les technologies sans contact (Bluetooth, Infra-rouge,

SÉCURISATION DES CONNEXIONS À DISTANCE SUR LES RÉSEAUX DE CONTRÔLE

Lecteur de carte à puce LCPM1 SOMMAIRE

Chaine de transmission

Fonctions de la couche physique

Fax sur IP. Panorama

Cours 3 : L'ordinateur

Tutorial Terminal Server sous

Réseaux Mobiles et Haut Débit

TECHN 37 Technis ublic e a uitga tion p v é e va riodin de que Sm de a S ls m - a M ls v M Ja 4/2 nv 0 ie 0 r

PRODUIRE DES SIGNAUX 1 : LES ONDES ELECTROMAGNETIQUES, SUPPORT DE CHOIX POUR TRANSMETTRE DES INFORMATIONS

Cisco Discovery - DRSEnt Module 7

LES DIFFÉRENTS FORMATS AUDIO NUMÉRIQUES

Transmissions série et parallèle

TD 1 - Transmission en bande de passe

les guides pratiques du cours des parents maîtriser les achats sur mobile

7.1.2 Normes des réseaux locaux sans fil

Mes documents Sauvegardés

NOTICE D UTILISATION

Guide d utilisation de Seagate Central

LTE dans les transports: Au service de nouveaux services

Cortado Corporate Server

Mieux comprendre les certificats SSL THAWTE EST L UN DES PRINCIPAUX FOURNISSEURS DE CERTIFICATS SSL DANS LE MONDE

Documentation Honolulu 14 (1)

Conseil d administration Genève, novembre 2002 LILS

Transmission de données. A) Principaux éléments intervenant dans la transmission

NOMENCLATURE. PARTIE 1 : PRODUITS, MATERIAUX et EQUIPEMENTS

Cours CCNA 1. Exercices

LES TABLETTES : GÉNÉRALITÉS

Quel avenir pour les déplacements régionaux? La billettique intégrée. Nathalie AMIEL DIRECTION DELEGUEE TER PACA INTERMODALITE, BILLETTIQUE

Clé WIFI 300N. 1. Introduction :

1. Installation standard sur un serveur dédié

Sécurité des réseaux sans fil

CYLINDRE ET BÉQUILLE ÉLECTRONIQUES À BADGE Aperio E100 & C100

LA COUCHE PHYSIQUE EST LA COUCHE par laquelle l information est effectivemnt transmise.

HCE & Authentification de seconde génération

Biolog-id Catalogue produits

Sécuriser le e-commerce avec la technologie XCA. «Une sécurité qui inspire la confiance»

LA VIDÉOSURVEILLANCE SANS FIL

Comment choisir sa tablette?

Le multiplexage. Sommaire

Guide d'initiation aux. certificats SSL. Faire le bon choix parmi les options qui s'offrent à vous en matière de sécurité en ligne. Document technique

Chapitre 2 : communications numériques.

Single Sign On. Nicolas Dewaele. Single Sign On. Page 1. et Web SSO

contactless & payment des solutions de test pour mener à bien vos projets

Office 365 pour les établissements scolaires

Logiciel de gestion des équipements de test MET/TEAM. NOUVEAU logiciel convivial de gestion des ressources d étalonnage par navigateur

Didier Perrot Olivier Perroquin In-Webo Technologies

Les Fiches thématiques la Visio Conférence

Réseaux : Wi-Fi Sommaire. 1. Introduction. 2. Modes de fonctionnement. 3. Le médium. 4. La loi. 5. Sécurité

Les services mobiles sans contact

Transcription:

La Technologie NFC Near Field Communication (NFC) Par Benjamin Lempereur www.benjaminlempereur.com contact@benjaminlempereur.com 6 TQInfo Institut Don Bosco Verviers 2013-2014

La Technologie NFC Near Field Communication (NFC) Par Benjamin Lempereur www.benjaminlempereur.be 6 TQInfo Institut Don Bosco Verviers 2013-2014

REMERCIEMENTS Je tiens tout d abord à remercier mon maître de stage, Hugues Franckart, IT Manager chez Armacell, pour m avoir accueilli durant ces 4 semaines et de m avoir permis de mettre ma formation en pratique et de l améliorer de par ses conseils et enseignements toujours avisés. J aimerais ensuite remercier Messieurs Hardy et Houbard pour avoir donné leurs cours respectifs comme ils l ont fait et de m avoir permis de progresser tout au long de ces deux années passées ensemble. Je voudrais également remercier mes proches pour m avoir soutenu durant ces deux années d apprentissage grâce à leurs conseils moins techniques mais tout aussi judicieux. Je tiens aussi à remercier Madame Sohet pour la correction orthographique de ce document. Enfin, je tiens à remercier tout particulièrement mes camarades de classe pour m avoir fait passer deux excellentes années en leur compagnie. Je leurs souhaite à chacun le meilleur dans leurs futures études ou leur travail respectif.

TABLE DES MATIERES 1. STAGE... 1 1.1. Résumé... 2 1.2. Carnet de stage... 2 2. PRESENTATION DU TFE... 3 2.1. En quoi va consister mon TFE?... 3 2.2. En bref, qu'est-ce que la Near Field Communication?... 3 2.3. Pourquoi avoir choisi la Near Field Communication?... 3 3. CHEMINEMENTD APPRENTISAGE... 4 3.1. Introduction... 4 3.2. Plan de travail... 6 4. La NFC... 7 4.1. L histoire du NFC... 7 4.2. Les caractéristiques du NFC.... 9 4.2.1. La Technologie... 9 4.2.2. Les Tags... 10 4.2.3. Comparaison avec le Bluetooth :... 12 4.3. Comment fonctionne le NFC?... 13 4.3.1. Début de la communication... 13 4.3.2. Choix du mode... 13 4.3.3. Modulation et codage... 14 4.3.4. Les perturbations et collisions... 16

4.3.5. Trame NFC... 16 4.3.6. Schéma de communication... 17 4.3.7. Expérimentations diverses... 18 4.4. Les normes et standards régissant la technologie NFC.... 21 4.5. Quels sont les usages du NFC?... 22 4.6. Le NFC et la sécurité... 24 4.7. Diffusion de la technologie NFC... 27 5. TRAVAIL PRATIQUE... 28 5.1. Définition du travail pratique... 28 5.2. Présentation de l environnement de développement... 29 5.3. Développement de l application... 31 5.3.1. Charte graphique... 31 5.3.2. Schéma de l application... 32 5.3.3. Fenêtre d accueil et ActionBar... 33 5.3.4. Fenêtre d envoi... 35 5.3.5. Fenêtre d inscription... 42 5.3.6. Fenêtre de lecture... 44 5.3.7. Fenêtre d informations et ActionBar... 46 5.3.8. Fenêtre Readme... 46 5.3.9. Fenêtre Copyright... 47 5.3.10. Fenêtre d informations de version... 47 5.4. Problèmes rencontrés... 49 5.5. Améliorations possibles... 50 6. CONCLUSION... 51

7. GLOSSAIRE... 52 8. BIBLIOGRAPHIE ET REFERENCES... 54

1. STAGE J ai effectué mon stage dans le département informatique d Armacell Benelux S.A, entreprise située dans le Zoning Industriel des Plenesses à Thimister-Clermont et spécialisée dans la fabrication et la commercialisation de mousses thermoplastiques. 1

1.1. RESUME Mon projet central durant la première semaine de stage a été de développer, via Windev, une application de création d étiquette GMAO. Ma démarche a d abord été d organiser une réunion avec les partis concernés pour évaluer leurs attentes vis-à-vis de l application et leur faisabilité. Une fois l évaluation de leur attente terminée, il a fallu construire un diagramme représentant le fonctionnement de l application et ses bases de données. Sur base de ce diagramme, j ai développé l application tout en tenant compte des remarques de mon maître de stage et du personnel, qui sera l utilisateur final de l application. Durant la deuxième semaine, j ai corrigé mon application en fonction des retours des utilisateurs mais j ai également effectué des travaux plus orientés technique (dépannages et installations). J ai également commencé un deuxième projet poursuivi durant les deux semaines restantes : la création et la mise en place d un intranet via Webdev. Cet intranet permet de centraliser les informations et services internes à l entreprise qui sont à destination de tous les salariés. Dans ces services, on peut citer une interface de commande de sandwichs, un agenda commun et un système de valves. Tous ces projets ont bien sûr été ponctués de divers dépannages et installations de PC. 1.2. CARNET DE STAGE Voici la version numérique de mon carnet de stage, hébergée sur le forum de l école. http://tinyurl.com/stagelempereur 2

2. PRESENTATION DU TFE 2.1. EN QUOI VA CONSISTER MON TFE? Mon TFE va consister en un travail écrit expliquant ce qu'est la Near Field Communication, que j'abrégerais par sa forme la plus connue : NFC, comment cela fonctionne, quels en sont ses usages, son niveau de sécurité et le cheminement de réalisation d'une application d inscription de tags et d échange de fichiers NFC que je vais développer sous Android avec Windev Mobile. 2.2. EN BREF, QU'EST-CE QUE LA NEAR FIELD COMMUNICATION? La NFC est une technologie permettant d'échanger des informations et des fichiers entre deux périphériques sans-fil à courte-portée (10cm maximum) et à haute-fréquence. Cette technologie est présente, via une puce, dans des cartes de transport, de payement, dans des ordinateurs, smartphones, etc... 2.3. POURQUOI AVOIR CHOISI LA NEAR FIELD COMMUNICATION? J'ai choisi la Near Field Communication dans l'optique de pouvoir développer un sujet relativement récent, promis à un bel avenir et ouvrant un large panel de possibilités et d'innovations pour l'utilisateur. 3

3. CHEMINEMENTD APPRENTISAGE 3.1. INTRODUCTION J ai tout d abord dû choisir un sujet pour ce TFE. Je me suis donc mis à la recherche d un sujet innovant, ouvrant de larges possibilités d utilisations et qui a un but bien précis : nous simplifier la vie! Je me suis très vite rendu compte que la technologie du Near Field Communication entrait parfaitement dans ces critères. Une fois mon sujet défini, j ai réfléchi à la réalisation d un travail pratique. Le développement d une application Android d échange de fichiers et de lecture/écriture de tags NFC m a paru tout de suite une évidence car ce sont les utilisations principales de la technologie. Pourquoi développer cette application sous Android? Tout simplement car c est l OS mobile le plus ouvert et le plus répandu et qu Apple n a pas jugé nécessaire d intégrer une puce NFC dans ses terminaux IOS. Ce qui est selon moi une grossière erreur. L entreprise a, par contre, développé une solution concurrente et à contrecourant de la standardisation NFC utilisant le Bluetooth 4 Low Energy et permettant la diffusion automatique d'informations dans une zone de couverture. Il a ensuite fallu choisir comment développer cette application. Ayant utilisé deux des trois logiciels de la suite d Atelier de Génie Logiciel (AGL) de PC Soft : Windev et Webdev qui sont destinés respectivement à la création de logiciels PC et de sites Web, je me suis dit que j allais utiliser le troisième logiciel qui est Windev Mobile et qui permet la création d applications mobile. L utilisation de ce logiciel me permettra, en plus de développer l application, de continuer à mettre en pratique les connaissances que j ai apprises durant mon stage. 4

Après avoir correctement et clairement défini mes objectifs, je me suis lancé dans la recherche d informations concernant la NFC et tout ce qui s y rapporte pour me permettre de jongler facilement avec toutes les normes, technologies et termes qui la concernent et bien sûr pouvoir rédiger ce document. J ai ensuite démarré le développement de mon application. Le développement bien que semé d embuches, que j ai dépassées, a fini par déboucher l application que j avais imaginée au départ. Tout le déroulement du développement est bien sur détaillé dans la partie 5 : «Travail Pratique». Une fois l application terminée, il a fallu, sur base de la documentation que j avais amassée, rédiger ce document en suivant le squelette que j avais élaboré lors de ma réflexion et qui est composé des différents chapitres. J ai tenté d expliquer au mieux cette technologie qui est définie par plusieurs standards et qui tire ses inspirations de plusieurs autres procédés. Enfin, lorsque mon travail a été correctement rédigé, j ai commencé à préparer ma défense en relisant mon TFE ainsi que tous les documents collectés pour me permettre d être un maximum à l aise avec le sujet présenté. J ai également réalisé une présentation de type diaporama avec un Web-logiciel, Prezi, que j utilise assez régulièrement et qui permet des animations plus interactives que le traditionnel Microsoft Office Powerpoint. 5

3.2. PLAN DE TRAVAIL 6

4. LA NFC 4.1. L HISTOIRE DU NFC Les origines de la technologie NFC remontent à la création de la Radio-identification (RFID). La Radio-identification est une méthode permettant de mémoriser et récupérer des données à distance en utilisant des marqueurs appelés «tags», méthode sur laquelle est basée le NFC. En 1983, l inventeur Charles Walton déposa le premier brevet associé au RFID qui servira de base au fonctionnement de la future technologie Near Field Communication. Charles Walton En 2002, Sony et Phillips conviennent de la mise en place d une spécification et d un cadre technique pour ce qui sera bientôt désigné la NFC. Peu après, en 2004, Nokia, Philips et Sony créent le «Near Field Communication (NFC) Forum», un consortium international créé pour promouvoir la technologie NFC et comptant actuellement plus de 14 membres dont Intel, Google, Samsung et MasterCard. 7

En 2006, les spécifications initiales sont fixées par le «Near Field Communication (NFC) Forum» et la même année, Nokia sortira le premier téléphone NFC, le Nokia 6131. Nokia 6131 En janvier 2009, le «Near Field Communication (NFC) Forum» publie les normes Peer-To-Peer permettant d établir un contact direct entre deux terminaux NFC et d échanger des informations pour, par exemple, transférer un contact, une URL, lancer le service Bluetooth, etc A partir de 2010, la NFC commence à se répandre. Samsung sort le premier smartphone Android NFC avec le Nexus S et la ville de Nice, en France, lancera le projet «Nice, ville du sans-contact mobile» sensibilisant les habitants aux usages du NFC tels que la dématérialisation des titres de transports, le tourisme et les services aux jeunes. En 2013, Samsung signa un partenariat avec Visa, société de systèmes de payements, visant à développer les payements mobiles via NFC. Fin 2013, la branche d IBM Scientists de Zurich a mis au point, dans le but de sécuriser les échanges NFC, une nouvelle technologie de sécurité d'authentification mobile. Celle-ci fonctionne sur des principes similaires à ceux d'une mesure de sécurité de l'authentification à deux facteurs. 8

Puce NFC dans un périphérique Samsung (Star II) 4.2. LES CARACTERISTIQUES DU NFC. 4.2.1. LA TECHNOLOGIE La Near Field Communication (Communication en champ proche) est un ensemble de technologies sans-fil à courte portée englobant les fonctionnalités de l RFID. Elle opère sur une fréquence de 13,56 MHz (Norme ISO/IEC 18000-3) et à des taux allant de 106 ko/s à 1mo/s, nécessitant une distance pratique de moins de 10 cm et impliquant toujours un initiateur et une cible. L initiateur génère un champ électromagnétique qui permet d alimenter si nécessaire la cible (mode passif) et donc permet d utiliser comme cible des autocollants, porte-clés ou des cartes qui ne nécessitent pas de batteries. 9

Dans le cas d une communication Peer-To-Peer (mode actif), il est obligatoire que les deux périphériques soient alimentés. Il existe également un mode émulation où un périphérique se fait passer pour un tag. La NFC utilise une modulation d'amplitude pour transmettre l'information. L'amplitude du signal est modifiée pour permettre de représenter les bits. 4.2.2. LES TAGS De leur côté, les tags NFC (cible) sont de petits périphériques, fins et pliables, composés d une puce de stockage contenant les données destinées à effectuer une action sur le périphérique initiateur et d une antenne. Les tags sont généralement en lecture seule mais peuvent être réinscrits. Ceux-ci peuvent être encodés de façon propriétaire par leurs fabricants mais aussi se baser sur les spécifications standard du «Near Field Communication (NFC) Forum». Les tags peuvent contenir tous types de données de façon sécurisée comme des informations de carte de crédit, des données d un programme de fidélité, des codes PIN, etc Exemple de tag NFC 10

Le Forum NFC a défini 4 types de tags qui fournissent des vitesses et des capacités différentes en termes de compatibilité, de mémoire, de sécurité, de conservation des données et de réécriture. Ils sont chacun destinés à un usage spécifique : Nom Norme Réinscription Taille Vitesse Comparaison Exemple Type 1 ISO/IEC 14443A Oui Entre 96 o et 2 Ko 106 Ko/s Modèle de base. Topaz 512 Type 2 ISO/IEC 14443A Oui Entre 48 o et 2 Ko 106 Ko/s Existe dans plusieurs formats et plus fiable. Ultralight Type 3 JIS X 6319-4 Oui Jusque 1 Mo 212 Ko/s Débit et espace élevés mais plus cher. Sony Felica Type 4 ISO/IEC 14443A & B ISO 7816-4 Oui Jusque 32 Ko 106 Ko/s Présence d un système de fichiers (contrôle d intégrité et cryptage). NXP DESfire Caractéristiques / Propriétés UID (User Identifier) Type 1 Type 2 Type 3 Type 4 Oui Oui Non Oui Lecture seul Oui Oui Oui Oui Prix à l unité Faible Faible Elevé Moyen / Elevé Support de l anti-collision Non Oui Oui Oui Contenu actif Non Non Non Possibilité 11

4.2.3. COMPARAISON AVEC LE BLUETOOTH : La NFC et le Bluetooth sont tous les deux des technologies de communication sans-fil intégrés dans de nombreux types de périphériques. Elles sont donc souvent comparées voire confondues par certaines personnes peu informées. Voici un aperçu des caractéristiques générales des deux technologies. Aspect Low Energy Compatibilité RFID Via norme ISO 18000-3 Oui Oui Standardisation ISO/IEC Bluetooth SIG Bluetooth SIG Standard réseau ISO 13157 IEEE 802.15.1 IEEE 802.15.1 Type de réseau Point à point WPAN WPAN Cryptage Non Oui Oui Portée (Théorique) < 0.2 m 100 m 50 m Fréquence 13.56 MHz 2.4 2.5 GHz 2.4 2.5 GHz Débit 424 ko/s 2.1 Mo/s 25 Mo/s Durée d initialisation < 0.1 s < 6 s < 0.006 s Consommation < 15mA Varie en fonction de la version < 15mA 12

Comme on peut le remarquer dans le tableau, la NFC travaille avec des vitesses moins élevées que le Bluetooth. Cette spécificité n a que peu d influence vu que la NFC n est pas directement conçue pour l échange de fichiers (bien que cela soit possible) mais plutôt pour interagir avec un périphérique. De plus, contrairement au Bluetooth, la communication entre deux périphériques NFC ne nécessite pas un appairage. La communication est automatiquement établie en moins d une seconde. Enfin, la NFC est totalement compatible avec les infrastructures RFID, au contraire du Bluetooth. 4.3. COMMENT FONCTIONNE LE NFC? 4.3.1. DEBUT DE LA COMMUNICATION Lorsque l on débute une communication NFC, le périphérique initiateur génère un champ électromagnétique grâce à son antenne présente dans la puce NFC. La cible reçoit la requête émise par le champ électromagnétique et le transforme en impulsion électrique qu'il peut traduire en bits. La suite de la communication dépendra du mode de fonctionnement choisi. Tous les périphériques NFC sont des clients potentiels et sont donc en attente d un champ électromagnétique. Avant d'initier une connexion, dans le but de ne pas perturber d'autres communications NFC et pour éviter des interférences, l initiateur écoute toujours le médium avant de commencer l'émission. Ce temps d'écoute est défini aléatoirement. 4.3.2. CHOIX DU MODE Il existe deux modes de fonctionnement pour la NFC : le mode passif et le mode actif. Le mode passif : Le mode passif est utilisé pour communiquer avec des tags ou avec des périphériques devant économiser un maximum d énergie ou ne possédant pas d alimentation car elle permet à la cible de ne pas avoir à utiliser une source d alimentation pour transmettre des informations prédéfinies. La cible utilise donc le champ électromagnétique généré par l initiateur pour tirer l énergie dont elle a besoin pour moduler le champ et transmettre les informations qu elle contient à l initiateur. Ce mode est également utilisé lors de l émulation. 13

Les périphériques utilisant ce mode sont, bien entendu, les tags mais également les cartes bancaires, les badges et par extension, tous les périphériques devant limiter leur consommation d énergie ou n ayant pas du tout d alimentation. Le mode actif : Ce mode est utilisé pour des communications Peer-To-Peer. Les deux périphériques génèrent des champs magnétiques de façon alternative en désactivant leur champ lorsqu ils sont en attente. Ce mode nécessite bien entendu une source d énergie pour chaque périphérique. Les périphériques utilisant ce mode sont tous les périphériques possédant une alimentation externe comme les smartphones, des bornes de billetterie, des terminaux de payement, etc 4.3.3. MODULATION ET CODAGE La NFC utilise une modulation d'amplitude pour faire transiter les données. L'amplitude du signal est modifiée pour permettre de représenter les bits. L amplitude du signal varie toujours de la même façon : soit elle est maximale, soit elle est un pourcentage fixe de ce maximum, symbolisé par une pause. Un bit est envoyé par unité de temps, chacune de celle-ci étant coupée en deux. L'amplitude du signal varie, si nécessaire, à chaque demi-unité de temps pour représenter un bit. Le signal peut être codé de deux manières différentes avec deux amplitudes différentes pour les pauses en fonction de la méthode de communication choisie et du débit : Débit (Kbits/s) Active Passive 424 Codage Manchester, 10% ASK Codage Manchester, 10% ASK 212 Codage Manchester, 10% ASK Codage Manchester, 10% ASK 106 Codage Modified-Miller, 100% ASK Codage Manchester, 10% ASK Si la modulation (ASK) est de 100%, alors aucun signal n est émis durant les pauses, tandis que si la modulation est de 10%, le signal est simplement diminué. Ce facteur peut avoir un impact sur la sécurité. Le codage Manchester est un codage synchrone utilisé dans le but d injecter sur la couche physique les valeurs logiques correspondant au flux d entrée. Ce codage tire ses origines de la 14

technique utilisée sur l un des premiers ordinateurs, le Manchester Mark I, pour enregistrer les données sur le tambour. Dans le cas du codage Manchester, on utilise toujours une pause à chaque unité de temps pour définir la valeur du bit. Si la pause est effectuée pendant la première moitié, un 1 est codé, si elle est effectuée pendant la seconde, un 0 est codé. Ce codage introduit plusieurs avantages. Parmi ceux-ci, citons sa simplicité, l absence de perte de synchronisation et les corrections, en supprimant les suites de 0 ou de 1, des inconvénients rencontrés sur le codage Miller : la sensibilité aux parasites, la ligne coupée et l affaiblissement du signal. Tous ces avantages permettent de préserver l intégrité des données transmises. Il existe par contre un inconvénient à ce codage : la limite haute de la bande passante occupée est doublée. Le codage Modified-Miller est également un codage synchrone utilisé dans le but d injecter sur la couche physique les valeurs logiques correspondant au flux d entrée. Dans le cas du codage Modified-Miller, un 1 est toujours codé de la même manière, via une pause pendant la seconde moitié de l'unité de temps. Le codage du zéro dépend par contre du bit précédent : si celui-ci était un 1, aucune pause n'est effectuée. Dans le cas contraire, une pause est effectuée pendant la première moitié de l'unité de temps. Son principal avantage est sa bande passante réduite mais possède un gros inconvénient : l apparition d'une composante continue qui apporte de l'instabilité et donc qui augmente le taux d erreurs. 15

4.3.4. LES PERTURBATIONS ET COLLISIONS Les perturbations sont rares en NFC. Ceci est dû à la faible distance entre les deux périphériques lors de la communication qui limite les risques d affaiblissement du signal et de parasites dû à un autre signal. Les collisions sont elle aussi très rares car le périphérique émetteur écoute avant d émettre et en cas d émission par une autre source, attend que cette émission soit terminée, que le canal soit libre et commence à émettre après un temps de garde aléatoire. De plus, les périphériques NFC sont en mesure de recevoir et de transmettre des données en même temps. De ce fait, ils peuvent vérifier les collisions potentielles, si la fréquence du signal reçu ne correspond pas à la fréquence du signal transmis. 4.3.5. TRAME NFC Preamble : Aussi appelé Syncword, le Preamble est l octet de synchronisation servant à identifier le début de la trame. Start of Packet Code : Ce sont les deux octets marquant la fin de la synchronisation et le début de la trame a proprement parlé. Packet Lenght : Octet indiquant la longueur de la partie donnée de la trame (TFI et de PD0 à PDn). Packet Lenght Checksum : Octet servant à la détection d erreurs en fonction de la longueur de la trame. Specific PN532 Frame Identifier : Octet utilisé uniquement sur les cartes de programmation NFC. Packet Data : Contient les données sous un format nommé NDEF (NFC Data Exchange Format). Packet Data Checksum : Octet servant à la détection d erreurs en fonction de la taille des données. Postamble : Octet indiquant la fin de la trame. 16

4.3.6. SCHEMA DE COMMUNICATION 17

4.3.7. EXPERIMENTATIONS DIVERSES Après avoir compris comment fonctionnait la NFC et avant de passer au travail pratique, j ai décidé de tester la technologie via quelques expériences. La première de ces expériences a été de tester la distance de fonctionnement effective entre deux périphériques. Dans le premier cas, entre un smartphone et un tag et dans un deuxième cas, entre deux smartphones. Dans le premier cas de figure, la distance effective de lecture d un tag de type 2 avec un smartphone LG G2 était de 2,5 cm. Dans le second cas de figure, la distance effective était également de 2,5 cm. 18

La deuxième expérience a été de tester si une couche plus ou moins fine d aluminium était capable de générer des interférences dans la communication, voire de l empêcher. J ai vite remarqué qu avec un morceau d aluminium de simple épaisseur, la communication est impossible. La recherche de tag tourne jusqu à la fin du timer, sans succès. J ai donc essayé avec un morceau de simple épaisseur recouvrant uniquement une moitié du tag. Le résultat dépend bien évidemment de la surface recouverte par l aluminium. Dans le cas où le morceau recouvre la surface de l antenne, la communication est impossible. Autrement, elle est opérationnelle. 19

Enfin, lorsque le LG G3 tente de communiquer avec un Samsung Galaxy S3 possédant un emballage d aluminium de simple épaisseur, la communication est également impossible. 20

4.4. LES NORMES ET STANDARDS REGISSANT LA TECHNOLOGIE NFC. Voici la liste des différentes normes définissant les caractéristiques de la technologie NFC et sous composant de la technologie : Norme ISO/IEC 18000-3 : «Norme définissant l'identification passive RFID et décrivant les paramètres de communication d'une interface sans-fil à 13,56 MHz.» Norme ISO / IEC 14443 : «Norme définissant les cartes de proximité utilisées pour l'identification et les protocoles de transmission utilisés pour communiquer avec celles-ci. Il en existe deux types : A et B dont les différences concernent les méthodes de modulation, les schémas de codage et les procédures d initialisation.» Norme JIS X 6319-4 : «Norme des Standards Industriels Japonais (JIS) définissant l implémentation des circuits intégrés dans des cartes de proximité.» Norme ISO 7816-4 : «Cette norme vise à assurer l interopérabilité des échanges. Elle définit les messages APDU (Application Protocol Data Units) par lesquels les cartes à puce communiquent avec le lecteur.» Norme ISO 13157 : «Norme définissant le canal sécurisé NFC-SEC (urity), les services partagés pour NFCIP-1, les unités de données de protocole et le protocole pour ces services.» Norme ISO/IEC 18092 (ECMA 340): «Cette norme définit les modes de communication utilisés par la NFC utilisant une fréquence de 13,56 MHz (actif ou passif). Cette norme précise, en particulier, des schémas de modulation, codage, des vitesses de transfert, et le format d'image de l'interface RF, ainsi que les régimes et les conditions requises pour le contrôle de collision de données ainsi que le protocole de transport.» Norme ISO/IEC 21481 (ECMA-352) : «Norme spécifiant le mécanisme de sélection de mode de communication, conçu pour ne pas perturber les communications en cours à 13,56 MHz et cela pour les dispositifs respectant la norme ISO / CEI 18092 et lecteurs de cartes à circuits intégrés conformes à la norme ISO / IEC 14443». Norme NDEF (NFC Data Exchange Format) : «Norme définissant le format d'échange logique des données entre plusieurs périphériques ou lors de l inscription d un tag. Ce format binaire se veut léger et peut encapsuler plusieurs enregistrements de taille variée.» 21

4.5. QUELS SONT LES USAGES DU NFC? La NFC ouvre un large panel de possibilités qui ne sont pas, c est sa force majeure, contraignantes pour l utilisateur et qui proposent une utilisation naturelle. C est-à-dire qu il suffit de poser son smartphone sur la cible pour commencer à communiquer. Dans la vie de tous les jours, les tags NFC permettent d automatiser certaines tâches sur notre smartphone, par exemple, un tag NFC placé dans le Hall d entrée qui, lorsque l on passe son smartphone devant, le place en mode silencieux pour se rendre au boulot. Dans le domaine du payement, les perspectives sont également étendues. Les nouvelles cartes bancaires émises par les banques contiennent une puce NFC qui permet, via des terminaux de payement adaptés, de payer en posant simplement sa carte sur ceux-ci. Encore plus innovant, il est maintenant possible de payer directement via son smartphone, par exemple, Google Wallet et Cityzi. Ces services vous proposent de stocker, de manière sécurisée, les données de vos cartes de payement pour ensuite vous permettre, chez les commerçants équipés du matériel nécessaire, de régler votre payement directement depuis le smartphone. Exemple de payement mobile via NFC La NFC peut également révolutionner notre façon de voyager. On pourrait stocker notre titre de transport dans notre smartphone pour ensuite le glisser simplement à l entrée du métro. En France, par exemple, le «Pass Navigo»intègre une puce NFC permettant de le recharger directement depuis son smartphone. 22

Au niveau du marketing également, il serait par exemple possible d avoir accès à un ebook de démonstration permettant de se faire un avant-goût sur le produit total en scannant une affiche de publicité pour un best-seller. Exemple de tag NFC publicitaire Enfin, les entreprises pourraient virtualiser leurs badges d accès pour les intégrer dans les smartphones de leurs employés ce qui permettrait de faciliter la vie des utilisateurs et de réduire les coûts de création de badges pour les entreprises. Je citerai encore comme exemples d usage : La billetterie d un spectacle ou d un match de foot où le ticket serait le smartphone. Les ouvriers d une usine qui lorsqu une machine est en panne peuvent collecter les informations sur cette panne directement via une interface NFC. Dans le domaine du jeu vidéo, comme la WII U par exemple, qui intègre dans son Pad une puce NFC pour payer sur le Nintendo Store sans contact ou pour interagir avec son smartphone. Les cartes de fidélité qui seraient intégrées dans un smartphone et qui remplacerait donc les dizaines de cartes de fidélité qui trainent dans le portefeuille. Les cartes de visites qui pourraient être échangées entre deux businessmen d un simple contact. Voyons également plus loin en combinant deux technologies, la NFC et le Bluetooth. L appairage du Bluetooth, qui fait perdre du temps aux utilisateurs, pourrait être simplifié en un simple contact entre les deux périphériques. Il reste encore bon nombre de possibilités que l on pourrait trouver à cette technologie sanscontact qui permet de nous simplifier la vie de tous les jours. Il n y a comme limite à ces usages que l ingéniosité humaine. 23

4.6. LE NFC ET LA SECURITE Evidemment, lorsque l on parle de payement et de stockage d informations sensibles, la sécurité est un facteur important. La NFC telle que définie par les normes et standards n'offre actuellement aucune protection contre les écoutes et peut être vulnérable aux modifications de données. Cependant, elle dispose d une très courte portée qui favorise sa sécurité. Malgré l absence de protection, il est tout à fait possible, et recommandé en fonction des usages, d utiliser des protocoles cryptographiques dans les couches supérieures (par exemple, SSL ) pour établir un canal sécurisé. Il existe plusieurs types d attaques : Eaves Dropping : Prenons l exemple de la carte bancaire possédant une puce NFC. Lors de leur mise en circulation, Visa et Mastercard ont simplement repris le protocole standard des cartes bancaires (EMV ) et l ont appliqué au NFC sans prendre en considération que ce protocole serait utilisé «dans les airs». Ces cartes n utilisent donc aucun protocole chiffré, ni aucun système d authentification. Il est donc possible pour un hacker de récupérer toutes les informations de la carte et ce, simplement en frôlant ladite carte avec son smartphone. Cette situation implique des risques considérables pour la sécurité. Cette attaque est même réalisable depuis une distance de plusieurs mètres avec une antenne adaptée. Schéma d Eaves Dropping Modification de données : Cette attaque consiste en la destruction des données en les brouillant mais elle est facilement repérable car les dispositifs NFC vérifient le champ électromagnétique qu ils envoient. Soit en la modification des données, attaque beaucoup plus difficile. La faisabilité de cette attaque est soumise à la modulation employée par le signal. Si des données sont transférées avec le codage Miller et une 24

modulation de 100%, seuls certains bits peuvent être modifiés. Avec un taux de modulation de 100%, il est possible d'éliminer une pause du signal, mais pas d en générer une. Ainsi, seul un bit suivi d un autre bit peut être modifié. Si l on transmet des données avec le codage Manchester et une modulation de 10%, il est possible pour un hacker de modifier l ensemble des bits. L attaque en relais : Cette attaque, relativement simple à appliquer, permet d écouter la communication entre deux périphériques via un proxy qui émulera la carte. Deux appareils sont donc nécessaires : un premier qui servira à écouter la carte cible et un second qui servira à écouter le terminal de payement. Ce second appareil va lancer le payement sur le terminal et transmettre toute la transaction via une connexion wifi au premier appareil. La communication va ensuite être transmise à la carte de banque NFC qui va répondre comme si elle était en contact direct avec le terminal. Le pirate va donc pouvoir récolter en toute tranquillité toutes les informations de payement de la victime. Schéma d attaque en relais L attaque «Walk-off» : Cette attaque permet de récolter des données même quand la puce s éloigne de la cible. Elle est surtout utilisée pour subtiliser les données d une carte d accès. La NFC est prévue pour bloquer, après un certain laps de temps, l accès à une fonction ou à des données lorsque le périphérique s éloigne de la cible et rentre en veille alors que la communication est toujours active. L attaque Walk-off joue sur le laps de temps pour capturer les données avant que le système ne bloque la communication. Dans le cadre d une carte d accès, lorsqu un membre du personnel scanne sa carte sur le lecteur, il existe un délai avant que cette carte coupe la communication avec celui-ci et ne se mette en veille en bloquant l accès aux données. Une personne mal intentionnée pourrait donc scanner, vu que la communication est toujours active, la carte d accès de cet employé, en se faisant passer pour le lecteur et donc récupérer ses codes d accès et dupliquer sa carte. 25

Le Déni de service : Cette attaque ne permet pas de récolter de données mais est simple à mettre en place et permet de rendre impossible l utilisation du NFC de la cible. Comme expliqué plus haut, la NFC utilise un système d attente avant d émettre, pour éviter les collisions, et n émet que lorsque le canal est libre. L attaque consiste juste à émettre continuellement pour empêcher les autres périphériques d émettre. Il n existe aucun moyen pour lutter contre cette attaque qui est réalisable sur toutes les technologies réseau existantes. Toutes ces attaques, hormis le déni, peuvent être évitées en utilisant des protocoles cryptographiques dans les couches supérieures de l application, en SSL par exemple, ce qui crypterait les données et réglerait en très grande partie les problèmes que rencontre la NFC au niveau de la sécurité. Enfin, pour lutter contre le «Walk-off» et l utilisation frauduleuse en cas de perte, la branche d IBM Scientists de Zurich a mis au point, dans le but de sécuriser les échanges NFC, une nouvelle technologie de sécurité d'authentification mobile. Celle-ci fonctionne sur des principes similaires à ceux de l'authentification forte et nécessitant deux facteurs. Selon IBM, lorsque l on voudrait commencer une communication NFC, il faudrait utiliser au moins 2 des 3 facteurs d une authentification forte. Par exemple, l insertion d un code PIN (Quelque chose que l on connaît) et le passage du smartphone par-dessus le capteur NFC (Quelque chose que l on possède). Principe de l authentification forte Le problème de sécurité est donc double. Il vient aussi bien des développeurs qui mettent en place la technologie dans leurs applications mais également du Forum NFC qui devrait mettre sur pied une méthode de cryptage des données pour le faire ensuite rentrer dans les normes NFC et 26

donc faciliter le travail des développeurs. Pour éviter les vols de données, il faut attendre la mise en place hypothétique de cette norme par le Forum NFC ou alors utiliser des protocoles cryptographiques dans les couches supérieures de l application, ce qu ont fait la majorité des développeurs après l éclatement du scandale concernant la sécurité des cartes bancaires NFC Visa et Mastercard. 4.7. DIFFUSION DE LA TECHNOLOGIE NFC Bien que les possibilités offertes par cette technologie soient infinies, l affaire Visa-Mastercard concernant la sécurité de la technologie NFC freine son déploiement dans les milieux grand public. Les pays les plus avancés sont, sans surprise, le Japon et la Corée du Sud. La NFC y est présente depuis 2004 et les services NFC sur smartphones sont donc très développés grâce à l apport des opérateurs et des constructeurs de mobiles. De plus, tous les magasins et tous les réseaux de transport en commun d'une certaine importance disposent de la technologie NFC pour les payements et les titres de transport. Aux Etats-Unis, la NFC est apparue en 2011 et évolue beaucoup plus vite qu en Europe. Dès 2012, de nombreux magasins et réseaux de transports en commun sont compatibles avec cette technologie. Cet essor rapide est dû aux efforts de Google, Paypal et Amazon qui n ont pas hésité à implémenter cette technologie dans leurs produits. En France et au Royaume-Uni, la NFC commence à être utilisée dès 2011 mais n a pas beaucoup évolué. En France, neuf villes seulement possèdent des moyens de payement compatibles NFC et ce uniquement pour les réseaux de transport en commun. En Europe, le pouvoir public rechigne à investir dans cette technologie freinant donc son expansion. Les acteurs du marché ont donc décidé de se regrouper selon leurs domaines d'activité pour réfléchir sur plusieurs questions et permettre de convaincre le pouvoir public et l opinion quant aux bienfaits de cette technologie. En Belgique, il n existe aucun plan global pour tester la technologie au quotidien. Seules quelques banques telles que Hello Bank et Key Trade Bank ont lancé une application de payement NFC. Belgacom a également lancé Ping-Ping, une plateforme de micro-payement. Celle-ci est utilisable dans l un des 5000 distributeurs Coca-Cola participant et dans certaines cafétérias d entreprises ou d écoles. En outre, McDonalds a annoncé vouloir lancer le payement via NFC et QR Code dans notre pays pour le courant du printemps 2014. Ping-Ping et Keyware, sociétés développant des terminaux de payement, tentent de faire évoluer la technologie en étendant leurs services dans un maximum de commerces belges. 27

5. TRAVAIL PRATIQUE 5.1. DEFINITION DU TRAVAIL PRATIQUE La Near Field Communication étant une technologie, comme on a pu le voir, essentiellement orientée mobile, le développement d une application Android s est directement imposé dans mon esprit. Celle-ci sera nommée très sobrement : «ShareNFC». Pour me permettre de continuer à mettre en pratique les compétences acquises durant mon stage, j ai décidé de développer cette application sous «Windev Mobile», logiciel faisant partie de l AGL utilisé durant mon stage pour réaliser l application d étiquette et l intranet et utilisant le WLanguage. J ai ensuite défini les lignes conductrices qui allaient me guider durant le développement. Je voulais, en premier lieu, que mon application soit la mieux intégrée possible dans l écosystème Android. Cette première ligne, que nous qualifierons de «Ligne d interface» m a permis de définir le thème de l application : «Holo Dark Android». Ce thème est le thème officiel, introduit à partir de la version 4.0 de l OS, utilisé dans les menus de paramètres et préconisé par Google pour intégrer au mieux une application dans l univers Android. Cette ligne d interface m a également permis d effectuer un choix quant à la manière d envisager la navigation dans l application. Toujours en suivant les standards d Android, j ai décidé d intégrer une ActionBar donnant accès aux différents menus ainsi qu un système de scroll latéral au doigt permettant d accéder aux différentes fonctions. La deuxième ligne conductrice est basée sur les fonctions de l application. La NFC n étant pas faite pour échanger des fichiers, j ai préféré me centrer sur les fonctions d inscription et de lecture de tags bien que j aie quand même intégré une fonction d échange de fichiers dans ShareNFC. La troisième et dernière ligne conductrice a été l accessibilité. Je voulais rendre mon application simple à utiliser et accessible au plus grand nombre. C est pourquoi les menus et l interface sont simples et épurés et que j ai intégré le support du multi-langage dans l application (Français Anglais). 28

5.2. PRESENTATION DE L ENVIRONNEMENT DE DEVELOPPEMENT WinDev Mobile est un atelier de génie logiciel professionnel qui permet de créer très rapidement des applications pour les assistants personnels, les smartphones et tablettes (qui fonctionnent sous Windows RT, Windows Mobile, ios (iphone, ipod et ipad) ou sur Android) et pour les terminaux professionnels. Il propose son propre langage, appelé le WLangage. Le WLangage est un langage de programmation de 4e génération inclus dans les outils de développement WinDev, WebDev et WinDev Mobile. Il est propriétaire et ne peut être manipulé qu'avec les outils PC SOFT. Le WLangage est né en 1992 avec la première version de WinDev. Ce langage de programmation est multilingue, il permet de programmer en français, anglais et chinois voir même en mélangeant plusieurs langues. De plus, il permet la programmation orientée objet, la gestion des instances et la Gestion des erreurs et des exceptions. Voici le traditionnel «Hello World!» écrit en Wlangage : Info("Hello world!") L interface de développement est entièrement Wysiwyg : 29

Je vous propose également un aperçu de mon matériel de développement : Voici les configurations des trois ordinateurs utilisés : PC de développement : Intel Core 2 Quad Q8400 2.66 GHz 4 Go de RAM ATI Radeon HD 3450 Windows 7 SP1 64 bits PC mixte (développement / rédaction) : Intel Core I5-2500K 3.3 GHz 8 Go de RAM ATI Radeon HD 7870 Windows 8.1 Update 1 64 bits PC de rédaction : Intel Core 2 Duo T5800 2.00 GHz 2 Go de RAM Nvidia GeForce 8400M GS Windows 8.1 Update 1 64 bits Les smartphones qui sont utilisés pour le développement sont le LG G3 et le Samsung Galaxy S3 tandis que les tags sont de type 2. 30

5.3. DEVELOPPEMENT DE L APPLICATION 5.3.1. CHARTE GRAPHIQUE Une fois les lignes directrices établies, je possédais déjà une idée relativement claire de ce que serait ShareNFC ainsi que son design établi aux standards d Android et qui ressemblait, en l état actuel des choses, en ceci : Charte graphique de l application 31

5.3.2. SCHEMA DE L APPLICATION J ai ensuite réalisé un schéma de l application pour me permettre de simplifier mon développement et d organiser mes idées dans mon esprit : 32

5.3.3. FENETRE D ACCUEIL ET ACTIONBAR Une fois cette analyse établie, j ai commencé par créer la fenêtre d accueil (Home). Cette fenêtre contient un champ fenêtre interne qui permet d afficher plusieurs fenêtres indépendantes au sein de ce champ via un scroll latéral ainsi qu une ActionBar pour un accès direct aux options de navigation (Informations, Langue, Quitter). Il y aura en tout 3 fenêtres internes disponibles dans ce champ correspondant aux 3 fonctionnalités (Envoi, inscription, lecture). Commençons par détailler la mise en place de l ActionBar (qui sera commune aux 3 fenêtres internes de la fenêtre Home). L ActionBar est un champ qui remplace la barre de titre d'une fenêtre et qui permet d'afficher plusieurs informations comme l'icône de l'application, le titre de la fenêtre et un menu. J ai décidé d intégrer dans cette barre le logo de l application ainsi que son nom et un menu avec logo permettant d accéder à la fenêtre information, la fenêtre de sélection de la langue et une option pour fermer l application. Aperçu de l ActionBar Pour ouvrir la fenêtre information et choix de la langue, il me suffit d utiliser la fonction «Ouvre()» du WLanguage et pour quitter, la fonction «FinProgramme()». La fenêtre Information est une fenêtre basée sur le même principe que la fenêtre Home, nous y reviendrons plus tard. La fenêtre Langue est particulière. C est une fenêtre non-maximisée et qui ne prend donc pas toute la place sur l écran, c est une sorte de Pop-Up. Aperçu de la Pop-Up. Comme on peut le voir, cette fenêtre est simple. Elle comporte un champ Combo ainsi que deux boutons : un pour valider et un pour annuler. 33

J ai commencé à ajouter deux valeurs au combo : Anglais et Français. Je suis ensuite passé au code du bouton : Ce code se base sur l ordre dans lequel j ai ajouté les langues au champ combo. Ce code signifie qu «En fonction de la valeur renvoyée par le Combo (qui est par défaut l ordre d ajout), on effectue les traitements suivants : Tout d abord, la variable globale LangueChoisie est égale à la valeur du combo. Ensuite, on utilise la fonction «Nation()» qui permet de définir la langue d'affichage (traduit auparavant par le développeur) sur toute l application avec en paramètre la langue à utiliser. Enfin, on ré-ouvre la fenêtre d accueil qui affichera les libellés dans la langue choisie.» Dans le cas d une saisie non-valide, on affiche un message flottant d erreur et on laisse la valeur par défaut. Pour le bouton annuler, on utilisera la fonction «Ferme()» qui ferme simplement la Pop-up. Revenons maintenant à la fenêtre Home. J ai commencé par définir la fenêtre interne par défaut, c est-à-dire celle d envoi et j ai ajouté le code suivant dans l initialisation de la fenêtre : Ce code sert à ajouter, à la suite de la fenêtre interne par défaut, d autres fenêtres internes contenues par le champfi_princ. 34

5.3.4. FENETRE D ENVOI Maintenant que l accueil des fenêtres internes est mis en place, passons aux fonctionnalités de l application contenues par la fenêtre d envoi. Cette fenêtre comporte en plus des éléments graphiques, un champ et un bouton de sélection de fichier ainsi qu un bouton d envoi. Commençons par le composant le plus complexe de la fenêtre: le code de la Pop-Up ouverte par ce bouton. Cette Pop-Up est un sélecteur de fichier contenant un combo avec les répertoires parents, une zone répétée avec les dossiers et fichiers ainsi que deux boutons : Valider et Annuler. 35

Passons maintenant au code! Ce code est très basique et ne nécessite pas d explications en plus des commentaires. Ces deux variables vont revenir plus tard dans le code du composant. Le code de la zone répétée utilise la fonction «LigneSélection» quand on clique sur une ligne de la zone répétée. 36

On remarque ici l utilisation des variables «gscheminparent» et «cstracine» vues dans le code précédent. Le code commence par une vérification sur le type sélectionné, soit pour remonter d un niveau ou rentrer dans le dossier. 37

Si on veut remonter d un dossier, on prend le chemin actuel, on mesure la taille du chemin à partir de la gauche et on retire tout ce qui se trouve après le dernier «/». On vérifie ensuite si le répertoire est vide ou pas et on le sauvegarde dans la variable cstracine qui sera affichée dans le combo. On met ensuite à jour la liste des répertoires avec la fonction «MAJRépertoires()» ainsi que «ListeChercheEx()» et on fait appel à la fonction «RempliListeFichier ()» qui mettra à jour la zone répétée. Nous détaillerons ces trois fonctions un peu plus tard. Si on veut ouvrir un dossier, on met également à jour le chemin mais cette fois-ci en rajoutant le nom du dossier derrière le dernier «/». On fait également appel à la fonction «MAJRéperoires()», on sélectionne la dernière entrée dans la combo et on utilise la fonction «RempliListeFichier()». A la fin des traitements, on ajoute la gestion des erreurs : si le nom du fichier/dossier n existe pas, on l indique à l utilisateur et on remet la sélection à zéro. Passons maintenant à l analyse des trois fonctions laissées en suspens : «MAJRépertoires()», «RempliListeFichier()» et «ListeChercheEx()». Voici le code de la fonction «MAJRépertoires()» : 38

Ce code commence par initialiser la variable servant de compteur. On vide ensuite le combo de sélection du dossier ainsi que la zone répétée affichant tous les dossiers et fichiers présents dans le répertoire sélectionné. On ajoute ensuite dans le combo la racine du périphérique et on extrait le premier dossier contenu dans le répertoire sélectionné. Enfin, on commence la boucle avec comme condition : «Tant que le dossier n est pas EOT, on rentre dans la boucle». Dans celle-ci, on vérifie que le nom du dossier ne soit pas vide et s il ne l est pas, on l ajoute dans le combo. On passe au suivant en incrémentant la variable compteur et on assignant un nouveau nom de dossier. La fonction suivante est la fonction «RempliListeFichier()» : Ce code permettant de remplir la liste des fichiers, on commence naturellement par vider la zone répétée. 39

On rentre ensuite dans une condition qui vérifie que le dossier parent soit différent de la racine. S il est effectivement différent, on l ajoute dans la variable globale et on l ajoute en première position dans la zone répétée (A). Une fois le répertoire parent ajouté, on ajoute les répertoires contenus dans celui-ci. On commence par attribuer le nom du répertoire à une variable et on passe dans une condition : «Tant que le nom du répertoire n est pas vide et qu il n est pas EOT, on l ajoute dans la zone répétée en dessous du dossier parent (B).» Enfin, on fait pareil pour les fichiers du répertoire que l on place en dessous des répertoires (C), le tout validé par un tri. Ceci nous amène à la dernière fonction de la fenêtre, «ListeChercheEx()» : On vérifie que le répertoire sélectionné dans le combo existe réellement dans la mémoire du périphérique. S il existe bel et bien, on renvoie 1 pour affirmer son existence au code qui a fait appel à cette fonction. Sinon, on renvoie -1 pour signaler qu il n existe pas. L avant dernier code de cette fenêtre est le code du bouton valider de la Pop-Up : Ce code, très simple, assigne en fonction de notre choix dans la Pop-Up la valeur et le libellé du champ de saisie de la fenêtre envoi et on quitte la Pop-Up. 40

Voici maintenant le code le plus important de la fenêtre, l envoi du fichier : On commence par vérifier que la puce est activée, que le fichier soit dans un format correct, que le nom du fichier ne soit pas vide et que la version d Android soit assez récente pour utiliser les fonctions NFC. Si tout est correct, on envoi le tag puis on ferme la fenêtre et en cas d erreur, on affiche les erreurs correspondantes. 41

5.3.5. FENETRE D INSCRIPTION Cette fenêtre permet d inscrire les tags NFC. Actuellement, l application permet d inscrire du texte et des liens web. Chaque bouton ouvre respectivement une Pop-Up; ceux-ci contiennent chacun un champ de saisie et deux boutons : un pour lancer l inscription et un pour annuler. Le code des deux boutons d inscription est assez semblables mais avec quelques vérifications supplémentaires pour les liens web. 42

Voici le code du bouton d inscription la Pop-Up de texte : On commence par les vérifications d usage et on inscrit le tag. Si une erreur est détectée, on affiche un message d erreur avec une description de celle-ci. Dans le cas contraire, on confirme l inscription du tag et on quitte la Pop-Up. Et voici le code du bouton d inscription de la Pop-up de site web : Ce code est particulièrement semblable à celui de l inscription d un texte. La seule différence est que l on teste aussi si le lien entré commence bien par soit «www.» ou «http://». 43

5.3.6. FENETRE DE LECTURE Cette fenêtre de lecture de tags dispose simplement d un bouton permettant de démarrer la lecture. 44

Voici le code de ce bouton : On commence par assigner la variable de lecture, on vérifie si la version d Android est assez récente et on indique à l utilisateur le type de tag qu il est en train de lire. Ensuite, en fonction du type de donnée contenue sur le tag, on lance l appli associée au type de fichier. Pour finir, on affiche les messages d erreur si nécessaire. 45

5.3.7. FENETRE D INFORMATIONS ET ACTIONBAR Cette fenêtre contiendra, à l image de la fenêtre d accueil, trois fenêtres internes. La première servira à afficher le Readme de l application, la deuxième contiendra le copyright et la troisième servira à afficher les informations sur la version de l application. L ActionBar de cette fenêtre sera la même que celle de la fenêtre d accueil hormis le bouton d accès à la fenêtre d informations qui sera bien entendu remplacé par celui de l accueil. 5.3.8. FENETRE README La fenêtre de Readme permet d afficher les informations générales à l application. Il est par exemple possible de se renseigner sur l origine de l application, la façon dont on peut se la procurer, comment contacter le développeur et les nouveautés des versions. Cette fenêtre étant une fenêtre statique et n affichant que des libellés, elle ne possède pas de code. 46

5.3.9. FENETRE COPYRIGHT La fenêtre de Copyright permet d afficher les mentions légales par rapport à l application. Cette fenêtre étant également statique, elle ne possède aucun code. 5.3.10. FENETRE D INFORMATIONS DE VERSION Nous voici à la dernière fenêtre de cette application, la fenêtre d affichage des informations de version. Cette fenêtre permet d afficher le numéro de version, le nom du fichier.apk tester si la puce NFC est activée via un bouton. et de 47

Le seul code présent sur cette page est celui du bouton de test de la puce : On se base sur l état de la puce et on affiche le message correspondant à son état. 48

5.4. PROBLEMES RENCONTRES Durant le développement de cette application, j ai bien entendu rencontré un bon nombre de problèmes. Je n ai évidemment pas détaillé les problèmes de syntaxe ou autre mais uniquement des problèmes nécessitant une réflexion de ma part. Parmi ceux-ci, le plus important était de réaliser l explorateur de fichier. Cet explorateur est une application à lui tout seul. Pour le développer, je suis sorti hors du contexte de l application principale pour ensuite mettre en œuvre cet explorateur. Une fois que le développement a été fini, je l ai intégré dans l application principale via une variable globale à la page permettant de récupérer le choix de l utilisateur. La seconde difficulté a été de pouvoir vérifier que l utilisateur, dans le cas de l envoi de fichier, à bien sélectionné un fichier et non un dossier. J ai tout d abord remarqué que lorsque l on choisit un dossier, le nom contenu dans la variable finit à chaque fois par «..», ce qui indique une arborescence. Bien entendu, lorsque l on sélectionne un fichier, ces «..» n existent pas. Il a donc fallu ajouter au code du bouton d envoi une condition pour savoir si ces «..» sont existants ou non. SI ChaîneFinitPar(SAI_Fichier, "..", ccnormal) = 0 ALORS La troisième difficulté est semblable à la deuxième. Elle se trouve dans le bouton d inscription d une page web. Il faut vérifier si l URL entrée est valide. Pour cela, j ai inclus deux conditions dont une seule est nécessaire pour avancer dans le code. La première est de vérifier la présence des «www.» au début de l URL et la seconde est de vérifier la présence de «http://» au début de l URL. SI ChaîneCommencePar(SAI_Web, "www.", ccnormal) <> 0 OU ChaîneCommencePar(SAI_Web, "http://", ccnormal) <> 0 ALORS La dernière difficulté est toujours malheureusement d actualité. Le scroll d une fenêtre interne à une autre n est pas supporté de la même manière sur différents appareils. Cela est dû à une mise à jour de l AGL. J ai signalé le problème et j attends un correctif pour recompiler l application avec les corrections. 49

Pour terminer ce chapitre, je noterais que j ai, dans le code du bouton de lecture de tag, intégré le nécessaire pour permettre de lire des fichiers multimédias dans le cas où les tags évoluent dans le futur vers des capacités et peut-être des débits plus élevés. SI donnée..typemime ~= "image/png" ALORS fsauvebuffer(complèterep(sysrepcartestockage()) + "img.png", donnée.contenu) LanceAppliAssociée(ComplèteRep(SysRepCarteStockage()) + "img.png") 5.5. AMELIORATIONS POSSIBLES Malgré que le TFE soit terminé, je continue à supporter et à améliorer l application. Dans cette optique, je dresse ici une liste des améliorations possibles à apporter à l application dans un futur plus ou moins long. Continuer l apprentissage du Java, que j ai commencé, pour éviter d être limité par les fonctions de l AGL notamment dans le cas d usages plus poussés, ce qui est le cas de la NFC. Suite à l apprentissage du Java, intégrer de nouveaux types de tags à écrire. Utiliser complètement Android Beam pour l envoi de fichier. Design plus «User-friendly». Détection automatique, si l utilisateur le souhaite, d un tag sans que l application ne soit lancée en plein écran (tâche de fond). Et bien d autres! 50

6. CONCLUSION L objectif de ce travail était de découvrir et d approfondir une technologie encore assez peu connue du grand public. Ce document permet au lecteur de s initier à une nouvelle technologie sans-fil de par son origine et son fonctionnement. Il permet également de se rendre compte de l intégration de la NFC dans la vie de tous les jours et de l étendue de ses possibilités via des usages pratiques et notamment via l application d inscription de tags, ShareNFC. Mon défi était également d approfondir la technologie notamment en détaillant les communications, la sécurité et les normes régissant la NFC. J ai pu me rendre compte que les technologies sans-fil, dont la NFC, sont très sensibles aux attaques de hackers et qu il est donc primordial pour les acteurs du marché des technologies de mettre en place des actions, des groupes de travail pour avancer en priorité à la sécurisation des données des utilisateurs lors de leurs transits sans-fil. Je pense, sur base de ce document, avoir rempli mes différents objectifs et permis aux lecteurs de découvrir cette technologie, en globalité et en profondeur, mais également de les sensibiliser aux risques des technologies sans-fils. Hormis le caractère purement technique du sujet, ce qui m a particulièrement interpellé dans ce travail, ce sont les disparités entre les différents continents au niveau du développement de la technologie. Ce travail m aura permis de démontrer le retard qu accumule l Europe vis-à-vis des Etats-Unis et de l Asie au niveau de l implémentation de la NFC dans la vie quotidienne. Il est temps maintenant de réfléchir aux causes de ce retard. Comment peut-on expliquer une telle disparité entre les différents continents? Le retard de l Europe se comblera ou se creusera-t-il? J ai d ores et déjà trouvé plusieurs pistes pouvant expliquer ce retard. Ces causes peuvent être «L hétérogénéité des différents pays qui composent l Europe» et la qualité des infrastructures européennes qui sont en deçà de la Silicon Valley, par exemple. Ces pistes pourront être approfondies dans un prochain travail ayant pour sujet le retard européen en matière de nouvelles technologies. 51

7. GLOSSAIRE ISO/IEC : «L ISO (Organisation internationale de normalisation) et l IEC (Commission électrotechnique internationale) sont des organisations internationales de normalisation complémentaires chargées d éditer des normes permettant une harmonie dans les domaines industriels.» Bluetooth SIG : «Organisme qui supervise l'élaboration de normes Bluetooth et octroie les licences de la marque et de la technologie Bluetooth aux fabricants.» Standard IEEE 802.15.1 :«Nom standardisé du Bluetooth, principale technologie «Wireless Personal Area Networks (WPAN).»» WPAN : «Wireless Personal Area Network ou autrement dit «réseau individuel sans-fil» concerne les réseaux sans-fil d'une faible portée. Ce type de réseau sert généralement à relier des périphériques à un ordinateur sans liaison filaire ou bien à permettre la liaison sans-fil entre deux machines très peu distantes.» Peer-To-Peer : «Modèle de réseau informatique proche du modèle client-serveur mais où chaque client est aussi un serveur.» AGL (Atelier de Génie Logiciel) :«Un AGL désigne un ensemble de programmes informatiques permettant eux-mêmes de produire des programmes de manière industrielle.» Modulation : «Processus par lequel le signal est transformé de sa forme originale en une forme adaptée au canal de transmission.» ASK (Amplitude-shift keying) : «Acronyme anglais de modulation par déplacement d'amplitude (MDA).» (Liaison) Synchrone : «Le récepteur reçoit de façon continuelle informations au rythme où l'émetteur les envoie. C'est pourquoi il est nécessaire qu'émetteur et récepteur soient cadencés à la même vitesse. Lors d'une transmission synchrone, les bits sont envoyés de façon successive sans séparation entre chaque caractère, il est donc nécessaire d'insérer des éléments de synchronisation, on parle alors de synchronisation au niveau caractère.» Ebook : «Livre sous format électronique.» Secure Sockets Layer (SSL) :«Protocole de sécurisation des échanges, renommé en TSL lors du rachat du brevet par IETF, fonctionnant en mode client-serveur ayant comme objectifs l'authentification, la confidentialité et l'intégrité des données.» 52

Europay Mastercard Visa (EMV) :«Standard international de sécurité des cartes de payement définissant l interopérabilité internationale, la vérification et le chiffrement de la clé personnelle par la puce et la gestion plus ouverte de plusieurs applications sur la carte.» EOT : Caractère présent à la fin des fichiers externes. Readme : «Un Readme est un document au contenu variable reprenant des informations sur les fichiers ou le logiciel auxquels il renvoie.» (Fichier).apk : «Le format de fichier Android Package (APK) est un format de fichier compressé dédié au système Android qui contient une collection de fichiers permettant d installer une application.» User-friendly : «Synonyme du terme anglais Usability. Expression généralement utilisée lors d un développement nécessitant une interactivité entre l homme et la machine et mettant en avant la facilité d usage pour l utilisateur final.» 53

8. BIBLIOGRAPHIE ET REFERENCES Wikipédia. Near field communication [en ligne] (en). Wikimédia Foundation, mis à jour le 11 mars 2014 [Consulté le 16 mars 2014]. Disponible sur : http://en.wikipedia.org/wiki/near_field_communication Wikipédia. ISO [en ligne] (en). Wikimédia Foundation, mis à jour le 23 février 2014 [Consulté le 16 mars 2014]. Disponible sur : http://en.wikipedia.org/wiki/iso Johann-dantant. Les cartes de proximité [en ligne]. Johann Dantant [Consulté le 16 mars 2014]. Disponible sur : http://www.johann-dantant.net/14443-proximity/ Webstore.jsa.or.jp. Detailed Standard Information - JIS X 6319-4:2010 [en ligne] (en). Japanese Standards Association [Consulté le 16 mars 2014]. Disponible sur : http://www.webstore.jsa.or.jp/webstore/com/flowcontrol.jsp?lang=en&bunsyoid=jis+ X+6319-4%3A2010&dantaiCd=JIS&status=1&pageNo=0 Developer.nokia. Differences among different NFC tags [en ligne] (en). Nokia, mis à jour le 27 novembre 2012 [Consulté le 16 mars 2014]. Disponible sur : http://developer.nokia.com/community/wiki/differences_among_different_nfc_tags Nfctags. How to Select the Right NFC Tag [en ligne] (en). SMARTRAC [Consulté le 16 mars 2014]. Disponible sur : http://www.nfctags.com/nfc-applications-which-tag Astel. Le NFC et ses applications en Belgique [en ligne]. Astel, mis à jour le 27 octobre 2011[Consulté le 16 mars 2014]. Disponible sur : http://www.astel.be/le-nfc-et-sesapplications-en-belgique_3925 NFC. NFC Tag Types [en ligne] (en). NFC CC, mis à jour le 31 juillet 2011[Consulté le 16 mars 2014]. Disponible sur : http://www.nfc.cc/technology/nfc-tag-types/ Identitive NFC. Qu est-ce que la NFC? [en ligne]. Identitive [Consulté le 16 mars 2014]. Disponible sur : http://www.identivenfc.com/fr/what-is-nfc Igm.univ-mlv. NFC - Near Field Communication [en ligne]. Ingénieur 2000[Consulté le 16 mars 2014]. Disponible sur : http://www-igm.univ-mlv.fr/~dr/xpose2012/nfc/ 54

Ubitap. About Near Field Communication [en ligne] (en). Ubitap NFC Technologies [Consulté le 16 mars 2014]. Disponible sur : http://www.ubitap.com/whatisnfc ECMA. Standard ECMA-340 [en ligne] (en). ECMA International, mis à jour en juin 2013[Consulté le 16 mars 2014]. Disponible sur : http://www.ecmainternational.org/publications/standards/ecma-340.htm ISO. ISO/IEC 13157-1:2010 [en ligne] (en). International Organization for Standardization, mis à jour le 24 juillet 2013[Consulté le 16 mars 2014]. Disponible sur :http://www.iso.org/iso/catalogue_detail.htm?csnumber=53430 Wikipédia. IEEE 802.15 [en ligne] (en). Wikimédia Foundation, mis à jour le 24 décembre 2013 [Consulté le 16 mars 2014]. Disponible sur :http://en.wikipedia.org/wiki/ieee_802.15 ISO. ISO/IEC 21481:2005 [en ligne] (en). International Organization for Standardization, mis à jour le 25 juin 2012[Consulté le 16 mars 2014]. Disponible sur : http://www.iso.org/iso/catalogue_detail.htm?csnumber=40261 Parlons enfin du NFC[en ligne]. OCTO, mis à jour le 1 février 2013[Consulté le 27 mars 2014]. Disponible sur : http://blog.octo.com/parlons-enfin-du-nfc/ RFID / NFC[en ligne]. AC-Limoges [Consulté le 27 mars 2014]. Disponible sur : http://www.ac-limoges.fr/sti2d/img/pdf/rfid_nfc_sin_favard.pdf Payer avec son smartphone : Où? Quand? Comment? [en ligne]. JDG, mis à jour le 26 avril 2013[Consulté le 28 mars 2014]. Disponible sur : http://www.journaldugeek.com/2013/04/26/paiement-nfc-sans-contact/ Transport: le pass Navigo passe à la technologie sans contact NFC [en ligne]. 01Net, mis à jour le 13 janvier 2014[Consulté le 28 mars 2014]. Disponible sur : http://www.01net.com/editorial/611830/transport-le-pass-navigo-passe-a-latechnologie-sans-contact-nfc/ Les usages du NFC : ça y est, on y arrive! [en ligne]. Orange Business, mis à jour le 26 septembre 2013[Consulté le 28 mars 2014]. Disponible sur : http://www.orange- 55

business.com/fr/blogs/relation-client/contact-multicanal/les-usages-du-nfc-ca-y-est-ony-arrive NFC Data Exchange Format [en ligne] (en). nfcpy, mis à jour le 20 février 2014[Consulté le 28 mars 2014]. Disponible sur : http://nfcpy.readthedocs.org/en/latest/topics/ndef.html Sécurité : le NFC une vraie passoire? [en ligne]. CNet, mis à jour le 24 février 2014[Consulté le 28 mars 2014]. Disponible sur : http://www.cnetfrance.fr/news/securite-le-nfc-une-vraie-passoire-39797541.htm NFC Phone Hacking and Other Mobile Attacks [en ligne] (en). InformationWeek, mis à jour le 25 juillet 2012[Consulté le 28 mars 2014]. Disponible sur : http://www.informationweek.com/wireless/nfc-phone-hacking-and-other-mobileattacks/d/d-id/1105508 La filiale belge de BNP Paribas en pointe dans le paiement sans contact [en ligne]. 01Net, mis à jour le 17 mai 2013[Consulté le 28 mars 2014]. Disponible sur : http://pro.01net.com/editorial/595299/la-filiale-belge-de-bnp-paribas-en-pointe-dansle-paiement-sans-contact/ Keyware lance le paiement sans contact en Belgique [en ligne]. Webizz, mis à jour le 14 juillet 2012[Consulté le 28 mars 2014]. Disponible sur : http://www.webizz.be/keywarelance-le-paiement-sans-contact-en-belgique-1366.html McDonald s to offer NFC and QR payments across Belgium [en ligne] (en). NFCWorld, mis à jour le 14 novembre 2013[Consulté le 16 mars 2014]. Disponible sur : http://www.nfcworld.com/2013/11/14/326841/mcdonalds-offer-nfc-qr-paymentsacross-belgium/ Near Field Communication [PDF] (en). International Journal of Electrical and Computer Engineering (IJECE), mis à jour en juin 2012 [Consulté le 29 avril]. Disponible sur : http://www.iaesjournal.com/online/index.php/ijece/article/view/234/128 L'Europe est nulle en technologie [en ligne]. Slate, mis à jour le 15 juin 2011 [Consulté le 29 avril]. Disponible sur : 56

http://www.slate.fr/story/39385/europe-nouvelles-technologies-etats-unis Comment expliquer le retard technologique de l'europe en matière de 'Techs' [en ligne]. Express, mis à jour le 14 juin 2011 [Consulté le 29 avril]. Disponible sur : http://www.express.be/business/fr/technology/comment-expliquer-le-retardtechnologique-de-leurope-en-matiere-de-techs/147674.htm 57