6

JavaでWebアプリケーションを開発していますが、ハッシュ化されたパスワード
を使用して認証プロセスを安全にしたいと考えています。

ハッシュ
ステップ-1:ユーザーから指定されたパスワードを取得し、それにソルトを追加します。
ステップ-2:を使用してハッシュしMessageDigest、ハッシュされた値をデータベースに保存します

ログインプロセス中にユーザーを認証している間、上記の同じ手順を繰り返しますが、ハッシュ値を保存する代わりに
、データベースに存在する値と比較します。

、私の無知を許しますが、ハッカーが他の方法でデータベースにアクセスした場合、ハッカーはハッシュ 値
からパスワードの実際のテキストを簡単に取得できないため、セキュリティを提供できます。

しかし、ログインのためにユーザーを認証するため に同じBruteforce attack, Rainbow attack, dictionary attack手順を使用するので、どのようにして他の形式の攻撃などに対するセキュリティを提供できますか?

今日のパスワードのハッシュはそれほど価値がないと思います。
私にいくつかの提案をしてください.....私が間違っている場合。

4

4 に答える 4

4

ブルートフォースはブルートフォースです。N回連続して試行に失敗した後、認証の試行を拒否する(または遅延を課す)以外は、それについて何もできません。もちろん、ハッカーがハッシュ化されたパスワードを持っている場合、彼はパスワードをブルートフォースすることができますが、安全なハッシュ関数のポイントはそれを非常に長くすることです。

レインボー/辞書攻撃は塩漬けによって解決されます。ユーザーがパスワードとして「パスワード」を選択した場合、虹/辞書攻撃はすぐにパスワードを見つけます。ただし、パスワードをランダムな値でソルトするため、ハッシュ値はのようd7("58gd0}78sq5sQIazuAKpasswordになり、レインボーテーブル/ディクショナリには含まれません。

于 2012-05-29T08:04:00.193 に答える
0

あなたの懸念は正しいです。逆ハッシュとハッシュディレクトリに基づいてプレーンテキストを取得するために現在利用可能な多くのツール(ここここここなど)があるため、ハッシュされたパスワードはセキュリティの層を提供しません。データベースに保存する必要のないsaltプロパティを持つJBcryptを使用することをお勧めします。また、saltは誰にも知られていないため、ハッシュを解除してプレーンテキストを取得することは非常に困難です。

ウィキペディアにあるBCryptに関する詳細情報

于 2012-05-29T08:04:54.227 に答える
0

塩漬けとハッシュ

これは、パスワードを人間が読み取れないようにし、ユーザーがクレジットカードサイトなどの他のサイトで使用する可能性のある元のパスワードを取り戻すのを困難にするプロセスです。

ログインによる認証

今、あなたのユースケースは、ハッカーが通常のログインフォームを使用してブルートフォースを介してログインすることです。これは、間違ったクレデンシャルを使用した複数のログインを防ぐためのアプリケーションロジックであるため、パスワードのソルトやハッシュは想定されていません。

結論

これは、ブルートフォースログインを防ぐためのアプリケーションですが、パスワードのソルトおよびハッシュによるものではありません。

于 2012-05-29T08:08:45.043 に答える
-1

強力なパスワードルールを適用することで、ブルートフォース攻撃、レインボー攻撃、辞書攻撃からアプリケーションを保存できます。たとえば、パスワードには、アルファベットの数字とmyPassWord$10などの特殊文字の組み合わせを含める必要があります。

于 2012-05-29T08:04:14.390 に答える