私がこれに気づいた最も顕著な場所は職場でのSSH接続ですが、他の場所でもこの動作を観察したように感じます。
職場のWindowsデスクトップからLinuxサーバーにログインしようとすると、パスワードの入力を間違えると、「アクセス拒否」が返されるまでに5秒ほどかかることがわかりました。その後、パスワードを正しく入力すると、ログインが(ウェルカムメッセージなどとともに)ほぼ瞬時に行われます。
これには論理的な理由がありますか、それともここで働いているマシンに固有の奇妙な構成になりますか?
私がこれに気づいた最も顕著な場所は職場でのSSH接続ですが、他の場所でもこの動作を観察したように感じます。
職場のWindowsデスクトップからLinuxサーバーにログインしようとすると、パスワードの入力を間違えると、「アクセス拒否」が返されるまでに5秒ほどかかることがわかりました。その後、パスワードを正しく入力すると、ログインが(ウェルカムメッセージなどとともに)ほぼ瞬時に行われます。
これには論理的な理由がありますか、それともここで働いているマシンに固有の奇妙な構成になりますか?
回答:
おそらく、ブルートフォース攻撃が成功するのを難しくするために、人為的なタイムアウトが組み込まれています。
これは、安全な認証を伴う多くのログインプロンプトで表示されます...
技術的には、この意図的な遅延は、「線形化攻撃」の ような攻撃を防ぐためです(他の攻撃や理由もあります)。
攻撃を説明するために、それはこの場合には「であることを起こる正しいシリアル、一致するかどうかを見るためにシリアル入力をチェックする(この意図的な遅延なし)プログラム、検討xybaを」。効率を上げるために、プログラマーは一度に1文字ずつチェックし、長さのチェックも開始する前に、誤った文字が見つかるとすぐに終了することにしました。
正しいシリアル長は、誤ったシリアル長よりも処理に時間がかかります。さらに良いことは(攻撃者にとって)、最初の文字が正しいシリアル番号は、最初の文字が正しくないシリアル番号よりも時間がかかります。待機時間の連続したステップは、毎回ループがもう1つあり、正しい入力で比較が行われるためです。
- そのため、攻撃者は4文字の文字列を選択し、xで始まる文字列が最も時間がかかるようにすることができます。(推測作業による)
- その後、攻撃者は文字をxとして修正し、2番目の文字を変化させることができます。その場合、yが最も時間がかかることがわかります。
- その後、攻撃者は最初の2文字をxyとして修正し、3番目の文字を変化させることができます。その場合、bが最も長いことがわかります。
- その後、攻撃者は最初の3文字をxybとして修正し、4番目の文字を変化させることができます。その場合、aが最も時間がかかることがわかります。
したがって、攻撃者はシリアルを一度に1文字回復できます。
シリアル番号は4文字で、各文字には128の値があります。次に、128 4 = 2 28 = 268,435,456のシリアル番号があります。攻撃者が完全なシリアル番号をランダムに推測する必要がある場合、約2 27 = 134,217,728回の試行でシリアル番号を推測し ます。これは膨大な作業量です。一方、上記の線形化攻撃を使用することにより、各文字に平均128/2 = 64の推測のみが必要になり、約4 * 64 = 2 8 = 256の推測作業になります。 これは些細な量です仕事の。
書かれた武道の多くは、これを応用しています(マークスタンプの「情報セキュリティ:原則と実践」から引用)。また、上記の計算では、正しいシリアル長を把握するために必要な当て推量を考慮していません。