Pentesting RFID
Introduction
L'identification par radiofréquence (RFID) est la solution radio à courte portée la plus populaire. Elle est généralement utilisée pour stocker et transmettre des informations qui identifient une entité.
Une étiquette RFID peut compter sur sa propre source d'alimentation (active), telle qu'une batterie intégrée, ou recevoir son alimentation de l'antenne de lecture en utilisant le courant induit par les ondes radio reçues (passive).
Classes
EPCglobal divise les étiquettes RFID en six catégories. Une étiquette dans chaque catégorie possède toutes les capacités répertoriées dans la catégorie précédente, ce qui la rend rétrocompatible.
Les étiquettes de classe 0 sont des étiquettes passives qui fonctionnent dans les bandes UHF. Le vendeur les préprogramme à l'usine de production. Par conséquent, vous ne pouvez pas modifier les informations stockées dans leur mémoire.
Les étiquettes de classe 1 peuvent également fonctionner dans les bandes HF. De plus, elles ne peuvent être écrites qu'une seule fois après la production. De nombreuses étiquettes de classe 1 peuvent également traiter des contrôles de redondance cyclique (CRC) des commandes qu'elles reçoivent. Les CRC sont quelques octets supplémentaires à la fin des commandes pour la détection d'erreurs.
Les étiquettes de classe 2 peuvent être écrites plusieurs fois.
Les étiquettes de classe 3 peuvent contenir des capteurs intégrés qui peuvent enregistrer des paramètres environnementaux, tels que la température actuelle ou le mouvement de l'étiquette. Ces étiquettes sont semi-passives, car bien qu'elles aient une source d'alimentation intégrée, telle qu'une batterie intégrée, elles ne peuvent pas initier de communication sans fil avec d'autres étiquettes ou lecteurs.
Les étiquettes de classe 4 peuvent initier une communication avec d'autres étiquettes de la même classe, ce qui en fait des étiquettes actives.
Les étiquettes de classe 5 peuvent fournir de l'énergie à d'autres étiquettes et communiquer avec toutes les classes d'étiquettes précédentes. Les étiquettes de classe 5 peuvent agir en tant que lecteurs RFID.
Informations stockées dans les étiquettes RFID
La mémoire d'une étiquette RFID stocke généralement quatre types de données : les données d'identification, qui identifient l'entité à laquelle l'étiquette est attachée (ces données incluent des champs définis par l'utilisateur, tels que des comptes bancaires) ; les données supplémentaires, qui fournissent d'autres détails concernant l'entité ; les données de contrôle, utilisées pour la configuration interne de l'étiquette ; et les données du fabricant de l'étiquette, qui contiennent un Identifiant Unique de l'étiquette (UID) et des détails concernant la production, le type et le vendeur de l'étiquette. Vous trouverez les deux premiers types de données dans toutes les étiquettes commerciales ; les deux derniers peuvent différer en fonction du vendeur de l'étiquette.
La norme ISO spécifie la valeur de l'Identifiant de Famille d'Application (AFI), un code qui indique le type d'objet auquel l'étiquette appartient. Un autre registre important, également spécifié par l'ISO, est l'Identifiant de Format de Stockage des Données (DSFID), qui définit l'organisation logique des données utilisateur.
La plupart des contrôles de sécurité RFID ont des mécanismes qui restreignent les opérations de lecture ou d'écriture sur chaque bloc mémoire utilisateur et sur les registres spéciaux contenant les valeurs AFI et DSFID. Ces mécanismes de verrouillage utilisent des données stockées dans la mémoire de contrôle et ont des mots de passe par défaut préconfigurés par le vendeur mais permettent aux propriétaires d'étiquettes de configurer des mots de passe personnalisés.
Comparaison des étiquettes à basse et haute fréquence
Étiquettes RFID à basse fréquence (125 kHz)
Les étiquettes à basse fréquence sont souvent utilisées dans des systèmes qui ne nécessitent pas une sécurité élevée : accès aux bâtiments, clés d'interphone, cartes d'adhésion à une salle de sport, etc. En raison de leur portée plus grande, elles sont pratiques pour les parkings payants : le conducteur n'a pas besoin d'approcher la carte du lecteur, car elle est activée de plus loin. En même temps, les étiquettes à basse fréquence sont très primitives, elles ont un faible débit de transfert de données. Pour cette raison, il est impossible de mettre en œuvre un transfert de données bidirectionnel complexe pour des choses telles que le maintien de l'équilibre et la cryptographie. Les étiquettes à basse fréquence ne transmettent que leur ID court sans aucun moyen d'authentification.
Ces dispositifs reposent sur la technologie RFID passive et fonctionnent dans une plage de 30 kHz à 300 kHz, bien qu'il soit plus courant d'utiliser 125 kHz à 134 kHz :
Longue portée — une fréquence plus basse se traduit par une portée plus grande. Il existe des lecteurs EM-Marin et HID, qui fonctionnent à une distance allant jusqu'à un mètre. Ils sont souvent utilisés dans les parkings.
Protocole primitif — en raison du faible débit de transfert de données, ces étiquettes ne peuvent transmettre que leur ID court. Dans la plupart des cas, les données ne sont pas authentifiées et ne sont protégées d'aucune manière. Dès que la carte est à portée du lecteur, elle commence simplement à transmettre son ID.
Faible sécurité — ces cartes peuvent être facilement copiées, voire lues depuis la poche de quelqu'un d'autre en raison de la primitivité du protocole.
Protocoles populaires à 125 kHz :
EM-Marin — EM4100, EM4102. Le protocole le plus populaire dans la CEI. Peut être lu à partir d'environ un mètre en raison de sa simplicité et de sa stabilité.
HID Prox II — protocole basse fréquence introduit par HID Global. Ce protocole est plus populaire dans les pays occidentaux. Il est plus complexe et les cartes et lecteurs pour ce protocole sont relativement coûteux.
Indala — très ancien protocole basse fréquence introduit par Motorola, et plus tard acquis par HID. Vous avez moins de chances de le rencontrer dans la nature par rapport aux deux précédents car il est en voie de disparition.
En réalité, il existe de nombreux autres protocoles à basse fréquence. Mais ils utilisent tous la même modulation sur la couche physique et peuvent être considérés, d'une manière ou d'une autre, comme une variation de ceux répertoriés ci-dessus.
Attaque
Vous pouvez attaquer ces étiquettes avec le Flipper Zero :
Étiquettes RFID à haute fréquence (13,56 MHz)
Les étiquettes à haute fréquence sont utilisées pour une interaction lecteur-étiquette plus complexe lorsque vous avez besoin de cryptographie, d'un transfert de données bidirectionnel important, d'authentification, etc. On les trouve généralement dans les cartes bancaires, les transports publics et autres passes sécurisées.
Les étiquettes à haute fréquence de 13,56 MHz sont un ensemble de normes et de protocoles. Elles sont généralement appelées NFC, mais ce n'est pas toujours correct. L'ensemble de protocoles de base utilisé aux niveaux physique et logique est l'ISO 14443. Les protocoles de haut niveau, ainsi que les normes alternatives (comme l'ISO 19092), sont basés sur celui-ci. Beaucoup de gens se réfèrent à cette technologie comme Near Field Communication (NFC), un terme pour les appareils fonctionnant sur la fréquence de 13,56 MHz.
Pour simplifier, l'architecture du NFC fonctionne comme suit : le protocole de transmission est choisi par l'entreprise fabriquant les cartes et mis en œuvre sur la base de l'ISO 14443 de bas niveau. Par exemple, NXP a inventé son propre protocole de transmission de haut niveau appelé Mifare. Mais au niveau inférieur, les cartes Mifare sont basées sur la norme ISO 14443-A.
Flipper peut interagir à la fois avec le protocole de transmission ISO 14443 de bas niveau, ainsi qu'avec le protocole de transfert de données Mifare Ultralight et EMV utilisé dans les cartes bancaires. Nous travaillons à ajouter le support pour Mifare Classic et NFC NDEF. Un examen approfondi des protocoles et normes qui composent le NFC vaut un article séparé que nous prévoyons de publier ultérieurement.
Toutes les cartes à haute fréquence basées sur la norme ISO 14443-A ont un identifiant de puce unique. Il agit comme le numéro de série de la carte, comme l'adresse MAC d'une carte réseau. Généralement, l'UID est long de 4 ou 7 octets, mais peut rarement aller jusqu'à 10. Les UIDs ne sont pas un secret et ils sont facilement lisibles, parfois même imprimés sur la carte elle-même.
Il existe de nombreux systèmes de contrôle d'accès qui s'appuient sur l'UID pour authentifier et accorder l'accès. Parfois, cela se produit même lorsque les étiquettes RFID supportent la cryptographie. Un tel mauvais usage les ramène au niveau des cartes 125 kHz en termes de sécurité. Les cartes virtuelles (comme Apple Pay) utilisent un UID dynamique pour que les propriétaires de téléphones ne puissent pas ouvrir des portes avec leur application de paiement.
Courte portée — les cartes à haute fréquence sont spécialement conçues pour être placées à proximité du lecteur. Cela aide également à protéger la carte contre les interactions non autorisées. La portée de lecture maximale que nous avons réussi à atteindre était d'environ 15 cm, et c'était avec des lecteurs à longue portée fabriqués sur mesure.
Protocoles avancés — des vitesses de transfert de données allant jusqu'à 424 kbps permettent des protocoles complexes avec un transfert de données bidirectionnel complet. Ce qui permet la cryptographie, le transfert de données, etc.
Haute sécurité — les cartes sans contact à haute fréquence ne sont en aucun cas inférieures aux cartes à puce. Il existe des cartes qui prennent en charge des algorithmes de chiffrement cryptographiquement forts comme l'AES et mettent en œuvre la cryptographie asymétrique.
Attaque
Vous pouvez attaquer ces étiquettes avec le Flipper Zero :
Ou en utilisant le proxmark :
Références
Last updated