この質問は、(GDPRの理由から)ハッシュされたパスワードのpartを含むすべてのデータを含むテーブルを提供する特定のサイトへの最近のアクセスによって促されました。この場合は問題が発生しないことを理解しています(このテーブルを表示するにはログインする必要があるため)。このデータが公開された場合はどうなりますか?
より明確に言い換えると、パスワードハッシュ(ハッシュ長さを含む)のpartが明らかになるため、パスワードのクラッキング(ブルートフォースまたはその他の方法による)が以前よりも簡単または効率的になります。 ?
TL; DR:答えは、ハッシュアルゴリズム、ハッシュのどの部分が公開されるか、パスワードの強度によって異なります。
ハッシュアルゴリズムが既知であると仮定ハッシュの特定の部分の知識によりブルートフォース攻撃が容易になる可能性があります:攻撃者は現在、ほとんどのブルートフォーステストをオフラインで並行して実行する可能性があるため、大規模なブルートフォースを阻止するために(できれば)試みが失敗した後のレート制限またはアカウントロック。
攻撃がどれほど簡単になるかは、ハッシュとパスワードの強度に依存します。ハッシュアルゴリズムが遅い場合(推奨)、ブルートフォーシングも遅くなります。パスワードが十分に弱い場合でも、そのようなオフラインでの総当たり攻撃はおそらく成功するでしょう。対照的に、サイトがログイン試行に失敗するたびに待機時間を実装したり、アカウントをロックしたりする場合、弱いパスワードでもオンライン総当たり攻撃は失敗することがよくあります。
どれほど簡単になるかは、ハッシュのタイプとどの部分が公開されるかに大きく依存します。攻撃者がハッシュで使用されたソルト(および通常はハッシュの一部として保存される)を知らない場合、ソルトが十分に大きなランダムプールから選択されている場合、総当たりはほとんど不可能です。
それが敵にとって容易ではない場合はまったくありません。唯一のケースは、パスワードがソルトされ(大きなランダムで)、ソルトが表示されない場合です。
主な関心事は、それが敵にとってどれほど簡単かを知ることです。
最悪の場合、彼はオフラインのディクショナリ/ブルートフォース攻撃を実行でき、ハッシュ関数の分散により、彼は偽陽性をほとんどしません。
たとえば、Webサイトに6桁の16進文字が表示される場合、ブルートフォース攻撃は、16 ^ 6回の試行ごとに同じ見出し6文字のハッシュと統計的に一致すると想定できます(したがって、1600万回の試行ごとに1つの誤検知)。それは大きな利点です。
前述のように、ハッシュアルゴリズムがbcrypt、scryptなどの場合、オフライン攻撃の速度は、オンライン攻撃に比べてそれほど興味深いものではありません。
だが !!!
オフライン攻撃を実行する機能により、パスワード試行のしきい値によるアカウントロックアウトを回避できます。そのため、オフライン攻撃の速度がそれほど大きくなくても、ハッシュの一部を表示することでアカウントロックアウト機能をバイパスできる場合があります(1秒あたり10回の試行は、10回の試行よりも優れており、ブロックされます)。
これは、SIEMおよびその他の侵入検知メカニズムに対して比較的静かに保つ方法でもあります。
ランダムに生成された巨大なパスワードを使用しても、リスクを無視するには不十分であることに注意してください。パスワードがソルト化されておらず、ハッシュアルゴリズムが弱い場合、短いパスワード試行で衝突が発生する可能性があります。
問題ありませんifダイスウェアまたはBip39によって作成された適切なエントロピーを備えた適切なパスワードがあり、ハッシュとソルトの知識があっても多項式時間の敵は何もできません。パスワードがすでに123456
、すでに壊れている可能性があると想定しており、一部がリークしているかどうかはわかりません。攻撃者はソルトを利用できません。幸運を祈ります。
2048ワードのビットコインBip-39辞書は、コインを256回投げてランダムにワードを選択することにより、≈2263エントロピーを作成できます。
ダイスウェアのパスフレーズにはエントロピーがあります
多項式時間の攻撃者はソルトとハッシュ値にアクセスできると考えています。そして、あなたのパスワードのセキュリティは、このケースで満たされなければなりません。このアプローチの動機は簡単です。攻撃者は常にデータベースにアクセス/アクセスし、ハッシュとソルトをダウンロードできます。単に;
実際、パスワードは単純にハッシュされるのではなく、PBKDF2、Scrypt、Bcrypt、および2015年7月のパスワードハッシュコンテストで優勝したArgon2などの優れたパスワードハッシュ関数で処理されます。
適切なパスワードハッシュメカニズムを使用しておらず、適切なエントロピーを持つパスワードがない場合は、すでに安全ではありません。