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 ハッシュの格納を禁止する必要があります。 ネットワークに 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. [ 有効]>を選択します

方法 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. [編集] メニューの [キーの追加] をクリックし、「Enter」と入力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. [実行の開始]> を選択し、「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 ドメイン コントローラーで行う必要があります。 ドメイン管理者の場合は、Microsoft Management Console (MMC) Active Directory ユーザーとコンピューター使用して、方法 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 ハッシュ値が格納されます。