Pourquoi les cartes de transport japonaises ne fonctionnent-elles pas avec la plupart des applications NFC ?
La couche radio est rarement l'obstacle : la plupart des téléphones récents détectent ces cartes, qui emploient la technologie qu'Android expose sous le nom NfcF. Ce qui bloque une application généraliste, c'est l'accès aux données, protégées et lisibles seulement par un logiciel détenant des identifiants que les opérateurs de transport contrôlent.
Deux obstacles distincts
« Mon application ne lit pas ma carte de transport » réunit deux questions dont les réponses diffèrent. Le téléphone peut-il seulement dialoguer avec la carte, et l'application peut-elle comprendre ce que la carte dit ?
La première ne pose en général pas de problème. La seconde en pose un, et essayer d'autres applications n'y change rien.
La technologie sous-jacente
Ces cartes emploient la famille qu'Android expose sous le nom NfcF et documente comme JIS 6319-4 dans sa référence des technologies. Le NFC Forum a adopté la même famille comme Type 3. La technologie est développée par Sony, qui en publie une présentation.
La prise en charge matérielle hors du Japon a longtemps été inégale et s'est nettement améliorée.
Pourquoi le solde reste caché
Une carte de transport n'est pas un tag qui contient un nombre à la vue de tous. C'est un petit système sécurisé où les données intéressantes résident dans des zones protégées par des clés que détient l'opérateur.
Une application sans ces clés peut généralement établir qu'une carte est présente et lire les identifiants que la carte expose librement. Elle ne peut pas lire le solde, l'historique des trajets ni rien d'autre que l'opérateur considère comme sien, car la carte ne les livrera pas.
C'est une conception délibérée plutôt qu'une limite. Une carte à valeur stockée qui laisserait n'importe quelle application voisine lire son contenu serait une piètre conception pour un instrument de paiement.
Ce que vous pouvez raisonnablement attendre
Les applications publiées par les opérateurs eux-mêmes, et les fonctions de portefeuille intégrées aux plateformes au Japon, fonctionnent parce qu'elles détiennent les identifiants nécessaires et les accords nécessaires. Un utilitaire NFC généraliste ne les a pas et ne peut pas les avoir.
L'attente honnête pour un outil générique est donc l'inspection technique plutôt que le contenu utile : la carte est détectée, sa technologie est identifiée, et c'est la limite de ce qu'un développeur indépendant peut offrir.
Si une annonce prétend le contraire pour une application généraliste, accueillez la promesse avec méfiance. La barrière est ici contractuelle et cryptographique, pas une affaire de logiciel mieux écrit.
Questions fréquentes
Mon téléphone manque-t-il du matériel nécessaire ?
Possiblement, sur des modèles anciens vendus hors du Japon, mais bien moins souvent qu'on ne le suppose. Avant d'accuser le matériel, notez que même un téléphone pleinement compatible ne lira pas de données protégées sans les clés de l'opérateur.
Une application peut-elle afficher le solde de ma carte ?
Seulement des applications autorisées par l'opérateur, ce qui revient en pratique à ses propres logiciels et aux fonctions de portefeuille disponibles au Japon. C'est une barrière commerciale et cryptographique, pas une question de qualité logicielle.
Pourquoi mon téléphone lit-il une carte d'hôtel et pas une carte de transport ?
Beaucoup de cartes d'hôtel emploient des technologies simples, à protection par défaut ou faible, et un lecteur généraliste va plus loin. Les cartes de transport sont bâties pour résister exactement à cela, puisqu'elles portent une valeur stockée.
Cela vaut-il pour les cartes de transport hors du Japon ?
Le principe, oui. La plupart des réseaux protègent leurs données par des clés qu'ils contrôlent, quelle que soit la technologie sous-jacente. Ce qui varie est la technologie, pas le fait que les parties intéressantes soient verrouillées.