パスワードの危機(その5) − アマゾンの場合

(前回からの続き)さんざん脅かして不安をあおるだけではなんなので、 現実的に、Webシステムにおいてパスワードをどう取り扱うべきなのか、 ということについて述べてゆこう。

前にも書いたがパスワードを暗号化(ハッシュ化)保存する場合の 基本的な流れは次のようになる。

  1. ユーザーがWeb上の登録画面からユーザー登録(会員登録)する。 その際にパスワードを入力させるが、 Webシステムはそのパスワードを暗号化(ハッシュ化)してデータベースに記録する。
  2. ユーザーがWeb上でユーザーIDとパスワードを入力してログインを試みる
  3. Webシステムは入力されたIDをもとにデータベースからパスワードを探し出す
  4. 入力されたパスワードを暗号化(ハッシュ化)し、 データベースにあったパスワード=すでに暗号化(ハッシュ化)済み= と照らし合わせ、合致すれば認証OK。 間違っていれば「IDまたはパスワードが違います」を表示
ユーザーから「パスワードを忘れました、どうしたらよいのでしょう」 という問い合わせがあった場合は次のような流れになる。
  1. 管理者が新しいパスワードを考えて データベース上のそのユーザーのパスワードを新しいパスワードで上書きする (上書きしたパスワードももちろん暗号化(ハッシュ化)保存される)。
  2. 管理者はユーザーに新しいパスワードを知らせる
より安全性を高めるなら、このあと 「ユーザーは新しいパスワードを使ってログインし、改めて自分にしかわからないパスワードに変更する (まずパスワード変更しなければ他の機能を利用できないようにする)」 という流れを追加する。 これで管理者にもユーザーのパスワードがわからない状態を完全に実現できる。

Webシステムの詳しい仕組みについては技術的な話になりすぎるのでここでは省く。 ただ、上のような仕組みをつくることは技術的に難しいことでは まったくないはずだということは念を押しておきたい。

技術的な話の代わりに、あらゆるECサイトのお手本、アマゾンの場合の話をしよう。

「パスワードがわからなくなりました、どうしたらよいでしょう?」 と困っているユーザーに対する対処は、あらゆる会員制サイトにおいて「よくあるサポート業務」のベスト5に必ず入る。アマゾンはそこもよく考えぬいていて、 パスワードを忘れたユーザーへの対処には非常に簡潔かつ安全性の高い方法が用いられている。 次のような流れだ。

  1. ここでパスワードを忘れたユーザーに自分のメールアドレスを入力させる (アマゾンではユーザーIDとしてメールアドレスをそのまま使っている)
  2. Webシステムはパスワードの再登録ができるURLをそのメールアドレスに送る。 URLにはアトランダムな文字列がしこまれていて、 いわゆるワンタイムパスワードならぬワンタイムURLとなっている。 このワンタイムURLは発行後一定時間(おそらく24〜48時間程度)経つと無効化される
  3. ユーザーはそのURLにアクセスし、新しいパスワードを登録する
アマゾン方式がすばらしいのは、
  • アマゾンのサポート担当者がパスワードを知ってしまう過程が無い
  • 生のパスワードがWeb画面やメールや紙の上に記録または表示される過程が無い
  • ユーザーは自分にしかわからないパスワードを用いて即座に利用を再開できる
ということだ。もちろんパスワードの暗号化(ハッシュ化)保存も なされているのだろう(なされているよなあ?笑)。だとすれば アマゾン内部の人間であっても顧客のパスワードを知ることはできないし、 万が一何かの間違いがあっても暗号化(ハッシュ化)されたパスワードが 知られてしまうだけ(=知られても安全)という状態をほぼ完全に実現しているのだ

話は変わるが、この記事を書いている間にも、ヤフーの450万人分の顧客情報漏えい事件があった。 YahooIDまでもれていたことに関する問題については別な機会で記事にしたい。 また、いただいたコメントのいくつかについても興味深く、コメント返しやあるいは 記事にしたいものがあるのだが、このところ書きすぎで疲れ気味?なので またの機会とさせていただきたい。

最後に。 パスワードの暗号化(ハッシュ化)保存の重要性と最近の状況について書き始めたら、 全5回という本人もびっくりな長文になってしまった。
「そうまでして改めて力説するほどのことでもない、当然のことだろう?」 とお考えの方も少なからずいるだろうが、 その当然のことがなされていないWebシステムが急増しているのが現実ではないだろうか。 パスワードの暗号化(ハッシュ化)保存について 「知らないからやっていない」 「できないからやっていない」 「知っていてやっていない」 事情はそれぞれあるのだろうが、 いまのまま放置されるべきでないのは確かだ。

トラックバックURL

このエントリーのトラックバックURL:
http://www.ywcafe.net/mt/mt-tb.cgi/315

コメント

はじめまして。

パスワードの危機 全部読ませて頂きました。
ユーザー側としてはIDもパスワードもきちんと管理されていて当然という意識がありました。むしろそう信じていました。
私もWebサイト制作に携わっていた時期があり、ショッピングサイトの構築経験もありますが、システムに関しての知識は皆無です。

低コスト 短納期…辛いの一言が現状だと思います。ただ 必要なコストは削減すべきではないと思いますが、クライアントの意識次第でどうにでもなってしまう問題なのでしょうか…

制作サイドの認識・技術向上も必要ですが、クライアントサイドの向上も求められてしかるべきだと つくづく思うこの頃です。

コメントする

(初めてのコメントの時は、コメントが表示されるためにこのブログのオーナーの承認が必要になることがあります。承認されるまでコメントは表示されませんのでしばらくお待ちください)


画像の中に見える文字を入力してください。