携帯業界の認証事情

巡回サイトの一つである高木浩光@自宅の日記で以下のようなエントリーがあった。

高木浩光@自宅の日記 - 携帯電話向けWebアプリの脆弱性事情はどうなっているのか

ここではいつもの高木氏の口調で、「携帯向けWEBアプリ開発では未だにGETパラメータでセッションIDを渡しており、それはこれまでも何度もいかんことだと言っている。」というような内容が語られている。

確かにWEB+DBの記事に対して高木氏が注釈で言っているように「IPアドレスによる制限に関して書いていない」という点に関してはWEB+DB側の落ち度だと思う。実際これを行わない限り端末IDやユーザID*1による認証が意味をなさなくなってしまうからだ。*2

但し、キャリア毎にIPアドレス制限をする限りにおいては端末IDやユーザIDは偽装不可能*3なので、むしろ他人でも入力可能なパスワード認証よりも強力な認証かもしれません。逆にいえばその認証方法があるからこそ携帯業界ではクッキー無しでのセッション管理が可能になっていると言えます。

なので高木氏の以下の批判は的外れと言えるでしょう。

そもそも、「ID/パスワードを毎回入力するのでは携帯の場合では特に面倒です」などといって、端末IDをパスワード代わりにしてはいけない。端末IDは他のサイトにも同じものが送信されるのだから、パスワード代わりになどならない。
こんな基本的なことが携帯業界では未だ常識になっていないようで困ったことだ。

高木浩光@自宅の日記 - 携帯電話向けWebアプリの脆弱性事情はどうなっているのか

同じ値の端末IDが他のサイトにも送られたからと言っても、そのIDを他人が騙ることはできないのだから問題ないはずです。パスワード認証におけるパスワードの代わりにはなりませんが、パスワード認証に代わる認証になります。

*1:ここでは、端末IDが携帯のハードウェアである端末が持つIDで、ユーザIDはキャリアとの契約に対応するIDとして話します。(キャリア毎に呼び方が違うんだよな…)

*2:端末IDやユーザIDは簡単に漏洩するし(むしろ公開情報に近い)、一般にGETパラメータやUser-Agentは偽装可能だから。

*3:端末IDはスマートフォン等でゴニョゴニョすると偽装できる可能性があるようだ…。ユーザIDを使えということか。

続きを読む