hacktricks/radio-hacking/pentesting-rfid.md

14 KiB

Pentesting RFID

{% hint style="success" %} Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

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 s'appuyer sur sa propre source d'alimentation (active), comme 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 de chaque catégorie possède toutes les capacités énuméré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 fournisseur les préprogramme à l'usine de production. En conséquence, vous ne pouvez pas changer les informations stockées dans leur mémoire.
  • Les étiquettes de Classe 1 peuvent également fonctionner dans les bandes HF. De plus, elles peuvent être écrites une seule fois après 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, comme une batterie intégrée, elles ne peuvent pas initier une 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 comme des 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 des détails supplémentaires 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 fournisseur 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 fournisseur 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 appartient l'étiquette. Un autre registre important, également spécifié par l'ISO, est l'Identifiant de Format de Stockage de 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 de 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 fournisseur, 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 haute sécurité : accès aux bâtiments, clés d'interphone, cartes de membre de gym, etc. En raison de leur portée plus élevée, elles sont pratiques à utiliser pour le stationnement payant : le conducteur n'a pas besoin d'apporter la carte près du lecteur, car elle est déclenchée de plus loin. En même temps, les étiquettes à basse fréquence sont très primitives, elles ont un faible taux 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 comme la gestion de solde et la cryptographie. Les étiquettes à basse fréquence ne transmettent que leur court ID sans aucun moyen d'authentification.

Ces dispositifs s'appuient 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 élevée. Il existe des lecteurs EM-Marin et HID, qui fonctionnent à une distance allant jusqu'à un mètre. Ceux-ci sont souvent utilisés dans le stationnement.
  • Protocole primitif — en raison du faible taux de transfert de données, ces étiquettes ne peuvent transmettre que leur court ID. Dans la plupart des cas, les données ne sont pas authentifiées et ne sont pas protégées de quelque manière que ce soit. 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, ou même lues depuis la poche de quelqu'un d'autre en raison de la primitivité du protocole.

Protocoles 125 kHz populaires :

  • EM-Marin — EM4100, EM4102. Le protocole le plus populaire dans la CEI. Peut être lu à 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 chers.
  • Indala — très ancien protocole à basse fréquence introduit par Motorola, et plus tard acquis par HID. Vous êtes moins susceptible de le rencontrer dans la nature par rapport aux deux précédents car il est en train de tomber en désuétude.

En réalité, il existe beaucoup plus de protocoles à basse fréquence. Mais ils utilisent tous la même modulation au niveau physique et peuvent être considérés, d'une manière ou d'une autre, comme une variation de ceux énumérés ci-dessus.

Attaque

Vous pouvez attaquer ces étiquettes avec le Flipper Zero :

{% content-ref url="../todo/radio-hacking/flipper-zero/fz-125khz-rfid.md" %} fz-125khz-rfid.md {% endcontent-ref %}

Étiquettes RFID à haute fréquence (13,56 MHz)

Les étiquettes à haute fréquence sont utilisées pour une interaction plus complexe entre le lecteur et l'étiquette lorsque vous avez besoin de cryptographie, d'un large transfert de données bidirectionnel, d'authentification, etc.
On les trouve généralement dans les cartes bancaires, les transports publics et d'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 ISO 14443. Les protocoles de haut niveau, ainsi que les normes alternatives (comme ISO 19092), en sont basés. Beaucoup de gens se réfèrent à cette technologie comme Communication en Champ Proche (NFC), un terme pour les dispositifs fonctionnant à la fréquence de 13,56 MHz.

Pour simplifier, l'architecture 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 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 à l'ajout de la prise en charge de Mifare Classic et NFC NDEF. Un examen approfondi des protocoles et des normes qui composent le NFC mérite un article séparé que nous prévoyons de publier plus tard.

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. En général, l'UID fait 4 ou 7 octets, mais peut rarement atteindre jusqu'à 10. Les UIDs ne sont pas secrets et 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. Une telle mauvaise utilisation les ramène au niveau des cartes 125 kHz en termes de sécurité. Les cartes virtuelles (comme Apple Pay) utilisent un UID dynamique afin que les propriétaires de téléphones ne puissent pas ouvrir des portes avec leur application de paiement.

  • Faible portée — les cartes à haute fréquence sont spécifiquement conçues pour être placées près du lecteur. Cela aide également à protéger la carte des 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 de haute portée 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 à son tour 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 intelligentes. Il existe des cartes qui supportent des algorithmes cryptographiquement robustes comme AES et mettent en œuvre la cryptographie asymétrique.

Attaque

Vous pouvez attaquer ces étiquettes avec le Flipper Zero :

{% content-ref url="../todo/radio-hacking/flipper-zero/fz-nfc.md" %} fz-nfc.md {% endcontent-ref %}

Ou en utilisant le proxmark :

{% content-ref url="../todo/radio-hacking/proxmark-3.md" %} proxmark-3.md {% endcontent-ref %}

Références

{% hint style="success" %} Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}