Faille NFC – Distributeur Selecta
A L’heure actuelle, Selecta mise sur la technologie NFC, pour simplifier la vie des consommateurs.
En gros, vous disposez de petits badges NFC, comme ceux ci-dessous :
Ces badges sont un équivalent de vos cartes monéo …
Aussi, vous les créditez directement depuis le distributeur, en posant votre badge sur le dispositif, et en insérant des pièces / billets.
Vous pourrez ensuite vous en servir pour récupérer sandwich, café, boisson, ….
Là où j’interviens, c’est qu’après un audit de ce système, j’ai constaté quelques faiblesses.
Ces faiblesses, vous montreront, que les fameuses « Yes Card » sont plus ou moins de retour sous une autre forme …
La toute première faiblesse …
Le dispositif … au lieu de vérifier l’identifiant « Hardware » (block 0 : ce block étant officiellement non modifiable), il se contente de contrôler un l’identifiant software …
Ainsi, pour mes tests, je me suis procuré une puce NFC chinoise avec un block 0 modifiable.
J’ai alors remplacé son identifiant, par un identifiant officiel Selecta « valide »….
Résultat : Le système prend en compte ma puce ….
Pour l’étude des prochaines faiblesses, il vous faudra obtenir les données (dump) binaires de votre puce NFC.
Données que vous pourrez récupérer avec un utilitaire (MFOC, MFCUK, … )
Et ouvrir ce dump avec un éditeur Hexa.
J’en viens à la deuxième faiblesse du système :
Le montant est stocké en dur sur le badge …
J’ai constaté en comparant les données de 2 badges officiels « Selecta » (avec 2 montants différents), qu’un seul petit block changeait …
Le premier block …
En réalité le block Hexa qui change est à convertir en décimal …
3E8 par exemple correspond en décimal à 1000, le distributeur Selecta interprétera alors 1000 comme 10.00 €
Pour terminer sur la 3ème faille du système ...
L’identifiant du badge (et non l’identifiant hardware).
Celui qui vous « trace », qui journalise vos transactions, est lui aussi en décimal.
Ainsi si l’identifiant marqué sur votre badge est 535548, vous faites la conversion en Hexa et obtiendrez » 82BFC »

Toutes ces informations sont accessibles dans le block 1 de la puce NFC.
Enfin et pour résumer :
Un Hacker, peut blanchir ses traces en clonant un badge Selecta.
En modifiant l’identifiant « logiciel » du badge
En indiquant un montant.
Comment corriger une grande partie du problème :
Je recommanderais au constructeur, de dotant ses machine d’un accès internet ou intranet (Wifi, ou une puce 3G ou 4G).
Les distributeurs doivent être en réseau.
Ca leurs permettrait de stocker le montant en interne et non sur les badges …
Ainsi, avec un contrôle des identifiants « Matériel » et « Logiciel » :
Il ne serait plus possible de cloner un badge, sans se faire repérer ….
De plus, le montant ne pourrait être modifié que depuis le réseau de la machine … (théoriquement inaccessible au consommateur).