■ 無責任なキャリア様に群がるIDクレクレ乞食 ―― 退化してゆく日本のWeb開発者

契約者固有IDによる「簡単ログイン」の危うさ

一年ほど前、「携帯電話の「簡単ログイン」は個体識別番号を使ってこんなふうに作れます | WEBクリエイターの木」といった、この手の話題が盛んにホッテントリ入りしていた。このエントリにもおびただしい数の無言ブックマークが付けられている。

中には「なりすましとか問題ないんだろうか？」「あれってHTTPヘッダだから簡単に偽装できたんじゃ？」「重要な個人情報まで通過できるような構造にしちゃ絶対ダメ」といった声も見られるが、ほとんどはそのまま鵜呑みにしている様子だった。

IDだけで「認証」したつもりになってはいけないことは、昨年2月23日の日記「携帯電話向けWebアプリの脆弱性事情はどうなっているのか」でも書いた。

そもそも、「ID/パスワードを毎回入力するのでは携帯の場合では特に面倒です」などといって、端末IDをパスワード代わりにしてはいけない。端末IDは他のサイトにも同じものが送信されるのだから、パスワード代わりになどならない。 携帯電話向けWebアプリの脆弱性事情はどうなっているのか, 2007年2月23日の日記

これに対し、「y-kawazの日記:珍しく間違った批判をしている高木先生」というトラックバックを頂き、

キャリア毎にIPアドレス制限をする限りにおいては端末IDやユーザIDは偽装不可能*3なので、むしろ他人でも入力可能なパスワード認証よりも強力な認証かもしれません。逆にいえばその認証方法があるからこそ携帯業界ではクッキー無しでのセッション管理が可能になっていると言えます。なので高木氏の以下の批判は的外れと言えるでしょう。 携帯業界の認証事情, y-kawazの日記, 2007年2月24日

と言われたが、そんなことはわかっていて言っているのであって、脚注1で「IPアドレスを確認すればそれで本当になりすまし不可能にできるのかは知らない。それは携帯電話事業者が公式に示すべきことだ。」と言っている。このことについて、「おさかなラボ - 携帯電話のIPアドレス制限神話」も次の通り批判している。

それから1年が経過し、「iモードID」の全サイト送信も始まり、その後もますます、「IPアドレス制限 + 契約者固有ID」による「認証モドキ」のサイト構築手法が広まりつつある。「簡単ログイン」で検索してみるとその様子が見えてくる。

「IPアドレス帯域」をどうやって安全に更新するのか

先日のWASForum Conference 2008でも、「携帯電話向けWebのセキュリティ」と題して、GREEの藤本真樹氏に、ケータイWebにありがちな脆弱性についてご講演頂いたが、その際に、この「IPアドレス制限」のやっかいな点が議論となった。このときの様子は「水無月ばけらのえび日記」にレポートされている。

質問 携帯キャリアのIPアドレス範囲のチェックはどうしているか?

→ アンテナでキャリアのサイトをチェックしたりして頑張っている 逆引きするのはどうか?

→ それは良いかもしれない 感想 質疑応答の「逆引きで見る」という話は瞬間的に「ヤバイかも」と思いましたが、高木さんが「そのDNSが安全かどうかという問題がありますが」とナイスフォロー。逆引きで判断する場合、PTRの値はそもそも信用できないのでパラノイド検査が必須になりますが、それでも大丈夫かどうかは怪しい感じがしますね。 「WASForum Conference 2008: 携帯電話向けWebのセキュリティ」, 水無月ばけらのえび日記, 2008年7月5日

携帯電話会社（キャリア）は、上の「おさかなラボ」のエントリが参照しているように、「IPアドレス帯域」と称して、キャリアのゲートウェイのIPアドレスの範囲を公表している。

これが、（予告なく）しばしば変更される（通常は追加が行われる）ため、すぐに対応しないと、アクセスできないユーザが出てしまうため、ケータイWebの運営者らは、このページが更新されていないか、アンテナ等を使って常時監視しているというわけだ。私の記憶では、WASForumでは、「メールマガジンで更新情報を得ている」という発言もあったように思う。

このとき心底ヤバいと私は思った。WASForumでは時間が迫っていたので言い出す機会がなかったが、「メールで更新情報を得ている」となると、その担当者に偽の更新通知メールが送られたら、どうなるだろうか。

つまり、攻撃者のIPアドレスが混入された、偽のキャリアIPアドレス帯域表がメールで送られてきたとき、それを信じてWebサイトに設定してしまったらどうなるか。攻撃者はインターネットからそのサイトにアクセスできてしまう。攻撃者は、事前に入手しておいた有効な契約者固有IDを、ひとつひとつヘッダにセットして繰り返しアクセスすることで、大量のユーザに連続して成り済ましログインできてしまう。

サイトの機能によっては、クレジットカードを不正使用されたり、登録されている住所氏名等の個人情報を抜き出されるといった被害が出るだろう。しかも、それは、短時間に大量に抜き出されてしまう。

Webサイト運営者に対し、「メールの内容は信用するな」という忠告はできるだろう。更新の通知だけ受け取って、新しいIPアドレス帯域表はキャリアの公式サイトから入手するというのが正しい。

しかし、キャリアの公式サイトからどうやって安全にIPアドレス帯域表を得るのか？

キャリア各社は、IPアドレス帯域の一覧表を以下のURLで提供しているが、なんと、いずれのページも https:// で閲覧しようとしても、できないようになっているのである。

馬鹿じゃないのか。このようなセキュリティに関わる情報公開ページは https:// で提供する（閲覧者が望めば https:// でも閲覧できるようにする）のが当然なのに、携帯電話会社ともあろうものが、そろいもそろってこんな認識なのだ。

（8月2日追記: ソフトバンクモバイルについては「7月27日の日記に追記」参照のこと。）

それをまた、ケータイWeb関係者の誰ひとり、疑問の声をあげていないことがまた、信じ難い。何の疑問も抱かずにこれをそのまま設定しているのだろう。

こんな状態では、ケータイWebの運営者は、DNSポイゾニング等で偽ページを閲覧させられても、気付かずに、偽アドレス入りの帯域表を信じてしまうだろう。

つまり、たとえば、example.jp というケータイサイトを運営している会社が example.co.jp であるときに、攻撃者は、example.co.jp のDNSサーバに毒入れ攻撃を続けることでそれに成功すれば、www.nttdocomo.co.jp や www.au.kddi.com、developers.softbankmobile.co.jp、developer.emnet.ne.jp のアドレスを偽サイトのIPアドレスに書き換えることができてしまう。その頃合いを見計らって、攻撃者が、サイトの管理者宛に、キャリアからのメールを装って更新通知メールを送れば、サイト管理者は、「キャリアのIPアドレス帯域が更新されて、新しいアドレスが追加された」と認識してしまうだろう。社内のアンテナでチェックしているなら、メールがなくても自動的に騙されてしまう。

ちょうど今、DNSポイゾニングの現実的危機が話題になっているが、元々DNSはそういうもので、今回話題の対策をしても、確率的にいくらか毒を入れられる危険性は残るのだから、このレベルのセキュリティに関わる用途で、DNSを信用してはいけない。

DNSキャッシュポイズニング脆弱性、JPCERT/CCが“緊急”で再注意喚起, Enterprise Watch, 2008年7月25日

もっと危険なことに、キャリアのIPアドレス帯域表を自動的にダウンロードして、自動設定までやっていると思われる人たちがいるようだ。

携帯キャリア各社のIPアドレス帯域を取ってくるスクリプト, spiritlooseのはてなダイアリー my $url = 'http://www.nttdocomo.co.jp/service/imode/make/content/ip/about/'; my $content = get($url); while ($content =~ m!<FONT COLOR="\#009900"><B>(.*?)</B></FONT>!g) { （中略）本当はcronでACLを更新とかやりたいよなぁ・・・ （中略）CPANにアップされたようです。

データを取りにいっているURLは http:// なので、DNSがやられたらイチコロだ。

携帯電話会社は、「IPアドレス帯域」と称するものを早急に https:// ページでも見られるようにするべきである。

そういうことは、ケータイWebで生計を立てている者達が、キャリアに要求するべきことだ。

だが、どうもケータイWebのサイト運営者たちは、どういう遠慮があるのか知らないが、キャリア様には何ひとつ要求できないらしい。「IPアドレス帯域」の表はHTMLで提供されているわけで、これがXMLでデータ化されるなり、Web APIで提供されるようになれば、業界は皆ハッピーに違いないが、それが実現されていない。WASForumでも愚痴が漏れていたが、小さな声で愚痴をこぼす程度で、誰もキャリア様を批判したりはしない。

こんな状況で事故が起きたら、キャリアに損害賠償請求したらいいと思う。https:// で提供するのが当然なのに、それを怠っていたのが原因と主張することはできるだろう。

キャリアは無責任を通せるか

とはいえ、上の方でも参照したように、各キャリアはいずれも、「本情報はあくまでも目安としてご参照ください。iモードセンタ以外から本IPアドレスでのアクセスがない事を保証するものではありません。」などと、以前からずっと無保証を宣言してきた。

キャリアのこの宣言は、「契約者固有IDは、顧客の行動分析や、悪質ユーザの排斥などに使うもので、セキュリティに関わる目的では使用しないでください。」という意味にとれる。なぜなら、契約者固有IDが偽装されないか否かは、IPアドレス制限が確実に行えることが必須の前提であるのに対し、顧客行動分析や悪質ユーザ排斥においては、それほどではないからだ。

ところが、その状況は今年の3月末に一変している。NTTドコモは、契約者固有IDが「簡単ログイン」のために使うものであることを公式に認めたのだ。

重要なお知らせ: 『iモードID』の提供開始について, NTTドコモ, 2008年2月28日 ■iモードIDの目的 (1) お客様利便性の向上

お客様がiモード対応サイトをご利用いただく際に、特別な操作をすることなくカスタマイズされたページを表示することができるようになります。 (2) iモード対応サイト提供者様のビジネスの発展

お客様の利便性向上により、iモード対応サイト利用率の向上につながります。

ここまで明確に、契約者固有IDを「認証」目的に使えと言っておきながら、その必須の前提であるIPアドレス制限のための「IPアドレス帯域」情報について、「本情報はあくまでも目安としてご参照ください」などという無責任が許されるのか 。そのうち、法廷ではっきりされたらいいと思う。

検索クローラーのIPアドレス帯域に注意

最近さらに情勢は危うくなっている。

モバイルSEOのポイント実践編--端末識別、IPアドレスに最適化する, CNET Japan, Marketing CHANNEL, 2008年6月27日 5.IPアドレスによるアクセス制限 オープンな一般のウェブと異なり、モバイルサイトでは、各キャリアのネットワークからのみアクセス可能にしているサイトが多い。 ここで問題になるのは、モバイルサイト用クローラーの多くがキャリアの保有するネットワークと異なる帯域で動作している点である。Googleモバイル、Yahoo!モバイルのクローラーのIPアドレス帯域は下記の通り。 （略） 検索結果に表示されるためにはキャリアのネットワークに加えて上記の帯域からもアクセス可能な状態にしておく必要がある。

キャリアのゲートウェイアドレスだけでなく、検索クローラのIPアドレスまで、アクセス許可に設定するケータイサイトが増えてきているようだ。

Googleのクローラなら信用できる（契約者固有IDでなりすましアクセスするなんてことは犯罪だからやらないだろう）と思って、これらのIPアドレスからのアクセスを普通に許してしまうサイトは多そうだ。

「Googleモバイル」について「IPアドレス帯域」が公開されているようだが、その公開方法がまた杜撰で酷い。よりによって、blogspot.com 上のブログで公開しているのだ。

Google モバイル検索についてのウェブマスター向け情報, Google Japan Blog, 2008年5月10日 Google モバイルウェブクローラーのIP アドレス帯域 日本向け Google モバイルウェブクローラー（モバイルウェブサイトを定期的に巡回するプログラム）の IP アドレス帯域はこれまで非公開としておりましたが、以下のとおりIPアドレス帯域の変更および公開を行います。なお、本変更は "Googlebot-Mobile" が含まれるモバイルウェブクローラーのみが対象となります。 2008 年 6 月中旬以降順次

以下の IP アドレス帯域を利用します。 （略） この情報は予告なく変更される可能性があります。また、この IP アドレス帯域以外からのクローラーアクセスがないことを保証するものではありません。

なんというセキュリティ音痴。これがセキュリティに関わる情報だという認識がないのか。当然、ここを https:// で閲覧しようとしてもできない。

Googleというと、世界最高峰のIT技術者が集結していて、セキュリティにもプライバシーにも配慮した素晴らしいサービスを提供してくれるという印象があるが、日本のグーグルだとこんなもんだ。

「IPアドレス帯域」情報の提供方法にしても、キャリアのものも含めて安全に情報共有できるようなフレームワークを構築したりするのが、本国Googleの人たちのやり方だが、日本のグーグルはそういうことをやっていない。しょぼい。

そして、このしょぼいやり方に、誰一人文句を言わず、おびただしい数の無言ブックマークを付けている。

日本のWeb開発者たちはどんどん退化してゆく。

さらに言えば、

「今のうちから、許可IPに加えておくと良いかもしれません」などと言っているが、5月の時点でもし、そのIPアドレスが他人のものだったら（Googleのものでなかったら）どうするんだ？

もっとも、既に確保しているから予告している可能性は高いわけだけども、では逆に、このアドレスがいつまでGoogleに所有され続けるかということについて考えたことはあるだろうか。IPv4アドレスが枯渇しつつある今、アドレス割当が整理されて、このアドレスがGoogleから回収され、中国に割り当てられるかもしれないわけだが、ケータイWebの運営者達は、そういう可能性をちゃんと想定しているのか。

キャリアだけでなく、検索クローラにまでアクセスを許すとなると、検索クローラは無数にあるわけで、どのクローラは信用できるかといったことを評価しなくてはならないだろうし、廃止されたIPアドレス帯域をきちんと外していかないといけない。

あるいは、そういう心配がいらないように、キャリアからのアクセスでは契約者固有IDを解釈するが、検索クローラからのアクセスでは契約者固有IDを解釈しないように、Webアプリケーションを設計する必要があるだろう。

というか、そもそもIPアドレスで何かを制御しようとするのが誤りなんだが、ここまで常態化してしまった。

「IPアドレス帯域」で検索してみると、OKWaveや人力検索はてなで「IPアドレス帯域を教えてください」みたいな質問をしている人が散見される。この人たちは、見ず知らずの人が教えてくれた情報を鵜呑みにして、自分のケータイサイトに設定しているのだろうか。そんな輩が契約者固有IDを含む個人情報取り扱いサイトを運営しているかと思うとゾッとする。

iPhoneに契約者固有ID送信機能が搭載される日

10日の「日本のインターネットが終了する日」と22日の「あとがき」では、こうして退化してゆくケータイWebが、日本のスタンダードとなってしまい、いつの日か、PC向けの普通のインターネットまで、単一IDの全サイト送信が必須になってしまうのではないかと危惧した。

これに対し、「iPhoneがきっとそれを止めてくれる」と希望的観測を示す人が続出した。

iPhoneと携帯契約者固有IDと複アカと青少年ネット規制によるケータイ闇ナベ狂想曲, Web屋のネタ帳, 2008年7月21日 2008年7月。ここへきてiPhoneが豪快に殴りこみ。もちろん空気読む気なぞさらさら無し。携帯契約固有ID？端末シリアル番号？はぁ？日本の事情なんか知るか。っていうかお元気ですかそこのガラパゴス諸島のみなさん。俺様はアップルだ、いいからそこに行列しろと。

むしろ「ケータイ」を変えようよ, 崎山伸夫のBlog, 2008年7月23日 iPhoneはyomoyomoさんがFSFの批判を紹介しているように決して自由な端末ではないが、日本のケータイ文化の文脈とは縛るところが明らかに異なる端末であって、そうした多様性が日本のケータイ文化を市場を通して揺るがし、コンテンツプロバイダーとキャリアの態度を変えさせることに私は期待している。

なぜ、iPhoneだとそうだと思えてしまうのだろうか。先日の「あとがき」で「Windows MobileのIEでどうやって契約者固有IDを送信しているか」を書いたように、EMnetでは、Windows Mobileの普通のInternet Explorerが契約者固有IDの全サイト送信をやっているわけで、これは単にイー・モバイルが提供しているプロキシサーバを通すように設定されているからであって、同様のことはiPhoneでだって容易にできる。

ソフトバンクモバイルが「Yahoo!ケータイがiPhoneでもご利用可能になりました!」として、プロキシサーバの設定を案内するという事態が考えられる。

その必要があるのかというと、NAVITIMEの動向が気になるところだ。iPhoneにもNAVITIMEがApp Storeで提供されている。私はiPhoneは持っていないのでiPhoneでは確かめていないが、iPod touchでNAVITIMEを動かしてみたところ、下の図のようになった。

iPhoneには似つかわしくないケータイふうの画面で「会員登録/解除」 というメニュー項目を選択し、「会員登録する」を選択すると、

■お知らせ 誠に申し訳ございませんが、iPhone版NAVITIMEの会員向けサービスは現在準備中です。サービス開始まで、いましばらくお待ちください。

という画面が出た。契約者固有IDがないとどうやって会員登録システムを作ったらいいのかわからないんじゃないのか……というのはさすがに穿ち過ぎだと思いたい。

NAVITIMEからソフトバンクモバイルに対して、契約者固有ID送信用プロキシサーバの用意を要請している……なんてことがなければいいのだが……。

今後の日記予定