2011/07/08

「かざしてログオン」は、たぶんだませる

かざしてログオンのことが出ていたので、ちょっと思い出した。
記事で書いていたような気がしたけど、出てこなかった。。。
何かというと、だまし方だ。

同じようなことを書くことになりそうだが、まあ年寄りのことだからと我慢しておくれ。


FeliCaのカードがある。
これを出退勤のタイムスタンプ代わりにしたいとしよう。
授業の出欠でもいいし、鍵の代わりでもいい。
つまり、カードが身分証明の代わりを果たすような場合と考えてもらおう。

さて、どうやるのが一番確実だろうか?

私が一番確実だと思うのは、FeliCaカード(FeliCa Liteではなく)を使い、共通領域なり他の領域なりのシステムを割り当て、エリアを割り当て、鍵をかけたブロックが用意することだ。
たとえば、Suica。
これはサイバネ領域を使っていて、アクセスもたぶん縮退鍵などでアクセスするようなところにある。
自前の領域なので、読み書きができる。
一致した鍵を持った人が近づくと見えるコインロッカーみたいなものか(あるのか?)。


次は・・・どれだろう。
FeliCa Liteで片側認証する場合だろうか。
FeliCaでは共通領域になるだろうけど、ドコモみたいに開放しているところは少ないだろう。
もし共通領域を使うなら、前者の方法をとるだろうし。
コインロッカーの前に人がいて、鍵が自分のところのものか調べるような感じかしら。


その次は、誰でもアクセスできる領域に、自分で暗号化を掛けたデータを書き込むこと。
この場合のセキュリティは、FeliCaのものではない。
「解読できるならやってみろ」とネット上にファイルを置くようなイメージかな。


それ以下なのが、書き込みできない状態で認識する方法だ。
よくやりがちなのは、IDmを見る方法。
非常に手軽なんだけど、IDmは重複する可能性があるので危険だ。
それだけだと不安だと思えば、読み取れるブロックを読んでおく、なんて方法もある。
自前のカードを用意しない場合は、この方式しか取れない。
「住所と表札が一緒だから、きっとこの人だろう」と家に上がり込むような感じか。


「かざしてログオン」は、もちろん最後の方法となる。
IDmだけではないのだが、まあ読み取っておける情報であることには違いがない。

そしてこれだけのことがわかり、あとPaSoRiを使いこなすことができれば、だませる。
かざしてログオンだけではなく、同種の方法をとっているもの全てを、だ。

必要なのは、PaSoRiと、相手に登録されているFeliCaカード。
それとPaSoRiを操作するソフトが組めるパソコン。
Linuxとかcygwinがあれば何とかなる。
たぶん、USB Host APIが使えれば、Androidでもできるだろう。


詳細は、説明しない。
それほど親切ではないが、だいたい予想が付くんじゃなかろうかね。
今やっているSmartQ5のが落ち着いたら、それに載せてみたいものだ。

この方法が採れるのは、FeliCaというかNFC-Fというか、それだけである。
NFC-A系は、少なくともできなかったはず。
カードになったとしても、UIDを3byteしか指定できないからだ。
わざとなんかねぇ。
怖いので、個人的にはFeliCaからも一部をマスクするような制限を付けてほしいものだ。