デフォルトでは、Windowsはすべてのパスワードを、MicrosoftがNThashと呼ぶもの(NTLMハッシュと呼ばれることもあります)でハッシュします。これは、パスワードのUTF-16-LE(リトルエンディアン)表現の単なるMD4です。
技術的には、MD4は一方向のハッシュなので、いいえ、これからパスワードを取得することはできません。ただし、その使用方法は非常に弱いため、実際にはハッシュを逆にすることは通常可能です。
- レインボーテーブル:パスワードはハッシュ前にソルト化されないため、指定されたパスワードはどのシステムでも常に同じNThashを生成します。これは、「レインボーテーブル」と呼ばれる巨大なルックアップテーブル(ハッシュダイジェストで並べ替えてバイナリ検索を可能にする)で事前に計算できることを意味します。ウェブ上には多数のRainbowテーブルがありますが、時間を稼ぐことができれば、自分で作成することもできます。レインボーテーブルはすべての可能なハッシュ値を保存することはできませんが、MD4ダイジェストは128ビットの長さです。つまり、2 ^ 128の可能な値です。これは、現在存在する、または存在する可能性のあるすべてのデータストレージの容量をはるかに超えています-数十億を確実に保存できます。ありそうなパスワードの数が多いため、実際には、最も長い/最も不明瞭なパスワードを除いてすべてが解読可能になります。
- ハッシュブルートフォーシングプログラム:MD4のようなハッシュアルゴリズムは高速に実行するように設計されています。特にMD4は30年近く使用されているため、当時と同じ金額で何万倍もの計算能力を得ることができます。つまり、複数のデータ(候補のパスワード)に対して同じ命令(MD4のステップ)を並行して迅速に実行できるプロセッサーがある場合は特に、ハッシュ非常にをすばやく計算できます。結果を1つの整理された出力に収集します。これ(単一命令複数データまたはSIMD演算)は、GPUがどのように機能するかを示しています。単一のハイエンドGPUは1秒あたり数十億のハッシュを計算でき、GPUを使用してパスワードハッシュをブルートフォースにしようとするプログラムを実行できます。レインボーテーブルがなくても、優れたグラフィックカードを使用している場合は、ほとんどのパスワードをブルートフォースですばやくブロードフォースできます。
Windowsは、デフォルトではない2つの方法で構成することもできます。これにより、このタスクがさらに簡単になります。
- レガシーの「LM」または「LANMAN」/「LAN Manager」ハッシュアルゴリズムにより、MD4は最新で安全に見えます。 LMハッシュは、最大14文字のパスワードでのみ使用できます。これは、実際の操作が7文字のチャンクのペアで実行され、結果が連結されるためです。また、入力文字の限られたセットのみをサポートします(特に、ハッシュする前にパスワードを大文字にします)。その結果、LMハッシュの各半分を個別かつ非常に迅速に総当たりすることができます。一般的なCPUは、ブルートフォースany LMハッシュを1分未満で実行できます。 LMハッシュは、最近のすべてのバージョンのWindowsではデフォルトで無効になっています(XPなどの古いバージョンでも15文字以上のパスワードを使用した場合)では使用されません)。 Win10では1つですが、有効にするのは可能のままです。
- Windowsは、ハッシュではなく、可逆暗号化でパスワードを保存する機能をサポートしています。これにより、MSFTの顧客の一部がこの機能を非常に悪用したため、任意の管理者ユーザーが任意のユーザーのパスワードを取得できるようになりました。これはひどい考えであり、有効にしないでください。管理者にユーザーパスワードを表示するだけでなく、ハードディスクにアクセスでき、マシンキーと暗号化されたパスワードを取得する方法を知っているすべてのユーザーに、ユーザーパスワードも表示させるためです。このためのツール)。特定のWindowsマシンのパスワードがこの方法で保存されることはほとんどありませんが、パスワードがそうである場合、システムへの管理者レベルのアクセス権またはシステムボリュームへの物理的なアクセス権があれば、実際にパスワードを直接取得することが可能です。
編集:HackneyBがコメントで指摘しているように、Microsoftは古くなったパスワードハッシュに役に立たない難読化を追加する機会を逃すことができなかったため、無駄な暗号化の複数のレイヤーでラップしています(キーはどちらかに保存されているため、無駄です)プレーンテキストまたはプレーンテキスト値から導出できるため、使用される暗号やレイヤーの数は重要ではありません)。ただし、難読化を取り除くと、パスワードの逆転に対する実際の暗号化保護は、その単一ラウンドの無塩MD4ハッシュのみになります。