2011-07-29 17 views
3

塩とハッシュを使用してデータベースに保存できる安全なバージョンのパスワードを作成する方法については、多くの記事があります。安全なウェブサイトのパスワード記憶

しかし、1つの質問が私を困惑させています。私は問題を見ることができないので、私はここに質問を投稿し、他の人がそのアイデアの欠陥を指摘できるかどうかを見ていると思った。

私の基本的な考え方は、公開鍵/秘密鍵のペアを生成し、その後秘密鍵を破壊することです。公開鍵/秘密鍵暗号の私の限られた理解は私が秘密鍵を持っていなければ、公開鍵で暗号化されたメッセージを解読することは "数学的には不可能"であるということです。

パブリックキーを使用してパスワードを暗号化し、暗号化されたバージョンをデータベースに格納します。誰かがログインしようとすると、私は単にパブリックキーを使ってパスワードを暗号化し、それが保存されたものと一致するかどうかを確認するだけです。

このアイデアにはいくつかの恐ろしい欠陥がありますか?塩とハッシュは何とか安全でしょうか?

答えて

1

問題は、ハッシュ関数とは異なり、暗号化関数の出力は、一般的に非決定的であるということです。同じ公開鍵を使用して同じペイロードを2回暗号化することができ、暗号化アルゴリズムは毎回全く異なる暗号文を生成します。たとえば、RSA暗号化では、ランダムなパディングを入力に組み込んで、特定の攻撃のクラスを防御します。

一方、暗号化ハッシュの出力は確定的です。このプロパティは、このプロパティが必要なパスワード記憶域などの問題で使用されます。

0

ハッシュパートを効果的に説明しました.2人のユーザーが同じパスワードを共有する状況を考慮してください。基本的なアプローチでは、格納される値は同じになります。したがって、ハッシュアルゴリズムと辞書攻撃を発見した場合は、パスワード - >ハッシュ値テーブルを生成し、各個人の可能なパスワードを即時に検索することができます。結局のところ

、ハッカーがあなたのテーブルを得た場合、彼らはおそらくあなたのコードを持って、あまりにも...このアプローチの

+0

右 - 私は今、レコードのデータに基づいて塩を使用してパスワードを生成する限り、すべてのパスワードを個別に強制的に強制しなければならないことを意味します。それは非常に高価です。 –

関連する問題