Protocole Wiegand
Auteur : Bryk
Zine: Rafale #12




1 - Introduction
2 - Description
3 - Lire - écrire une trame
4 - Conclusion





1 - Introduction


     John R. Wiegand a découvert "l'effet Wiegand", c'est à dire un 
phénomène magnétique utilisé pour réaliser des "badges à effet Wiegand" de 
contrôle d'accès par  exemple (dans les années 1980). Ces badges ont des 
propriétés physiques, concernant leur magnétisme, qui les rendent difficile 
à copier. Vous trouverez sur Internet des descriptions de la découverte de 
Wiegand.

Le terme Wiegand est également utilisé pour désigner des protocoles de 
communication, ou encore connu sous le nom "interfaces Wiegand". Ils en 
existent plusieurs, assez ressemblant. Le but de cette article est d'étudier 
ce protocole, qui est utilisé dans les systèmes de contrôle d'accès.

Il existe plusieurs architectures de contrôle d'accès:

- 1) autonome: vous avez un lecteur (de badge, magnétique, biométrique, ...), 
intégré à la poigné, ou encore relié à une gâche électrique. 

- 2) centralisé: vous avez une centrale reliée à un ou plusieurs lecteurs 
autonomes. La communication entre le lecteur et la centrale peut se faire 
via le protocole Wiegand (chouette :-) ). 

Il y a différent type de lecteur, du lecteur de badge au biométrique. 
Plutôt que de cloner un badge ou une empreinte digital pour ouvrir une 
porte, intéressons nous à ce qu'envoi comme données le lecteur à la 
centrale. Imaginé une porte blindé, de 30 cm d'épaisseur, installé sur une 
cloison en placoplâtre. Par où essayerez-vous d'entrer?





2- Description

	Le protocole Wiegand pour les transmissions filaires utilise une 
transmission asynchrone à 3 fils (Data0, Data1, masse) avec des signaux 
entre 0 V et 5V par défaut. Les 0 et les 1 sont des impulsions de durée 
20 µs à 100 µs à l'état bas.

Exemple d'oscillogramme (non à l'échelle):






Lorsqu'il n'y a pas de données à transmettre, Data0 et Data1 sont à un 
niveau haut (5V par défaut). 
Lorsqu'un "0" est envoyé, Data0 est au niveau bas (0V par défaut) alors 
que Data1 reste au niveau haut. 
Lorsqu'un "1" est envoyé, Data1 est au niveau bas alors que Data0 est au 
niveau haut.


Le protocole Wiegand utilise des trames de 26 bits. Il existe des variantes 
avec un nombre de bits plus grand (Wiegand 36 bits, ...).
 

Dans ces 26 bits transmis, on retrouve:
- 1 bit de parité
- 8 bits de données (code site)
- 16 bits de données (code ID)
- 1 bit de parité

Le premier bit de parité est calculé suivant les 12 premiers bits de 
données (8 du code site et 4 du code ID) et est une parité paire. On 
définit le bit de parité paire comme étant égal à zéro si la somme des 
autres bits est paire et à un dans le cas contraire.

Le dernier bit de parité est calculé suivant les 12 derniers bits de 
données (12 dernier bits du code ID) et est une parité impaire. On définit 
le bit de parité impaire comme étant égal à zéro si la somme des autres bits 
est impaire et à un dans le cas contraire.

Exemple de trame Wiegand pour un badge dont le code est 0100166A37 :

1 00010110 0110101000110111 0




Le code émis est 166A37 en hexadécimal.


3 - Lire - écrire une trame


	Les lecteurs de contrôle d'accès (rfid, code barre, ...) sont 
facilement accessible. Il faut regarder le constructeur, le modèle, et 
avec une recherche internet on peut trouver la notice d'installation.
Il faut vérifier comment l'ouvrir "proprement", et si il y a des contacts 
d'ouverture (tamper = sabotage). Vous trouverez souvent 5 fils: 3 pour le 
bus Wiegand, un fil de masse (0V) et un d'alimentation (entre 5V et 12V le 
plus souvent).
A la conférence BlackHat 2008, Zac Franken a fait un exposé très instructif, 
avec une démonstration. On retrouve sur internet sa présentation, et des 
vidéos.
Il a créé un module appelé Gecko, qui se branche entre le lecteur et la 
centrale. Il permet de:
- enregistrer plusieurs ID
- télécharger des infos au travers de la LED vers un pc
- charger des infos via une carte vers le module Gecko.
Une fois installé, Gecko peut donner des informations, se mettre à jour, 
..., sans ré-ouvrir le lecteur. Il est alimenté sur l'alimentation du 
lecteur.

Ce module est sans doute un simple micro contrôleur (pic, ATmega, ...) avec 
quelques composants passifs (quartz, résistances, ...). 



Photo du module Gecko.


Il est techniquement possible de créer des trames et de les envoyer, pour 
faire un "brute force" afin de trouver un code site et un code ID permettant 
d'ouvrir la porte. Mais attention, les systèmes de contrôle d'accès ont 
un historique dans la centrale, et sur une installation assez importante, 
sont couplés à un logiciel de supervision. Autrement dit, cette technique 
n'est pas discrète ...



4 - Conclusion

	Le protocole de communication Wiegand est utilisé dans différents pays, 
y compris la France. Un contrôle d'accès peut avoir un lecteur très 
perfectionné (biométrique, ...), la simplicité de ce protocole est vraiment 
une faiblesse dans l'installation. Même si le lecteur est équipé de contact 
d'ouverture du boitier, si on a la documentation et l'on sait où se trouve 
ces contacts, il est facile de leurrer le système.
Les "hack hardware" sont très intéressants, ils combinent électronique et 
informatique. Les bâtiments sont équipés en contrôle d'accès, intrusion, vidéo,
ou encore sécurité incendie, ces systèmes sont communicant ce qui nous laisse 
la possibilité de trouver de nombreuses failles ou backdoor.

Have Fun ...