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

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

元の 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 コンピューターのユーザーは、ドメイン アカウントを使用してサーバーに対して認証を行うことはできません。 ユーザーがディレクトリ サービス クライアントをコンピューターにインストールしている場合、この問題は発生しません。
  • Windows 95 または Windows 98 コンピューターのユーザーは、LM ハッシュを無効にしたサーバー上のローカル アカウントを使用して認証することはできません。 ユーザーがディレクトリ サービス クライアントをコンピューターにインストールしている場合、この問題は発生しません。
  • ユーザーは、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. [ Enabled>OK を選択します。

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

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

Windows 2000 SP2 以降

重要

このセクション、方法、またはタスクには、レジストリの編集方法が記載されています。 レジストリを誤って変更すると、深刻な問題が発生することがあります。 したがって、次の手順を注意深く実行してください。 保護のために、レジストリを変更する前に、バックアップします。 その後、問題が起こった場合は、レジストリを復元できます。 レジストリをバックアップおよび復元する方法の詳細については、次の記事の番号をクリックして表示される Microsoft サポート技術情報の記事を参照してください。

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

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

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

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

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

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa

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

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

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

Note

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

Windows XP および Windows Server 2003

重要

このセクション、方法、またはタスクには、レジストリの編集方法が記載されています。 レジストリを誤って変更すると、深刻な問題が発生することがあります。 したがって、次の手順を注意深く実行してください。 保護のために、レジストリを変更する前に、バックアップします。 その後、問題が起こった場合は、レジストリを復元できます。 レジストリをバックアップおよび復元する方法の詳細については、次の記事の番号をクリックして表示される Microsoft サポート技術情報の記事を参照してください。

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

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

  1. Start>Run を選択し、「regedit」と入力し、[OK] をクリック

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

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa

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

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

  5. Edit メニューの Modify を選択します。

  6. 1」と入力し、 OK を選択します。

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

Note

  • Windows 2003 Active Directory 環境でユーザーのパスワードの LM ハッシュのストレージを無効にするには、すべての Windows Server 2003 ドメイン コントローラーでこのレジストリを変更する必要があります。 ドメイン管理者の場合は、「方法 1 (グループ ポリシーを使用して NoLMHash ポリシーを実装する)」の説明に従って、Active Directory ユーザーとコンピューター Microsoft 管理コンソール (MMC) を使用して、このポリシーをドメイン上のすべてのドメイン コントローラーまたはすべてのコンピューターに展開できます。
  • この 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 ハッシュ値を格納します。