SPモードメールで、メールの発信者が別の人のメールアドレスにすげ替えられてしまうというトラブル。
加入者に強くひも付いたシステムになってるはずなのになんでこんな不思議なことが起きるのか理解できなかったのですが、記者会見での詳細が幾つかのニュースサイトに出ていました。
「あってはならない」個人情報流出の可能性も――ドコモがspモード不具合の経緯を説明 - ITmedia +D モバイル
ドコモ、“他人のメアドになる”不具合は解消――10万人に影響 - ケータイ Watch
加入者はIPアドレスで識別されていて、そのひも付けが伝送路障害をきっかけに混乱した、ということのようです。加入者とのひも付けは全然強くない…というか恐ろしいほど弱いシステムでした。
まず、「IPアドレスで加入者を識別する」という思想がかなりやばいと言わざるを得ません。初期iモード時代は無線ネットワークと一体になっていたシステムだったため容易に端末=加入者を識別出来たのでしょう。それがIPネットワーク化によりレイヤが代わり無線ネットワーク上の端末識別IDが使えなくなったため、IPネットワークで端末を識別するものは何か→IPアドレス→ではそれと加入者をひも付けて管理しよう、と安易に考えてしまったのでしょう。
発想がいかに安易だったかはシステム構成の面倒さにも見て取れます。IPアドレスには限りがあるため接続のたびに払い出し切断されたら回収しなければなりません。したがってどのIPアドレスを誰が使っているかはリアルタイムで替わります。これを個人の識別に使うためには、リアルタイムでIPアドレスとそれを利用している加入者のひも付けを管理し、個々のサービスが都度そのひも付けを検索しなければなりません。これを実現するのが記事にある「セッション管理サーバ」なのでしょう。
不必要に面倒なシステムにはたいてい穴があります。今回の問題は、次のような過程で起きています
- 伝送路障害で多数の端末が切断
- IPアドレスが解放されたが、ユーザー管理サーバが輻輳し応答しなかったためIPアドレスと加入者のひも付けが削除されなかった
- 端末が再接続し、IPアドレスが割り当てられたが、ユーザー管理サーバが応答しなかったためIPアドレスと加入者のひも付けが更新されなかった
- メールシステムがIPアドレスから加入者を識別する際、削除し損ねた切断前の加入者だと返答した
情報処理試験の問題にでも出来そうな内容ですね。
Q. この構成の問題点はなにか
A. ユーザー管理サーバが応答しないとセッション管理サーバの情報が更新されないままとなる
Q. 解決策を示せ
A1. (2.)において、ユーザー管理サーバが応答しなくてもセッション管理サーバはひも付けを削除する
A2. (3.)において、ユーザー管理サーバが応答しない場合、残存しているひも付けを削除する
記事では「ユーザー管理サーバの性能は十分だったはずなのに輻輳した」のが問題のように語られてますが、全然違います。「スマートフォンの急増が背景」とドコモの人がNHKで言ってましたがこれも違います。ユーザー管理サーバが死んだときの異常系の検討漏れです。
まぁ「設計ミスです」と言ってしまうとしゃれにならないので性能問題だということにしたいのでしょう。たぶんこの問題過去にも起きていたのではないでしょうか。多段の処理が100%確実に成功しているとはとても思えません。セッションの削除と更新が両方とも失敗しないと表面化しないので「極まれに」というレベルだとは思いますが。