このセクションでは、非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 |
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、フェリカ、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 READ 16 |
0xFF |
0xB0 |
0x00 |
0x15に0x00する |
0x10 |
| CL 1k READ 16 |
0xFF |
0xB0 |
0x00 |
0x3Fに0x00する |
0x10 |
| CL 4k READ 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 ファミリの応答
Transparent exchange コマンド
| Command |
Class |
INS |
P1 |
P2 |
Lc |
Data In |
| General Authenticate |
0xFF |
0xC2 |
0x00 |
0x01 |
Variable |
TLV データ オブジェクト |
次に示す TLV データ オブジェクトは、透過的な Exchange コマンドを記憶域カードにコマンドを透過的に交換するためにドライバーでサポートされる必要があります。
| Tag |
Data Object |
| 0x95 |
トランスシーブ - 送受信 |
| 0x5F46 |
Timer |
Update-Binary command
Update-Binary コマンドを使用して、非接触 NFC タグ/カードにデータを書き込みます。 このコマンドは、ストレージ カード (MIFARE クラシック/UL、フェリカ、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 WRITE 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 |