パスワードブルートフォーシングに対するNTLMv2の耐性について質問があります。
最近の一部のグラフィックプロセッサ(Radeon 6990など)は1秒あたり数十億のハッシュを計算し、数分と数時間でNTLMハッシュをクラックできることを知っています。
NTLMv2ハッシュがNTLMと比較してパスワードブルートフォーシングに対してどの程度耐性があるかを評価したいと思います。
それを大まかに考えると:
NTLMハッシュ= MD4(パスワード)
そして
NTLMv2ハッシュ= MD5(MD5(MD4(パスワード)+ X)+ Y)
password bruteforcingによるNTLMv2ハッシュへの攻撃は、NTLMハッシュへの攻撃よりも3倍長くなると言って間違いありませんか?
実際、MD5はMD4よりもいくらか高価であるため、4倍または5倍近くなります。ただし、強力にはなりません。 NTLMからNTLMv2への切り替えの「メリット」は、1年待ってからより大きなGPUを購入することで取り消されます。
Windowsシステムは、下位互換性のためにNTLMバリアントに固執しますが、パスワードハッシュ手法としてはかなり貧弱です。パスワードをハッシュする方法については この回答 を参照してください。
攻撃者がRAWハッシュ(UnicodeパスワードのMD4)を持っていると想定していることに注意してください。これは、実際の認証で使用されるチャレンジを考慮せず、認証のネットワークトラフィックをスニッフィングして生のハッシュを取得することはできません。これらの「ハッシュ」は、生のハッシュ、チャレンジ、および関連するクライアントとサーバーに関する「ターゲット情報」を使用して計算されます。ネットワーク通信のNTLMv2ハッシュに基づいて誰かのパスワードを解読することは、ここで説明していることよりもはるかに困難です。あなたが説明する妥協案では、最初にドメインコントローラーに侵入してキーストアを回復する必要があります。また、NTLMv2を使用しないDCでも、キーストアにNTLMv2ハッシュがあるため、NTLMv2を使用する場合のセキュリティについてはほとんど言及されていないことに注意してください。
はい、それはかなり良い近似です。 2つの違いは控えめです。どちらの場合も、ユーザーのパスワードハッシュが侵害された場合、攻撃者が多くのパスワードを回復できる可能性があります。
今日、パスワードをハッシュ化するために受け入れられている方法は、ブルートフォーシングを遅くするために、遅いハッシュ(例えば、暗号化ハッシュ関数の何千回もの反復)を使用することです。 NTLMもNTLMv2もこの防御機能を組み込んでいないため、どちらもパスワードブルートフォーシングに対して脆弱です(NTLMの方が多少脆弱ですが、違いはわずかです)。