2010-12-19 14 views
3

私は、現在開発中のシステムにパスワードを保存するためのベストプラクティスを決定するために多くの研究を行ってきました。これまでは、の各塩を生成するためにRNGを使用してSHA512ハッシュを使用することに決めました。それぞれのパスワードはです(明らかにRainbow Tablesなどに対するベストプラクティス)。データベース内の独自のフィールドにパスワードの塩を保存する必要がありますか?

データベースにパスワード表現を決定するために単純すぎるテーブルに別々のフィールドにパスワードを保存したい(PasswordHashフィールドとPasswordSaltフィールドがありますか)?あいまいさでセキュリティのように思えるかもしれませんが、塩とパスワードハッシュを一緒に連結して1つのフィールドに格納することを考えていました。

これは「助けてください」ということですか?

+0

+1いい質問ですが、私はこれに遭遇する前に自分自身を書いていました。 – James

答えて

3

別に保管してください。

あなたが保護しているものを覚えておいてください。誰かがあなたのデータベースのコピーを取得するので、塩漬けされていなければ、フィールドに対してレインボーテーブルルックアップを実行できます。

攻撃者が塩を知っているかどうかは本当に問題ではありません。あらかじめ生成された虹のテーブルを使用するのを止めるだけです。

+0

私は一般的な考え方を知っていましたが、本当に必要かどうかはわかりませんでした。あなたのご意見ありがとうございます。 – TheCloudlessSky

+0

しかし、最適化のために、確かに同じフィールドに格納する方が良いでしょうか? – James

5

本当に重要ではありません。塩は秘密を捨てるものではなく、実際に秘密を保つのに役立ちます。あなたのデータベースデザイナーの友達に感銘を与えたい場合は、それを独自のフィールドに保管してください。あなたの最適化する友達を感動させたい場合は、ハッシュでそれを保つ。それは本当にスタイルの問題です。

塩については、 http://en.wikipedia.org/wiki/Rainbow_table#Defense_against_rainbow_tables

関連する問題