「個体識別番号」タグアーカイブ

2011-11
22
16:42:07
auのPCサイトビューアーで脆弱性が発覚か? – 続:auのEZWebがそろそろ終了しそうな件


この記事はauのEZWebがそろそろ終了しそうな件の続編です。

当該記事では「EZブラウザとPCサイトビューアーのIPアドレス帯域が統一される」ことから場合によってはEZWebの課金システムや一部認証が脆弱性に晒され得るのではないかと危惧したのだが、もしかすると本当に現在それが起きていた(いる)かも知れない。

F001のHTTPヘッダ

F001(PCサイトビューアー)※一部伏せ字
あれ?REMOTE_ADDRが111.87.241.##?
これ、2011年秋冬モデル以降の一部機種のEZブラウザ/PCSVのIPアドレス帯域じゃないですね。
従来のPCサイトビューアーのIPアドレス帯域でもありません。

EZWebとPCサイトビューアーのIPアドレス帯域が具体的にどんなアドレスになるかは上記の通り既に公表されているのだが、どうやら現在PCサイトビューアーからアクセスすると全く別のアドレスになっているようだ。つまり以前からのアナウンスにも関わらずEZWebとPCサイトビューアーのIPアドレス帯域は統一されておらず別のものになっているようだ。これは何を意味するのか。

auの2011年秋冬モデルである「F001」のHTTPヘッダが従来機と比べて大きく変更になっているようです

通常のEZwebブラウザとPCサイトビューアーのIPアドレス帯域が統一された関係で、PCサイトビューア+JavaScriptを使っての値のねつ造ができないかどうかが気になります。

上記の記事を見ると、本来来るはずのない帯域からアクセスが来ているとのことなのですが、この辺りの問題が解決できてなかったからとかではないでしょうね。。。

恐らくk-tai.orgさんの予想か当たっているのではないだろうか。

これは想像だが、当初はもちろんEZWebとPCサイトビューアーのIPアドレス帯域は統一されたのだろう。しかしPCサイトビューアーでEZWebのHTTPヘッダーのケータイID(個体識別番号、サブスクライバーID)を偽装できる問題が発覚してしまったのでは無いだろうか。
そのため少なくとも一時的にでも問題を回避できるように、PCサイトビューアーのIPアドレス帯域をEZWebとは急遽別にしたのではないか。

以前の記事からも繰り返しになるが、ケータイIDを脆弱ながらもぎりぎり安全に保つには一般に三つの条件がある。

(1) そのアクセスがそのキャリアの携帯網(IPアドレス帯域)からのみであることをサービスプロバイダーが保証すること
(2) 携帯網ではケータイIDが偽装されていないことをキャリアが保証すること
(3) 端末の自由度を低くしてケータイIDの偽装などの可能性をできるだけ低く保つこと

このうち2についてはauでは採用されていない可能性がある。そして今回PCサイトビューアーとIPアドレス帯域を統一することで1でサービスプロバイダー側にてEZWebからだけのアクセスでありHTTPヘッダーのケータイIDをそのまま信じていいのかどうかは微妙になった。後は3の条件のみが頼みの綱となった。
すなわち「PCサイトビューアーからケータイIDを偽装して付加できることがあっては絶対にならない」のだ。もしそうなってしまえばケータイECの信頼性は崩壊する。
しかしながら、それが今回偽装できることが発覚してしまったのでは無いだろうか。

以上はあくまで想像に過ぎない。またとりあえずPCサイトビューアーのIPアドレス帯域が緊急的に変更されているのなら差し迫った危機は回避されている。

そこで以下のような公開質問をauのカスタマーサポートへ行ってみた。

「PCSVのIP帯域とセキュリティについて」
表題についてご質問です。
1. 今秋冬モデルからEZWebとPCSVのIP帯域が統一されるとのアナウンスがありますが
http://j.mp/vzi7QB
http://j.mp/tG3hDj
こちらの記事 http://j.mp/uEniDb によれば実際には記載の無いアドレスからPCSVはアクセスされているようです。
これは事実ですか?事実である場合理由は何ですか。
2. どこかでこれらはアナウンスされていらっしゃいますか。
3. http://j.mp/v4AqrD では「PCSVにてHTTP_X_UP_SUBNOの偽造が可能なのでは」との推測がされています。
私も同様の疑いを持ちますが事実関係はいかがでしょうか。
4. 3が事実であった場合、現在まで告知がされていません。それは何故ですか。脆弱性は隠したいとの意図でしょうか
なお本件は公開質問として送付させて頂いております。ご回答に付き適時適切に公開させて頂く場合があります旨ご了承下さい。
以上、お忙しい中大変恐縮ではございますが、ご回答頂けましたら幸いです。どうぞ宜しくお願い致します。

(なお質問がつっけんどうで分かりにくく感じられると思うが、これはauの問い合わせフォームが上限500文字で最低限まで文字数を削る必要があったためだ。せめて1000文字ほどあればもう少し丁寧に書けるのだが…)

結果が帰ってくればまたご報告したいと思う。
以前脆弱性公開ポリシーについてauへ質問した際には、「システムに脆弱性があることについて事実確認されアップデートによって脆弱性が解消できることが判明した場合には必ずWEBサイトで告知を実施した上でアップデート対応を実施する」「セキュリティに関わる問題については悪用される危険性があるため詳細な内容については公表しない。但し該当ユーザーについては個別に周知している」と回答頂いているので、仮に事実であれば問題解消後には必ず公表されるだろうし、また少なくともF001ユーザーやコンテンツプロバイダーには事後報告がされるはずだ。今回の件はその試金石となることだろう。

事実であったとして、F001にはセキュリティアップデートが行われるかも知れない。しかし全ての端末がアップデートをするとも限らない。とすればIP帯域の統一は簡単には戻せないかも知れない。果たしてどのような改修が行われ得るだろうか。
今後その点にも注目しておきたいと思う。

追記(2011/11/23)
Kimuraさんの検証によれば、F001のPCサイトビューアーではJavaScriptでUserAgentおよびX-UP-SUBNOの変更や追加は出来なくなっているとのこと。(以前の機種では出来た)
F001のPCサイトビューアーでsetRequestHeader
こうした仕様はIPアドレス帯域を統一する以上想定内(大前提)の仕様なのだが、にも関わらずIP帯域が分けられていると言うことは、これを回避して変更・追加する方法が存在するということになりますね

追記(2011/11/28)

KDDIから回答が来ましたが、「PCでもPCサイトビューアーでもHTTPヘッダーの書き換えが出来るのは当然のこと」「セキュリティ確保のためEZWebとPCSVのIPアドレス帯域は分離している」のだそうで・・。この自分で整えたちゃぶ台をひっくり返す回答はどうしてくれようか、混乱中です・・・。
因みにEZfactoryのお知らせIPアドレス帯域に変更がされましたね。何やらこれまでアナウンスしていた「EZWebとPCSVのIPアドレス帯域の統一」が無かったことにされているのですが・・??

とりあえずこういう質問にしておいた。

以前よりKDDI様では「2011年秋冬モデルよりEZWebとPCSVのIPアドレス帯域は統一する」とアナウンスされていらっしゃいましたが、
下記ご回答とEZfactoryを拝見する限り、これらが無かったことになっているようですね。
今後ともEZWebとPCSVのIPアドレス帯域は恒常的に分離されたままになる、ということでしょうか。
またずっと以前よりアナウンスされていた内容がここに来て突如変更された理由は何でしょうか。私が指摘させて頂いていたように
「当初統一する予定だったが、本来変更できてはいけないX-UP-SUBNOがF001のPCSVでは変更できてしまった脆弱性(または仕様抜け)
が発覚したため、予定を変更してIPアドレス帯域を分離することにした」との理由しか思いつかないのですが、いかがでしょうか。
仮にこれが事実であれば全ユーザーが影響を受けるセキュリティ問題であった訳ですから、お立場のある通信事業者としては
隠蔽するのでは無く明白に公表されるべきと思いますが、いかがでしょうか。

追記(2011/11/29)

徳丸浩氏から今回の脆弱性の詳細について公表されました。

KDDIの新GWで「かんたんログイン」なりすましの危険性あり直ちに対策された

端的にはPCSV単独の脆弱性ではなく、PHPなど特定言語との組み合わせの問題ですね。しかし結果として脆弱性として「合成」されてしまう訳で・・・。悩ましいですね。ただ当面は回避されていること、かんたんログイン時のみの問題であることはまだ幸いであるとも言えるでしょう。

追記(2011/12/03)

遅くなりましたが、11/30に上記質問に対してauより返答がありました。
「敢えて」そのまま回答を掲載します。

IPアドレスの帯域は恒常的に分離しておく予定です。
以前よりアナウンスしていた内容を変更した理由は、セキュリティ確保のためです。
セキュリティ確保のために、IPアドレスを分離したことは既に公表しております。
詳細につきましては、セキュリティの観点から回答は差し控えさせていただきます。

とのことです。

この回答への評価についてはまずは皆さんにお任せしますが、後日別途エントリーを上げるかも知れません。

2010-11
23
22:12:27
w3cもケータイ認証には困惑している件


以前Twitterでもツイートしてたんだけど一部誤解があったのでこちらでまとめてみる。

Global Authoring Practices for the Mobile Web (Luca Passani)
http://www.passani.it/gap/

上記をもって「w3cが個体識別番号に駄目出し」としていたんだけど、多少事情が違った。
実は上記には元になる対象文書がある。それがw3cのベストプラクティスだ。

Mobile Web Best Practices 1.0
http://www.w3.org/TR/mobile-bp/#d0e1925

上記のGlobal Authoring Practices for the Mobile Web(以下GAP)はこのw3cのベストプラクティス(以下MWBP)への一種の「アンチテーゼ」として書かれている感が強い。
それらの比較についてはこちらのページが詳しい。
そのほとんどはモバイルWEBでの実装方法についてなので本稿の趣旨とは外れる部分も多いのだが、例えばMWBPではCookieについてこのように解説している。

5.4.14 Cookies
[COOKIES] Do not rely on cookies being available.
5.4.14.1 What it means
Cookies are frequently used to carry out session management, to identify users and to store user preferences. Many mobile devices do not implement cookies or offer only an incomplete implementation. In addition, some gateways strip cookies and others simulate cookies on behalf of mobile devices.

(参考訳)
[Cookies]Cookieが必ず使えると考えるな
Cookieはよくセッション管理やユーザーの特定に使用されるが多くのデバイスでは利用できなかったり正しい実装がされていない。更にはゲートウェイによってはCokkieを削除したりエミュレーションしている。

これだけだ。ベストプラクティスと言いながら実は解決策は何も提示していない。

これに対しGAPは非常に現実的だ。

Practice: If an application only relies on cookies for improved service, but is not essential to the well-functioning of the service itself, then cookie support can be safely assumed.
If cookies availability is essential to the correct functioning of the application (typically for supporting user sessions), then alternative mechanisms should be assumed. URL-Rewriting is the common way to by-pass the lack of cookie support ([URLREWRITING]).

(参考訳)
アプリケーションがCookieのみをベースにできるならそれは安全と見なしていいだろう。
Cookieの利用が機能の要であるならその代替機能も必要とされるだろう(訳注:恐らくCookieが使えない場合のことを言っている)。URL-RewriteはCookieの代替に使用できる共通した方法だ。

そしてよく知られたセッションIDをURLへ付加しURL-RewriteでCookieと共存する方法を述べているのだが、その最後でこのようなことを提示している。

Finally, in many cases, operator gateways and independent portals attach unique headers and values to each HTTP request, such as phone number headers (x-wap-msisdn, x-nokia-msisdn, x-up-calling-line-id) and subscribeer id headers (x-up-subno). The headers can be exploited as unique keys to track users and the foundation for session management.
Some detailed techniques to track users are presented here [TRACKUSERS]

(参考訳)
最後に、多くの場合キャリアのゲートウェイなどは特別なHTTPヘッダーを付加する。x-wap-msisdn, x-nokia-msisdn, x-up-calling-line-id, x-up-subnoといったもので電話番号や契約者番号を示している。
これらのヘッダーをユーザートラッキングのためのユニークキーにしたりセッション管理のベースにすることは脆弱性をもたらしかねない

ここでいうX-UP-SUBNOとは日本ではauで利用されているサブスクライバーIDと同じだ。当然言及はないが、docomoのuid、SoftbankのX-JPHONE-UIDも同列と考えていいだろう。つまりこのコンテキストにおいては「日本のガラケー界は根本から駄目出しをされている」と言えるだろう。

たとえ米国でもディベロッパーがユーザーの特定をあまり行っていない、そういうニーズが無いとは思わない。
ではw3cが何故ここまで踏み込んだ言及が出来ないかは幾つか理由もあると思うのだけど(個別製品への言及は馴染まないとか。X-UP-SUBNOはクアルコムOpenwaveのWAPゲートウェイでの仕様である)、大きな理由として「ベストな方法が考えつかなかった」という点も大きいだろう。
米国ではそもそも個体識別IDを送出しているキャリアばかりではない。つまり共通した手法として利用できる環境ではない。またCookieに対応する機種や環境も(日本と同じく)100%では無いようなので結局のところよい方法が示せなかったのではないか。

一方でこういうテクニカル文書もある。ユーザーをトラックするためのTIPSという感じだが 詳しくは参照してもらうとして、日本での脆弱な「ガラケー界」を見ている者としては少し口出ししたい気持ちにもなる。
つまりは問題ではあるがよい方法が見つからなくて複数の手法を組み合わせる、または端末の特性によって切り替えるしかない、というのは日本と同じ状況とも言えるかも知れない。
かくもモバイル環境(あえて言えば従来までのモバイル機器と環境) でのユーザートラッキングや認証については米国(あるいは世界)においても共通した手法は確立されていないし誰もが困惑しているということになるではないか。

翻って日本だ。幸い(?)日本の「ガラケー界」はベストプラクティスならぬ「バッドプラクティス」の宝庫だ。
しかし見方を変えればそれはベストプラクティスの種の宝庫とも言える。
こうした情報や経験が自由に交換され、国際的に包括されたベストプラクティスが熟成される環境が何とか作れないものか。そうした貢献が出来ていない点でも日本は「ガラパゴス」と呼ばれるのだろう。

(追記 2010/11/25)
“can be exploited..”について、コメント欄でも「単に使用できると言っているだけでは」との意見を幾つか頂いていました。
個人的にも気になったので、筆者であるLuca Passani氏へ直接メールして聞いてみました。以下がその最初の返信です。

(悪意されうると言いたかったのか?との質問に対して)
not really. I just meant that, if a developer needs to track users and cookies
are not available, other headers are an option.
Regards
Luca

との返答でした。
ということで、まずは「脆弱性になり得る」との参考訳を示したことについてお詫び申し上げます。
Passani氏とはその後少し話をして、僕からは日本での簡単ログインという方法が脆弱だと言われているんだよと伝え、彼に(恐らく彼が知る限りの)海外ではどのように捉えられているか尋ねたのですが、
「プライバシーの問題は特にヨーロッパ(彼はローマ在住の恐らくはイタリア人)では問題視される。但しオペレーターはパートナー(恐らく日本における公式サイトよりも厳しい業務提携先と推測)にしか『電話番号』は通知していないし、パートナー以外はIdentifier(例えばX-UP-SUBNOなどの個体識別番号)しか受け取れない」とのことでした。
電話番号というのは多少驚くところですが欧米(他の地域は言葉の問題でよく分かりませんが)では一部のキャリアではパートナーへのサービスとして行っているようです。また個体識別番号の取り扱いについては全く意に介していない様子でもありました。これはそもそも日本での「簡単ログイン」やセッション管理としての利用は一般的ではないため逼迫した問題化していないからだろうと推測します。
以上より、本文については「日本のガラケー界は特に興味も持たれていなかった」として訂正しご解釈下さい。
(であれば”can be exploited”なんて微妙な表現しないでよー、とは思いますがそれはそれとして)

ただ付け加えると、彼の経歴を見ると分かるのですが、実は長年Openwaveでエンジニアとして働いていた人物でもあります(現在はとある企業のCEOのようです)。つまり元々のX-UP-SUBNOを生み出した会社です(その他の通知ヘッダー類についても)。故に個体識別番号のプライバシーやセキュリティ問題について聞くのはそもそも野暮だったのだろうというのが印象です。

最後に、はてブのコメントなども見て多少気になったのですが、現時点において、ではモバイル認証によい方法がないのかと言えばそれは違います。単にCookieを使えば良いだけです(Passani氏も指摘している通り)。これは日本でももちろん同様です。
但しCookieが全面的には利用できないというある意味限定された環境下でのプラクティスの話と言うことになりますので誤解無きようにお願いします。
また個体識別番号の取り扱いについては国や地域で状況やプライバシーへの考えなども違うので一概には言いにくいかも知れませんが、しかし日本での経験が有意義なものに転嫁できるはず、という点はやはり変わりないだろうとも思います。
今回は相手が悪かったところもあるのですが(笑)、逆に如何に日本の実情が知られていないか伝えられていないかと言うことも肌で感じられたので、そうした取り組みが業界全体で行われるなら喜ばしいことだし重要な貢献であろうと思います。
以上、ご報告まで。

2010-04
03
01:48:15
ああ、これで日本のケータイWEBが終わる


SIMロック議論にとっては慌ただしい一日だった。
Softbank松本氏の説明会に始まり、総務省のヒアリング、フリーライターたちのUstream座談会(まあ議論の場ではなかったね)と続いた後に(どれもUstreamやTwitterで中継してもらえたのは有り難かった。この場を借りて関係者にお礼申し上げます)、政府は早々に原則SIMロック解除の方針を打ち出した。

ユーザーの求めに応じてSIMロックは原則解除へ、総務省の公開ヒアリングで結論

方針は原則一律禁止との方向性のようだ。できれば既存の出回っている端末もロック解除したいらしい。
個人的には併存がよいと思うのだけど、恐らく官僚ではなく政治主導とやらで拙速に決めつつあったのではないかな。

まあその結論でもよいと言えばよいとも思うのだけど、ただこれでほぼ「日本型ケータイWEB」の崩壊もほぼ決まったようなものだ。
SIMフリー化によって他社回線で端末が使われる可能性を考慮しなくてはならなくなった。つまり日本のケータイWEBを脆弱に支えてきた端末ID(サブスクライバーID、個体識別番号)はもうこれまでのコンテキストにおいても信用ならないものとなることが確実になった。

繰り返すが現在のケータイWEBで端末IDをかろうじて信頼できるのは

(1) そのアクセスがそのキャリアの携帯網からのみであることをサービスプロバイダーが保証すること
(2) 携帯網では端末IDが偽装されていないことをキャリアが保証すること
(3)  端末の自由度を低くして端末IDの偽装などの可能性をできるだけ低く保つこと

という三要素があるからだ。
詳細はまた別のエントリーに回すとしても、この三位一体が崩れることでその端末IDが偽装されていないことを確実に保証することはほぼ不可能になる。
つまり完全SIMフリー化後のケータイWEBでは端末IDという「認証」を用いることはできなくなるはずだ。

まあ、しらばっくれてこのまま突き進むことも考えられるが、一体キャリアはどうするだろうね。
なおこれらは従来の「ガラケー」(およびガラケー向けアクセスポイント)での問題であって、スマートフォン系は「まだ」影響は受けない。

今後総務省でガイドラインを策定するとのことだが、上記に気付いた時果たしてどのような対応にするんだろうか。あるいはまるで気付かずスルーの可能性も高いけど。
もしそうなら、「結局得をするのは裏を分かっている犯罪者たちばかりなり」ということになってしまうんだろうか。