Comme l'ont démontré des chercheurs pendant la conférence sur la sécurité EUSecWest qui s'est tenue à Amsterdam (les 19 et 20 septembre 2012), une application Android permet de trafiquer les cartes sans contact des systèmes de transport des villes du New Jersey et de San Francisco. Grâce à cette application, les voyageurs peuvent réinitialiser à l'infini le solde de leur carte et voyager gratuitement. « Avec l'application Android UltraReset, un smartphone doté de la technologie de communication sans contact NFC peut lire les données d'une carte de transport et voir le nombre de voyages restant, » ont ainsi expliqué Corey Benninger et Max Sobell, chercheurs en sécurité chez Intrepidus Group et développeurs de l'application. « Quand le solde est épuisé, les voyageurs peuvent réécrire les données stockées sur la carte - par exemple 10 voyages - en utilisant la même application, et la recréditer de 10 voyages », ont montré les chercheurs.  Selon Corey Benninger, « on peut faire ce Reset à volonté ». UltraReset fonctionne sous Android 2.3.3 ou ultérieure (Voir la vidéo de démonstration du hack NFC sur Vimeo).

Une puce NFC piratable

Selon les développeurs, l'application UltraReset tire profit d'une faille découverte dans des cartes NFC particulières, celles utilisées par les transports urbains San Francisco Muni et ceux du New Jersey. « Nous avons testé ces systèmes et nous avons informé ces deux villes des abus potentiels », ont-ils précisé. « Mais, pour l'instant, selon nos informations, ces systèmes restent encore vulnérables », a déclaré Corey Benninger, qui a ajouté que la ville de San Francisco avait été informée de cette faille en décembre 2011.

« Le hack exploite la puce Mifare Ultralight utilisée dans des cartes NFC jetables », ont encore indiqué les chercheurs. « Ce type de puce permet à toute personne qui sait comment faire de réécrire des données sur la puce NFC », ont-ils affirmé. « J'ai développé le code de l'application en une nuit », a encore précisé Corey Benninger, « et je ne suis pas un spécialiste du codage. Donc, quelqu'un qui s'y connaît n'aura aucune difficulté à faire la même chose ».

« La puce Mifare Ultralight travaille un peu comme un système de carte perforée standard, mais au lieu de percer des trous dans le papier, elle retourne un bit à chaque fois qu'un voyage est utilisé. Ces bits ne peuvent jamais être renvoyés dans l'autre sens. Dans les systèmes défaillants, l'information est bien vérifiée, mais les bits ne sont jamais décomptés, ce qui permet de réinitialiser les cartes quand le crédit est épuisé », ont encore expliqué les chercheurs.

D'autres villes concernées

« D'autres villes américaines comme Boston, Seattle, Salt Lake City, Chicago et Philadelphie utilisent également des systèmes de tickets sans contact qui pourraient aussi être vulnérables en utilisant cette technique », ont-ils averti. Mais, pour l'instant les chercheurs ne les pas encore testés.

Depuis jeudi, Corey Benninger et Max Sobell ont livré une version corrigée de l'application UltraReset. La nouvelle application nommée UltraCardTester doit permettre de tester la sécurité des systèmes de transport locaux. UltraCardTester offre les mêmes fonctions que UltraReset, mais elle n'est pas en mesure de réécrire la carte. « La fonction de réécriture a été retirée afin que les gens ne puissent pas en tirer profit », a déclaré Corey Benninger. « L'application permet toujours de voir si les bits sont activés ou pas », a t-il ajouté. Ajoutant que « c'est un bon indicateur pour voir si le système est vulnérable. Mais il n'est pas possible de vérifier ce qui se passe dans le back end ».

Selon les chercheurs, il serait assez facile de corriger la vulnérabilité. « Les sociétés de transports urbains pourraient utiliser une puce plus sûre, ou adapter leurs systèmes back-end pour s'assurer que les bits sont bien décomptés des cartes à chaque passage », ont-ils ajouté. « Notre but n'est pas d'inciter quelqu'un à s'intéresser à la faille », a déclaré Max Sobell. « Nous voulons simplement attirer l'attention sur une faille susceptible d'affecter potentiellement d'autres systèmes ».