spモードメール問題、あの、アドレスが付け変わってしまうというやつが話題になっています。ただ記事を読んだだけではよくわからなかったので、NTT DOCOMOテクニカル・ジャーナル Vol.18 No.3 の Technology Report [1] なども参考にしながら絵を書いて見ました。ちなみに、ここで網というのは、spモード網のことです。
独自認証方式によるメールアカウント取得というのは、
(1) メールアプリがオフィシャルなものであることを独自方式で認証
(2) spモード接続を通じて、ユーザー情報を取得
というものらしいですが、詳細はわかりません。どうもこの辺に今回の鍵があるような気がしますが、どうなんですかね。上の図では、spモード接続を通じたユーザー認証をIPアドレスでしているように書いています。これは、記事などで読んだことからの類推です。こうしていると、今回の事象がおきます。登録処理、切断処理がきちんと完了しないと、直前にそのIPアドレスを利用していた人のメールアドレスが端末に設定されてしまうと。
もしそうだとすると、かなり良くないですね。 エラー処理をちゃんとしていない所が悪いという指摘もありますが、それ以前の問題として、認証の設計が根本的に良くないです。
良くない理由
- IPアドレスという再利用される識別子を、ユーザー識別に使っている。
- しかも、これをユーザー識別子としてだけではなく、アクセストークンとしても使っている。
まず、ユーザー識別子には、再利用されない識別子を使うのは基本中の基本です。OpenID 2.0 などのような、比較的セキュリティレベルの低いプロトコルでさえ、ユーザーが入力する識別子とシステムが認証用に使用する識別子を分けているのはそのためです。
しかし、100歩ゆずって、それは良いことにしたとしましょう。
ポイント2はいくら何でもマズすぎます。アクセストークンは、必ずユニークじゃなきゃいけないんですよ。それを使いまわせるようにしたら、後から使った人が前の人を成りすませるようになりますよ[2](←あ、これが今回起きたことか。)
まぁ、こんな馬鹿な事はおきていなかったことだろうと思いますので、ぜひ詳細な内容を公開していただきたいところです。ことセキュリティに関しては、オープンにしないと危ないですから。
[1] 吉永尚史他「2010 年スマートフォン新サービス・機能 ― sp モードのメールサービス― 」
[2] 本来は、登録処理の段階で、ユーザー識別子、行使可能者(audience)、有効期間、nonceなどに対して署名をかけたトークンを作成してクライアントに渡して、あとはコレを使って認証するようにすべきなんですよ。そうすれば、IPアドレスが変わったって問題なし。
(参考記事)
- 【重要】 ドコモ、spモードで障害発生。メールアドレスが別のアドレスに誤設定/表示されるトラブルも発生し、spモードサービスの多くが一時停止へ(2011/12/21)
- とある技術屋の戯言 – SPモードメール障害は設計ミス
- 「あってはならない」個人情報流出の可能性も――ドコモがspモード不具合の経緯を説明 – ITmedia +D モバイル (2011/12/21) ← これ、メールアドレスが個人情報で、それが流出したことが問題みたいに書かれているが、本文の方がよほど問題だ。なんか、個人情報保護、プライバシー保護を履き違えている。
- ドコモ、“他人のメアドになる”不具合は解消――10万人に影響 – ケータイ Watch
「spモードメール問題」への2件のフィードバック