水無月ばけらのえび日記

bakera.jp > 水無月ばけらのえび日記 > WASForum Conference 2010: どうするケータイ認証

WASForum Conference 2010: どうするケータイ認証

2010年5月22日(土曜日)

WASForum Conference 2010: どうするケータイ認証

公開: 2010年5月31日0時45分頃

WASForum Conference 2010、ソフトバンクの脆弱性の話に続き、産総研の高木浩光さんによる「どうするケータイ認証」。

ケータイWebの世界

従来、WASForumではあまり扱ってこなかった分野。その理由は……

  • 独自方式、仕様が明確でない
  • NDAの壁 (特に公式サイト)
  • 契約で縛った独自世界なら、キャリアが責任を持つべき。部外者は何かを言うべき立場にない

しかし、昨今では……

  • ケータイ独自方式が一般サイトにまで侵出
  • 2008.3 iモードIDがスタート
  • スマートフォン対応の活発化
ログイン認証の欠陥
  • ID (契約者固有ID) による認証を JavaScript + DNS Rebinding で突破される問題
  • 海外ではあまり問題にならない
  • DNS Rebindingという手法は古くから知られていたのだが、そんな認証は日本でしか使われていないため、海外では問題になりようがない
    • iモードIDを使った認証がDNS Rebindingで突破される件、2010年1月4日に読売新聞の記事となる
    • その際のdocomo広報の言い分: JSの危険性は皆さんご存じのとおりであり……?

※正確には、読売に載ったコメントは「ジャバスクリプトの安全な利用はサイトを作る側にとって基本的知識であり、具体的に説明はしていない」というものだったようです。この話では攻撃者がJavaScriptを使うことを想定しているので、安全な利用も何もないのですけどね……。

欠陥の例
  • サイボウズOffice (JVN#87730223 (jvn.jp))
  • OpenPNE JVN#06874657 (jvn.jp))
  • はてな、日経就職ナビ、などなど……

これらは、そもそもIPアドレスの制限をしていなかった (DNS Rebinding以前の問題)

ケータイIDによるログイン認証

ケータイID (契約者固有ID) の利用によるログイン認証、IPアドレスを制限していればOK?

OpenPNE2.14の事例
  • 携帯キャリアのIPアドレスをプログラム中にハードコード
  • 対応キャリア: docomo、au、softbankに加えて EMnet (EMobile)
  • IPアドレス制限の処理、ログイン判定に使用するとID抽出の処理は、別々のモジュールで行われていた

攻撃シナリオ …… EMnetで接続し、他社のケータイIDを送信すると突破される。

誰の脆弱性なのか?

この問題は誰の責任なのか?

EMnetのProxyの動作
  • EMnetのProxyはX-EM-UIDを挿入
  • 既に (偽物の) X-EM-UIDがついている場合は、それを消して上書きする
  • 他のヘッダについては関与しない。他社のIDを示すヘッダがあってもスルーしてしまう
他社のIDを削除しないから悪い?

EMnetのProxyが他社のIDを削除するべき?

  • どうやって削除するのか?
  • 他社が新たなIDを創設するたびに対応する?
  • X- で始まるフィールドを全て削除する?

いずれも現実的ではない。

従って、Webサイト側の脆弱性ということになる (いわざるをえない)。

無責任な解説の蔓延
  • ケータイIDによる認証の方法には公式な解説がない
  • 一方、素人のずさんな解説が蔓延している
  • 典型的な解説 …… アクセス制限は .htaccess で処理、ただし ENnet や Googlebot などは通す。アプリでID取得
EMnetだけの問題ではない

Softbankにも同様の問題

  • 2009年夏にblog界隈でささやかれていた話
  • 海外製端末向けAPNにダイヤルアップし、Proxyサーバを経由するとSoftbank携帯のIPアドレスになる
  • X-JPhone-UIDを削除した上で本物を付与する (なりすまし不可)
  • それ以外のヘッダには関与しない
  • User-Agentの中の端末シリアル番号は書き換えないため、なりすまし可能 (そもそも書き換え困難。端末シリアル番号を含む User-Agent の書式は仕様はBNFで定義されているでもなく、いかにも日本人的な「何となく」のものでしかない)
  • ただし、User-Agentが所定のもの以外ならアクセスが拒否される。Softbank以外のUAを拒否しているものと思われる
User-Agentの判定を突破
  • 後ろにつけた文字列は無視される。例: User-Agent: Softbank...KDDI-
  • アプリのロジックによっては突破され得る
  • CGI RESCUEの「会員制携帯サイト簡単ログイン」がこの手法で突破可能だった
誰の責任?
  • これはWebアプリ側の脆弱性なのか?
  • キャリアは公式情報を公表していない
  • 何をどこまですればよいのか不明。X-JPHONE_UIDが通るとか……きりがない。
IPアドレス別のキャリア判別なら安全?
  • キャリアから正式に公表されているわけではない
  • 公式サイト向けにはある?「当該ケータイIDを使用する際には当IPアドレスから……」という記述があるのではないかと想像
  • キャリアは他キャリアのことは考慮してくれない。3キャリア連携の都合などは知ったことではない
SSL接続で出たID
  • end-to-endのSSL接続で送信された任意のIDはそのまま届く (Softbank, EMnet)
  • https: の機能を提供していないつもりでも、稼働している場合があるので注意
不確実なIPアドレス制限

キャリアが出している「IPアドレス帯域」の情報

  • https:での取得が出来ない
  • 機械的に処理できないカタチでの提供
  • 保証しない(あくまでも目安)という宣言
  • 誰も信頼あるシステムを構築しようとしない
  • Google日本法人もblogで公表する体たらく
  • サイボウズOfficeはさじを投げた (「お客様で制限してください」と注意喚起する以上のことはできない)
SSL必須前提では使えない

割り込んだ攻撃者は任意のIDを送信できる

端末付与型のリスク
  • EZ番号は end-to-end で送られる (ゲートウェイが付加しているのではなく、端末が送信している)
  • 端末が jail break されたらなりすましのおそれ
無責任なキャリア
  • 公式情報を公表していない
  • しかもdocomoは「iモードID」の使用を推奨している
Cookieで実装せよ
そもそもUIが変
  • かんたんログインボタン、ログアウト機能……?
  • utn送信時の「はい/いいえ」に配慮?
「かんたんログイン」言うなキャンペーン
パスワードを登録しないサイト
  • ワンタイム課金なら問題ない
  • SNSなどはキャリア乗り換えの問題があるのでパスワードが必要なはず。ケータイID認証で徹底したとしても、どこかにパスワード入力画面がある (一番最初に登録していることが多い)
  • ケータイだから弱いパスワード使う、というのは利用者の責任
docomoをどうする?
  • 基本的にはCookieで実装
  • iモード1.0の場合のみiモードIDで実装
ヤマダ電機
  • 一人1回を実現するため?
  • 国民ID的な利用
  • 国民ケータイ総背番号制
  • 国民IDが出来てもポイントカードでの利用は認められないだろう
  • 使用が広がると戻れなくなる
一般インターネットへの波及
ケータイIDがなくなると困る?

IPアドレスをころころ変える荒らし

  • ISPは対応してくれる
  • ケータイキャリアは通信の秘密を盾に拒否?
何を取るかの問題?
  • プライバシーを取るか、安全・安心を取るか……という二者択一なのか?
  • 両立できないのか?
  • 法務系の人々……IDやCookieのことが分かっていない
docomo ID

基本的には高木さんの日記 (takagi-hiromitsu.jp)で既出の論点のまとめ、という感じでしょうか。徳丸さんのセッションに引き続き、キャリアが情報を公開していないことの是非、キャリア側の責任のあり方について問われる内容になりました。

しかしなによりこのセッションで驚愕したのは、おおっぴらにセッションハイジャックが行われたこと。終了時間になっても「まだ重要な話がありますので、上野さんのお時間をいただいて……」と続行、後に続く上野さんのセッションを乗っ取ってしまいました。

そんな不幸な上野さんのセッションに続きます……「OAuthとWEBサイト運営のエコシステムに潜む罠」。

関連する話題: セキュリティ / WASForum Conference / WASForum Conference 2010 / モバイル

最近の日記

関わった本など