Fellicaの仕様置き場&Fellicaを使って認証するシステム、作ってくれないかな!!
mymy-mycompany分室さんのSQLインジェクション その2で、「DataAccess 」っていうクラスをつかって、ログインをチェックするお話がでてました。
このお話、ログインをカプセル化しているわけですが、このログインのカプセル化は、SQLインジェクションの話だけでなく意味ある気がします。
というのは、認証って、ユーザー名とパスワードだけで、なくなるような気がするんです。めんどーくさいじゃないですかあ!
それに、ユーザー名、パスワードがわかれば、なりすましもできちゃうわけですし。。
なんで、認証システムは、どんどん変わっていくかもしれないんで、そこだけ分離するのは、意味ありそう。
で、そんな新たな認証システムとして、期待しちゃうのが、ケータイのFellica(=おサイフケータイ)を利用する形!(本当は、たいして期待してないのだが、ある言葉を書きたいために、そうする。理由は最後に、わかる)
Fellicaには、docomoに、いろいろ申し込まないと勝手には使えない、共通領域と、iアプリから、自由につかえ、仕様書がでている、フリー領域とあるようなんで、フリー領域を、使いましょう。
Fellicaの技術仕様書は、ここ
で、たとえば、社内で、認証をとって、ログインしたい場合、
(1)その会社で作った認証用iアプリをダウンロードしてきて、
そのiアプリが、その人固有のIDを作成するわけ。
そのIDは、
その人を特定できる文字列
(この場合、社内での認証なんで、社員番号とか)
+ダミーの適当に発生した文字何桁か
としておく。
たとえば、社員番号が9001で、
適当に発生した数字が2478901
だったとしたら、
その人のIDは、 90012478901
(2)認証するとき、アプリケーションは、
ワンタイムの公開鍵と
そのログインしてきた人の、固有ID中、
何桁目をとってきて、それを何桁目におくかをおくる。
(ここで、後々のために、その人を特定できる文字列は、必ず送る)
上の例だと、9001は、必ず送る。
あと、今回、頭から6桁目の4と、
8桁目の8を使い、
さらに、それをさかさまに、送ることにする。
なんで、こういう指示になる
1-6
2-5
3-4
4-3
6-2
8-1
この文字列と、公開鍵をクライアント側(ログインするほう)に送る。
(3)ログインするクライアントのほうは、Felicaをつかう。
ログインしたい人は、ケータイをかざすと、カードリーダで読み込んで、
IDを取得し(90012478901)、クライアントのほうで、
そのIDと、(2)の指示から、番号を組み立てて、(841009)
それを公開鍵で暗号化する。このへんはjavascriptを使ってやる
(それとも、こういうアプリ書いたほうが早いか?)
(4)サーバー側に、(3)の結果が送られると、
そこから、秘密鍵で、組み立てた数字をとりだし(841009)、
自分が送った規則より、IDを取り出し、(9001)、
のこりの数字で、正しく送られてきているかチェックする
(この場合、4と8と正しく着ているか確認)
こうすると、ワンタイムで、公開鍵を使って暗号化してるんで、解読されにくいし、毎回、サーバーに送信する数字が違うから、規則がわかっても、ぜーんぶ番号を知らない限り、なりすまして送るのもたいへん(もちろん、今回は短い数字で、規則も簡単だから、偶然見破られる可能性もあるけど、ほんとうは、もっと長くする)。
自分は、IDをしらないから(ケータイに入ってるIDは、表示しないものとする)、ほかの人には教えられない。ほかの人は、ケータイを奪って、解析しないとわかんない。
で、おサイフケータイなんで、持ち運びもらく。
あとは、fellica読み込み機が安いといいんだけどね。。。
あ、もし、この方法、使いたい人がいたら、かってにどうぞ。
ただ、思いつきで書いただけだから、どこか、特許とられてたりするところがあるかないかとか、そういうことやってる会社があるかないかとかは、一切調べてないので、そのつもりで(そのへんは、自己責任で)。
(実は、この部分は、まえふりだから。あとで、なんでこんな話をしてるのかの理由がわかる)
で、これが、普及してくれると、なにがいいって、
ウィリアムのいたずらみたいに、ケータイを持ってない人は、システムが使えない!
それは、会社がこまる。
っていうことで、会社がケータイをかって、くれるかもしんない!!
それがいい
(って、そんだけのために、こんなこと、いってんのかい。 自分で買えよって!!)
っていうわけで、
Docomoさん、
Fellicaを使った、汎用的なワンタイムパスワードの認証システムの
開発をしてください。
おねがいりんこのぷー
(って、言ってるんだよね。小倉優子って!ちがうかな。。。ちょっち自信ない。
じつはきょうは、この言葉が書きたくて、ここまで無理やり引っ張った ^^;)