水無月ばけらのえび日記

bakera.jp > 水無月ばけらのえび日記 > 2009年のえび日記 > 2009年8月 > 2009年8月5日(水曜日)

2009年8月5日(水曜日)

ケータイの流儀を常識と思いこむのは危険

公開: 2009年8月6日14時10分頃

やはり退化していた日本のWeb開発者「ニコニコ動画×iPhone OS」の場合 (takagi-hiromitsu.jp)」。

iPhone・iPod Touch用の「ニコニコ動画」アプリのサーバ側実装が脆弱だったというお話。iPhoneやiPod Touchの端末製造番号 (UDID) は秘密情報ではない上に詐称可能なのですが、そのUDIDに依存した認証を行っていたため、他人のUDIDが分かると、その人の非公開マイリストなどが見られてしまう……ということのようで。現在は修正されているようです。

脆弱性の話としては、認証方法の不備という単純な話なのですが、むしろ周辺の反応が興味深いですね。いちばん面白いと思ったのがこのブックマークコメント。

流儀が違うことからくるトラブルを片方を基準に退化とかいいきる傲慢さ。

以上、はてなブックマーク - kawangoのブックマーク - 流儀が違うことからくるトラブルを片方を基準に退化とかいいきる傲慢さ。 より

ツッコミがたくさん入っていますが、「流儀が違う」というのは、実は全くその通りなのですね。端末固有IDによる認証というのは、完全にケータイサイト固有の流儀です。重要なのは、その流儀が成立するにはシビアな条件があるということで、一言で言えば

ということです。この条件がないと、他人の端末固有IDを詐称して認証を突破することができてしまいます。多くのケータイサイトは、以下のような立場を取ります。

ただし、以下のような場合には問題が起こり得ます。

※また、「キャリアから来ている」だけをチェックしている場合、「ケータイのスクリプトの機能を使用して別キャリアの端末に成りすます」という手法によって問題が起きるケースがあることが指摘されています。参考: 携帯JavaScriptとXSSの組み合わせによる「かんたんログイン」なりすましの可能性 (www.tokumaru.org)

というわけで、端末固有IDによる認証というのは、かなりシビアな条件の下でギリギリ成立しているような状態です。

そして当然ですが、キャリアから来ているかどうかチェックするという手法は、ケータイサイトでしか使えません。そもそも今回の話では、iPhone・iPod Touchはケータイではないのですから、このような条件が成立する余地がありません。ケータイでないものにケータイの流儀を持ち込んでしまった時点でNGなのであって、「ケータイの流儀はケータイサイト以外には通用しない」ことを理解していなかったことが問題であると言えます。そういう意味では、「流儀が違う」ことが問題だったという評価は正しいわけです。

もっとも、「退化といいきる傲慢さ」という評価は何だかなぁと思うわけで。高木さんが「退化」と言われているのは、「ケータイの流儀はケータイでしか通用しない、特別な、きわどいものである」という認識が薄い開発者が増えてきているのではないか、ということでしょう。

ケータイ端末には大きな制約があり、PCサイトで普通に使用できる方法 (たとえばCookieによるセッション追跡) が使えないことがあります。そのため、「端末IDを使う」などという方法が編み出されているわけですが、それは決して喜んで採用しているわけではないのですね。本当は、PCサイトと同じ認証方法を採用したいのです。しかし、それができないから、仕方なく端末固有IDを使っている……と、多くの開発者はそう認識していたと思うのです。

ただ、最近はこんなコメントを書いたりする人もいらっしゃるようで……。

ただ、あなたはモバイルの常識を知らない。

あなたにはモバイルサイトの構築はできないでしょう。出来たとしても、セキュリティ意識が皆無の技術者が作る物にも遠く及ばないでしょう。

それぐらい、モバイルは一般のwebアプリの常識が通用しないものです。

以上、ockeghem(徳丸浩)の日記 携帯電話向けWebアプリのセッション管理はどうなっているか へのコメント より

何なのでしょうね、この違和感は。というか、そもそも、PCサイトのWeb開発に携わっている人のほとんどは、大なり小なりモバイルサイトの開発経験も持っていると思いますけれど……。完全に住み分けられていると思われている?

関連する話題: セキュリティ / Apple

最近の日記

関わった本など