Jouons avec le NFC

(Environ 5 min de lecture)

Premier article après un bon moment de « silence » (comprenez par là que la charge de travail avant Noël était suffisante pour m’occuper), et surtout premier article de 2014 ! J’en profite pour vous souhaiter à toutes et tous une chouette année 2014, c’est de circonstance 🙂

Aujourd’hui, on va causer un peu de NFC. Si si, vous connaissez déjà : ce mode de communication qui vous permet de faire un peu tout et n’importe quoi, comme payer avec votre carte bancaire sans taper votre code juste en l’agitant au nez de la borne, de recharger votre smartphone en le posant sur un support, ou encore de déclencher une action programmée sur votre lapin Nabaztag en lui faisant « renifler » une petite puce…

 

Le NFC, c’est quoi ?

On va commencer par la base 😉

Le NFC (Near Field Communication, ou en français communication en champ proche) est une technologie souvent vue comme une extension de la norme ISO/CEI 14 443, qui définit pas mal de choses relatives à la radio-identification (genre RFID, dont vous avez peut-être aussi entendu parler). « Champ proche » indique que la portée est très courte (quelques centimètres tout au plus), contrairement à d’autres technologies comme le Bluetooth. Donc « normalement », pas utilisable à votre insu.

Côté standardisation, vous vous doutez bien que les normes relatives au NFC ont été matérialisées par tout le monde, chacun à sa sauce, générant ainsi pas mal d’incompatibilités. C’est pour cela qu’a été créé le Forum NFC : regrouper les constructeurs autour d’une seule implantation. Et aujourd’hui, de plus en plus de fabricants de smartphones (pour ne citer qu’eux !) suivent ces recommandations, à commencer par Sony, LG, etc.

Côté négatif : un smartphone comme le mien (Google/LG Nexus 4) suit les recommandations du Forum NFC, et le matériel ne sait pas lire une puce NFC « autre ». Je ne suis pas sûr d’être clair, mais en gros, ce qui ne suit pas la norme en termes d’implantation de la technologie NFC n’est pas reconnu, parce que le firmware ne le prend pas en compte.

 

Bon, et ensuite ?

Eh ben, j’ai passé quelques heures à jouer avec ce que j’avais sous le coude et que je supposais/savais utiliser la techno NFC : vieux forfait de ski, carte étudiant de l’UTT, nano:ztag, carte Busséo de la TCAT (les transports en commun de Troyes), cartes (individuelle ou forfait) de HSL HRT (les transports en commun de Helsinki, reliques de mon séjour en Finlande gardées uniquement dans le but de jouer avec un jour)…

J’en profite pour vous présenter une petite application Android : NFC Reader, parce que pratique pour être informé sur une puce, et aussi parce que l’app est gratuite, dispo sur F-Droid, et sous licence Apache2. Le concept est ultra simple, mais redoutablement efficace : vous passez une « carte » au dos du téléphone (ou de la tablette), et NFC Reader vous donne plusieurs infos relative au badge en question : Tag ID (hexadécimal et décimal), ID inverse, et technologie utilisée par la puce (Mifare ou NDEF par exemple).

Une capture de l’appli après avoir passé une des cartes :

 

NFC Reader
NFC Reader

 

Alors, quasiment tout est lu : forfait de ski et tout, à l’exception du ztamp de chez Violet, qui utilise apparemment une autre norme pas reconnue par le Forum NFC, et de fait pas lue par le lecteur du téléphone. Dommage, c’est celui qui me plaisait le plus 😉

 

Les détecter, c’est bien beau, mais concrètement, à part en savoir plus sur les technologies utilisées par tel ou tel système… ça sert à quoi ?

À plein de choses. Déjà, des trucs super simples : le premier essai que j’ai fait, c’est de créer un profil « maison » (sonnerie active, Wi-Fi aussi…) et un profil « boulot » (vibreur, pas de Wi-Fi, etc). Je l’ai associé au passage de l’une des cartes de chez HSL, que j’ai ensuite mise dans la voiture, parce que je me sers du téléphone pour lire de la musique sur mon autoradio K7 (mais j’aime ma voiture :mrgreen: ) en allant bosser et en en revenant. Du coup… quand je pose le téléphone sur son support, il passe devant la carte, et ça active le profil qui va bien. C’est tout bête, mais ça illustre bien l’utilisation qu’on peut faire de tout ça !

Et sinon, j’essaie de comprendre le fonctionnement des cartes : comment les données sont stockées, comment déverrouiller la carte qui est protégée en écriture (ça je le teste pas avec ma carte étudiant 😀 ), et ainsi de suite. Je vous tiendrai au courant de mes éventuelles avancées !

Mais en attendant, je vous conseille Trigger (sur le Play Store), qui vous permet de bricoler un peu les tags NFC, et surtout de programmer des actions à effectuer au passage de tel ou tel badge. C’est simple comme tout, et ça peut impressionner.

 

Trigger
Trigger

 

M’enfin n’oubliez pas que le NFC sert pas qu’à jouer, mais à plein d’autres choses utiles (genre recharger sa carte de bus sans payer échanger des fichiers avec Android Beam), et que la méfiance reste de mise (carte bleue, tout ça, les exemples ne manquent pas pour montrer que la sécurité n’est pas toujours au top).

 

Sur ce, je vais aller continuer à fouiner pour dégotter des puces NFC (qui a dit « ton passeport » ?), et à m’occuper avec mon Arduino et un minitel. Et pour info, pas mal des cartes « jetables » utilisent des puces Mifare Ultralight… c’est juste super simple de réécrire dedans, pour peu qu’on sache le faire…. \o/