<前の日記(2010年07月02日) 次の日記(2010年07月10日)> 最新 編集

高木浩光@自宅の日記

目次 はじめに 連絡先:blog@takagi-hiromitsu.jp
訪問者数 本日: 2264   昨日: 3103

2010年07月03日

祝!! docomoの「FirstPass」終了のお知らせ

docomoから「FirstPass」を終了するとの知らせが出た。これは歓迎されるべきことである。

「FirstPass」の何が悪いかについては、2003年に何度か日記に書いた。

当時はまだブログを始めたばかりで遠慮がちに書いていたので、今読んでみると、読者層によってはわかりにくいものになっている。「FirstPass」の何が悪いのか、以下に改めて端的に書いておく。

「FirstPass」は、SSL(TLS)のクライアント認証を携帯電話に初めて導入したものであったが、これは、インターネット標準としてのSSLでは想定されていなかった、特殊な利用形態のものであった。

通常のSSLクライアント認証では、図1のように、サービス提供サイトが、そのサイト用のクライアント証明書を、そのサイトのユーザ達に対して発行する。証明書のcommon name欄には、そのサイトで通用するローカルID(ユーザ名だったり、顧客番号だったり)が記載され、SSL接続でクライアント認証が成功するとWebアプリケーション側でこのローカルIDを取得できるようになり、これによって接続中のユーザを識別してサービスを提供する。

概念図
図1: 通常のSSLクライアント認証
サイトAがユーザ1〜3用のクライアント証明書を発行

インターネットには複数のサイトがあり、通常、それぞれのサイトは独立にSSLクライアント認証を使用するので、図2のように、各サイトがそれぞれのユーザ達に別々の証明書を発行することになり、ユーザの視点からすれば、接続先のサイトごとにそのサイト用のクライアント証明書を使用することになる。

概念図
図2: 通常のSSLクライアント認証
サイトA〜Cがそれぞれのユーザにクライアント証明書を発行

これが、SSLクライアント認証の通常の想定された利用形態である。

ところが、2003年にdocomoが開始した「FirstPass」なるサービスは、この常識をひっくり返し、docomoが代表して発行する1枚のクライアント証明書(これを「FirstPass」と呼んでいる)を、すべてのケータイサイトで共用しようというものであった(図3)。

概念図
図3: 「FirstPass」の特殊なSSLクライアント認証の利用形態
携帯電話事業者が発行する証明書を各サイトが共用する

ユーザ視点からすると、証明書は1枚だけ持っており、どのサイトでもその証明書を提示することになる。証明書のcommmon nameにはその携帯電話用に割り当てられた番号が記されており、これが全Webサイトで共用される「グローバル共通ID」となる。

このようなサービスが広く普及し、どのサイトに行っても「FirstPass」証明書の提示を求められるようになると、「日本のインターネットが終了する日」に書いたのと同様の問題が生じる*1。つまり、ケータイIDのプライバシー問題と同様の問題を「FirstPass」は抱えていた。

このようなサービスが広く普及することなく近々終了するというのは、めでたいことである。

2003年当時、日本では、セキュリティ研究者でさえ、ケータイIDなど「共通ID」がもたらすプライバシーの問題について無頓着であった。このことについて2003年8月24日の日記「セキュリティ研究者はプライバシーを理解しているのか」に書いている。「FirstPass」は「モバイルITフォーラム」での研究成果を実用化したものと思われ、元の研究成果は以下の情報処理学会研究会報告で読むことができる。

この論文は、「加入者のプライバシー保護」を検討しているが、「リアルの世界で利用者個人を特定する情報(実名、電話番号、住所)が隠蔽される」という点を考慮しているだけで「プライバシー保護」と称し、提案手法として、「加入者契約と一対一に対応し匿名性を持つIDを定め「モバイルID」と呼ぶこととした」と、要するに、EZ番号やiモードIDと同等のものを証明書のcommon nameに記載することを提案していた。

この研究会では、私も現場にいたので、発表に対して質問をしたし、発表が終わった後も発表者のうちの3名と直接議論した。そのときの様子は「セキュリティ研究者はプライバシーを理解しているのか」に書いている。

もうこんなことを言う研究者はいないと思う。今だにこういうことを言い出す研究者がいたら、「セキュリティ研究者としての見識を疑う」と皆で糾弾してよいと思う。今回の「FirstPass」廃止も、心ある社内の研究者なり技術者の意見が影響した結果であればよいのだが。

なお、今回の「FirstPass終了のお知らせ」には次のことが書かれている。

※1 「FirstPass オリジナル証明書機能」については、各企業が発行するクライアント証明書を携帯電話にダウンロードできる端末の機能となりますので、「FirstPass」のサービス終了に関わらず、引き続きご利用いただけます。

報道発表資料:「FirstPass」(ファーストパス)のサービス終了, NTTドコモ, 2010年6月30日

「となりますので」のあたりがファミレス用語で意味がわかりにくいが、要するに、「FirstPass オリジナル証明書機能」というのは、普通のインターネット標準のSSLクライアント認証のことのようだ。もはや「FirstPass」という名称とは無縁のものである。これが利用できるのは一部の携帯電話端末に限られているようで、いつから始まったのか把握していなかったが、調べてみたところ、2006年秋冬モデルのFOMA 903iシリーズかららしい。

当然ながら世界標準のWindows MobileやiPhoneなどでは、そうした普通のSSLクライアント認証を利用できるようになっているわけで、最初からこういう方向へ進むのが正しい。

ただ、「FirstPass」の当初の目的が、ケータイIDとIPアドレス制限による「かんたんログイン」のセキュリティ上の脆弱さを課題と認識した上での、その解決策だったとすれば、今回の廃止を残念とする声もあるかもしれない*2。しかし、それについては、cookieで実現すればよいのであって、SSLを使ってcookieを送信するように構築した場合の安全性はSSLクライアント認証とたいして違わない*3

追記

ちなみに、「FirstPass」と同時期に開始されたauの同様のサービス「Security Pass」は、まだ廃止の知らせは出ていない。せっかくなので、証明書を取得してみた。

写真 写真 写真 写真 写真 写真 写真 写真
図4: auの「Security Pass」を使用してみた様子

こんな感じで、1契約(1端末?)に1枚の証明書が発行される。もう一度取得しようとすると、図5のように、「既に有効な証明書を取得済みです。」となって取得できない。期限が切れるころに再取得ができるだろうが、同じcommon nameの証明書が発行されるのだろう。

写真
図5: 1枚の証明書しか取得できない様子

そして、取得した証明書の内容を確認してみたところ、図6のように表示された。

写真 写真 写真
図6: 証明書の内容を表示した様子

「CN=J182……」の部分が私に割り当てられたグローバル共通IDであり、「J」に続く9桁の数字になっていた。全桁を掲載すると今後この番号で私だと特定されるようになってしまうので、赤で塗りつぶしている。

*1 「日本のインターネットが終了する日」で、ケータイIDの問題がケータイ以外の一般のPCにまで波及する虞れを示したが、その技術的実現手段の可能性として、すべてのWebサイトがSSLクライアント認証を要求するようになって、使用する証明書として行政機関等によって「1人1枚」が保証されたものを用いることが、法的に強制されるか、自然発生的にほとんどのサイト運営者がそうするようになるというシナリオが考えられる。

*2 「オリジナル証明書機能」は、証明書を格納できる枚数に上限があり、5枚までとかなり少ないようなので、あらゆるWebサイトで使用するという使い方は望めない。

*3 サーバが発行したセキュアなランダムIDをブラウザにcookieで覚えさせておく方式であっても、通信がSSLで行われれば盗聴によりそれが漏れることはなく、他の脆弱性がなければセッションハイジャックも起きないので、それで安全と言うこともできる。端末からcookieが漏れる可能性を想定するなら、クライアント証明書の秘密鍵が漏れる場合も想定することになり、その場合に、秘密鍵を耐タンパーデバイスに格納していることや、PINの入力を必要とするなどの点において、その分の安全性が高いと言うことはできる。


<前の日記(2010年07月02日) 次の日記(2010年07月10日)> 最新 編集

最近のタイトル

2000|01|
2003|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|05|06|07|08|09|10|11|12|
2012|02|03|04|05|06|07|08|09|
2013|01|02|03|04|05|06|07|
2014|01|04|07|09|11|12|
2015|01|03|06|07|10|11|12|
2016|01|02|03|04|06|07|08|10|11|12|
2017|01|02|03|04|05|06|07|10|12|
2018|03|05|06|10|12|
2019|02|03|05|06|07|08|10|
2020|08|09|
2021|07|08|10|12|
2022|01|04|06|12|
2023|03|
2024|03|04|07|11|12|
2025|01|02|03|04|05|06|10|11|12|
<前の日記(2010年07月02日) 次の日記(2010年07月10日)> 最新 編集