
Python-Bibliothek und Werkzeuge zum Erkunden von RFID-/NFC-Tags und Lesegeräten: unterstützte ACG-Serienhardware lesen, schreiben, klonen und analysieren – für Forschung und Sicherheitstests.
/* RFIDIOt.py - RFID IO tools for python *
Copyright (c) 2006-2026 Adam Laurie [email protected]
*** Dies ist die Python-3-Version von RFIDIOt. ***
Führe alles mit python3 aus. Der ursprüngliche Python-2.7-Code bleibt im Branch 'python2.7' erhalten und ist mit 'v1.0-python2.7' getaggt - er läuft nicht unter python3, und diese Version läuft nicht unter python2.
Mit großem Dank an Pete Shipley (evilpete), der den Großteil des Python-3- Ports übernommen und sehr viel zum python3-Branch beigetragen hat, aus dem dieses Release wurde.
F: Was ist RFIDIOt? A: Eine Sammlung von Tools und Bibliotheken zum Erkunden von RFID/NFC-Technologie, geschrieben in python.
F: Warum RFIDIOt? A: Ich mag alberne Wortspiele. Außerdem gehe ich das aus der Sicht eines Idioten an: Ich weiß nichts über RFID-Tags und noch weniger über python. Daher fühlte ich mich wie ein kompletter Idiot, als ich anfing. :)
F: Wie kann ich beitragen? A: Schick mir Patches, Infos, neue Tools, Kaffee, Geld, Drogen und/oder ein Miles-Davis-Lied :)
F: Welche Hardware wird unterstützt? A:
F: Wie installiere ich es? A: pip install -r requirements.txt # pycryptodome, pyscard, Pillow, ... (passiveauth verwendet die openssl-CLI) sudo python3 ./setup.py install Systempakete: Installiere libnfc für libnfc-Leser; für PC/SC-Leser installiere den Daemon und den CCID-Treiber und stelle sicher, dass der Daemon läuft, z. B. unter Debian/ Ubuntu: sudo apt install pcscd libccid pcsc-tools Einige Tools haben zusätzliche Anforderungen: mrpkey.py verwendet PIL/Pillow zur Anzeige von Pass- fotos und openssl für die Zertifikatsverwaltung; jcoptool.py benötigt pyasn1.
F: Gibt es etwas Neues in der Python-3-Version? A: Neben dem Port selbst:
ChAP.py („Chip And PIN") ist ein kontaktloser/kontaktbehafteter EMV-Leser, der sowohl über PC/SC als auch über libnfc funktioniert (wähle den Leser mit den Standardoptionen – z. B. '-f 0' für libnfc, '-r 1' für einen kontaktlosen PC/SC-Slot). Er durchläuft die Karte (PPSE -> AID -> GPO -> Datensätze), dekodiert die EMV-BER-TLV (AIP, AFL, CVM-Liste, CDOL/DDOL, Track 2 aufgeteilt in PAN / Ablaufdatum / Servicecode, Kryptogramminformation usw.) und liest das Transaktionsprotokoll der Karte (Betrag / Datum / Uhrzeit / Währung / ATC pro Eintrag). Mit '-c' führt er eine vollständige Offline-Datenauthentifizierung durch – er rekonstruiert die Zertifikatskette CA -> Issuer -> ICC (eine mitgelieferte Tabelle mit 26 CA-Schlüsseln von Schemes: Visa, Mastercard, Amex, CB, JCB, Discover, UnionPay, RuPay, jeweils gegen ihre EMVCo-CAPK-Prüfsumme geprüft) und verifiziert dann die Signatur der Karte mit der Methode, die die Karte unterstützt:
mrpkey.py liest ePässe und passiveauth.py führt Passive Authentication durch (Integrität der Datengruppen + DS/CSCA-Vertrauen) gegen eine öffentliche CSCA-Masterliste und markiert einen Pass als SAFE / TAMPERED / UNTRUSTED. rfidiot-cli.py liest ebenfalls kontaktlose EMV.
q: Was genau ist hier also vorhanden? a: Bitte siehe http://www.rfidiot.org/documentation.html