ガイドと項目を探す
はじめに
カードの種類
リファレンス
NFC Utilsガイド
NTAG 424 DNA
NTAG 424 DNAの鍵、Secure Dynamic Messaging、ファイルへのアクセスを設定します。TagTamper仕様には専用の「チェック」と「有効化」があります。「SDM URLをデコード」はオフラインでも動作します。
概要
NTAG 424 DNAは5つの鍵で保護された小さなファイルシステムです。NDEFメッセージはファイル02にあります。このページの設定はすべて、そのファイルまたは鍵の属性です。変更はすべて、いずれかの鍵で開いたEV2セキュアメッセージングのセッション内で行います。
「NTAG 424 DNA」または「NTAG 424 DNA TagTamper」を選びます。どちらにも調査、NDEF、鍵、SDM、アクセスのツールがあります。「TagTamper」は該当する仕様だけに表示されます。その他のDESFireとPlusカードは、各調査プロファイルを使います。
鍵
- 機能
- Key 0~Key 4の5つのスロットがあり、各スロットの鍵は16進数32桁で表します。Key 0がマスター鍵です。他の4つは、その鍵を指定したアクセス権限や機能が使用します。
- 変更後の動作
- スマートフォンに見える内容は変わりません。そのスロットを使うセッションを開ける相手が変わります。
- 必要なもの
- 常にKey 0が必要です。Key 1~Key 4の変更には、それぞれの現在の値も入力する必要があります。チップは古い鍵でマスクした新しい鍵を受け取るためです。
- 元に戻す方法
- Key 0を使って元の値に戻すか、工場出荷時の状態にリセットします。Key 0を失うとカードは現在の設定のままになり、このアプリには復旧手段がありません。
現在の鍵
「鍵」ページにはKey 0~Key 4があり、初期値は工場出荷時のゼロです。「工場出荷時の鍵」で入力欄をゼロに戻せます。すべての処理は、この欄にある値をそのまま使い、別の値で上書きしません。鍵保管庫は欄に値を入力するもので、欄の値に優先するものではありません。保存済みの鍵があるタグを読むと欄を埋め、変更に成功すると更新し、工場出荷時の状態へのリセットでゼロにします。
チェック
「チェック」は各鍵で認証し、「受け付け済み」または「拒否」を鍵ごとに表示します。変更は行いません。途中でタグを離すと、処理中の鍵は「失敗」、残りは「未検証」と表示されます。
変更
「変更」では鍵番号を選び、新しい32桁の値を入力するか生成します。まず確認してから変更してください。Key 0を変更した後、その値を失うとタグは現在の設定のままになります。アプリでは復旧できません。
Secure Dynamic Messaging
Secure Dynamic Messagingをオンにすると、チップは読み取りのたびにURLの一部を書き換えます。次の項目で、書き換える部分を指定します。
| 項目 | 意味 |
|---|---|
| ベースURL | タグから開くページです。アプリはデスクトップ用エンコーダーと同じ配置で、ミラー項目をクエリパラメーターとして追加します。 |
| 暗号化PICCデータ | UIDとカウンターを平文ではなく、PICCデータ鍵で暗号化して送ります。オンにすると、2つの平文ミラーを置き換えます。 |
| URL内のUID/URL内の読み取りカウンター | UIDと読み取りカウンターの平文ミラーです。 |
| CMAC | CMAC鍵でミラー項目の認証コードを生成し、サーバーがコピーを拒否できるようにします。 |
| URL内の暗号化データ | 32または64文字の予約領域enc={enc}です。ファイル内では前半に最大16または32バイトの平文が入ります。認証なしで読むたびに、チップが予約領域全体を暗号文で置き換えます。CMACがオンで、URLにUIDとカウンターが必要です。以下の「暗号化データ」で説明します。 |
| 読み取りカウンターの上限 | 任意です。カウンターが上限に達すると、チップは認証なしのファイル読み取りをすべて拒否し、スマートフォンでは何も開けなくなります。その場合、「読み取り」タブに上限を表示します。上限を引き上げるか解除すると再び読めますが、カウンターはリセットされません。 |
| カスタムテンプレート | 任意です。標準の配置が合わない場合は、{uid}、{counter}、{cmac}、{picc}を含む完全なURLを指定します。{picc}は{uid}や{counter}と併用できません。 |
入力欄の下の等幅表示で、予約文字を含むURLを確認できます。
- 機能
- 「URL内のUID」はシリアル番号を、「URL内の読み取りカウンター」は読み取り回数を入れます。「CMAC」は鍵で計算した認証コードを加え、サーバーが実際の読み取りとコピーされたリンクを区別できるようにします。「暗号化PICCデータ」は、平文のUIDとカウンターを、鍵の保有者だけが復号できる1つの暗号化ブロックで置き換えます。
- 変更後の動作
- かざすたびに異なるURLが開きます。結果カードのオフセットは、チップが現在の値を入れるファイル内の位置です。カウンターが上限以上の間は、アクセス権限を含め、その上限を維持する設定変更もチップが拒否します。先にここで上限を引き上げるか解除してください。
- 必要なもの
- 設定変更用の鍵が必要です。選んだCMAC鍵またはPICC鍵もカード上に存在する必要があります。「適用」は書き込み権限をKey 0に設定します。
- 元に戻す方法
- 「無効化」を使います。メッセージとアクセス権限はそのままです。
適用と無効化
「SDMを適用」はNDEFを書き込み、ファイル設定を変更します。適用後は認証なしで読み取れ、書き込みや設定変更にはKey 0が必要です。「無効化」はミラーをオフにし、「アクセス権限」で設定した権限を維持します。
暗号化データ
「URL内の暗号化データ」は、認証なしで読むたびにチップが暗号化する、URL内の32または64文字の領域です。入力した最大16または32バイトの平文は、ファイル内でその領域の前半に保存されます。読み取る側に平文は見えず、暗号文が見えます。暗号化にカウンターを使うため、暗号文はかざすたびに変わります。
使用する鍵
チップはCMAC鍵、UID、読み取りカウンターから暗号化鍵を導出します。別の鍵は選べず、CMACの生成とデータの暗号化に同じ鍵を使います。そのため、CMACがオンで、URLにUIDとカウンターが必要です。
更新方法
平文は通常のファイルデータなので、書き込み権限でファイルの該当領域を書き換えて更新します。ここで設定したカードではKey 0を使います。
読み取り方法
「詳細スキャン」には暗号文が表示されます。「鍵」ページにCMAC鍵がある場合は、その下に平文も表示します。
目立たなくする方法
このデータをURLから省くことはできませんが、見分けにくくすることはできます。カスタムテンプレートでパラメーター名を変える、パスの一部に置く、暗号化PICCデータもオンにして似た16進数の塊を2つ並べる方法があります。前に{cmacStart}を置くと、暗号文もCMACの対象になります。
この機能の限界
スマートカードとは異なります。セキュアエレメントカードは独自のアプレットを動かし、暗証番号とチャレンジレスポンスを使用します。424が行うのは、小さな固定データを一般的なリーダーから保護することだけです。
アクセス権限
NDEFファイルには4つの選択欄があり、それぞれ「認証不要」(0xE)、Key 0~Key 4、「アクセス不可」(0xF)を選べます。「設定を変更」を「アクセス不可」にすると、ファイル設定は永久にロックされます。「設定を変更」が許可されていれば、他の権限は変更できます。
- 読み取りメッセージを読める相手を決めます。スマートフォンで読むには「認証不要」が必要です。鍵を指定すると、スマートフォンからメッセージを読めなくなります。
- 書き込みメッセージを上書きできる相手を決めます。新品のカードは「認証不要」です。「SDMを適用」はKey 0に設定し、第三者によるミラーの上書きを防ぎます。
- 読み書き同じファイルにアクセスするための、もう1つの鍵です。読み取りは「読み取り」または「読み書き」、書き込みは「書き込み」または「読み書き」の条件を満たすと許可されます。
- 設定を変更4つの権限とSDMの配置を変更できる相手を決めます。新品のカードはKey 0です。ロックに関わる重要な設定です。
- 機能
- NDEFファイルの4つの権限です。それぞれ「認証不要」、鍵、「アクセス不可」を選べます。
- 変更後の動作
- 「アクセス権限を適用」は、現在のSDMの状態を変えずにファイル設定を書き換えます。各権限の設定によって、その後ファイルを読み取り、書き込み、再設定できる相手が変わります。
- 必要なもの
- 現在「設定を変更」に指定されている鍵です。使用する値を確認できるよう、ページ上部にその鍵を表示します。
- 元に戻す方法
- 「設定を変更」が「アクセス不可」でなければ、新しい権限を適用できます。
「書き込み」と「読み書き」の違い
「書き込み」と「読み書き」は、書き込みを許可する独立した2つの権限です。チップはOR条件で判定し、どちらかを満たせば書き込みを許可します。「読み取り」と「読み書き」も同様です。「読み書き」には、ファイルを全面的に操作できる1つの鍵を指定できます。そのうえで「読み取り」をスマートフォン用に「認証不要」とし、「書き込み」を「アクセス不可」にできます。書き込みを禁止するには、両方の権限を「アクセス不可」にしてください。
| 書き込み | 読み書き | 書き込める相手 |
|---|---|---|
| 認証不要(0xE) | 任意 | 誰でも書き込めます。 |
| 鍵0 | 認証不要(0xE) | もう一方の権限が認証不要のため、誰でも書き込めます。 |
| 鍵0 | 鍵0 | Key 0の保有者だけです。 |
| 鍵0 | 鍵1 | Key 0またはKey 1の保有者です。 |
| アクセス不可(0xF) | 鍵0 | もう一方の権限によって、Key 0の保有者だけが書き込めます。 |
| アクセス不可(0xF) | アクセス不可(0xF) | 以後は誰も書き込めません。 |
424の「情報」カードは、4つの権限を1行で表示します。「SDMを適用」の直後はRead E · Write 0 · RW 0 · Change 0です。
424のロック
424にロックコマンドはありません。権限を「アクセス不可」にすると設定を固定でき、どの権限を選ぶかによって固定される対象が決まります。現在の状態を維持したいカードで実行してください。
| 目的 | 設定する値 | 設定後の状態 |
|---|---|---|
| SDMの配置と権限を固定し、メッセージの動的更新を維持 | 「設定を変更」を「アクセス不可」(0xF) | 読み取りとSDMは引き続き動作します。書き込みは現在の書き込み権限に従います。鍵はKey 0で変更できます。「アクセス権限」「SDMを無効化」「工場出荷時の状態にリセット」は拒否されます。SDMタグを運用に使うためのロックです。 |
| メッセージも固定 | 「書き込み」を「アクセス不可」(0xF)、「読み書き」を「アクセス不可」(0xF)、「設定を変更」を「アクセス不可」(0xF)にし、一度に適用 | ファイルは永久に読み取り専用になります。鍵は引き続き変更できます。 |
| スマートフォンからメッセージを永久に非表示 | 「読み取り」を「アクセス不可」(0xF)にし、「設定を変更」も「アクセス不可」(0xF) | スマートフォンでは何も開けません。ファイルの読み取り鍵を持つリーダーだけがデータを読めます。この設定が必要になる場面はまれです。 |
| まだ何も固定しない | 「書き込み」をKey 0、「設定を変更」をKey 0 | スマートフォンからはロックされているように見えますが、Key 0ですべて変更できます。「SDMを適用」後はこの状態です。 |
「設定を変更」が許可されている間は、他の権限を「アクセス不可」にしてもロックにはなりません。「設定を変更」が錠に当たり、他の3つはその錠で固定する対象です。
The NFC Mintのカードロック方法
The NFC Mintのエンコーダーは発行するカードを、読み取りは認証不要、書き込みは禁止、読み取りと書き込みは禁止、設定変更は禁止、CMACはKey 1、カウンターの取得は禁止に設定します。その後も読み取りとSecure Dynamic Messagingは動作しますが、ファイルの書き込みや配置の変更は誰もできません。鍵はKey 0で変更でき、この鍵だけはThe NFC Mintが保持します。アプリでは次の2段階で同じ状態にできます。
- 手順1:Secure Dynamic Messaging使用するCMAC鍵を選び、上限欄を空にして適用します。「書き込み」と「読み書き」もKey 0に設定されます。
- 手順2:アクセス権限「読み取り」を認証不要(0xE)、「書き込み」をアクセス不可(0xF)、「読み書き」をアクセス不可(0xF)、「設定を変更」をアクセス不可(0xF)にします。適用し、元に戻せないことを示す確認画面で続行します。
「情報」カードはRead E · Write F · RW F · Change Fと表示されます。以後「アクセス権限を適用」「SDMを無効化」「工場出荷時の状態にリセット」は拒否されます。カードの読み取りはでき、かざすたびにURLも変わります。
SDM URLをデコード
- 機能
- SDMリンクを受け取ったサーバー側の処理を、スマートフォン上で行います。URLからチップが埋めた項目を探し、暗号化部分を復号し、認証コードを検証します。タグをかざす必要はありません。URLを貼り付けるか、「前回の読み取りを使用」で直前に読んだ424のURLを取り込みます。
- 変更後の動作
- デコード結果には、平文またはPICCデータから復元したUIDとカウンター、復号したテキスト、封印の状態、CMACの「有効」または「無効」を表示します。不一致の場合は期待値も表示します。CMACの不一致は、リンクの改変、別のタグからのコピー、異なる鍵による生成を示します。
- 必要なもの
- 暗号化データの復号にも使うCMAC鍵と、URLに暗号化PICCデータがある場合はPICCデータ鍵が必要です。入力欄の下に、共通の鍵スロットとその値を表示します。SDMがオンのタグを読んだ後は、タグの設定が指定するスロットが既定で選ばれます。
- 元に戻す方法
- 変更は行いません。
各値の役割を推定する方法
アプリはクエリパラメーターと16進数らしいパス部分を含め、URLを値ごとに分けます。まず名前、次に長さから役割を推定します。16進数14文字ならUID、6文字ならカウンター、16文字ならCMAC、32文字ならPICCデータまたは暗号化データ、64文字なら暗号化データ、英字2文字なら開封状態と推定します。各推定は選択欄に表示されるため、独自のパラメーター名を使う他のエンコーダーのURLも手動で修正できます。チップは名前を見ないため、各値の役割を正しく選べば、どのエンコーダーのURLも同じようにデコードできます。
「CMAC入力の開始位置」でMACの入力開始位置を選びます。暗号化データがあればその先頭、なければCMAC自体、その他の配置ではURLの先頭などを指定します。
TagTamper
- 機能
- NTAG 424 DNA TagTamperには、封印をまたぐワイヤーループがあり、チップは給電のたびに状態を測定します。GetTTStatusは2つの値を返します。「現在」はその時点のワイヤーの状態です。「永久記録」はループを有効にしてから一度でも断線を検出したかを示し、元には戻りません。
- 変更後の動作
- 有効化ではSetConfigurationのオプション07でループをオンにし、以後GetTTStatusに必要な状態取得用の鍵を選びます。The NFC Mintの出荷設定では認証不要です。NFC UtilsはTagTamperプロファイルに「チェック」と「有効化」を用意しています。「チェック」は現在の状態と永久記録を取得します。「有効化」にはKey 0が必要で、状態取得のアクセス鍵を選びます。TamperKitは、これとは別にアクティベーション記録と、その後の確認履歴を提供します。
- 必要なもの
- 有効化にはKey 0が必要です。状態取得を認証不要にすると、どのリーダーも問い合わせられます。鍵を選ぶと認証が必要です。「アクセス不可」にすると、設定済みのSDMを通じてのみ状態を取得できます。
- 元に戻す方法
- ありません。一度有効にしたループは無効にできません。
無効、破断なし、破断
NFC Utils、NFC Proof、TamperKitの封印判定は同じです。両方の値が「閉」の間だけ「破断なし」、どちらかが「開」を示した時点で「破断」、ループが有効化されていなければ「無効」です。切断後にワイヤーをつなぎ直しても、チップが最初の断線を永久に記録しているため、「破断」と表示されます。
アクティベーション前に切れたループ
有効化前はチップが測定しないため、それ以前の切断は検出できず、それを理由に有効化が失敗することもありません。最初の測定は有効化と同時に行われ、すでに切れていれば、その場で「破断」になります。それ以降、チップはアクティベーションの前と後のどちらで切れたかを区別できません。そのためTamperKitはアクティベーション時の状態を記録します。
消去とリセット
NTAG 424の項目は「消去とリセット」で、「フォーマット」はありません。424のCapability Containerはチップ内蔵の固定ファイルであり、書き込むものがないためです。
タグを消去
メッセージを空にします。鍵とアクセス権限は残ります。「書き込み」が認証不要であるか、指定された鍵が必要です。
工場出荷時の状態にリセット
メッセージをゼロで埋め、ファイルの権限を工場出荷時の状態に戻し、SDMをオフにして、すべての鍵をゼロに戻します。「鍵」のKey 0と、ゼロでない各鍵の現在の値が必要です。鍵が工場出荷時の状態に戻るため、タグの鍵保管庫の項目と「現在の鍵」の欄もクリアします。「設定を変更」が「アクセス不可」のカードでは、権限を復元できません。
元に戻せない操作
| 操作 | 固定されるもの |
|---|---|
| 「設定を変更」がアクセス不可(0xF)のときにアクセス不可(0xF)にした権限 | その権限と、「設定を変更」によって配置全体が固定されます。 |
| Key 0の紛失 | すべてです。Key 0なしで鍵を変更するコマンドは、チップにありません。 |