
Biblioteca Python e ferramentas para explorar etiquetas e leitores RFID/NFC: leia, grave, clone e analise hardware serial ACG compatível para pesquisa e testes de segurança.
/* RFIDIOt.py - RFID IO tools for python *
Copyright (c) 2006-2026 Adam Laurie [email protected]
*** Esta é a versão Python 3 do RFIDIOt. ***
Execute tudo com python3. O código original em Python 2.7 está preservado no branch 'python2.7' e marcado com a tag 'v1.0-python2.7' - ele não será executado no python3, e esta versão não será executada no python2.
Com enormes agradecimentos a Pete Shipley (evilpete), que fez a maior parte do port para Python 3 e contribuiu imensamente para o branch python3 que se tornou esta versão.
p: O que é o RFIDIOt? r: Uma coleção de ferramentas e bibliotecas para explorar a tecnologia RFID/NFC, escrita em python.
p: Por que RFIDIOt? r: Eu gosto de trocadilhos bobos. Além disso, estou abordando isso do ponto de vista de um idiota: não sei nada sobre tags RFID, e ainda menos sobre python. Assim, senti-me um completo idiota quando comecei. :)
p: Como posso contribuir? r: Envie-me patches, informações, novas ferramentas, café, dinheiro, drogas e/ou uma música do Miles Davis :)
p: Quais hardwares são suportados? r:
p: Como faço para instalá-lo? r: pip install -r requirements.txt # pycryptodome, pyscard, Pillow, ... (passiveauth usa o CLI openssl) sudo python3 ./setup.py install Pacotes do sistema: instale o libnfc para leitores libnfc; para leitores PC/SC instale o daemon e o driver CCID e certifique-se de que o daemon está em execução, por exemplo no Debian/ Ubuntu: sudo apt install pcscd libccid pcsc-tools Algumas ferramentas têm necessidades extras: mrpkey.py usa PIL/Pillow para exibir fotos de passaporte e openssl para manipulação de certificados; jcoptool.py precisa do pyasn1.
p: Há algo novo na versão Python 3? r: Além do próprio port:
ChAP.py ("Chip And PIN") é um leitor EMV por contacto/contactless que funciona tanto sobre PC/SC como sobre libnfc (escolha o leitor com as opções padrão - por exemplo, '-f 0' para libnfc, '-r 1' para uma ranhura contactless PC/SC). Percorre o cartão (PPSE -> AID -> GPO -> registos), descodifica o BER-TLV EMV (AIP, AFL, lista CVM, CDOL/DDOL, Track 2 dividido em PAN / validade / código de serviço, informação de criptograma, etc.) e lê o registo de transações do cartão (montante / data / hora / moeda / ATC por entrada). Com '-c' realiza autenticação de dados offline completa - recupera a cadeia de certificados CA -> Emissor -> ICC (uma tabela incluída de 26 chaves CA de esquemas: Visa, Mastercard, Amex, CB, JCB, Discover, UnionPay, RuPay, cada uma verificada contra o seu checksum CAPK do EMVCo) e depois verifica a assinatura do cartão pelo método que o cartão suportar:
mrpkey.py lê ePassports e passiveauth.py realiza Autenticação Passiva (integridade dos grupos de dados + confiança DS/CSCA) contra uma lista mestra CSCA pública, sinalizando um passaporte como SAFE / TAMPERED / UNTRUSTED. rfidiot-cli.py também lê EMV contactless.
q: Então o que está exatamente aqui? a: Consulte http://www.rfidiot.org/documentation.html