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 ...