11. August 2007

CCC Camp: Practical RFID Attacks

Category: CCC,Hacking — Christian @ 20:06

Auf dem Camp wurde der Vortrag zu RFID von Milosch Meriac, dem Hauptentwickler der RFID-Hardware und von Henryk Plötz gehalten, der an der Software schraubt. Der Vortrag war recht ähnlich zum RFID-Vortrag von Harald Welte und Milosch Meriac auf dem letzten Congress.

RFID-Standards

Als Einleitung wurde wieder der RFID-Standard ISO 14443 vorgestellt, der Proximity Integrated Circuit Cards (PICC) definiert. Der Standard beschreibt im Detail
1. Physical Characteristics
2. RF Power & Signal Interface
3. Initialization & Anti-collision
4. Transmission Protocol

Hauptsächlich gibt es zwei verschiedene Kartentypen, Typ A, die Mifare-Karten von Phillips und Typ B, die z.B. bei ePassports zum Einsatz kommen. ISO 14443 setzt Amplitude Shift Keying (ASK) Modulation ein, die so kodierten Signale des Receivers (PDC) sind aus 5-10 m empfangbar, die Antwortsignale der Karte (PICC) liegen 60-80 dB unter der Signalstärke des Senders und sind typischerweise aus maximal 2 m empfangbar. Ein Anti-Collision-Protokoll soll unterschiedliche Karten in Reichweite des Empfängers trennen. Dazu werden UIDs (Unique Identifier mit 4, 7 oder 10 Byte) verwendet. Auf dem Congress im Dezember gab es dazu einen interessanten Vortrag einer holländischen Gruppe, die durch gezielte Erzeugung von Kollisionen einzelne Karten ausblenden konnte.

Kartentypen

ISO 14443A

  • 16×4 = 64 Byte Speicher
  • 10 Byte Read-Only Factory-Programmed, davon 7 Byte UID
  • 6 Byte PROM, davon 2 Byte Lock-Bits
  • 48 Byte nutzbarer Speicher
  • Keine Verschlüsselung
  • Keine Security-Funktionen außer der UID

Mifare Classic

  • Weitverbreiteter Standardtyp
  • 1-4 KB Speicher
  • Proprietärer Stream-Cipher („Crypto1“) mit 48 Byte Schlüssellänge, bisher nicht gebrochen
  • 4 Byte UID
  • ACLs für einen Speicherbereich für Geldwerte auf den nur mit INCREASE/DECREASE-Kommandos zugegriffen werden kann
  • Multiple User-Areas mit unterschiedlichen Schlüsseln
  • Multi-Application-fähig

Mifare DESfire

  • Mifare Classic-kompatibel
  • DES/3DES Verschlüsselung
  • 7 Byte UID

T=CH

  • In ISO 14443-4 definiert
  • APDUs vergleichbar zu kontaktbasierten Karten nach ISO 7816
  • Wird in vielen ePassports verwendet

Hardware

Milosch hat sehr schön die benötigte Hardware beschrieben, im einfachsten Fall reicht eine triviale Kupferspule mit LED und Kondensator. Für die komplexeren Angriffe gibt es einen von ihm entwickelten RFID Sniffer/Sender, mit dem auch trivial Replay-Angriffe möglich sind. Die benötigte Hardware kann man entweder bei www.OpenPCD.org fertig kaufen oder anhand der Anleitungen und Vorlagen selbst bauen.

Work in Progress

Ein paar Sachen funktionieren noch nicht ganz:

  • Anticollision tut noch nicht so 100%, aber daran arbeitet das Team
  • Bereitstellen von Mifare-Samples um die Verschlüsselung zu brechen
  • OpenPDC/OpenPICC OS nach FreeRTOS portieren

Und für folgendes benötigen die Jungs dringend Hilfe:

  • Brechen der Mifare-Verschlüsselung
  • OpenPCD und OpenPICC in ein Standalone-Sniffer/Replay-Gerät kombinieren
  • RFID Fuzzing Suite

Hier kann jeder mithelfen!

1 Kommentar

  1. Kommentare gesperrt wegen Spam

    Comment by Christian — 15. März 2009 @ 20:01

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.