---
type: article
title: パスワードによるログイン管理の陳腐化と 制度整備の検討
timestamp: 2008-10-02T00:00:00Z
profile: sorane-okf/0.1
noFontEmbedding: true
---

# パスワードによるログイン管理の陳腐化と 制度整備の検討

<p>Web屋さんのいう通り、パスワード管理に<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%CF%A5%C3%A5%B7%A5%E5%B4%D8%BF%F4">ハッシュ関数</a>を使わないサイトに問題があるんだけど、現実には難しいだろうね。どのサイトがセキュリティに配慮しているかなんて利用者からは分からないし、それぞれ別々のパスワードを設定したらメモするなり別の穴が出てくる。そろそろWebサイト別のID・パスワードという認証スキームが破綻しつつある気がするんだけど、じゃあOpen-IDか？というと敷居が高いし、<a class="keyword" href="http://d.hatena.ne.jp/keyword/PKI">PKI</a>や<a class="keyword" href="http://d.hatena.ne.jp/keyword/Windows">Windows</a> CardSpaceといった技術も普及の気配はない。

<br />
パスワードの管理に<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%CF%A5%C3%A5%B7%A5%E5%B4%D8%BF%F4">ハッシュ関数</a>を使う、それだけじゃ同じパスワードだと同じ<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%CF%A5%C3%A5%B7%A5%E5%C3%CD">ハッシュ値</a>になるからソルトもまぶして、みたいな技って昔<a class="keyword" href="http://d.hatena.ne.jp/keyword/UNIX">UNIX</a>を齧った奴なら常識だよね。あれからシャドーパスワードとかPAMとか出て、少しだけ複雑になったけど。最近のWeb開発屋って、パスワードも住所も同じフィールドって認識しかないのかな。最近はログイン画面を<a class="keyword" href="http://d.hatena.ne.jp/keyword/SSL">SSL</a>で守ることが増えたとはいえ本来はWebのフォーム入力の仕様がセキュリティ的にどうかという話もあって、引数として平文で送るのではなくチャレンジ<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%F3%A5%C9%A5%EC">アンドレ</a>スポンスとかで認証する<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%D7%A5%ED%A5%C8%A5%B3%A5%EB">プロトコル</a>つくるべきじゃない？みたいな話もある。<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BB%BA%C1%ED%B8%A6">産総研</a>でフィッシング対策技術として研究しているPAKE認証とかもあるし。<br />
パスワード平文保存派を少しだけフォローすると、ハッシュだけで保存するとデータ移行とかで使い勝手が悪い。例えば<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%CF%A5%C3%A5%B7%A5%E5%B4%D8%BF%F4">ハッシュ関数</a>にも<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%C8%BC%E5%C0%AD">脆弱性</a>があって、<a class="keyword" href="http://d.hatena.ne.jp/keyword/MD5">MD5</a>で<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B3%A5%EA%A5%B8%A5%E7%A5%F3">コリジョン</a>がみつかったんで<a class="keyword" href="http://d.hatena.ne.jp/keyword/SHA-1">SHA-1</a>にしましょう、そろそろ<a class="keyword" href="http://d.hatena.ne.jp/keyword/SHA-1">SHA-1</a>も危ないからSHA-256以上だよね、みたいな時にデータ移行できないのである。だからといって平文で保存するのは大きな間違いで、AESのような対称鍵暗号を使って暗号化する手もある。サーバーに進入されて鍵を抜かれたら平文パスワードが流出してしまうが、単なる<a class="keyword" href="http://d.hatena.ne.jp/keyword/SQL%A5%A4%A5%F3%A5%B8%A5%A7%A5%AF%A5%B7%A5%E7%A5%F3">SQLインジェクション</a>等の手口では抜かれないようにできる。<br />
いずれにしてもパスワードリマインダーで前に設定したパスワードが送られてくれば、ああ平文で管理しているのか、二重に間違ったことをしやがってとか分かる訳だけれども、Web開発者にさえない<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%EA%A5%C6%A5%E9%A5%B7%A1%BC">リテラシー</a>を利用者に求めているのは馬鹿げているし、パスワードリマインダーからランダムな一時パスワードが送られたところでデータベース上のパスワードが暗号化されている証拠にはならないし、利用者としては多くのWebサイトがパスワードを平文で保存している前提で考えざるを得ない。だからといって10も20もパスワードを暗記できないオレどうしたらいいの、とか途方に暮れてしまう。<a class="keyword" href="http://d.hatena.ne.jp/keyword/Yahoo%21%A5%AA%A1%BC%A5%AF%A5%B7%A5%E7%A5%F3">Yahoo!オークション</a>での不正出品事件は、ひょっとするとパスワードによるログイン管理を陳腐化させる大きな契機となるかも知れないね。<br />
個人的にはパスワードのハッシュ保存を法律で義務付けることに、効果は期待できない気がする。Webサイトの実装はブラックブックスで、現実的な法執行の手段がないからね。決済やオークション等に悪用できる個人情報と紐づいたパスワードの流出は<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B8%C4%BF%CD%BE%F0%CA%F3%CA%DD%B8%EE%CB%A1">個人情報保護法</a>違反に当たるので、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C8%BD%CE%E3">判例</a>で賠償額が上がれば経済的誘因はつくれるだろう。被害者に対して賠償したヤフージャパンは、パスワード流出元を訴えるのだろうか。<br />
個々のサイトが平文パスワードを持っていないことを担保するには、法律で義務付けるよりはOpen-ID等の普及が現実的と考えられる。その場合Identity Providerは平文でパスワードを管理することのないよう監視を要するが、<a class="keyword" href="http://d.hatena.ne.jp/keyword/PKI">PKI</a>だけでなくID認証連携までカバーする方向で<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C5%C5%BB%D2%BD%F0%CC%BE">電子署名</a>法を改正してはどうか。こういった事故があると<a class="keyword" href="http://d.hatena.ne.jp/keyword/EU">EU</a>のeコマース指令やデータ保護指令に相当する法令をつくるべきではないか、という声も高まるのではないか。<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B8%C4%BF%CD%BE%F0%CA%F3%CA%DD%B8%EE%CB%A1">個人情報保護法</a>改正を伴うと政局が安定しない限り難しいが、総選挙後の政治情勢によっては芽が出るだろうから、そろそろ勉強を始めておかないと。</p>
<blockquote cite="http://neta.ywcafe.net/000910.html" title="パスワードをハッシュ化（暗号化）保存することを法律で義務化するくらいのことが必要だと思う">
<ul>
<li>たくさんのユーザーはヤフー以外のWebサイトでも同じようにユーザー登録する。アマゾン、<a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B3%DA%C5%B7">楽天</a>のような有名サイトから、小さな化粧品販売サイト、アウトドア用品販売サイト、絵本販売のサイト、、、、人によって好みのサイトは違うが、とにかく数え切れないぐらいだ。それらサイトでのIDとパスワードをやはり好きなように登録できるとして、IDはともかくパスワードはヤフーで使ったパスワードとまったく同じものを使ってしまう人が非常に多い。違うパスワードを使い分けるのは面倒くさい、記憶するのが大変、という理由で。<span style="font-weight:bold;">ただしその行動は「パスワードを（ここではヤフー以外の）第<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BB%B0%BC%D4">三者</a>に教えてはいけない」というごく一般的な常識に反する行為である。</span>このことに気づいてない人が多いようだけど、実はこれが事件の原因その一。</li>
<li>それらヤフー以外のWebサイトでは、<span style="font-weight:bold;">パスワードをハッシュ化（暗号化）して保存するという、コンピュータ技術的には本来必ずやるべき処理をまったくやっていないケースが多々あり、そういう処理や方針が必須という意識すら無いWebサイト運営者や技術者が同様に多々存在する。</span> 結果として平文のパスワードがそのまんまデータベースに蓄積されてゆく。これが事件の原因その二。</li>
</ul></blockquote>
