mylo COM-2の欠陥

昨年7月1日の日記「アドレスバー百景 その1」で旧型myloにアドレスバーがない件について書いていた。今年、そのmyloに新型「COM-2」が発売されたというので、アドレスバーがどうなっているか確かめるため、3月に購入した。

3月某日、myloが家に届いた。箱を開けて取り出し電源を投入。Webブラウザを起動して早速アドレスバーを調べてみると、概ねPSPと同様の方式になっていた。あまり良い設計ではなく、がっかりした。

次に、SSL接続時のオレオレ証明書の警告はどのようになっているだろうかと、オレオレ証明書で運用されているサイトにアクセスしてみた。

まず、https:// ページに入ろうとしていることを示す「セキュリティ保護がされているページに移ります」というお知らせ画面が出た（これは正規のSSLサイトでも表示される）。ここで「OK」ボタンを押すと……

なんと、何の警告もなく、ページが表示されてしまった。

念のため証明書の内容を確認してみると……

自己署名の証明書になっていた。

これは明らかにセキュリティ脆弱性だ。この種類の脆弱性（ブラウザが証明書を検証しない）は、伏せておくよりも早く事実を公表して利用者に注意を促した方がよいという考え方もあり、すぐに日記に書こうかとも考えたが、このケースではIPA、JPCERT/CCを通した方が修正が早く行われるのではないかと考え、IPAの脆弱性届出窓口に通報した。

この届け出は3月27日に受理された。そして本日、JVNで公表となった。修正版が提供されているので、利用者はアップデートで対応できる。

脆弱性情報の届け出では、意見として次のように書いておいた。

盗聴やなりすましの危険性がある異常事態であることを明示して警告し、ボタンを押したくらいでは容易に接続できないような、ユーザーインターフェイスにするべき。 特に、公衆無線LANでの使用を前提としているこの製品では、これは現実的な危険をもたらす重大な欠陥。

これが通じたのか、修正バージョンのmylo COM-2では、図4の警告が出るように改善された。

それにしても、信じ難い脆弱性だった。ここまで誰でも即座にわかる脆弱性に出くわしたのは、これまでの8年の経験の中で初めてだった。SSLの実装について何のテストも行われていなかったとしか考えられない。

それはともかくとして、この機会に述べておきたいのは、ここ数年のモバイル環境では、この脆弱性は極めて現実的な危険をもたらすという点である。

SSLが本当に必要とされる時代

ここ数年で、携帯型ゲーム機器に無線LAN機能が搭載されるようになり、公衆無線LANサービスの需要が高まっているようである。特に、昨年発売されたiPod touchが、無線LAN経由で閲覧するWebブラウザを搭載し、この使い勝手がたいへん快適であることから、おそらく、これまでになく広い層の人々が、公衆無線LANサービスを使い始めているのではないかと推測する。

実際私も、通勤の際には駅までの徒歩の区間で、livedoor Wirelessを利用して、iPod touchのSafariで、ネット情報のチェックをしている。東京の山手線の沿線とその内側ではほとんどの地域で（ちょっと移動すれば）livedoor Wirelessのアクセスポイントに接続できる状況になっている。

ここで問題となるのが、偽アクセスポイントの危険性である。livedoor Wirelessをはじめとして、現在多くの公衆無線LANサービスにおいて、アクセスポイントへの接続のアクセス制御が、WEPキーによって行われている 。そして、そのWEPキーは、当該サービスの利用者全員に共通の同一のキーとなっている。サービス加入時にメールでWEPキーの文字列が送られてくるのだが、その文字列でGoogle検索してみると、公開Webページに書き込んでいる人もいるようだ。これは、livedoorだけでなく、マクドナルドなどで使えるBBモバイルポイントなどでも同じである。

このような公衆無線LANの運用方法自体を批判する声もあるだろうが、現実的にはやむを得ない状況のようだ。全員共通のWEPキーはあってないようなものであり、ANY接続を拒否するためと、せいぜい電波法109条の2に基づく法的防御の意味 くらいしかない。

例えば、livedoor Wirelessを使う場合、無線LANクライアントに、livedoor WirelessのSSIDである「livedoor-web」と、そのWEPキーである「XXXXXXXXXXXXX」（誰でも知ることができるがここでは書かない）を設定することになるのだが、その設定をした無線LANクライアントは、これと同じ名前のSSIDと同じWEPキーが設定された無線LANアクセスポイントであれば、どこのものであろうと自動的に接続してしまう。

そのため、livedoor以外の誰かが自分の所有する無線LANアクセスポイント機器に、「livedoor-web」というSSIDを設定し 、livedoor Wirelessに加入して知ったWEPキーを設定して、アクセスポイントを設置したら、周辺を行き交う人がiPod touchなどを使ってネットサーフィンすると、そのアクセスポイント経由でインターネットにつながるという事態が生じ得る。

このとき、そのアクセスポイント設置者は、通信内容を盗聴できてしまうだけでなく、偽DNSサーバを設置することで、いわゆるpharming攻撃ができてしまう。つまり、例えば、iPod touch利用者が銀行へアクセスする際に、ブックマークから銀行を選んでアクセスしたとしても、偽アクセスポイントに接続しているため、偽DNSにより偽のIPアドレスへつながってしまうという事態が生じ得る。アドレスバー上では本物の銀行のドメイン名が表示されているのに、実際には偽サイトだということになる。

しかし、本来ならば、ここで役に立つのがSSLである。利用者がパスワード等を入力する際に「安全なWebサイト利用の鉄則」の手順にしたがって行動し、https:// のページであることと、アドレスバーに表示されたドメイン名が知っている本物サイトであることの両方を確認してから入力するようにしていれば、たとえ偽アクセスポイントに接続していても、偽サイトにつながることはない。偽サイト設置者が偽サイト用のサーバ証明書を用意しても、ブラウザが、証明書が不正であることを検出し、オレオレ証明書の警告を出すからだ。

ところが、mylo COM-2は、この不正な証明書の確認を怠っていた。利用者が注意していても、偽サイトにつながってしまう。

オレオレ警告を無視することの危険性については11月25日の日記「オレオレ警告の無視が危険なこれだけの理由」でも書いたが、「SSLってそんなに重要なんですか・・・？」みたいな声が出てくる。「『インターネットは盗聴可能』というけど、実際どこで盗聴できるというの？」という声がよく出てくるのだが、最近の公衆無線LANの普及はまさにその危険が現実になっているのであり、myloはまさに、そのような場で使うことを想定した機器であったはずだ。

日本のWebブラウザ実装者の怠慢

Mozillaにせよ、Internet Explorerにせよ、メジャーなWebブラウザは基本的に、米国を中心にした主に英語圏の人たちによって開発されてきた。Operaの事例もあるが、それらは世界の人々からの批判的評価にさらされることで、いくつものセキュリティ上の問題点が改善されてきている。

その一方、携帯電話やゲーム機等、日本企業が独自にWebブラウザを実装している製品が多数ある。日本がコンシューマーエレクトロニクスで世界をリードしてきたがゆえであろう。しかし、そうした製品は、開発者の顔が見えないものばかりだ。セキュリティ上の改善について能動的に耳を傾ける様子がみられない。携帯電話のWebの世界は、秘密保持契約で技術者が縛られ、オープンな議論が許されない閉鎖的な環境に陥っている。そうした製品にはアドレスバーが存在しないものが多く、それでは駄目だということを以前から繰り返し各方面に対して言ってきたろころだが、今のところ改善が見られない。

そして今回の不具合であるわけだが、これは明らかに脆弱性であるので修正されたけれども、その他にもある、セキュリティ上の不備について、どうしたら改善してもらうことができるのだろうか。

例えば、サーバ証明書の内容を確認する機能はどうか。

サーバ証明書の内容を目視確認することが、どんなときに必要とされ、何を確認すればよいのかは、「安全なWebサイト利用の鉄則」の「(A) 初めて訪れたサイトの場合」に説明されている。知らないドメイン名のサイトを訪れたときに、自分の知っている組織が運営しているサイトかどうかを、証明書の発行先の組織名で確認する。

しかしどうだろう、mylo COM-2のサーバ証明書の表示機能では、図5のように、普通の人には何が何だかわからないものが表示される。

何が表示されているかというと、上から順に見ると、最初に表示されているのは中間認証局の証明書だ。最初に中間認証局証明書の発行元であるルート認証局の名前、そしてその発行先が中間認証局の名前、その下を見ていくとやっと最後に、肝心のサーバ証明書の発行先の組織名が現れる。こんな形式で見せられても、どこをみればいいのかさっぱりわからず、誰も見なくなってしまうだろう。

これは、携帯電話でも似たような状況だ。例えば、図6は、ウィルコムのAH-K3001Vのサーバ証明書表示機能の様子だが、図のように、発行者と発行先が逆に表示されるという杜撰さだった。

auのEZwebブラウザはというと、図7のように、データをただ垂れ流しているだけだ。

たいていの機器で、証明書の表示機能はメニューの奥深いところにひっそりと用意されている。「用意しないといけないようだから付けた」といった単純労働で製作されていて、「ユーザに活用してもらうにはどう設計すれば良いか」といった知的な工夫は見られない。

折しも先日、PayPalがSafariからのアクセスを遮断するのではという話が出ていた。後にPayPalによって否定されたようだが、EV-SSLに対応する様子を見せないApple Computer に対する牽制だったのかもしれない。PayPalはフィッシング被害の草分け的存在であり今も被害が盛んなようだ。それだけ深刻だということだろう。

iPod touchのSafariはサーバ証明書の確認機能がないとか、スクロールするとアドレスバーが消えてしまうという話は、10月20日の日記にも書いていたが、先日のUSENIXのUPSEC'08 (Usability, Psycology, and Security) で「iPhish: Phishing Vulnerabilities on Consumer Electronics」という発表があり、同様の指摘がされたようだ。この論文では、Nintendo DSと Wiiも槍玉に挙がっている。

新型myloのアドレスバーはイマイチでがっかりしたと上で書いたが、どんなふうになっているかというと、図8の画面のように、ブラウザのコンテンツ領域の上部に被さる形で巨大なアドレスバーが現れる。

これはいかにも邪魔なもので、「DISP」ボタンを押すことで消せるようになっている。図9の例は、myloの公式コンテンツなのに、アドレスバーが邪魔で「閉じる」ボタンが押せない様子を示している。

こんな設計では皆、アドレスバーを消して常用してしまうだろう。おそらく、誰かの指示でアドレスバーを付けることにはなったものの、ろくに知的な検討をすることもなく「邪魔だから消せるようにしておけばいいや」的な発想で作られたんだろうと推察する。

とりあえず日本のWebブラウザ実装に携わるベンダらは、定期的に勉強会を開くなりして情報共有をしてはいかがだろうか。私はいくらでもアイデアを提供するつもりでいるのだが。例えば、「日本電子認証協議会」は現状では認証局側の集まりのようだが、ブラウザ実装ベンダも参加して、EV-SSLに限らず、ブラウザに欠かせない実装の手引書でも整えたらいいのにと思う。