11 KiB
RFID 펜테스팅
htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!
- 사이버 보안 회사에서 일하시나요? 회사를 HackTricks에서 광고하거나 PEASS의 최신 버전에 액세스하거나 HackTricks를 PDF로 다운로드하고 싶으신가요? 구독 요금제를 확인해보세요!
- The PEASS Family를 발견해보세요. 독점적인 NFT 컬렉션입니다.
- 공식 PEASS & HackTricks 스웨그를 얻으세요.
- 💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter에서 팔로우하세요 🐦@carlospolopm.
- 해킹 팁을 공유하려면 PR을 hacktricks repo 및 hacktricks-cloud repo 에 제출하세요.
소개
**Radio Frequency Identification (RFID)**는 가장 인기 있는 단거리 무선 솔루션입니다. 일반적으로 개체를 식별하는 정보를 저장하고 전송하는 데 사용됩니다.
RFID 태그는 자체 전원(액티브)(내장형 배터리와 같은) 또는 받은 무선 파동으로부터 유도된 전류(패시브)를 사용하여 읽기 안테나에서 전원을 공급받을 수 있습니다.
클래스
EPCglobal은 RFID 태그를 여섯 가지 범주로 나눕니다. 각 범주의 태그는 이전 범주에 나열된 모든 기능을 갖고 있으므로 하위 호환성을 가집니다.
- 클래스 0 태그는 패시브 태그로, UHF 대역에서 작동합니다. 공장에서 제작 시 공급업체가 미리 프로그램합니다. 따라서 저장된 정보를 변경할 수 없습니다.
- 클래스 1 태그는 HF 대역에서도 작동할 수 있습니다. 또한, 제작 후 한 번만 쓸 수 있습니다. 많은 클래스 1 태그는 수신한 명령의 순환 중복 검사(CRC)를 처리할 수도 있습니다. CRC는 오류 감지를 위해 명령의 끝에 추가된 몇 바이트입니다.
- 클래스 2 태그는 여러 번 쓸 수 있습니다.
- 클래스 3 태그에는 현재 온도나 태그의 움직임과 같은 환경 매개 변수를 기록할 수 있는 내장 센서가 포함될 수 있습니다. 이러한 태그는 반 액티브이며, 내장된 배터리와 같은 전원 공급원을 가지고 있지만 다른 태그나 리더와 무선 통신을 시작할 수 없습니다.
- 클래스 4 태그는 동일한 클래스의 다른 태그와 통신을 시작할 수 있으므로 액티브 태그입니다.
- 클래스 5 태그는 다른 모든 이전 태그 클래스와 통신하고 다른 태그에 전원을 공급할 수 있습니다. 클래스 5 태그는 RFID 리더로 작동할 수 있습니다.
RFID 태그에 저장된 정보
RFID 태그의 메모리에는 일반적으로 네 가지 종류의 데이터가 저장됩니다: 태그가 연결된 개체를 식별하는 식별 데이터(이 데이터에는 은행 계좌와 같은 사용자 정의 필드가 포함됨); 개체에 대한 추가 정보를 제공하는 보충 데이터; 태그의 내부 구성에 사용되는 제어 데이터; 태그의 제조업체 데이터로, 태그의 고유 식별자(UID)와 제조, 유형 및 공급업체에 대한 세부 정보를 포함합니다. 상업용 태그에서는 첫 두 종류의 데이터를 모두 찾을 수 있으며, 마지막 두 종류는 태그의 공급업체에 따라 다를 수 있습니다.
ISO 표준은 태그가 속하는 객체의 종류를 나타내는 코드인 Application Family Identifier (AFI) 값을 지정합니다. ISO에서 지정한 또 다른 중요한 레지스터는 **Data Storage Format Identifier (DSFID)**로, 사용자 데이터의 논리적 구성을 정의합니다.
대부분의 RFID 보안 제어는 각 사용자 메모리 블록 및 AFI 및 DSFID 값을 포함하는 특수 레지스터에 대한 읽기 또는 쓰기 작업을 제한하는 메커니즘을 갖고 있습니다. 이러한 잠금 메커니즘은 제어 메모리에 저장된 데이터를 사용하며, 공급업체가 미리 구성한 기본 암호를 사용하지만 태그 소유자가 사용자 정의 암호를 구성할 수 있습니다.
저주파 및 고주파 태그 비교
저주파 RFID 태그 (125kHz)
저주파 태그는 주로 높은 보안이 필요하지 않은 시스템에서 사용됩니다: 건물 출입, 인터콤 키, 체육관 멤버십 카드 등. 더 높은 범위로 인해 유료 주차장에 사용하기 편리합니다: 운전자는 카드를 판독기에 가까이 가져가지 않아도 되므로 더 멀리서 트리거됩니다. 동시에, 저주파 태그는 매우 원시적이며 데이터 전송 속도가 낮습니다. 이러한 이유로 잔액 유지 및 암호화와 같은 복잡한 양방향 데이터 전송을 구현할 수 없습니다. 저주파 태그는 인증 수단 없이 짧은 ID만 전송합니다.
이러한 장치는 패시브 RFID 기술을 기반으로 하며, 30 kHz에서 300 kHz의 범위에서 작동하지만 일반적으로 125 kHz에서 134 kHz를 사용합니다:
- 장거리 - 낮은 주파수는 더 긴 범위로 변환됩니다. 약 1미터 거리에서 작동하는 EM-Marin 및 HID 판독기가 있습니다. 이러한 판독기는 주로 주차장에서 사용됩니다.
- 원시적인 프로토콜 - 데이터 전송 속도가 낮기 때문에 이러한 태그는 짧은 ID만 전송할 수 있습니다. 대부분의 경우 데이터는 인증되지 않으며 어떠한 방식으로도 보호되지 않습니다. 카드가 판독기의 범위에 들어가면 즉시 ID를 전송하기 시작합니다.
- 낮은 보안성 - 이 카드는 쉽게 복제되거나 프로토콜의 원시성으로 인해 다른 사람의 주머니에서도 읽을 수 있습니다.
**인기 있는 125 kHz 프로토콜:
고주파 RFID 태그 (13.56 MHz)
고주파 태그는 암호화, 양방향 데이터 전송, 인증 등 복잡한 리더-태그 상호작용이 필요한 경우에 사용됩니다.
이는 일반적으로 은행 카드, 대중 교통 및 기타 보안 패스에서 찾을 수 있습니다.
고주파 13.56 MHz 태그는 표준 및 프로토콜의 집합입니다. 일반적으로 NFC로 알려져 있지만 항상 정확하지는 않습니다. 물리적 및 논리적 수준에서 사용되는 기본 프로토콜 세트는 ISO 14443입니다. 고수준 프로토콜 및 ISO 19092와 같은 대체 표준은 이를 기반으로 합니다. 많은 사람들은 이 기술을 13.56 MHz 주파수에서 작동하는 장치를 위한 용어인 **근거리 통신 (NFC)**로 착각하기도 합니다.
간단히 말해서, NFC의 아키텍처는 다음과 같이 작동합니다: 카드를 제작하는 회사가 전송 프로토콜을 선택하고 낮은 수준의 ISO 14443을 기반으로 구현합니다. 예를 들어, NXP는 Mifare라는 고수준 전송 프로토콜을 개발했습니다. 그러나 하위 수준에서 Mifare 카드는 ISO 14443-A 표준을 기반으로 합니다.
Flipper는 낮은 수준의 ISO 14443 프로토콜뿐만 아니라 Mifare Ultralight 데이터 전송 프로토콜과 은행 카드에서 사용되는 EMV와 상호작용할 수 있습니다. Mifare Classic 및 NFC NDEF 지원을 추가하는 작업을 진행 중입니다. NFC를 구성하는 프로토콜과 표준에 대한 철저한 조사는 나중에 별도의 문서로 제공될 예정입니다.
ISO 14443-A 표준을 기반으로 하는 모든 고주파 카드에는 고유한 칩 ID가 있습니다. 이는 카드의 일련 번호로 작동하며 네트워크 카드의 MAC 주소와 유사합니다. 일반적으로 UID는 4 또는 7바이트 길이이지만 10바이트까지 될 수도 있습니다. UID는 비밀이 아니며 쉽게 읽을 수 있으며 카드 자체에 심지어 인쇄되기도 합니다.
UID를 사용하여 인증하고 액세스를 허용하는 많은 출입 제어 시스템이 있습니다. 때로는 RFID 태그가 암호화를 지원할 때에도 이런 일이 발생합니다. 이러한 오용은 보안 측면에서 125 kHz 카드와 유사한 수준으로 낮춥니다. 가상 카드 (예: Apple Pay)는 동적 UID를 사용하여 전화 소유자가 결제 앱으로 문을 열지 않도록 합니다.
- 짧은 범위 - 고주파 카드는 리더기에 가까이 놓여야 하도록 특별히 설계되었습니다. 이는 무단 상호작용으로부터 카드를 보호하는 데도 도움이 됩니다. 우리가 달성한 최대 읽기 범위는 약 15cm이었으며, 이는 고급 범위 리더기를 사용한 결과입니다.
- 고급 프로토콜 - 424 kbps까지의 데이터 전송 속도는 완전한 양방향 데이터 전송이 가능한 복잡한 프로토콜을 지원합니다. 이는 암호화, 데이터 전송 등을 가능하게 합니다.
- 높은 보안성 - 고주파 비접촉식 카드는 스마트 카드에 뒤지지 않는 보안성을 가지고 있습니다. AES와 같은 암호화 강도가 높은 알고리즘을 지원하고 비대칭 암호화를 구현하는 카드도 있습니다.
공격
Flipper Zero를 사용하여 이러한 태그를 공격할 수 있습니다:
{% content-ref url="../todo/radio-hacking/flipper-zero/fz-nfc.md" %} fz-nfc.md {% endcontent-ref %}
또는 proxmark를 사용할 수도 있습니다:
{% content-ref url="../todo/radio-hacking/proxmark-3.md" %} proxmark-3.md {% endcontent-ref %}
참고 자료
htARTE (HackTricks AWS Red Team Expert)를 통해 제로에서 영웅까지 AWS 해킹 배우기!
- 사이버 보안 회사에서 일하고 계신가요? 회사를 HackTricks에서 광고하거나 PEASS의 최신 버전에 액세스하거나 HackTricks를 PDF로 다운로드하고 싶으신가요? 구독 요금제를 확인해보세요!
- 독점적인 NFT 컬렉션인 The PEASS Family를 발견하세요.
- 공식 PEASS & HackTricks 스웨그를 얻으세요.
- 💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter에서 저를 팔로우하세요 🐦@carlospolopm.
- hacktricks repo와 hacktricks-cloud repo에 PR을 제출하여 당신의 해킹 기교를 공유하세요.