Jouons avec le NFC

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/

10 commentaires sur “Jouons avec le NFC

  • 1 janvier 2014 à 23 h 22 min
    Permalink

    Salut !
    À mon avis, il y a plein de trucs à faire avec le Raspberry et un peu de NFC/RFID. 😀
    J’y pense depuis un moment. Il faudrait juste creuser un peu la manière dont on code les informations dans les cartes. Super article. 🙂

    Hugo

    Réponse
  • 15 janvier 2014 à 15 h 55 min
    Permalink

    Bonjour,

    Recemment passe sous Cyanogen sans les GApps, j’avais l’habitude d’utiliser Trigger et des tags NFC pour declencher des evenements de mon telephone, mais depuis ma desintoxication de chez Google, je n’arrive pas a trouver une application qui automatise sans qu’elle utilise les google services. Si jamais tu en trouves une je suis preneur.

    Merci

    Réponse
  • 22 avril 2014 à 11 h 26 min
    Permalink

    J’ai bien envie de bidouiller un peu mes cartes inutiles au lieu de les balancer à la corbeille. Je me suis renseigné un peu, mais je ne trouve pas de soft qui me permet de lire et écrire le code.
    J’ai installé moults applis sur mon smartphone, c’est cool mais souvent limité : quelques infos (type de puce, …), écriture d’actions comme allumer/couper wifi, …

    N’y a-t-il pas moyen d’avoir accès au code de la puce ?

    Réponse
    • 7 mai 2014 à 14 h 53 min
      Permalink

      Avoir accès au code de la puce, oui, c’est possible. Extraire les données, en tout cas. De là à réécrire… c’est une autre histoire.

      Déjà, tous les lecteurs ne sont pas compatibles avec toutes les puces : c’est le cas par exemple pour mon Nexus 4, dont le lecteur NFC ne « sait » pas lire les Mifare Classic. Pour autant, la même appli est capable de lire ma carte d’abonnement HSL HRT (transports en commun de la région d’Helsinki), qui est une Mifare Ultralight. Là, je peux en lire/extraire les données. Plus en détails, les pages 0 et 1 (UID) sont verrouillées, la page 2 (lock bits) est « partiellement accessible en écriture », et les pages 3 à 15 (OTP + données) sont accessibles en écriture. 16 pages de 4 Bytes 😉

      J’imagine que tu as déjà regardé du côté de NFC TagInfo, du NFC Research Lab Hagenberg ? Au moins pour « voir » le contenu de tes cartes !

      Pour l’écriture, je fais des recherches, on pourrait partager ça 🙂

      Réponse
  • 5 septembre 2014 à 0 h 24 min
    Permalink

    Bon ma carte de bus d’Helsinki je l’utilise par contre je viens de degoter celle de Stockholm. Je vais voir ça en détails avec les apps que tu as conseillées. Surtout que j’ai enfin un phone avec nfc.
    Sinon j’ai pensé à acheter des tags pour en placer au boulot ou chez moi histoire de gérer les appels urgent automatique (crise d asthme. ..hop lecture du tag) ou sms automatique « j’ai plus de pq dans les chiottes, viens me sauver. » XD
    Bref. Tiens j’ai aussi un arduino. Bon je ne sais pas codé mais je devrai réussir à bidouiller des trucs déjà codés par d’autre (ou pas).
    Bref je te raconte ma vie on s’en fou.mais merci pour les app et idée de réutilisation de carte nfc : )

    P.s. je veux bien l astuce pour le chargement de la carte de bus gratos xD

    Réponse
  • 5 septembre 2014 à 0 h 27 min
    Permalink

    Bon bon je mai pas encore maîtrisé le correcteur automatique de mon nouveau phone. Dsl pour les fautes ou phrase à la syntaxe douteuse.

    Réponse
  • Ping : NFC | Pearltrees

  • 19 janvier 2016 à 21 h 30 min
    Permalink

    Bonjour, est ce que tu pourrai m envpyer le liens de ton site par email stp , ca m interrese 🙂 Merci d avance : Email : bobymc@libello.com

    Réponse
  • 9 mai 2016 à 18 h 09 min
    Permalink

    [Modération]
    Merci de ne pas profiter des commentaires pour promouvoir vos propres sites commerciaux en mode « j’offre des tags par ici », merci… Je ne vois pas tout tout de suite mais ça n’a pas sa place ici.
    Ménage fait.

    Réponse

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *