2012/02/26

[mifare]Ultralight C

touchanoteのNFCシールがUltralight Cだということがわかった。
Ultralight系のPDF資料は、ここからダウンロードできる。
http://www.jp.nxp.com/ps/#/i=53452
EEPROM Sizeが64byteなのがUltralight、192byteのがUltralight Cだ。
Ultralight CはSecurity Featuresが「TDES」になってる。Triple-DESだ。
今だとAESなんだろうけど、当時はまだAESがなくてね。
一番堅牢だったのがTDESだったのだ。
あと、16bitカウンタがある。
定期券みたいな使い方かな?

さて、UltralightとUltralight C。
違いは上記くらいで、他の違いはわからない。
ポーリングしてSAKを見ても同じだし、カード内に容量が書いてあるところはない。
じゃあどうやってソフト的に見分けるんだというと、libnfcの人は「READコマンドでアドレスが0x0fより大きいところを指して成功したらUltralight Cと考えていいんじゃないか」と言っている。
NXPの仕様書によると、READコマンドのアドレスで指定できるのは、Ultralightだと0x00~0x0f、Ultralight Cだと0x00~0x2b。範囲外だとNAKを返すことになっている。

以前作ったUltralight用のサンプルを、ページ数を増やしてUltralight Cにも対応した。
https://github.com/hirokuma/NfcStarterKitWrap/tree/master/UltralightReadWrite
まあ、そんだけだ。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。