이 섹션에서는 비 ISO14443-4 규격 카드(스토리지 카드라고 함)에 대한 일반적인 APDU 명령 집합 요구 사항을 설명합니다.
General-Authenticate command
General-Authenticate 명령은 MIFARE 카드에서 인증 시퀀스를 수행하는 데 사용됩니다. 이 명령은 MIFARE Mini, Classic 1k 및 4k 카드에만 적용됩니다.
| Command |
Class |
INS |
P1 |
P2 |
Lc |
Data In |
| General-Authenticate |
0xFF |
0x86 |
0x00 |
0x00 |
0x01 |
주소 MSB, 주소 LSB, 키 형식 A 또는 B, 키 번호 |
Get-Data command
Get-Data 명령은 비접촉식 NFC 태그/카드에서 정보를 검색하는 데 사용됩니다.
| Command |
Class |
INS |
P1 |
P2 |
L2 |
| Get-Data |
0xFF |
0xCA |
0x00: 카드의 일련 번호(ISO14443-A: UID, ISO14443-B: PUPI, Felica: IDm, Jewel: RID)
0x01: 카드의 기록 바이트(형식 A: ATR의 기록 바이트, B 유형: ATTRIB 응답) |
0x00 |
0x00 |
| Response |
| 데이터 출력, SW1, SW2 |
Load-Key command
Load-Key 명령은 드라이버에 MIFARE 키를 저장하는 데 사용됩니다. 이 명령은 MIFARE Mini, Classic 1k 및 4k 카드에만 적용됩니다.
| Command |
Class |
INS |
P1 |
P2 |
Lc |
Data In |
| Load-Key |
0xFF |
0x82 |
Key Structure |
Key Number |
0x6 |
Key Value |
세션 관리 명령
이 명령의 구현은 PCSC 사양에 따라야 합니다.
| Command |
Class |
INS |
P1 |
P2 |
Lc |
Data In |
| General Authenticate |
0xFF |
0xC2 |
0x00 |
0x00 |
Variable |
TLV 데이터 개체 |
드라이버에서 지원하는 데 필요한 TLV 데이터 개체는 다음과 같습니다.
| Tag |
Data Object |
| 0x80 |
버전 데이터 개체 |
| 0x81 |
투명 세션 시작 |
| 0x82 |
투명 세션 종료 |
Read-Binary command
Read-Binary 명령은 비접촉식 NFC 태그/카드에서 데이터를 읽는 데 사용됩니다. 이 명령은 스토리지 카드(MIFARE 클래식/UL, Felica, ISO15693 및 보석/토파즈 카드)에만 적용됩니다.
| Command |
Class |
INS |
P1 |
P2 |
Lc |
Data In |
Li |
| Read-Binary |
0xFF |
0xB0 |
Address MSB |
Address LSB |
데이터 길이:
| Data |
Length expected |
miFARE 제품군 Read-Binary
| Command |
CLA |
INS |
P1 |
P2 |
Le |
| UL 읽기 16 |
0xFF |
0xB0 |
0x00 |
0x15 0x00 |
0x10 |
| CL 1k 읽기 16 |
0xFF |
0xB0 |
0x00 |
0x3F 0x00 |
0x10 |
| CL 4k 읽기 16 |
0xFF |
0xB0 |
0x00 |
0x00부터 0xFF까지 |
0x10 |
Read-Binary 보석 가족
| Command |
CLA |
INS |
P1 |
P2 |
Le |
| READ ALL |
0xFF |
0xB0 |
0x00 |
0x00 |
0x00 |
| RID |
0xFF |
0xB0 |
0x00 |
0x00 |
0x06 |
| READ |
0xFF |
0xB0 |
Block No |
Block Offset |
0x01 |
| READ 8 |
0xFF |
0xB0 |
Block No |
0x00 |
0x08 |
| READ SEG |
0xFF |
0xB0 |
0x00 |
Segment Addr |
0x80 |
Read-Binary 펠리카 가족
| Command |
CLA |
INS |
P1 |
P2 |
Lc |
Data In |
| CHECK |
0xFF |
0xB0 |
0x00 |
0x00 |
데이터 길이:
| 서비스 수, 블록 수, 차단 목록 |
ISO 15693 제품군
| Command |
CLA |
INS |
P1 |
P2 |
Le |
| READ |
0xFF |
0xB0 |
Block Number |
0x00 |
0x04 |
ISO 15693 제품군 응답
| Response |
| 데이터 출력, SW1, SW2 |
투명한 교환 명령
| Command |
Class |
INS |
P1 |
P2 |
Lc |
Data In |
| General Authenticate |
0xFF |
0xC2 |
0x00 |
0x01 |
Variable |
TLV 데이터 개체 |
다음은 스토리지 카드에 대한 명령의 투명한 교환을 위해 드라이버에서 지원하는 투명한 Exchange 명령에 필요한 TLV 데이터 개체입니다.
| Tag |
Data Object |
| 0x95 |
Transceive - 전송 및 수신 |
| 0x5F46 |
Timer |
Update-Binary command
Update-Binary 명령은 비접촉식 NFC 태그/카드에 데이터를 쓰는 데 사용됩니다. 이 명령은 스토리지 카드(MIFARE 클래식/UL, Felica, ISO15693 및 보석/토파즈 카드)에만 적용됩니다. 명령에 대한 요청 및 응답의 형식은 아래 설명과 같습니다.
| Command |
Class |
INS |
P1 |
P2 |
Lc |
Data In |
| Update-Binary |
0xFF |
0xD6 |
Address MSB |
Address LSB |
데이터 길이:
| Data |
miFARE 제품군 Update-Binary
| Command |
CLA |
INS |
P1 |
P2 |
Le |
| UL 쓰기 4 |
0xFF |
0xD6 |
0x00 |
0x15 0x00 |
0x04 |
| CL 1k WRITE 16 |
0xFF |
0xD6 |
0x00 |
0x3F 0x00 |
0x10 |
| CL 4k WRITE 16 |
0xFF |
0xB0 |
0x00 |
0x00부터 0xFF까지 |
0x10 |
Update-Binary 보석 가족
| Command |
CLA |
INS |
P1 |
P2 |
Le |
| WRITE1-E |
0xFF |
0xD6 |
Block Number |
Block Offset |
0x01 |
| WRITE8-E |
0xFF |
0xD6 |
Block Number |
0x00 |
0x08 |
Update-Binary 펠리카 가족
| Command |
CLA |
INS |
P1 |
P2 |
Le |
Data In |
| UPDATE |
0xFF |
0xD6 |
0x00 |
0x00 |
데이터 길이:
| 서비스 수, 블록 수, 차단 목록 |
| Command |
CLA |
INS |
P1 |
P2 |
Le |
| WRITE |
0xFF |
0xD6 |
Block Number |
0x00 |
0x04 |