2011/08/20

[app]「nimoca check」を公開しました

最近、威嚇シリーズを作ってないよなあ、と思いつつも、ツール造りが好きなのでやってしまった。

nimoca check

Suicaも読めるはず。。。
サイバネ系であれば、同じじゃないのかな?


どうやっているのか?

参考にしたのは、こちら。

http://sourceforge.jp/projects/felicalib/wiki/suica

FeliCaを、システムコード0x0003でポーリングして捕捉する。
次に、サービスコード0x090fのブロック番号0を暗号化無しで読む。
読んだ16byteのうち、10byte目と11byte目をリトルエンディアンで表示する。
そんだけ。

最初に思ったのは、「6万円くらいまでしか入らんやん」ということ。
nimocaもSuicaも、制限は2万円だった。
そういえば、signedなのかunsignedなのかはわからなかったな。

次に思ったのは「残高が書かれているこの領域は、おまけにすぎないよなー」ということ。
同時に、どういう経路でデータを書き込んでいるのかが気になった。



私はnimocaを西鉄バスで使っている。
バスに乗ると、まずR/Wにかざす。
そして降りるときにかざす。

乗るときは、現在の残高が表示される。
降りるときは、運賃が引かれた額が表示される。
いくら運賃がかかったのかは、バスしかわからないような気がする。
しかし、乗った駅と降りた駅の情報がわかれば、それで運賃がわかるはずだ。

降りるときにはかざすと勝手に運賃が引かれているので、少なくとも運転手は何もしていない。
となると、あとはネット経由で運賃を調べるか、R/Wに直結したコンピュータが運賃を調べるか、だ。

私は、コンピュータが乗車駅と降車駅の情報から運賃を調べているのだろうと思う。
ネットだと、バスみたいなものは無線を使わなくてはならない。
そうなると、バス路線のすべてに無線システムがなくては使えなくなってしまう。
それではだめだろう。


何を私が気にしているかというと、どこまでネット上で管理されているのか、ということだ。
バスに乗って、すぐに電車に乗ったとしても、残高はちゃんと減っていくと思う。
ということは、残高に関する情報はカードが持っていると考えていいはずだ。


しかし、このカードを持った人がどこから乗ってどこで降りたか、という情報はサーバも持っていると思う。
R/Wで同時に収集して、一日の終わりかどこかでまとめてサーバに吸い上げるとか。
そういったサービス側の知識がないので、なにがどう役立つのかがあんまりわかってないけど、たぶん役立つんだと思う。

昔のSFとかで、IDカードを闇で買う、なんてシーンがしばしばあった。
しかしFeliCaなんかも、けっこうこれに近いことがあるのかもしれん。
警察も実は、地道な足取り調査の前にはnimocaなんかに確認してポイントを絞っているのかもね。

0 件のコメント:

コメントを投稿

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

注: コメントを投稿できるのは、このブログのメンバーだけです。