spモードメール問題

spモードメール問題、あの、アドレスが付け変わってしまうというやつが話題になっています。ただ記事を読んだだけではよくわからなかったので、NTT DOCOMOテクニカル・ジャーナル Vol.18 No.3 の Technology Report [1] なども参考にしながら絵を書いて見ました。ちなみに、ここで網というのは、spモード網のことです。

独自認証方式によるメールアカウント取得というのは、

(1) メールアプリがオフィシャルなものであることを独自方式で認証
(2) spモード接続を通じて、ユーザー情報を取得

というものらしいですが、詳細はわかりません。どうもこの辺に今回の鍵があるような気がしますが、どうなんですかね。上の図では、spモード接続を通じたユーザー認証をIPアドレスでしているように書いています。これは、記事などで読んだことからの類推です。こうしていると、今回の事象がおきます。登録処理、切断処理がきちんと完了しないと、直前にそのIPアドレスを利用していた人のメールアドレスが端末に設定されてしまうと。

もしそうだとすると、かなり良くないですね。 エラー処理をちゃんとしていない所が悪いという指摘もありますが、それ以前の問題として、認証の設計が根本的に良くないです。

良くない理由

  1. IPアドレスという再利用される識別子を、ユーザー識別に使っている。
  2. しかも、これをユーザー識別子としてだけではなく、アクセストークンとしても使っている。

まず、ユーザー識別子には、再利用されない識別子を使うのは基本中の基本です。OpenID 2.0 などのような、比較的セキュリティレベルの低いプロトコルでさえ、ユーザーが入力する識別子とシステムが認証用に使用する識別子を分けているのはそのためです。

しかし、100歩ゆずって、それは良いことにしたとしましょう。

ポイント2はいくら何でもマズすぎます。アクセストークンは、必ずユニークじゃなきゃいけないんですよ。それを使いまわせるようにしたら、後から使った人が前の人を成りすませるようになりますよ[2](←あ、これが今回起きたことか。)

まぁ、こんな馬鹿な事はおきていなかったことだろうと思いますので、ぜひ詳細な内容を公開していただきたいところです。ことセキュリティに関しては、オープンにしないと危ないですから。

[1] 吉永尚史他「2010 年スマートフォン新サービス・機能 ― sp モードのメールサービス― 」

[2] 本来は、登録処理の段階で、ユーザー識別子、行使可能者(audience)、有効期間、nonceなどに対して署名をかけたトークンを作成してクライアントに渡して、あとはコレを使って認証するようにすべきなんですよ。そうすれば、IPアドレスが変わったって問題なし。

(参考記事)

 

「spモードメール問題」への2件のフィードバック

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください