1

私の理解を助けてください。また、SSL や DH 鍵交換について話しているわけではありません。ソルトはDBに保存され、攻撃者が実際のDB自体を手に入れた場合に備えて、ユーザーの元のパスワード(レインボーテーブル)を保護するための秘密です。次に、ブルート/辞書ベースの攻撃からどのように保護しますか. 繰り返しますが、間違ったリクエストをログに記録し、多くの悪いリクエストの IP を拒否することは知られています。ここでは暗号化について話しています。パスワードは us​​er1 と同じであるため、攻撃者は他の Web サイトからパスワードを取得しました。ソルトはここでどのように保護しますか。そうではないと思いますが、そのような攻撃を阻止するために利用できる最善のソリューションは何ですか。クレジットカード番号+ CVVのようにデータが本当に重要であると仮定します(CVVを保存しないことは知っていますが、それは問題ではありません)。

編集: ところで、私は愚かなアイデアを思いつきました。それは、辞書攻撃を阻止するための既知の方法のようです。この質問をもっと読む:高コストの暗号化ですが、低コストの復号化

ブルート/辞書/ソーシャルエンジニアリングパスワード攻撃から保護するために、ここでいくつかの他の方法について議論できるかもしれません

4

4 に答える 4

3

あなたの実際の質問が何であるかは少しわかりませんが、「塩はブルートフォース攻撃から私をどのように保護するのに役立ちますか?」答えは、技術的にはそうではないということです。ブルートフォース攻撃をより困難にするソルトについては何もありません。代わりに、ソルトは複数のアカウントを同時にブルートフォース攻撃することを困難にします. 本質的にソルトは、ブルート フォース攻撃を行うために必要な検索スペースを人為的に膨らませるため、考えられるすべてのパスワードを事前に計算し、それらをデータベース全体に対してチェックすることを計算上困難にします。ソルトは、各パスワードに固有のものである限り、平文で保存できます。

パスワードのブルート フォース攻撃をより困難にしたい場合は、アダプティブ ハッシュ スキームが必要です。これらのスキームを使用すると、ハッシュにかかる時間を指定できます。正直なクライアントは数十回のオーダーで認証するだけでよいはずですが、攻撃者は数百万回または数十億回のオーダーで認証を行う必要があるため、低速のハッシュは攻撃者にとってタスクをほとんど不可能にしますが、オーバーヘッドはほとんど発生しません。システム。

要約すると、パスワードをハッシュする場合は bcrypt を使用する必要があります。ソルトを組み込むように設計されており、適応ハッシュ システムです。詳細については、security.stackexchange.com のこの記事を参照してください。

于 2012-03-20T17:48:48.240 に答える
2

ソルトについて:グーグルのような検索エンジンを使用して「MD5」暗号化パスワードを検索すると、ここに元のプレーンパスワードが見つかる場合があります。ただし、プレーンパスワードにソルトを混ぜてから、「MD5」暗号化を適用すると、それを見つけることができなくなります。とにかくハッカーがデータベースをハッキングし、MD5暗号化のみを使用している場合、ハッカーは上記の方法を使用してパスワードをハッキングする可能性があります。たとえば、Googleでこの文字列を検索します:5f4dcc3b5aa765d61d8327deb882cf99、元のパスワード文字列を取得します。塩は主にそのような攻撃から保護するために追加されます。

ここをチェックしてください。ここでコンテンツとコンセプトだけを見て理解してください。これはSpringのセキュリティドキュメントからのものです。

于 2012-03-19T07:44:09.680 に答える
1

ソルトの目的は、辞書攻撃を防ぐことではありません。レインボーテーブルなどの事前計算攻撃を防ぐためです。ソルトを使用するには、攻撃者がデータベースにアクセスした後、各パスワードを個別に攻撃する必要があります。辞書内のパスワードのハッシュを事前に計算したり、この作業をユーザー間で再利用したりすることはできません。

パスワードストレッチは、攻撃者が各候補パスワードをテストするために実行する必要のある作業量を増やすことにより、辞書攻撃をより困難にする方法です。

于 2012-03-20T11:22:19.620 に答える
0

ソルトがないと、攻撃者はオフライン攻撃を使用して、「secret」「qwerty」などの一般的なパスワードのハッシュを事前計算できます。ソルトがなければ、攻撃者は、異なるユーザーが同じパスワードを使用していることを知ることができません。ソルトは事前計算を防ぎ、マッチング ハッシュの問題を回避します。

データベースにアクセスできる攻撃者は、ソルトにもアクセスできます。ソルトが異なるため、各パスワードを個別に攻撃する必要があります。

ストレッチング (反復ハッシュ) を使用すると、攻撃者の速度が低下する可能性もあります。保存するのではなく、全体の計算に少なくとも 0.1 秒かかる十分な大きさの場所を保存しhash(password + salt)ます。これにより、攻撃者は 1 秒間に約 10 回の試行に制限されますが、ユーザーに目に見える影響はありません。hash^n(password + salt)n

于 2012-03-19T14:54:07.493 に答える