Pourquoi vous devez être très prudent avec l’API NFC HCE d’Android
Tout d’abord, votre smartphone peut être équipé d’un élément dit sécurisé (ou SE, pour faire court). C’est une puce qui est capable de communiquer avec le lecteur de carte sur lui-même – à aucun moment elle n’a besoin de communiquer avec Android OS pour effectuer ses tâches. Il contient de minuscules applications (parfois appelées applets, mais j’ai aussi vu des gens les appeler des cardlets), qui peuvent répondre aux requêtes du lecteur.
Bonne question! Étant donné que le code responsable de l’émulation de la carte hôte s’exécute dans le système d’exploitation hôte, cela signifie qu’en théorie, l’échange de données peut être compromis (en pratique, cependant, cette solution est suffisamment sécurisée, au moins sur les appareils non rootés; sinon je doute que le Google Pay existerait même en premier lieu). Il y a quelques années, j’ai lu un article qui l’expliquait en détail (je ne le trouve pas maintenant, malheureusement), mais surtout, cela se résume au conflit des opérateurs de téléphonie mobile avec Google en 2010-2012.
Oh, wow, j’ai presque oublié que je voulais discuter d’une petite mais importante conclusion que j’avais en octobre. Désolé pour cela, j’aime l’histoire et je n’ai pas pu résister à la tentation de donner une courte leçon d’histoire!
- Et j’ai également revérifié très soigneusement mon propre code pour m’assurer qu’à aucun moment il ne lève les exceptions non gérées. C’est une chose de trouver un tel problème lorsque vous êtes un développeur assis confortablement sur sa chaise en regardant les journaux. C’est tout autre chose quand vous voulez payer pour un trajet ou ouvrir la porte ou quoi que ce soit que vous fassiez avec votre smartphone, et vous constatez que rien ne fonctionne et vous ne savez pas quoi faire.