BOTAHRY DEX - stock.adobe.com
NFC- und RFID-Sicherheit mit Open Source überprüfen
RFID und NFC werden bei Zutrittskontrollen, Ausweisen und in der Industrie eingesetzt. Mit den Tools Libnfc, Mfoc und Proxmark3 in Kali Linux behalten Sie die Sicherheit im Blick.
NFC-basierte Ausweise, Zutrittssysteme und Lösungen zur Zeiterfassung rücken zunehmend in den Fokus realer Angriffe, da sie physische Identitäten direkt mit IT-Systemen und Geschäftsprozessen verknüpfen. Fehlkonfigurationen, veraltete Kartentypen oder unzureichend geprüfte Reader führen hier unmittelbar zu sicherheitsrelevanten Schwachstellen.
Kali Linux stellt mit Libnfc, Mfoc und Proxmark3 drei Werkzeuge bereit, die eine tiefgehende technische Analyse solcher Umgebungen erlauben und reale Angriffsszenarien reproduzierbar abbilden können.
Tests sollten Sie nur mit ausdrücklicher Freigabe durchführen, da Fehlversuche schnell reale Zutritts- oder Zeiterfassungsprozesse beeinträchtigen können.
NFC als Angriffsfläche im Unternehmensumfeld
Near Field Communication (NFC) überträgt Identitäten und kleine Datenmengen im Hochfrequenzbereich bei 13,56 MHz. Unternehmen nutzen diese Technik für physische Zutrittskontrollen, Mitarbeiterausweise, Druckerfreigaben, Zeiterfassung, Kantinensysteme und industrielle Kennzeichnungen. Die Sicherheit hängt nicht allein vom Kartentyp ab, sondern von Schlüssellängen, Schlüsselverteilung, Reader-Konfiguration und Backend-Logik. Veraltete MIFARE-Classic-Installationen, ungetrennte Schlüsselbereiche oder fehlende Transaktionsprüfungen erlauben Klonen, Replay oder unautorisierte Nutzung. Aktive Tests prüfen genau diese Punkte und lassen sich vollständig unter Kali Linux durchführen.
Test von RFID-Systemen
Mit den im Beitrag beschriebenen Werkzeuge lassen sich auch RFID-Systeme (Radio Frequency Identification) testen, sofern sie in den von NFC abgedeckten Frequenz- und Protokollbereichen arbeiten.
Libnfc adressiert primär den Hochfrequenzbereich bei 13,56 MHz und somit ISO/IEC-14443-Varianten, die bei vielen Ausweis- und Zutrittssystemen üblich sind. Mfoc ist dagegen klar auf MIFARE Classic zugeschnitten und eignet sich nur für Umgebungen, in denen dieser Kartentyp tatsächlich eingesetzt wird. Proxmark3 erweitert den Ansatz, da es neben HF auch klassische LF-RFID-Technologien im Bereich 125/134 kHz analysieren kann.
Typische UHF-RFID-Installationen aus Logistik und Supply Chain, die in anderen Frequenzbändern arbeiten, sind nicht abgedeckt und erfordern in der Praxis separate Reader und Tool Chains. Entscheidend ist daher, den eingesetzten Kartentyp und die Funktechnik vorab genau zu bestimmen.
Libnfc als technische Grundlage
Libnfc stellt die Schnittstelle zwischen Betriebssystem und NFC-Hardware bereit. Alle weiteren Werkzeuge greifen intern auf diese Bibliothek zurück oder orientieren sich an deren Protokollimplementierung. Unter Kali Linux erfolgt die Installation direkt aus den Repositories:
sudo apt install libnfc-bin libnfc-dev libnfc-examples
Nach Anschluss eines Readers zeigt das Tool alle erkannten Geräte inklusive Verbindungstyp und Controller:
nfc-scan-device
Damit wird sichergestellt, dass udev-Regeln, USB-Zugriff und Kernel-Module korrekt zusammenspielen. udev-Regeln steuern unter Linux die Behandlung von Hardwaregeräten beim An- und Abstecken. Sie legen fest, welche Treiber geladen werden, welche Gerätedateien unter /dev vorhanden sind und welche Zugriffsrechte gelten. Für NFC- und RFID-Tests ist das relevant, da Libnfc, Mfoc und Proxmark3 direkten Zugriff auf USB-Geräte benötigen. Ohne passende udev-Regeln blockieren restriktive Standardrechte den Zugriff oder erzwingen den Betrieb als Root. Korrekt gesetzte Regeln erlauben den Zugriff für definierte Benutzergruppen, verhindern Konflikte mit konkurrierenden Diensten und stellen eine stabile Initialisierung der Reader sicher.
Die eigentliche Zielerkennung übernimmt der folgende Befehl:
nfc-list -v
Die Ausgabe liefert UID, ATQA, SAK und Übertragungsmodus. Diese Parameter bestimmen, ob es sich um MIFARE Classic, Ultralight, DESFire oder andere ISO-14443-Varianten handelt. Bereits an dieser Stelle lassen sich Fehlkonfigurationen erkennen, etwa unerwartete Kartentypen in sicherheitskritischen Anwendungen.
Die genannten Parameter stammen aus der Initialisierungsphase nach ISO 14443 und erlauben eine technische Einordnung der erkannten Karte. Die UID ist die eindeutige Kennung der Karte. Sie dient der Identifikation auf Protokollebene und variiert in Länge und Struktur je nach Kartentyp. Kurze 4-Byte-basierte UIDs treten häufig bei älteren oder kompatiblen Karten auf, längere sieben- oder zehnbytebasierte Varianten deuten auf neuere oder sicherere Typen hin.
ATQA bezeichnet die Antwort der Karte auf den initialen Request-Befehl des Readers. Dieser Wert signalisiert grundlegende Eigenschaften der Karte, zum Beispiel ob sie mehrere UIDs unterstützt oder welche Protokollvariante aktiv ist. Bestimmte ATQA-Kombinationen grenzen MIFARE-Familien bereits ein.
SAK steht für Select Acknowledge und wird nach der Antikollisionsphase übertragen. Dieser Wert gibt Aufschluss über den internen Kartentyp und darüber, ob weitere Protokollstufen folgen. Anhand des SAK lässt sich unterscheiden, ob es sich um eine einfache Speicherkarte, eine Classic-Variante oder eine Karte mit erweitertem Protokoll wie DESFire handelt.
Der Übertragungsmodus beschreibt die aktive ISO-14443-Variante und die verwendete Bitrate. Er legt fest, ob die Kommunikation im Typ-A- oder Typ-B-Modus erfolgt und ob höhere Protokollschichten genutzt werden. In Kombination erlauben diese Informationen eine präzise Zuordnung zu Kartentypen wie MIFARE Classic, Ultralight, DESFire oder anderen ISO-14443-kompatiblen Varianten und bestimmen, welche Angriffs- und Analysetechniken technisch sinnvoll sind. Für klassische Karten erlaubt nfc-mfclassic einen direkten Leseversuch mit bekannten Schlüsseln:
nfc-mfclassic r a u card.mfd
Ein erfolgreicher Durchlauf erzeugt ein vollständiges Kartenabbild. Scheitert der Zugriff, bleibt der Dump leer oder unvollständig und signalisiert die Notwendigkeit weitergehender Angriffe.
Mfoc zur Schlüsselgewinnung
Mfoc ergänzt Libnfc um einen gezielten Offline-Angriff auf MIFARE Classic. Voraussetzung bleibt ein bekannter Schlüssel pro Karte, häufig ein Default-Key oder ein aus dem Umfeld bekannter Sektor-Key. Die Installation erfolgt separat:
sudo apt install mfoc
Ein Basisangriff ohne Zusatzparameter testet integrierte Default-Keys:
mfoc -O dump.mfd
Die Ausgabe zeigt sektorweise, welche Schlüssel erfolgreich rekonstruiert wurden. Jeder gefundene Key erweitert den Zugriff auf weitere Sektoren, bis im Idealfall die gesamte Karte decodiert vorliegt. Eigene Schlüsseldateien vergrößern den Suchraum:
mfoc -f keys.txt -O dump.mfd
Das Ergebnis ist kompatibel zu nfc-mfclassic und Proxmark3. Genau hier beginnt die eigentliche Kombination der Werkzeuge, da alle folgenden Schritte auf demselben Dump aufbauen.
Proxmark3 als zentrales Analysewerkzeug
Proxmark3 fungiert als universelle Analyse-, Sniffing- und Emulationsplattform. Unter Kali Linux steht der Client paketiert bereit oder wird aus dem Quellcode erstellt, um aktuelle Firmware-Funktionen zu nutzen:
sudo apt install proxmark3 proxmark3-common proxmark3-firmwares
Alternativ erfolgt der Build aus dem Repository:
git clone https://github.com/RfidResearchGroup/proxmark3.git
cd proxmark3
make clean && make all
sudo make install
Vor dem Flashen deaktiviert das System den ModemManager, da dieser serielle Geräte fehlinterpretiert:
sudo systemctl stop ModemManager
sudo systemctl disable ModemManager
Das Flashen der Hardware erfolgt direkt über den Client:
proxmark3 /dev/ttyACM0 --flash --unlock-bootloader --image bootrom.elf
proxmark3 /dev/ttyACM0 --flash --image fullimage.elf
Der Zugriff startet über pm3.
Eine Funktionsprüfung bestätigt Antennenabstimmung und Firmwarestatus:
hw status
hw version
hw tune
Tiefe Analyse und aktive Angriffe
Im Gegensatz zu Libnfc erlaubt Proxmark3 Sniffing und aktive Manipulation. Ein automatisierter Angriff auf MIFARE Classic kombiniert mehrere Techniken.
hf mf autopwn
Der Befehl prüft bekannte Schlüssel, nutzt Nested-Angriffe und schreibt gefundene Daten direkt in den internen Speicher. Der Effekt entspricht funktional Mfoc, liefert jedoch zusätzliche Telemetrie und erlaubt sofortige Weiterverarbeitung. Sniffing zeichnet Authentifizierungssequenzen auf.
hf mf sniff
Die aufgezeichneten Nonces dienen als Grundlage für Offline-Analysen oder zum Abgleich mit Mfoc-Ergebnissen. Emulation simuliert eine vollständige Karte gegenüber einem realen Reader:
hf mf sim --1k
Damit lässt sich testen, ob Backend-Systeme allein auf UID oder auf vollständige kryptografische Prüfungen reagieren.
Zusammenspiel der Werkzeuge im Testablauf
Ein konsistenter Workflow beginnt mit Libnfc zur Hardware- und Kartenerkennung. Nfc-list klassifiziert das Ziel, nfc-mfclassic prüft direkten Zugriff. Mfoc übernimmt die Schlüsselgewinnung, sobald Default-Keys greifen. Der erzeugte Dump fließt in Proxmark3 ein, um Emulation, Replay und Sniffing durchzuführen. Parallel erlauben Libnfc-Werkzeuge Relay-Angriffe zwischen zwei Endpunkten.
nfc-relay
Diese Kombination deckt den gesamten Lebenszyklus einer Karte ab, von der Identifikation über Schlüsselgewinnung bis zur realistischen Simulation im Feld. Alle Werkzeuge nutzen kompatible Dateiformate und identische Protokollannahmen, wodurch Ergebnisse vergleichbar und reproduzierbar bleiben.
Bedeutung für Unternehmen
Der kombinierte Einsatz von Libnfc, Mfoc und Proxmark3 zeigt, ob Karten klonbar sind, ob Reader falsche Zustände akzeptieren oder ob Backend-Systeme unzureichend prüfen. Kali Linux bündelt diese Tests in einer isolierten Umgebung ohne Eingriffe in Produktionssysteme. Unternehmen erhalten damit eine belastbare Grundlage, um Kartenmigrationen zu planen, Schlüsselkonzepte zu überarbeiten und Zutrittsinfrastrukturen technisch zu bewerten.