
Librería de Python y herramientas para explorar etiquetas y lectores RFID/NFC: leer, escribir, clonar y analizar el hardware serie ACG compatible para investigación y pruebas de seguridad.
/* RFIDIOt.py - Herramientas de E/S RFID para python *
Copyright (c) 2006-2026 Adam Laurie [email protected]
*** Esta es la versión para Python 3 de RFIDIOt. ***
Ejecuta todo con python3. El código original de Python 2.7 se conserva en la rama 'python2.7' y etiquetado como 'v1.0-python2.7' - no funcionará bajo python3, y esta versión no funcionará bajo python2.
Con un enorme agradecimiento a Pete Shipley (evilpete), quien realizó la mayor parte del port a Python 3 y contribuyó enormemente a la rama python3 que se convirtió en esta versión.
p: ¿Qué es RFIDIOt? r: Una colección de herramientas y bibliotecas para explorar la tecnología RFID/NFC, escritas en python.
p: ¿Por qué RFIDIOt? r: Me gustan los juegos de palabras tontos. Además, lo abordo desde el punto de vista de un idiota: no sé nada sobre etiquetas RFID, y aún menos sobre python. Por eso, me sentí un completo idiota cuando empecé. :)
p: ¿Cómo puedo contribuir? r: Envíame parches, información, nuevas herramientas, café, dinero, drogas y/o una canción de Miles Davis :)
p: ¿Qué hardware es compatible? r:
p: ¿Cómo lo instalo? r: pip install -r requirements.txt # pycryptodome, pyscard, Pillow, ... (passiveauth usa la CLI de openssl) sudo python3 ./setup.py install Paquetes del sistema: instala libnfc para los lectores libnfc; para los lectores PC/SC instala el demonio y el driver CCID y asegúrate de que el demonio esté en ejecución, p. ej. en Debian/ Ubuntu: sudo apt install pcscd libccid pcsc-tools Algunas herramientas tienen necesidades adicionales: mrpkey.py usa PIL/Pillow para mostrar fotos de pasaporte y openssl para el manejo de certificados; jcoptool.py necesita pyasn1.
p: ¿Hay algo nuevo en la versión para Python 3? r: Además del propio port:
ChAP.py ("Chip And PIN") es un lector EMV sin contacto/con contacto que funciona tanto sobre PC/SC como sobre libnfc (seleccione el lector con las opciones estándar; p. ej., '-f 0' para libnfc, '-r 1' para una ranura sin contacto PC/SC). Recorre la tarjeta (PPSE -> AID -> GPO -> registros), decodifica el BER-TLV de EMV (AIP, AFL, lista CVM, CDOL/DDOL, Track 2 dividido en PAN / caducidad / código de servicio, información del criptograma, etc.) y lee el registro de transacciones de la tarjeta (importe / fecha / hora / divisa / ATC por entrada). Con '-c' realiza una autenticación de datos offline completa: recupera la cadena de certificados CA -> Emisor -> ICC (una tabla incluida de 26 claves CA de esquemas: Visa, Mastercard, Amex, CB, JCB, Discover, UnionPay, RuPay, cada una verificada contra su checksum CAPK de EMVCo) y luego verifica la firma de la tarjeta mediante el método que admita la tarjeta:
mrpkey.py lee pasaportes electrónicos y passiveauth.py realiza la autenticación pasiva (integridad de los grupos de datos + confianza DS/CSCA) contra una lista maestra CSCA pública, marcando un pasaporte como SAFE / TAMPERED / UNTRUSTED. rfidiot-cli.py también lee EMV sin contacto.
q: Entonces, ¿qué hay exactamente aquí? a: Consulte http://www.rfidiot.org/documentation.html