差分

移動先: 案内検索

システムにおけるパスワード管理の概要

1,963 バイト追加, 2014年2月11日 (火) 15:33
/* 一方向性ハッシュ関数を導入する */
* 利点: パスワードを見つけるためにはパスワード解析をする必要がある。
* 欠点: 同じパスワードは同じ出力なので事前に辞書を作ることが可能。
 
 
 
=== ソルトを加えたパスワード管理 ===
 
[[ファイル:Pwd-pic-3.png|300px|thumb|right|Salt(ソルト)を加えることにより同じパスワードの類推を困難にする]]
 
一方向性ハッシュ関数だけだと逆引きの攻撃辞書が使えるので、それを困難にするようにソルト(salt)と呼ばれる、ユーザ毎に異なるランダムな値を加えたのちに一方向性ハッシュ関数に入力する方法をとります。
 
このソルトは隠さなくてもかまいません。長ければながいほど逆引きの攻撃辞書のサイズが巨大になります。ソルトはランダムデータですが、そんなに大きなものは必要なく70年代では12ビット程度が使われており、もし将来的にも使うと考えるとしても64ビット(8バイト)程度あれば十分でしょう。
 
古典的なUNIXのパスワード処理法では、さらに一方向性ハッシュ関数を複数回呼び出し計算時間をより多くかけさせるという手法を使っています。ただし一度に多数のユーザの対応をしなければならないようなシステム、例えばウェブサイトのパスワード認証などで行うのは、認証するサーバー側に負荷がかかりすぎる可能性があるので、本当にこの手法を選択すべきかどうかは熟慮が必要です。基本的には、複雑さを増すにはパスワードに使える文字種類を多くしたり、文字数を増やすことが重要です。
 
これでやっと普通のパスワード管理の基準を満たすことができます。ここでの普通っていうのは、ただ単純に数として多くあるいう意味ではなく、理想に近い意味での普通です。 (cf. Dream Fighter by Y. Nakata)
 
* 利点: 事前のパスワード解析を無効にできる。
* 欠点: - (必要な基準は満たしている。)