<< K-5の電子水準器が直らない | top | 初詣 >>

spモードメール障害は設計ミス

spモードメールで、メールの発信者が別の人のメールアドレスにすげ替えられてしまう spモードメールクライアントのアカウント情報が他人のものになってしまうというトラブル。

加入者に強くひも付いたシステムになってるはずなのになんでこんな不思議なことが起きるのか理解できなかったのですが、記者会見での詳細が幾つかのニュースサイトに出ていました。

「あってはならない」個人情報流出の可能性も――ドコモがspモード不具合の経緯を説明 - ITmedia +D モバイル
ドコモ、“他人のメアドになる”不具合は解消――10万人に影響 - ケータイ Watch

加入者はIPアドレスで識別されていて、そのひも付けが伝送路障害をきっかけに混乱した、ということのようです。加入者とのひも付けは全然強くない…というか恐ろしいほど弱いシステムでした。

まず、「IPアドレスで加入者を識別する」という思想がかなりやばいと言わざるを得ません。初期iモード時代は無線ネットワークと一体になっていたシステムだったため容易に端末=加入者を識別出来たのでしょう。それがIPネットワーク化によりレイヤが代わり無線ネットワーク上の端末識別IDが使えなくなったため、IPネットワークで端末を識別するものは何か→IPアドレス→ではそれと加入者をひも付けて管理しよう、と安易に考えてしまったのでしょう。

発想がいかに安易だったかはシステム構成の面倒さにも見て取れます。IPアドレスには限りがあるため接続のたびに払い出し切断されたら回収しなければなりません。したがってどのIPアドレスを誰が使っているかはリアルタイムで替わります。これを個人の識別に使うためには、リアルタイムでIPアドレスとそれを利用している加入者のひも付けを管理し、個々のサービスが都度そのひも付けを検索しなければなりません。これを実現するのが記事にある「セッション管理サーバ」なのでしょう。

不必要に面倒なシステムにはたいてい穴があります。今回の問題は、次のような過程で起きています

  1. 伝送路障害で多数の端末が切断
  2. IPアドレスが解放されたが、ユーザー管理サーバが輻輳し応答しなかったためIPアドレスと加入者のひも付けが削除されなかった
  3. 端末が再接続し、IPアドレスが割り当てられたが、ユーザー管理サーバが応答しなかったためIPアドレスと加入者のひも付けが更新されなかった
  4. メールシステムがIPアドレスから加入者を識別する際、削除し損ねた切断前の加入者だと返答した

情報処理試験の問題にでも出来そうな内容ですね。

Q. この構成の問題点はなにか*1
A. ユーザー管理サーバが応答しないとセッション管理サーバの情報が更新されないままとなる

Q. 解決策を示せ
A1. (2.)において、ユーザー管理サーバが応答しなくてもセッション管理サーバはひも付けを削除する
A2. (3.)において、ユーザー管理サーバが応答しない場合、残存しているひも付けを削除する

記事では「ユーザー管理サーバの性能は十分だったはずなのに輻輳した」のが問題のように語られてますが、全然違います。「スマートフォンの急増が背景」とドコモの人がNHKで言ってましたがこれも違います。ユーザー管理サーバが死んだときの異常系の検討漏れです。

まぁ「設計ミスです」と言ってしまうとしゃれにならないので性能問題だということにしたいのでしょう。たぶんこの問題過去にも起きていたのではないでしょうか。多段の処理が100%確実に成功しているとはとても思えません。セッションの削除と更新が両方とも失敗しないと表面化しないので「極まれに」というレベルだとは思いますが。

  • *1: 後出しの追記ですが、現状のシステム構成を前提とした話です。IPアドレスを使う思想がそもそも問題であることは前段に書いたとおりです
2011/12/22 12:18更新

2011/12/22 19:44追記

2点。

「IPネットワークで端末を識別するものは何か→IPアドレス→ではそれと加入者をひも付けて管理しよう」と書いた点、ドコモが認めています。

この仕組みによって、Android OSにおけるIPアドレスは、一時的には端末を識別するIDとして使える。NTTドコモのspモードシステムの場合、3G網に接続して電話番号とIPアドレスをひも付けた後は、パケットのヘッダーにあるIPアドレスを使い、パケットを送信したAndroid端末を識別していた。NTTドコモはこの件について「spモードシステムはIP網の中で動いており、パケットのIPアドレスとユーザーをひも付けるのは自然の発想だった」としている。当然、iモードメールのメールアドレスも、最終的にはIPアドレスとひも付けられている。

も一つ。これは重大。

spモードメールアプリの「メール設定」→「その他」→「マイアドレス」で自分のメールアドレスを確認

ここで「他人のメールアドレスが表示された」場合、それはspモードメールクライアントのアカウント情報が他人のものになっているということです。すなわち、その端末では他人のメールが受信される状態になっています。「メールの発信者が他人のメールアドレスになる」というのは事態を極度に矮小化した詐欺的な表現です。

2011/12/24 14:48追記

「他人のメールが受信される」と書いたことに対して批判的な反応を目にしますが、残念ながら理由の示唆すらされていないものばかりです。

反論は大歓迎ですので「あり得ない」とお考えの*技術的な*理由をお聞かせください。コメント欄でもトラックバックでもtwitter(@suzukis)宛でも結構です。明確な根拠があるのでしたら是非お聞きしたいですし、公開されている情報からの推測であってもこの問題をお互いより理解するための材料になると思います。

#妄想はお断りします。あしからず。

2011/12/25 19:58追記

spモードメールクライアントの「マイアドレス」に他人のメールアドレスが表示された場合その他人のメールが受信される状態になっていたのではないか、とドコモに問いあわせたところ、「その可能性はあると考えている」だそうです。

2011/12/22 12:52追記

ドコモがspモードメールの仕組みを解説した資料を公開してました。

これによると、メールの送受信自体は単純にSMTPS/POP3Sが使われており、それに加えてクライアントにアカウント情報を自動設定する仕組みがあるようです。

これと今回の問題をあわせて考えると「この自動設定する仕組み」が混乱し他人のアカウント情報が設定されたということでしょうか。そうすると、自分が送ったメールに他人のメールアドレスが付いてしまう被害にあった人は、その付け替わった人のメールを受信していた可能性があるということになってしまいます。

この記事へのコメント

通りすがり (2011/12/23 00:39):
情報をまとめてくださり、ありがとうございます。参考になりました。

さすがに、他人のメールが受信できる(可能性がある)状態になっていたならば、その旨が説明されているだろうと思います。
つまり、POPは幸い影響を受けずに済んだ、という事なのではないかと。

現在入手できる情報から推測すると、SMTP(送信)時のMAIL FROM(送信元指定)で送信されるメールアドレスが他人のものに置き換わってしまった、ということなのではないかと思っています。
提案 (2011/12/23 02:34):
>他人のメールが受信される
ここは多分違うのではないかと。
おそらくSPモードメールではヘッダ情報に送信元としてIPアドレスを記述し管理してるのではないかと思いました。
なので送信元として別の人が表示される。
しかし送信先(to)は受信側が接続していてもいなくても(IPアドレスが割り振られててもいなくても)メールサーバに届かないといけないので、メールアドレスで記述され管理されてるのではないかと思いました。
これは素人の戯言ですので、どっちが正しい・間違いという事ではなく、報道を聞いた時の私の理解とちょっと違いましたので、こうじゃないですかと言う話として。
koji (2011/12/23 03:28):
私にはアクティブーアクティブで冗長している複数のユーザ管理サーバ動いていた。
SPモードの利用者増大(スマホの急増)予測を見間違った事によって、一部の経路にて障害が発生して再接続時に障害発生経路以外のユーザ管理サーバだけではSPモードユーザを捌けなかった。
と思ったんですが違うでしょうか?
上記であれば、設計ミスの指摘は免れませんが「スマートフォンの急増が背景」は嘘ではないでしょうし「ユーザー管理サーバの性能は十分だったはずなのに輻輳した」障害が発生しなければ充分だったとも言えなくないかと思います。
shin (2011/12/23 10:05):
> 「とおりすがり」さん「提案」さん。

追記で書いたとおり、クライアント側で表示される「マイアドレス」が変更されている以上、クライアントのアカウント情報が他人のものと入れ替わったと考えるのが自然です。

> koji さん
なぜ輻輳が起きたかという点も興味深いところですがあまり本質ではありません。問題は「どういう理由でユーザー管理サーバが停止したか」ではなく、「なぜユーザー管理サーバが死ぬとひも付けが混乱するのか」というところです。

> ドコモの他人のSPモードメールを受信してしまう障害はアプリックス社のアプリの設計ミス from ガジェットショット
SPモードそのものの設計にクライアントアプリを作った会社が関わっているとは思えません。アプリックス言いたいだけちゃうんかと。
いろは (2011/12/23 10:21):
>IPアドレスには限りがあるため接続のたびに払い出し切断されたら回収しなければなりません。
プライベートアドレスでしょうからIPアドレスは十分あり、通常IPアドレスの変更は電源断や新規契約くらいしかないのかもしれませんね
トリス (2011/12/23 18:58):
>他人のメールが受信される
ここまで言うのはドコモが発表するまで我慢しておきましょうよ。設計した本人が言うならまだわかるけど
妄想に過ぎないでしょ。
とらちゃん (2011/12/23 21:20):
>他人のメールが受信される状態になっています。「メールの発信者が他人のメールアドレスになる」というのは事態を極度に矮小化した詐欺的な表現です。

その根拠は? 実際の他人のメールアカウントの電子メールが読めたという実例はどこかに出ていますか?
shinさんの妄言の様な「詐欺的な表現」で済ませたりしたら、総務省が黙ってはいません。この期に及んで、「背景や原因」はともかく、「実態・現象」を隠し立てする様なことはあり得ないですよ。
「技術屋」さんだからといって、「戯れ言」と言い訳しながら「妄言」書いちゃいけません。最初は良い事書いておきながら、結局最後は厨房並みになってしまいますよ。
おさかなだいすき (2011/12/24 01:16):
もしこの方法でユーザを識別しているというのなら、メールだけじゃなくてSPモード決済に使われてるOpenIDも同じことが起きてるということですよね...
shin (2011/12/24 12:16):
> おさかなだいすきさん

SPモード決裁を含めて多数のサービスが影響を受けている可能性があると言うことで停止されましたね。
コンゴ横断 (2011/12/24 15:09):
便乗で申し訳ないですが、ちょっと質問させてください。SP網内で使用されているアドレスはv4でしょうか、それともv6でしょうか。v6だったらアドレスは潤沢に使えるので、そもそも端末間で最利用する必要すらないような気がしますが。素人の質問で申し訳ありませんがよろしくお願いします。
コンゴ横断 (2011/12/24 17:01):
すみなせん、あともう一点気になったのですが、仮に上の「解決策を示せ」で述べられているように、ユーザー管理サーバーが応答しなくなった場合、紐付けを削除するという対策を取った場合、当然、プロビジョニングされた情報を使用するサービスへはアクセスできなくなりますよね?それだとメンテナンスのためにユーザー管理サーバーがオフラインなった場合などでもメールの送受信等ができなくなるということではないでしょうか。だとすると、動的にユーザー情報をプロビジョニングするという方法そのものが一定のリスクを内包しているように思えますが。。。
shin (2011/12/24 19:10):
> コンゴ横断さん

SPモードで払い出されるアドレスはv4のプライベートアドレスです。

あと解決策云々で書いたのは今回の事象のように有効でないひも付けが残ることにたいしてなので、本質的な解決策ではありません。他人のものと入れ替わるよりは死ぬ方がマシだろうという程度の話です。

今の思想を安全に実装することも可能とは思いますが、特に異常系は慎重に考慮する必要があるでしょう。
irvine (2011/12/24 20:06):
>まず、「IPアドレスで加入者を識別する」という思想がかなりやばいと言わざるを得ません。
これってやばいっていうより、仕組みにあるとおりプッシュをしているから必要だっただけでは?
受信したっていう通知をクライアントに送信しないとだめなので、メールアドレスと通知先となるIPアドレスのヒモ付けをしておく必要があったと。
なのでそれを「不必要に面倒なシステム」というのはどうなんでしょうね。

そのヒモ付にアクセスできなかったらプッシュできないってだけにしてたならよかったんでしょうけど・・・
shin (2011/12/25 08:15):
> irvineさん

SPモードメールのpush通知はSMSなのでIPは使っていないはずです。

一般論としてなんらかセンターから端末に通信するために加入者とIPアドレスのひも付けが必要だったとしても、そのために必要なのは「加入者→IPアドレス」のひも付けで、今回問題となった「IPアドレス→加入者」のひも付けとは意味合いも要求される信頼性も異なります。

おっしゃるように「プッシュ用にひも付けが必要だった」のでそれを実現する仕組みを用意して、そのひも付けを逆方向に検索し認証に用いたのであれば、その発想はやはり「やばい」と言わざるを得ませんし、その程度の考えで認証を実現しようとしていたのであればより問題は大きくなります。
ライトウェイト (2011/12/27 10:22):
1.
shinさんの意見に同意です。
>不必要に面倒なシステムにはたいてい穴があります。
同感です。

最初の発想は”安易な思いつき”(自然な発想とも思えませんが)でも構いませんが実装前に十分に検証せず、とってつけたようなシステムが多いと感じます。

処理能力をあげる対策を発表していましたが、設計ミスを認めるべきだと思います。(次につなげることが大事だと思います。)

2.
SPモードメールの仕組みを解説した資料を見ましたが、
3.2サービスアプリ認証機能 について、今回の問題との関係がよく理解出来ませんでした。
解説していただけると助かります。
うし (2011/12/27 15:00):
ドコモのリリース出ましたね。
http://www.nttdocomo.co.jp/info/network/kanto/pages/111220_3_d.html
「他人のメールが受信される」は2017人だそうです。
shin (2011/12/28 06:10):
> ライトウェイトさん
> 3.2サービスアプリ認証機能 について、今回の問題との関係がよく理解出来ませんでした。

「サービスアプリ認証機能」で行われているのは、1.メールクライアントの正当性確認 2. アカウント情報の取得(メールアドレス、SMTPS/POP3Sのパラメータ)、のようです。この 2. で他人のものが取得されてしまったのが今回の事故です。

> うしさん
やっと公式に認めましたね。しかし、メールだけでなくSPモード全体にわたって個人識別が混乱していたはずなので、そのことに言及せずメールだけの障害かのように発表するのもやはり事態を矮小化しています。
Takumiboo (2011/12/29 15:29):
この本来の送り先に届かなかった(最低)2017通のメールはどうなるんですかね…
(2012/01/03 03:55):
削除しました
いまさらながら (2012/01/03 10:39):
「他人のメールが受信される」はまだ矮小化している気がする。
能動的な利用者は送信者であり、送信者側は気付くができないのだから、
「メールが他人に送信られる」が正しいような…
おる (2012/01/04 09:48):
>Q. 解決策を示せ
>A1. (2.)において、ユーザー管理サーバが応答しなくてもセッション管理サーバはひも付けを削除する
>A2. (3.)において、ユーザー管理サーバが応答しない場合、残存しているひも付けを削除する
年末にこの解決策A1を急遽やっちゃったんでしょうね。
1/1日の夜から、マイアドレスが消えてメールが使えなくなりました。
木戸銭もギャラも削ってます (2012/01/05 00:52):
議論の前提について疑問があります。議論ではドコモがscratchから網を設計していることを前提にしているようですが、問題になっているのは3G網ですよね? WikipediaのUMTS(よくWCDMAと呼ばれているもの)およびFOMAの項目を(英語版で)確認したところ、ドコモは2004年までに自社網をUMTS準拠のものに置き換え、これを現在に至るまで使用しています。とならば、packet網もUMTSと考えるべきであり、「ドコモの網設計が悪い」は「UMTSのarchitectureが悪い」という命題になってしまいます。残念ながらUMTSは仕様なので、architectureを今から変えるのはタイムマシンでも使わなければ無理でしょう。

UMTSの資料は探せばいろいろ出てきますが、初めての人でも読めるのはhttp://meetings.ripe.net/ripe-53/presentations/gprs.pdfでしょうか。Nokiaが2006年にとある携帯operator向けのミーティングに出した資料です。ざっくりではありますが、ドコモが会見で出した資料の用語やnodeがUMTSのどれに対応するのかはこれでわかります(というか、あの資料の用語書き換えはいかがなものかとすら思ってしまいますが)。Packet網に注力しすぎたのか、GSMとshareしている機能が一部描かれていないのが要注意ですが。ともかく、この資料をまず頭に入れ、次にWikipediaなどでGSMやUMTSのkeywordsを調べれば、UMTSがどのように作られ、どのように動くのかがわかることでしょう。

宿題を一つ。「UMTS網は、セッション管理とユーザ管理を別のnodeで行うことにより何を実現しているのか?」意趣返しなのは重々承知してますが、網のarchitectureを動かせない以上、あのような後付け問題を出されたらこういうことを逆に考えたくなるわけで。
shin (2012/01/05 12:45):
意趣返しだと宣言されている以上わざわざ間違いを訂正してあげる義理はないので、資料を誤読し問題を誤解されているとだけ指摘しておきます。あとは自分で考えてください。
(2012/01/23 14:50):
削除しました
わくわく (2012/02/16 19:04):
>SPモードメールのpush通知はSMSなのでIPは使っていないはずで す。

wi-fiからもSPモードメールが利用できることから通知にSMSは使ってないはず。
shin (2012/02/18 17:41):
spモードメールのpush通知にSMSが使われているのは紹介したドコモの資料にも書いてあります。

spモードメールはWiFi+3G圏外だとプッシュになりませんが、これはSMSが届かないからですね
とらっしゅ (2012/03/09 20:22):
程度の低いコメントで申し訳ないんですが、
MNPしたヒトはいっそのこと「使わない」って選択肢あるんじゃないですか?
ハードを安く買うために入る必要性はあるんでしょうが。
shin (2012/03/10 16:17):
程度が高い低い以前に意味が分かりません
(2012/03/30 11:55):
削除しました
(2012/05/30 15:04):
削除しました
(2012/05/30 15:04):
削除しました

この記事へのトラックバック

SPモードメール障害は設計ミス from Web屋のネタ帳
SPモードメール障害は設計ミス - とある技術屋の戯言 言いたいこと全部先に... (2011/12/22 23:04)
ドコモの他人のSPモードメールを受信してしまう障害はアプリックス社のアプリの設計ミス from ガジェットショット
先日他人のSPモードメールを受信してしまう障害がドコモで発生しましたが、 これはアプリックス社によるアプリの設計ミスであるという指摘が上がりました。 SPモードメールはドコモスマートフォンで、 従来のiモード端末のように@docomo.ne.jpアド... (2011/12/22 23:19)
spモードメール問題 from .Nat Zone
spモードメール問題、あの、アドレスが付け変わってしまうというやつが話題になっています。ただ記事を読んだだけではよくわからなかったので、NTT DOCOMOテクニカル・ジャーナル Vol.18 No.3 の Technology Report [1]... (2011/12/24 01:05)
ドコモspモードメール問題に思う from 自分勝手に「花ゲリラ」 (旧題) 今日の一言 法律のくすりやさん
ドコモのメールトラブル約1万9千人実害
配信元:産経新聞 2011/12/27 19:14更新
http://www.iza.ne.jp/news/newsarticle/business/infotech/540008/... (2012/01/13 02:29)

この記事にコメントする:
:
:(spamよけのダミーです。入力しないでください)

この記事のトラックバックURL: http://www.sonorilo.net/tb/2831

タグ

www.flickr.com
This is a Flickr badge showing public items from suzukis tagged with japan. Make your own badge here.

最近の話題 RSS feed

最近のコメント

メール("no-spam."を削除してください)