
RFID/NFC 태그 및 리더기를 탐색하기 위한 Python 라이브러리 및 도구: 지원되는 ACG 시리얼 하드웨어를 읽고, 쓰고, 복제하고, 분석하여 연구 및 보안 테스트에 활용할 수 있습니다.
/* RFIDIOt.py - RFID IO tools for python *
Copyright (c) 2006-2026 Adam Laurie [email protected]
*** This is the Python 3 version of RFIDIOt. ***
모든 것을 python3로 실행하세요. 원래의 Python 2.7 코드는 'python2.7' 브랜치에 보존되어 있으며 'v1.0-python2.7' 태그가 붙어 있습니다. 이 코드는 python3에서 실행되지 않으며, 이 버전은 python2에서 실행되지 않습니다.
Python 3 포팅의 대부분을 수행하고 이 릴리스가 된 python3 브랜치에 크게 기여한 Pete Shipley (evilpete)에게 큰 감사를 전합니다.
q: RFIDIOt란 무엇인가요? a: python으로 작성된 RFID/NFC 기술을 탐구하기 위한 도구와 라이브러리의 모음입니다.
q: 왜 RFIDIOt인가요? a: 저는 말장난을 좋아합니다. 또한 저는 바보의 관점에서 접근하고 있습니다: RFID 태그에 대해서는 아무것도 모르고, python에 대해서는 더더욱 모릅니다. 그래서 시작할 때 완전한 바보처럼 느꼈습니다. :)
q: 어떻게 기여할 수 있나요? a: 패치, 정보, 새로운 도구, 커피, 돈, 약물 그리고/또는 Miles Davis 노래를 보내주세요 :)
q: 어떤 하드웨어가 지원되나요? a:
q: 어떻게 설치하나요? a: pip install -r requirements.txt # pycryptodome, pyscard, Pillow, ... (passiveauth는 openssl CLI 사용) sudo python3 ./setup.py install 시스템 패키지: libnfc 리더의 경우 libnfc를 설치하세요. PC/SC 리더의 경우 데몬과 CCID 드라이버를 설치하고 데몬이 실행 중인지 확인하세요. 예를 들어 Debian/ Ubuntu에서: sudo apt install pcscd libccid pcsc-tools 일부 도구는 추가 요구 사항이 있습니다: mrpkey.py는 여권 사진을 표시하기 위해 PIL/Pillow를 사용하고 인증서 처리를 위해 openssl을 사용합니다. jcoptool.py는 pyasn1이 필요합니다.
q: Python 3 버전에 새로운 것이 있나요? a: 포팅 자체 외에도:
ChAP.py("Chip And PIN")는 PC/SC와 libnfc 모두에서 동작하는 비접촉/접촉 EMV 리더입니다(표준 옵션으로 리더를 선택 - 예: libnfc의 경우 '-f 0', PC/SC 비접촉 슬롯의 경우 '-r 1'). 카드를 순회하며(PPSE -> AID -> GPO -> 레코드) EMV BER-TLV(AIP, AFL, CVM 목록, CDOL/DDOL, PAN / 만료일 / 서비스 코드로 분할된 Track 2, 암호문 정보 등)를 디코딩하고, 카드의 거래 로그(항목별 금액 / 날짜 / 시간 / 통화 / ATC)를 읽습니다. '-c'를 사용하면 완전한 오프라인 데이터 인증을 수행합니다 - CA -> 발급자 -> ICC 인증서 체인을 복구하고(26개 스킴 CA 키의 내장 테이블: Visa, Mastercard, Amex, CB, JCB, Discover, UnionPay, RuPay, 각각 EMVCo CAPK 체크섬으로 검증), 그런 다음 카드가 지원하는 방식으로 카드의 서명을 검증합니다:
mrpkey.py는 ePassport를 읽고, passiveauth.py는 공개 CSCA 마스터 목록에 대해 수동 인증(데이터 그룹 무결성 + DS/CSCA 신뢰)을 수행하여 여권을 SAFE / TAMPERED / UNTRUSTED로 표시합니다. rfidiot-cli.py도 비접촉 EMV를 읽습니다.
q: 그래서 여기에 정확히 무엇이 있나요? a: http://www.rfidiot.org/documentation.html 를 참조하세요.