なぜ、パスワードを平文で保存するのですか?
@IT
23Picks
コメント
注目のコメント
記事中にもありますが、単にハッシュ化すればいいわけではないです。
パスワード自体が単純だったり安易に予測可能なものだった場合や、そうでなくても特定の形式のハッシュ値のリストを予め作っておけば、単純にハッシュ化しただけのパスワードは特定されてしまいます。
参考:https://persol-tech-s.co.jp/corporate/security/article.html?id=57
それを防ぐためにソルトを付加するのが一般的です。
http://www.nttdata.com/jp/ja/insights/blog/20170914.html先日も書きましたが、ハッシュすれば何でも良いわけではなく、MD5など脆弱なハッシュ方式ではダメです。
https://newspicks.com/news/3629072?ref=user_337880
強度の高いハッシュ・アルゴリズムを使い、ソルトと相当な回数のストレッチは必要です。
Linuxのshadowファイルなどで使われていますが、アルゴリズム(を示す数値)やソルトを、ハッシュ文字列に付与しておくと、後でより強力なハッシュ方式と併用することができます (新規ユーザーは強力なハッシュ。既存ユーザーもパスワード変更した時点で強力なハッシュ)
ソルトは、辞書攻撃をするときに、予めハッシュ値を計算しておくことを防ぐためのものですので、ハッシュが流出したときにいっしょにソルトがバレても、その時点から辞書をそれぞれのソルトでハッシュする計算をすることになり、大きく時間を稼ぐことができます。