Windows が Active Directory およびローカル SAM データベースにパスワードの LAN マネージャー ハッシュを格納できないようにする方法

この記事では、Windows が Active Directory およびローカル セキュリティ アカウント マネージャー (SAM) データベースにパスワードの LAN Manager (LM) ハッシュを格納できないようにする 3 つの方法について説明します。

適用対象: Windows 10 - すべてのエディション、Windows Server 2012 R2
元の KB 番号: 299656

概要

Windows では、ユーザー アカウントのパスワードがクリア テキストで保存されません。 代わりに、ハッシュと呼ばれる 2 つの異なるパスワード表現を使用して、ユーザー アカウント パスワードを生成して格納します。 ユーザー アカウントのパスワードを 15 文字未満のパスワードに設定または変更すると、Windows は LM ハッシュとパスワードのWindows NT ハッシュ (NT ハッシュ) の両方を生成します。 これらのハッシュは、ローカル SAM データベースまたは Active Directory に格納されます。

LM ハッシュは NT ハッシュと比較して比較的弱く、高速ブルート フォース攻撃を受けやすくなります。 そのため、Windows がパスワードの LM ハッシュを格納しないようにすることができます。 この記事では、Windows がパスワードのより強力な NT ハッシュのみを格納する方法について説明します。

詳細

Windows 2000 および Windows Server 2003 サーバーは、以前のバージョンの Windows を実行しているコンピューターから接続するユーザーを認証できます。 ただし、Windows 2000 より前のバージョンの Windows では、認証に Kerberos は使用されません。 下位互換性のため、Windows 2000 および Windows Server 2003 は次をサポートしています。

  • LM 認証
  • Windows NT (NTLM) 認証
  • NTLM バージョン 2 (NTLMv2) 認証

NTLM、NTLMv2、Kerberos はすべて、UNICODE ハッシュとも呼ばれる NT ハッシュを使用します。 LM 認証プロトコルでは、LM ハッシュが使用されます。

下位互換性のために LM ハッシュを必要としない場合は、LM ハッシュのストレージを防ぐ必要があります。 ネットワークに Windows 95、Windows 98、または Macintosh クライアントが含まれている場合、ドメインの LM ハッシュのストレージを防ぐと、次の問題が発生する可能性があります。

  • LM ハッシュを持たないユーザーは、サーバーとして動作する Windows 95 または Windows 98 コンピューターに接続できません。 この問題は、Windows 95 および Windows 98 用ディレクトリ サービス クライアントがサーバーにインストールされている場合には発生しません。
  • Windows 95 または Windows 98 コンピューターのユーザーは、ドメイン アカウントを使用してサーバーに対して認証を行うことはできません。 ユーザーが自分のコンピューターに Directory Services クライアントをインストールしている場合、この問題は発生しません。
  • Windows 95 または Windows 98 コンピューターのユーザーは、LM ハッシュが無効になっているサーバー上のローカル アカウントを使用して認証することはできません。 ユーザーが自分のコンピューターに Directory Services クライアントをインストールしている場合、この問題は発生しません。
  • ユーザーは、Windows 95 または Windows 98 コンピューターからドメイン パスワードを変更できません。 または、ユーザーが以前のクライアントからパスワードを変更しようとしたときに、アカウントロックアウトの問題が発生する可能性があります。
  • Macintosh Outlook 2001 クライアントのユーザーは、Microsoft Exchange サーバー上のメールボックスにアクセスできません。 Outlook で次のエラーが表示される場合があります。

    指定されたログオン資格情報が正しくありません。 ユーザー名とドメインが正しいことを確認し、パスワードをもう一度入力します。

Windows がパスワードの LM ハッシュを格納しないようにするには、次のいずれかの方法を使用します。

方法 1: グループ ポリシーを使用して NoLMHash ポリシーを実装する

Windows XP または Windows Server 2003 のローカル コンピューターの SAM データベースでユーザーのパスワードの LM ハッシュのストレージを無効にするには、ローカル グループ ポリシーを使用します。 Windows Server 2003 Active Directory 環境でユーザーのパスワードの LM ハッシュのストレージを無効にするには、Active Directory で グループ ポリシーを使用します。 次の手順を実行します。

  1. グループ ポリシーで、[コンピューターの構成>] [Windows 設定][セキュリティ設定>] [ローカル ポリシー] > の順に展開し、[セキュリティ オプション] を選択します。
  2. 使用可能なポリシーの一覧で、[ ネットワーク セキュリティ: 次回のパスワード変更時に LAN Manager ハッシュ値を格納しない] をダブルクリックします。
  3. [有効][OK] >を選択します

方法 2: レジストリを編集して NoLMHash ポリシーを実装する

Windows 2000 Service Pack 2 (SP2) 以降では、次のいずれかの手順を使用して、Windows が次のパスワード変更時に LM ハッシュ値を格納しないようにします。

Windows 2000 SP2 以降

重要

このセクション、方法、またはタスクには、レジストリの編集方法が記載されています。 レジストリを誤って変更すると、深刻な問題が発生することがあります。 レジストリを変更する際には十分に注意してください。 保護を強化するため、レジストリを変更する前にレジストリをバックアップします。 こうしておけば、問題が発生した場合にレジストリを復元できます。 レジストリのバックアップ方法および復元方法の詳細を参照するには、以下のサポート技術情報番号をクリックしてください。

322756 Windows でレジストリをバックアップおよび復元する方法

NoLMHash レジストリ キーとその機能はテストも文書化もされておらず、Windows 2000 SP2 より前の運用環境では安全でないと見なす必要があります。

レジストリ エディターを使用してこのキーを追加するには、次の手順に従います。

  1. レジストリ エディター (Regedt32.exe) を起動します。

  2. 次のキーを見つけて選択します。

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa

  3. [ 編集 ] メニューの [ キーの追加] をクリックし、「」と入力 NoLMHashし、Enter キーを押します。

  4. レジストリ エディターを終了します。

  5. コンピューターを再起動し、パスワードを変更して設定をアクティブにします。

注:

  • Windows 2000 Active Directory 環境でユーザーのパスワードの LM ハッシュのストレージを無効にするには、このレジストリ キーをすべての Windows 2000 ドメイン コントローラーで変更する必要があります。
  • このレジストリ キーを使用すると、Windows 2000 コンピューターで新しい LM ハッシュが作成されなくなります。 ただし、格納されている以前の LM ハッシュの履歴は消去されません。 パスワードを変更すると、保存されている既存の LM ハッシュが削除されます。

Windows XP および Windows Server 2003

重要

このセクション、方法、またはタスクには、レジストリの編集方法が記載されています。 レジストリを誤って変更すると、深刻な問題が発生することがあります。 レジストリを変更する際には十分に注意してください。 保護を強化するため、レジストリを変更する前にレジストリをバックアップします。 こうしておけば、問題が発生した場合にレジストリを復元できます。 レジストリのバックアップ方法および復元方法の詳細を参照するには、以下のサポート技術情報番号をクリックしてください。

322756 Windows でレジストリをバックアップおよび復元する方法

レジストリ エディターを使用してこの DWORD 値を追加するには、次の手順に従います。

  1. [Start Run]\(実行の開始\>) を選択し、「regedit」と入力し、[OK] をクリックします

  2. レジストリで次のキーを見つけて選択します。

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa

  3. [編集] メニューの [新規] をポイントし、[DWORD 値] をクリックします。

  4. [NoLMHash]と入力して、Enter キーを押します。

  5. [編集] メニューの [修正] を選択します。

  6. 「1」と入力し、[OK] を選択します

  7. コンピューターを再起動し、パスワードを変更します。

注:

  • Windows 2003 Active Directory 環境でユーザーのパスワードの LM ハッシュのストレージを無効にするには、すべての Windows Server 2003 ドメイン コントローラーでこのレジストリを変更する必要があります。 ドメイン管理者の場合は、Active Directory ユーザーとコンピューター Microsoft Management Console (MMC) を使用して、「方法 1 (グループ ポリシーを使用して NoLMHash ポリシーを実装する)」で説明されているように、このポリシーをドメイン上のすべてのドメイン コントローラーまたはすべてのコンピューターに展開できます。
  • この DWORD 値を使用すると、Windows XP ベースのコンピューターと Windows Server 2003 ベースのコンピューターで新しい LM ハッシュが作成されなくなります。 これらの手順を完了すると、以前のすべての LM ハッシュの履歴が消去されます。

重要

Windows 2000 と Windows XP または Windows Server 2003 の両方で使用できるカスタム ポリシー テンプレートを作成する場合は、キーと値の両方を作成できます。 値はキーと同じ場所にあり、値が 1 の場合、LM ハッシュの作成は無効になります。 Windows 2000 システムが Windows Server 2003 にアップグレードされると、キーがアップグレードされます。 ただし、両方の設定がレジストリに含まれている場合は問題ありません。

方法 3: 15 文字以上のパスワードを使用する

最も簡単な方法は、15 文字以上のパスワードを使用することです。 この場合、Windows には、ユーザーの認証に使用できない LM ハッシュ値が格納されます。