2012/01/31

[nfc]NFCID (2)

風邪っぽいので、短めの話を選んだ。
「みんなでNFCのお勉強」シリーズ(シリーズ?)。
NFCIDについてだ。

NFCIDというのは、NFCのIDだ。
0, 1, 2, 3とt, iがある。
tとiは、普通付けない。
tは「Target」で、iは「Initiator」だ。
カードエミュレーションやDEPするときのように、どっち側のNFCIDかを区別したいときに付けるだけなので、そんなに気にしなくてよい。
以下、自作の資料に書いていたものを参考に書いているので、間違ってたらすまん。

NFCID0は、NFC-B。
4byte固定。

NFCID1は、NFC-A。SENS_RESの上位2ビットでサイズが決まる。
single : 4byte
double : 7byte
triple : 10byte
4byteのUIDは、ユニークではない。
Mifare 1Kは4byteだったが、Ultralightは7byteだった。
「18092では4byte固定になっている」と当時の私は書いている(Digital Protocol - 4.6.3.2)。
NFCID1 CLnは、カスケードレベル、というものらしい。
名前は聞くが、どういうものかはまだ調べていない。
4byte固定らしい。

NFCID2は、NFC-F。8byte固定。
先頭の2byteでサポートするプロトコルがわかる。
01 FE : NFC-DEPサポート(NFCIP-1)。3~8byteはランダム。
02 FE : Tag Type3サポート。3~8byteはランダム。
03 FE : FeliCa Plug。
それ以外 : Tag Type3サポート。1~8byteはプロプライエタリ(FN管理?)。
なお、システムが複数あるものは、システムごとにNFCID2がある。
共通領域とサイバー領域とか。

NFCID3は、NFC-DEPで使う。10byte固定。
NFC-Fの場合は、10byte中先頭8byteはNFCID2で、残り2byteは0とか。

NFCID1の4byte版はユニークじゃない、となっている。
NFCID2もユニークではない、というのはどこかで読んだのだが、忘れた。
FeliCa Networks社の用語集だったか・・・と思ってサイトを見たら、今日更新されてた。
そして用語集はなくなっていた・・・。
とりあえず、技術情報ページのリンクを載せておく。
SDB-200がある!と思ったが、ツールだけなのね。
まあ、個人で買えるとは思わんが。。

技術情報のページではやはりよくわからなかったので、SONYの技術サイトにある「FeliCa技術方式の各種コードについて」をリンクしよう(English)。

私としても、NFCID2(IDm)でのみのカード識別はやめていただきたい。
怖いからだ。
あくまであれは、PCD(リーダライタ)がPICC(カード)に一時的にアクセスするために取得する
だってねぇ、あれは私でも同じIDmを持つカード機能を作ることができてしまうくらい簡単なものなのだ。
やったことないけど、FeliCa Liteくらいならフルエミュレーションできるんじゃなかろうか。
もしIDmのみで重要な情報(家の鍵代わりとか)を運用しているメーカーなどがあって、鍵が破られてしまうようなことがあると、私のような善人が疑われてしまう可能性があるのだ。
そうなるのは、いやなので、やーやー言っているのだ。
ほら、技術的に可能であったら、技術者としてはやってしまいたくなるではないか。
倫理の問題でもあるのだけど、なるべくなら「そういう状況」が存在しない方がよい。
食欲や睡眠欲と違って、知識欲ってのは何か底が深くて怖いからね。

なんだかんだ言って、長くなってしまった。
私の今回の収穫は、FeliCa Networks社の技術情報サイトだ。
FALP受信をやっていて、サブコマンド一覧にないデータが出てきていたのだ。
まあ、わかったからといってFALP受信ができるようになるわけではないのだけど、知識欲が満たされたので満足だ。