間違ったパスワードの試行は、正しいパスワードの試行よりも処理に時間がかかるのはなぜですか?


17

私がこれに気づいた最も顕著な場所は職場でのSSH接続ですが、他の場所でもこの動作を観察したように感じます。

職場のWindowsデスクトップからLinuxサーバーにログインしようとすると、パスワードの入力を間違えると、「アクセス拒否」が返されるまでに5秒ほどかかることがわかりました。その後、パスワードを正しく入力すると、ログインが(ウェルカムメッセージなどとともに)ほぼ瞬時に行われます。

これには論理的な理由がありますか、それともここで働いているマシンに固有の奇妙な構成になりますか?


1
これについては、stackoverflow.com /
questions / 712339 /…で適切

あなたが間違ったパスワードでWindowsにログインしたときに同じことが起こりますが、私は時間が1~2程度、数秒から数分までの広い範囲で、時間から時間まで変化に気づく
phuclv

回答:


21

おそらく、ブルートフォース攻撃が成功するのを難しくするために、人為的なタイムアウトが組み込まれています。

これは、安全な認証を伴う多くのログインプロンプトで表示されます...


1
ああ、それを考えていませんでした。それは完全に理にかなっており、他の場所で同じ遅延が発生したように感じる理由を説明します。
カムジャクソン

別名ターピット。ありがとう、MichaelKjörling(superuser.com/questions/916187/…
rfportilla

10

これは、ブルートフォース攻撃を防ぐための遅延です。また、遅延が長いと、攻撃者がユーザー名とパスワードの違いを推測できなくなります(パスワードのハッシュとチェックには、ユーザー名のチェックよりもかなり長い時間がかかります)。


1

技術的には、この意図的な遅延は、「線形化攻撃」の ような攻撃を防ぐためです(他の攻撃や理由もあります)

攻撃を説明するために、それはこの場合には「であることを起こる正しいシリアル、一致するかどうかを見るためにシリアル入力をチェックする(この意図的な遅延なし)プログラム、検討xybaを。効率を上げるために、プログラマーは一度に1文字ずつチェックし、長さのチェックも開始する前に、誤った文字が見つかるとすぐに終了することにしました。

正しいシリアル長は、誤ったシリアル長よりも処理に時間がかかります。さらに良いことは(攻撃者にとって)、最初の文字が正しいシリアル番号は、最初の文字が正しくないシリアル番号よりも時間がかかります。待機時間の連続したステップは、毎回ループがもう1つあり、正しい入力で比較が行われるためです。

  • そのため、攻撃者は4文字の文字列を選択し、xで始まる文字列が最も時間がかかるようにすることができます。(推測作業による)
  • その後、攻撃者は文字をxとして修正し、2番目の文字を変化させることができます。その場合、yが最も時間がかかることがわかります。
  • その後、攻撃者は最初の2文字をxyとして修正し、3番目の文字を変化させることができます。その場合、bが最も長いことがわかります。
  • その後、攻撃者は最初の3文字をxybとして修正し、4番目の文字を変化させることができます。その場合、aが最も時間がかかることがわかります。

したがって、攻撃者はシリアルを一度に1文字回復できます。

Linearization.java。

Linearization.docx、サンプル出力

シリアル番号は4文字で、各文字には128の値があります。次に、128 4 = 2 28 = 268,435,456のシリアル番号があります。攻撃者が完全なシリアル番号をランダムに推測する必要がある場合、約2 27 = 134,217,728回の試行でシリアル番号を推測し ます。これは膨大な作業量です。一方、上記の線形化攻撃を使用することにより、各文字に平均128/2 = 64の推測のみが必要になり、約4 * 64 = 2 8 = 256の推測作業になります。 これは些細な量です仕事の。

書かれた武道の多くは、これを応用しています(マークスタンプの「情報セキュリティ:原則と実践」から引用)。また、上記の計算では、正しいシリアル長を把握するために必要な当て推量を考慮していません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.