2

我慢してください、私はほんの数週間しかPHPを学んでいないので、サンプルコードは私を混乱させるかもしれません。やっと塩漬けがわかったと思います!侵害された場合、データベース内のパスワードを保護するためです。

私が理解していないのは、ハッカーがユーザーのパスワードを理解しようとしている場合、なぜハッカーはハッシュをクラックしなければならないのでしょうか(それが彼らの目標であると仮定して)?これは簡単ではないでしょうか?パスワード推測からの唯一の防御策は、パスワード入力の制限を1日にX回またはCAPTCHAで実装することですか?

そもそもデータベースはどのようにハッキングされるのでしょうか?それはより多くのパスワード推測ですか、それともMySQLインジェクションを通じてハッシュを取得できますか?

ありがとう!

4

4 に答える 4

5

ソルトとハッシュの考え方は、SQLインジェクション、バッファオーバーフロー攻撃、または単にサーバールームに移動してサーバーからディスクを引き出すことによってデータベースが侵害された場合にパスワードを保護することです。ソルトはパスワードの推測からあなたを保護しませんが、攻撃者がデータにアクセスした場合に役立ちます。

于 2010-07-14T21:49:42.550 に答える
4

はい、ソルティングは、パスワードがプレーンテキストに逆変換されるのを防ぐためのものです。また、「暗号化されたパスワードはサイトAでもサイトBでも同じであるため、ユーザーは両方の場所で同じパスワードを使用している」と誰かが言うのを防ぎます。

これは、ユーザーをハッカーから保護するためだけのものではありません。それはあなたから彼らを守ることでもあります

はい、パスワード推測に対する唯一の防御策は、繰り返しの試行を遅くするか、許可しないことです。ほとんどのCAPTCHAは壊れたり壊れたりする可能性があり、生のデータベースのコピーを持っている人にCAPTCHAを課したり制限を推測したりすることはできません。したがって、暗号化されたデータでさえ悪意のある個人の手に渡らないようにしてください。.htpasswdまたは/etc/shadowファイルまたはデータベースにそれらを配置しないでください。

ソルトを使用していない場合は、非常に強力なパスワードを直接推測するよりも、レインボーテーブルを(事前に)生成する方がはるかに簡単です。重要なのは、逆マッピングハッシュ->パスワードの作成を1回実行でき、(無塩の)ハッシュはレインボーテーブルを所有している人には永久に破壊されるということです。

プロバイダーが侵害された場合、コードにインジェクションの脆弱性がある場合、DBユーザーアカウントのパスワードが推測された場合、プロバイダーがeBayを使用して3つの(ワイプされたと推定される)ハードドライブを売却した場合、データベースがハッキングされる可能性があります。その上にあるデータベースの1年前のコピー...それは多くの方法で発生する可能性があります。

于 2010-07-14T21:50:14.250 に答える
2

ばかげているかもしれませんが、多くの人が異なるサイトに同じパスワードを使用しています。データベースが危険にさらされ、パスワードが単純にハッシュされている場合、ハッカーが同じハッシュになるパスワード値を見つけるために使用できる手法(レインボーテーブル、いくつかのWebサイトなど)があります。そのパスワードを使用して、ユーザーがアカウントを持っている他のサイトにアクセスしようとすることができます。

データベース内のパスワードがソルトされている場合、これは非常に困難になります...他のWebサイトも自分のパスワードとは異なるソルトでパスワードをソルトすると、ハッカーにとって実用的ではなくなります。

于 2010-07-14T21:58:33.847 に答える
1

ここで重要なのは、サイトで使用するユーザーのパスワードを取得しようとはしていないということです。ただし、穴を修正した後は役立つ可能性があります。これは、何らかの理由でサイトが侵害された場合でも、ユーザーに損害を与えないようにするためです。人々はパスワードを複製する傾向があります。それは悪いでしょう。

于 2010-07-14T21:55:40.217 に答える