NTAG212 / 213 / 215 を理解して、Webから使い倒すデモ
あなたの環境: 検出中…
| チップ | ユーザー領域 | URL目安 | 得意な用途 |
|---|---|---|---|
| NTAG212 | 128 bytes | 〜100文字 | 短いURL、IDタグ、テスト用 |
| NTAG213 | 144 bytes | 〜130文字 | URL、名刺、最も普及。標準 |
| NTAG215 | 504 bytes | 〜450文字 | vCard、Wi-Fi、Amiibo、複雑NDEF |
どれもISO/IEC 14443A・13.56MHz・NFC Forum Type 2タグ。iPhone/Androidの内蔵NFCで読めます。書き込みは1回でも何回でも可能(最終的に読み取り専用にロックも可)。
あなたはiPhone 以下の流れがおすすめです。
ヒント iPhoneのNFCは本体上部(アウトカメラ付近)が一番反応します。ケースが厚いと感度が落ちることがあります。
↑ このページ自身のURLが自動で入っています。タグにこのURLを書き込めば、かざすたびに本デモが開きます。
Android Chrome検出 このページから直接 NDEF を書き込み・読み取りできます。
iOSは Web NFC API 非対応 下のボタンは動きません。Section 2のアプリ経由を使ってください。
※ iOSはNDEFタグの「読み取りバナー表示」だけはOSが標準で対応しています。
PCブラウザ Web NFCはモバイル向けAPIなのでPCでは使えません。USB NFCリーダー(ACR122U等)+ライブラリ(pyscard、nfcpy)か、Android端末でこのページを開いてください。
ボタンを押すとブラウザが「タグをかざしてください」と表示します。NTAG212/213/215いずれもOK。
市場にはNTAG215を騙る偽チップ(特にAmiibo用途で大量に流通)や、汎用Type 2タグをNTAGとして売っているものが存在します。NXP正規品か確認する3段階の方法:
NXP製NTAG21xは 7バイトUID で 先頭バイトが 0x04(NXP Semiconductors のメーカーコード, ISO/IEC 7816-6準拠)。これに合わない時点で正規NTAGではない可能性が高い。
※ 中華製クローン(FUDAN FM11NT等)も 0x04 を偽装するものがあるため、これだけでは100%判定はできません。
正規NTAGは GET_VERSION コマンドに以下のような決まった応答を返します:
NTAG213: 00 04 04 02 01 00 0F 03
NTAG215: 00 04 04 02 01 00 11 03
NTAG216: 00 04 04 02 01 00 13 03
^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^
| | | | | | | +-- protocol type
| | | | | | +----- storage size (0x0F=144B, 0x11=504B, 0x13=888B)
| | | | | +-------- minor version
| | | | +----------- major version
| | | +-------------- subtype (0x02 = 50pF)
| | +----------------- product type (0x04 = NTAG)
| +-------------------- vendor (0x04 = NXP)
+----------------------- fixed header
Web NFC APIでは送信不可。Android NFC API(NfcA.transceive)または NFC TagInfo アプリで取得可能。
NXP製NTAG21xには工場出荷時に書き込まれた 32バイトのECDSA署名 がROM領域にあり、コマンド READ_SIG (3C 00) で読み出せます。これをNXP公開鍵で検証し成立すればNXP正規品確定。
クローンチップはこの署名を持たない(または別の鍵で署名されている)ため見破れます。
判定推奨アプリ:
これらのアプリは「Originality check: ✓ Passed」のように表示します。Passedなら本物、Failedなら偽物 or 別ベンダー品です。
NDEF(NFC Data Exchange Format)はTLV的なバイナリ。URLレコードは D1 01 ?? 55 [prefix] [url] のような構造で、prefixは0x04ならhttps://等の省略コードです。
例:https://itadaki.jp/ を書いた場合のNDEFペイロード D1 01 0E 55 04 69 74 61 64 61 6B 69 2E 6A 70 2F ^^ ^^ ^^ ^^ ^^ -- 以降 "itadaki.jp/" のASCII -- | | | | +- prefix 0x04 = "https://" | | | +- レコード型 'U' = URI | | +- ペイロード長 (14 bytes) | +- タイプ長 +- ヘッダ: MB=1, ME=1, SR=1, TNF=001 (well-known)
・Wi-Fiタグ(NTAG215推奨):かざすだけでゲストWi-Fi接続。NDEFのapplication/vnd.wfa.wscレコードでSSID/暗号化方式/PSKを格納。
・vCardタグ:名刺代わり。text/vcardレコードに連絡先。
・ショートカット起動(iOS):iPhoneの「ショートカット」アプリでNFCをトリガーに自動化可能。タグ自体は空でもOK。
・書き込み禁止ロック:完成したらタグを読み取り専用に固定(NFC Toolsの「Lock tag」)。改ざん防止に重要。
— END —