-オープンソースのSNSエンジン OpenPNEプロジェクト-

OpenPNE 3.5.3 でおこなった「かんたんログイン」の変更について

06 / 12 土曜日 2010

そもそも「かんたんログイン」とは

「かんたんログイン」とは、携帯電話の端末固有 ID (OpenPNE では「携帯電話個体識別番号」と呼称しています) を使用したログインをおこなう機能です。

OpenPNE では初回登録時に携帯電話個体識別番号とメンバーを自動的に紐付け、次回ログイン時からはメールアドレスやパスワードといった情報を入力することなく、携帯電話個体識別番号を送信するだけでログインできます。

携帯電話のブラウザ上からメールアドレスやパスワードといった情報を入力するのは不便ということもあってか、多くの携帯向けウェブサイトで提供されています。

「かんたんログイン」の問題点

「かんたんログイン」で多くのサイトで使われている携帯電話個体識別番号は秘密情報ではなく公開情報です。さらにこの携帯電話個体識別番号の値は、すべてのサイトに対して共通の値が送信されます
つまり、誰でも簡単にログインに必要な個体識別番号を入手できてしまうのです。

公開情報のみで認証をおこなうことは通常考えられず、少なくともパスワードなどの秘密情報と組み合わせることが求められます(ですので、メールアドレスとパスワードの組み合わせによるログインは成り立ちます)。

携帯サイトにおいてそのような「かんたんログイン」が成り立っている(ように見える)のは、以下のような条件を満たすからです。

  • 1. 携帯電話からのアクセスであるらしいことを知ることができる
    • 携帯電話から Web サイトへのアクセスがキャリアのゲートウェイを通じておこなわれる
    • キャリアのゲートウェイの IP アドレス帯域リストが無保証で公開、保守されている
  • 2. 携帯電話端末からリクエスト中の HTTP ヘッダを書き換える手段が存在しないと思われる

二つの条件のうち、サイト側もしくは携帯電話側に問題があり、どちらか一方でも満たすことができなくなった場合、携帯電話個体識別番号を詐称することによって「かんたんログイン」を利用した なりすましログインがおこなえてしまいます(先日の「【緊急リリース】携帯版かんたんログインの不備によりなりすましがおこなわれてしまう問題について」は 1. の条件を満たせていなかった(制限を回避可能であった)ことによるものです)。

また、「かんたんログイン」を提供するにあたって、どのように実装すれば安全に運用できるのか、キャリアから情報が提供されたことはありません。少なくとも、いわゆる勝手サイトにおいては、安全にこの機能を提供することができるように、探り探りでこれらの二つの条件が回避されることがないように対策を進めていくしかありません。

このように、「かんたんログイン」は極めて危ういものとなっています。近年の携帯電話端末の多機能化に伴い、危険性は今後ますます高まっていくことが予想されます。

このような状態で利用者の安全を担保することは難しく、可能な限りこの機能の提供をやめていくようにしていくことが望ましいです。

今回の OpenPNE の対応について

このような現状を鑑み、 OpenPNE では、昨日 6/11 (金) にリリースした OpenPNE 3.5.3 と、このバージョンにバンドルされている、「かんたんログイン」を提供するための認証プラグインである opAuthMobileUIDPlugin 1.3.0 を組み合わせることによって、「携帯電話個体識別番号を使わない『かんたんログイン』機能」を提供できるようにしました。

この「携帯電話個体識別番号を使わない『かんたんログイン』機能」を使用しているかどうかは、管理画面の設定から確認・変更することができます(ユーザ画面から確認する方法は今のところ用意されていません)。「プラグイン設定」の「認証プラグイン設定」から opAuthMobileUIDPlugin の「設定」を選択し、表示された opAuthMobileUIDPlugin の設定ページから「認証に使用する ID の設定」からおこなうことができます。

それぞれの設定をおこなった場合の挙動は以下のようになります。

  • ・「Cookie 内のユニークな ID のみによって認証をおこなう」の場合、「携帯電話個体識別番号を使わない『かんたんログイン』機能」が有効になります
  • ・「Cookie が利用できる端末の場合は Cookie 内のユニークな ID を用い、それ以外の端末では携帯電話個体識別番号によって認証をおこなう」の場合は、可能な限り「携帯電話個体識別番号を使わない『かんたんログイン』機能」を使い、 Cookie が使用できないドコモの i-mode ブラウザ 2.0 未満の端末でのみ従来式の携帯電話個体識別番号を使った「かんたんログイン」をおこないます(これは OpenPNE 3.5.3 以降を新規セットアップした場合のデフォルト設定値です)
  • ・「携帯電話個体識別番号のみによって認証をおこなう (非推奨)」の場合は、従来式の携帯電話個体識別番号を使った「かんたんログイン」をおこないます(これは OpenPNE 3.5.3 未満からアップデートした場合のデフォルト設定値です)

認証に使用している ID について

「携帯電話個体識別番号を使わない『かんたんログイン』機能」で使用する ID は、新規登録時に発行されたランダムな文字列です。新規登録時にこの文字列が Cookie にセットされ、ログイン時にはこの Cookie の値を読み取って認証をおこないます。
この ID は各サイトにのみ利用可能なものです。
また、携帯電話個体識別番号と違い、何らかの事情でこの ID が漏洩してしまうなどの不都合があった場合、ユーザ画面の「かんたんログイン設定」から今までの識別情報を無効にしたうえで、新しい値を Cookie にセットし直すことができます。

なお、SNS が「Cookie が利用できる端末の場合は Cookie 内のユニークな ID を用い、それ以外の端末では携帯電話個体識別番号によって認証をおこなう」を選択している場合は、 Cookie から ID を入手できなければ携帯電話個体識別番号による認証を試みます。しかし、そこで特定されたメンバーに対して既に Cookie 内のユニーク ID を発行済みである場合には、 OpenPNE は認証に失敗させます。

OpenPNE ではログイン以外の用途で携帯電話個体識別番号を使用しているか

現状、使用しています。運営者が登録した携帯電話個体識別番号を有する携帯電話端末や契約者からの新規登録、ログインを禁止するための「ブラックリスト」機能で、携帯電話個体識別番号の値を使用しています。
そのため、新規登録時にはログイン用に Cookie にセットする ID と、携帯電話個体識別番号を両方 SNS に登録しています。

しかしながら、この携帯電話個体識別番号の値は、すべてのサイトで共通に使用可能なものですから、この値と SNS に登録されているメンバー情報との組がなんらかの形で漏洩してしまった場合、 SNS の参加者のプライバシーが侵されてしまうことになります。このような情報を SNS で持つこと自体が本来危険なのです。

OpenPNE はその性質上、プライバシーに密接に関わるソフトウェアです。ですので、このようなソフトウェアを公開していく者として、 3 万 5000 以上のサイトで使用されるソフトウェア開発者としての責任を持ち、 OpenPNE プロジェクトでは、「かんたんログイン」に限らず、携帯電話個体識別番号を使用するすべての機能、機会に対して、代替手段を用意できるよう、今後も模索を続けていきます。

SNS 運営者様へ

今回の変更は認証に関わる大きな変更となります。この変更によりご不便等おかけするかもしれませんが、これはエンドユーザをなりすまし等の危険から守るための変更です。どうぞご容赦、ご理解いただきたいと思います。

この「携帯電話個体識別番号を使わない『かんたんログイン』機能」は、後方互換性を考慮して、 OpenPNE 3.5.3 未満からアップグレードした SNS にはデフォルトでは適用されません。ですが、先ほどまでに述べたとおり、この機能を安全に提供するために、設定変更やエンドユーザへの告知等の対応をご検討いただければと思います。

また、 OpenPNE 3 をお使いで、もし「かんたんログイン」機能を使用したくない場合は、 opAuthMobileUID プラグインを無効にすれば、その SNS で「かんたんログイン」機能が働くことはなくなりますので、こちらもご検討ください。

また、携帯電話個体識別番号は他の情報と組み合わせることにより個人の識別が可能な情報になり得ます。そのため、是非この機会に、管理方法が適切かどうかなどの確認をされることをおすすめいたします。

携帯サイトおよび携帯サイト向けソフトウェアの開発者様へ

とてもありがたいことに、特に PHP 製のソフトウェアでは、 OpenPNE のソースコードが参考にされているという話をよく耳にします。ですので、 OpenPNE の数多い利用者のみならず、他ソフトウェアの開発者様にも、今回の OpenPNE の対応をきっかけにして、「かんたんログイン」が広まってしまっている現状を収束できるように対応していただけることを願っています。

また、もし、今回の対応等に何らかセキュリティ上の問題が見られる場合、是非 security@openpne.jp (OpenPNE3 のコア開発者のみに開かれたクローズドなメーリングリストです)にお知らせいただければと思います。その他ご意見等ありましたら遠慮なく OpenPNE 開発 ML にお知らせください。

なお、今回の実装方法の詳細については日曜日あたりに海老原の個人ブログにでも書こうと思っておりますのでよろしくお願いいたします。

トラックバック:2

ピンバック from Tweets that mention OpenPNE 3.5.3 でおこなった「かんたんログイン」の変更について|OpenPNE -- Topsy.com 10-06-12 (土) 10:19

[…] This post was mentioned on Twitter by Kousuke Ebihara, Masao Maeda. Masao Maeda said: RT @co3k: OpenPNE 3.5.3 でおこなった「かんたんログイン」の変更について http://ff.im/-lToz3 […]

ピンバック from OpenPNE3.6に(Rejectされなければ)入る予定の注目機能まとめ « 大原部長自宅鯖実験場 10-07-17 (土) 15:36

[…] ことで、段階的な対処の第一弾と言えるでしょう。 具体的には、こちらを御覧ください。 […]

ページの先頭に戻る