logo

Préface
WTF?
Tableau comparatif
PHY
MAC
Électronique: les étiquettes
Électronique: le TRX
Hackitty-hack
Code et schémas
Glossaire

PHY

L'argument principal avancé pour démarquer ce système de la concurrence est qu'il communique en infrarouge, de manière bidirectionelle et sécurisée. Bidirectionelle peut être. Sécurisée, j'en doute.

Voici une citation du gérant d'un gros magasin Spar, et une image allant de paire:

“There is absolutely no way the system can be hacked or suffer interference from any other wireless devices which are powerful and mobile today. It’s the same, secure technology that was developed specifically for heat-seeking missiles fired from fighter jets.”

ESL

 

On peut difficilement en vouloir à quelqu'un exercant une profession non scientifique de ne pas faire la différence entre NIR et MIR. Par contre, je trouve qu'on peut se le permettre si la personne en question ment ostensiblement sur ce qu'il veut vendre.

 

La communication se fait effectivement via des impulsions de lumière infrarouge (940nm, invisible) via des emetteurs/recepteurs appellés TRX (pour "transceivers") qui sont generalement fixés au plafond.

Comme avec la lumière visible, les obstacles tels que les rayons d'un magasin forment des zones d'ombre qui peuvent empêcher les étiquettes de "voir" les TRX. Souvent les reflets sur les murs blancs sont suffisants pour atteindre les étiquettes, et leur haute sensibilité permet de recevoir les données. Cependant pour couvrir une grande surface, des dizaines de TRX doivent être installés.

 

Quelques fantasmes réalisés:

  • Changer les prix affichés
  • Changer les images affichées
  • Bloquer un affichage faux pendant 3 heures
  • Sécher les piles en une semaine

Quelques fantasmes possiblement réalisables:

  • Changer l'Access key, empêcher le magasin de communiquer avec l'ESL
  • Mettre le firmware a jour par infrarouge, briquer l'ESL
  • Mettre le firmware a jour avec un ver qui peut se propager d'ESL en ESL en utilisant la LED de réponse

 

Premières recherches

Dans une vidéo, on peut voir un employé de magasin lier des étiquettes a des produits. Ceci permet au niveau informatique d'utiliser la base de données du magasin (et donc des caisses) pour gérer l'étiquette placée sous le produit.

ESL

On peut le voir premièrement scanner l'UPC d'un produit a l'aide d'un terminal/scanner classique, puis le code128 de l'ESL. Quelques secondes après, l'ESL se met a jour.
La deuxième association rate car le scanner n'arrive pas a lire le code sur l'ESL, l'employé retourne celle-ci pour avoir son code imprimé a l'arrière (le même).
La troisième association montre que l'étiquette répond avec un certain délai (clignotement IR visible) alors qu'elle n'est plus visée. Cela prouve que la mise a jour ne se fait pas directement depuis le terminal portable mais par le serveur du magasin par WiFi auquel le terminal est connecté.

Au lieu d'avoir une simple liaison Terminal -> ESL, un grand détour est fait par l'infrastructure propriétaire. La séquence se déroule comme suit:

  • L'employé scanne un UPC, puis un code128 d'ESL.
  • Le terminal transmet par WiFi l'ordre d'association produit/ESL
  • Le logiciel de gestion enregistre l'association en DB
  • Le logiciel transmet en ethernet une demande d'acquittement de l'ESL vers la BS
  • La BS commande aux TRX d'interroger l'ESL par IR (ou qu'elle soit)
  • Le TRX reçoit (ou non) l'acquittement de l'ESL par IR et l'indique a la BS
  • Le BS indique au logiciel que l'étiquette existe bien et qu'elle est prête

ESL

 

Étude des étiquettes

La modulation infrarouge propriétaire est nomme "PP4" et correspond à une modulation par position d'impulsion à 4 symboles (4PPM), pouvant ainsi coder 2 bits par symbole.

Les impulsions sont en fait des bursts à exactement 20MHz/16 = 1.25MHz. Ils durent 50 périodes, soit 40µs.
La durée des espaces entre les symboles code les 2 bits. Elles sont mélangées et pas graduelles.
Une autre version de la modulation, "PP16" utilise les mêmes bursts mais avec une résolution plus fine permettant de coder 4 bits en un symbole. Seules les ESL DM semblent accepter PP16.

A noter qu'il est impossible de simuler cette modulation avec un chip IRDA classique, ni un émetteur IR de téléphone (limité a quelques kHz en général).

Selon des documents publics, les bitrates réels seraient de 10kbps pour PP4 et 38kbps pour PP16. Mes ESL a segment ne reconnaissent que PP4.

ESL
(La taille des bursts n'est pas a l'échelle)

f=32768Hz
t=30,52us

61=2t, 244=8t, 122=4t, 183=6t

 

Un des modèles utilisés: une "E4 HCN Freezer" (version frigo, supportant jusqu'a -30°C).
Elles m'ont été gracieusement offertes par Dr. Windaube il y a très longtemps, merci !

ESL

Sur toutes ces ESL, on peut trouver a l'arrière le code128 avec son contenu alphanumérique sur un autocollant. C'est un identifiant de 17 caractères constitué ainsi:

ESL

Le "4" en deuxième position est commun a beaucoup d'ESL. La lettre indique peut être le type de matériel ?

Pour être valide, un code doit satisfaire les conditions suivantes:

  • Le "4" doit être présent
  • Manufacturing unit doit être égal ou inférieur a 64
  • Manufacturing week doit être égal ou inférieur a 53 (logique)
  • Le serial doit être égal ou inférieur a 65535
  • Le checksum doit être égal a la somme des 16 précédentes valeurs ASCII modulo 10.

Par exemple, G4591371776312423: Étiquette fabriquée par l'unité 59, dans la 37eme semaine de 2001, le serial est 17763, la référence produit (1)1242, et le checksum est 3 (valide).

Le PLID 32 bits correspond a MMYWWSSSSS, soit Manufacturing unit, l'année et la semaine de fabrication, et le serial. L'exemple donne un PLID de 0xE7014563.

footer
symbol symbol symbol symbol symbol