3

ソルトとハッシュを使用して、データベースに保存できる安全なバージョンのパスワードを作成することに関する投稿をいくつか見てきました。

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

私の基本的な考え方は、公開鍵と秘密鍵のペアを生成してから、秘密鍵を破棄することです。公開鍵/秘密鍵の暗号化に関する私の限られた理解は、秘密鍵を持っていない場合、公開鍵で暗号化されたメッセージを復号化することは「数学的にありそうもない」ということです。

公開鍵を使用してパスワードを暗号化し、暗号化されたバージョンをデータベースに保存します。誰かがログインしようとすると、公開鍵を使用してパスワードを暗号化し、保存されているものと一致するかどうかを確認しますか?

この考えには恐ろしい欠陥がありますか?ソルトとハッシュはどういうわけかより安全でしょうか?

4

2 に答える 2

1

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

対照的に、暗号化ハッシュの出力は決定論的です。これは、このプロパティが必要なパスワード ストレージなどの問題で使用されることを説明しています。

于 2011-07-29T12:41:09.467 に答える
0

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

結局のところ、ハッカーがあなたのテーブルを手に入れたなら、おそらくあなたのコードも手に入れたでしょう...

于 2011-07-29T12:16:27.253 に答える