6

単純な非ソルトハッシュ関数、単なる古いものを想定しましょう$hash = md5($pass)

敷地内:

  1. パスワードハッシュはすべてサーバー側で行われ、ハッシュはデータベースに保存されます。クライアントはこれらを見る方法がありません。
  2. レインボーテーブル攻撃は、パスワードを取得するためにハッシュの知識を持っている必要があります。

前提2を考えると、それはハッカーがすでにデータベースを制御していることを意味します。その時点で、あなたははるかに大きな問題を抱えています。

つまり、すでに侵害されたデータベース/システムからのパスワードの取得を保護するためだけに、レインボーテーブル攻撃を阻止しようとするポイントです。それはそれほど単純なことですか、それとも私が見逃している何か他のものがありますか。

私はすでにパスワードハッシュ手法に精通していますが、なぜレインボーテーブルについてこれほど多くの誇大宣伝があるのか​​疑問に思っています。ありがとう!

4

4 に答える 4

10

はい。

多くの人がすべてに同じパスワードを使用しています。元のパスワードを(単に知っているものに変更するのではなく)侵害すると、攻撃者が他のサービスの誰かのアカウントにアクセスできるようになることがよくあります。

レインボーテーブルは、辞書攻撃(ハッシュが必要)やブルートフォース(より多くのハッシュが必要)よりも計算量がはるかに少なくなります(単純なルックアップ)。

強力で一意のパスワードを使用してください。

于 2011-05-12T19:28:02.067 に答える
8
  1. パスワードの侵害は、データベースの制御を必要としません。車に侵入してデータベースダンプ付きのDVDのスタックを盗んだ場合はどうなりますか?データベースをバックアップしますよね
  2. 前述のように、人々は複数のサイトに同じパスワードを使用します。HBGaryは、最近Anonymousにハッキングされたときに、この被害に遭いました。SQLインジェクションの脆弱性を持つ1つのサーバーは、はるかに大きな侵害になりました。
  3. 私があなたのデータベースに5分間アクセスしてハッシュを取得した場合、あなたがパスワードを変更するまで、私はあなたのアカウントにアクセスできます。
  4. 塩は安いです。
  5. とにかく、ソルトではなく、鍵導出関数を使用する必要があります。
于 2011-05-12T19:31:55.890 に答える
3

ほとんどの場合、データベースからのデータの盗難はインジェクションによって成功します。時にはブラインドインジェクションさえ。

スクリプトの1つでデータベースインジェクションのエクスプロイトを発見した攻撃者は、管理者のパスワードである可能性のある、ある種のより高い資格情報を取得できるようになるまで、システムの残りの部分に対する制御を収集しません。

あなた(管理者)がパスワードを残りのユーザーと一緒に単純なmd5()ハッシュとして保存していて、攻撃者がなんとかそれを取得した場合、最終的にはレインボーテーブルを使用してシステムを追い越す可能性があります。

于 2011-05-12T19:41:40.627 に答える
0

私がそれらを正しく理解していれば、レインボーテーブルはハッシュ(意図的に高い)を計算する計算負荷を取り除くので、攻撃はより速くなります。

于 2011-05-12T19:30:20.663 に答える