Fukuoka NFC Hack 7で、IC運転免許証が読めなかったり読めなかったり、ということがわかった。
うちのNexus7だけか?とか、私のIC免許証だけか?とか思っていたが、そうではないことがわかったのだ。
ならば、調べねばならぬのう。
NFC-Bをどうやって探すか、ということになる。
Type-Bの仕様書を読んだ方がいいのだろうが、ISO/IEC-14443を持っていないので、NFC Forumの仕様を読む。
ALLB_REQか、SENSB_REQだろう。
ちなみに、SENSF_REQは、いわゆる「ポーリング」である。
と思ったが、「ALLB_REQ and SENSB_REQ」ということになって、同じコマンドのようだ。
そのパラメータは、AFIとPARAMの2つだけ。
ふっ、解析も楽そうだ。
AFI
Application Family Identifierの略。
NFC Forumでは「0x00」となっている。
念のため、IC運転免許証の仕様書を確認したが、同様に0x00だった(初期化及び衝突防止)。
PARAM
意味を持つのは、この中の3bit分。
Advanded protocol feature supported
Extended SENSB_RES supported
SENSB_REQ / ALLB_REQ
AFIは、どちらの仕様書でも0x00となっているから、PARAMの部分に違いがあるのか。
あるいは、NFC-Bはカード検出無しにアクセスできるのか。。。
今まで聞いてきた感触からすると、NFC-Bはこういった過程を経ずにアクセスできるようになっていたように思う。
ならば、なぜ一握りの人だけがNFC-Bとしてアクセスできるのか?
IC運転免許証が読めた人と読めなかった人の違いとして、読めた人は設置してある「IC免許リーダ」のような機械を使った、という動作がある。
警察に「読めんよ」と確認した人も、設置してある機械は使っていなさそうだった。
となると、そのIC免許リーダの仕様で(あるいはバグで)、読み込むときに開いた情報を閉じないままになっているため、他からアクセスできるようになってしまった、ということはないだろうか。
いや、ないとは思うのだが、聞いた感じの話からすると、違いはそれくらいしかなくて。。。
Type-Bや、USIMなどのICカード一般の仕様、というものがある。
ICメモリファイルシステムの仕様だったような記憶がある。
そこら辺に引っかかるのかしら?
そんな感じで、NFC-Bについてはまだまだわからないことが多い。
タグを入手するのも難しいので、まあ、理解は先になるだろう。
はじめまして。
返信削除いつもブログを拝見させて頂いていています。
私の所持しているauのGalaxyS2だと、IC運転免許証を読むことができました。
運転免許証リーダーというアプリを使って読ませることができます。
IC運転免許証は、警察庁に仕様が公開されていますので、AndroidNFCでTypeBへのアクセス方法がわかれば比較的簡単に読ませることができそうです。
ちなみに、仕事でTypeBのカードを買ったことがありますが、1枚6,000円ほどしました…。
いつもありがとうございます!
返信削除これをみんなで試したときは、4人くらいでやって、1人だけは普通に読めました。。。
端末のせいというわけでもなく、カード側のようでした。
「最近発行したカードは厳しくなったのでは?」という話もあったのですが、そうでもなかったです。
???でした。
Type-Bは6,000円でしたか・・・。
安くはないだろうと思っていましたが、まさかそこまでとは・・・。
各都道府県によってバラバラみたいですね。
削除使っているチップが違うのかどうかはわかりませんが、周波数やらQ値もそれぞれでかなり異なるようです。
以前たまたま周波数を測定する装置があり、東京、神奈川、埼玉の免許証で測定してみたところ、東京が13.45MHz、神奈川が15.4MHz、埼玉が20.43MHzでした。
不思議です。
まさか、周波数が異なるとは。。。
削除もっと調べていくと、納入したカードごとに異なる、とかなるんですかね。
あるいは、偽造を見破るためにわざと少しずつずらしているとか。。。
実に不思議ですね。
ボーレートは関係しないですかね??
返信削除ボーレートですか。。
返信削除実のところ、NFC-Bについてはほとんど知識がなく「106kbpsだろう」くらいしか知りません。
が、微妙にボーレートを変更する機能とかがあると、それについていけるようなNFCチップじゃないと対応できなくて、高性能なタイプじゃないとだめ、とか。。
やっぱり、NFC-Bももう少し知っていないと、話について行けないですね。