2009-05-18 9 views
7

couplegreatが塩のベストプラクティスについて議論されており、パスワードごとに異なる塩を生成し、データベースのパスワードと一緒に保存することが圧倒的に推奨されているようです。データベースの代わりにコードに塩を保存する

しかし、私が塩の目的を正しく理解していれば、あなたが虹のテーブル攻撃によって危険にさらされる可能性を減らすことです。だから、私はそれをデータベースに保存することによって、各ユーザーのためにそれを変更することが最適であることを理解していますが、もし塩がデータベースの近くにいなければどうでしょうか?コードに単一のsalt値を格納すると(Webサーバー上ではコンパイルされたdllになります)、攻撃者が何らかの方法でデータベースにアクセスすると同じ目的を果たしませんか?より安全なのは私のようだ。

答えて

15

塩の目的は、パスワードごとに虹のテーブルを再生することです。あなたが単一の塩を使用する場合、ハッカー/クラッカーは虹のテーブルを一度再生するだけで、彼はあなたのすべてのパスワードを持っています。しかし、ユーザーごとにランダムなものを生成する場合、ユーザーごとに1つずつ生成する必要があります。ハッカーの部分ではるかに高価です。これは、プレーンテキストで塩を保存できる理由です。ハッカーが複数ある場合は、ハッカーがそれを知っているかどうかは関係ありません。

セキュリティがあいまいではありません、マイクロソフトではそれを教えてくれました。

+2

もしあなたが楽しいことをしたいのであれば、両方を行うか両方を行い、データベースにdupを格納するか、データベースの第3の塩とdupの第4の塩で両方を行う:D – Malfist

8

...攻撃者がDLLにアクセスするまで。

16

塩の価値は、ユーザーごとに異なります。また、比較目的でハッシュ値を再作成するときに、この一意でない値を取得できる必要があります。

すべてのパスワードに使用する単一のsalt値を保存すると、最初に塩分を持つ値を大幅に減らします。

1

私は塩から学んだ教訓は次のとおりです。他の回答に加えて分割統治(セキュリティ)

7

、それはまた、攻撃者が同じようにあなたの塩を見つけ出すことができることは注目に値します、彼はパスワードを見つけ出すだろう:知られているパスワード(彼自身)が与えられた場合、彼は可能な塩に対してブルートフォース攻撃を行うことができます。

+0

Greatポイント、ありがとう。 – ern

関連する問題