次の方法で共有


Windows の Kerberos プロトコル レジストリ エントリと KDC 構成キー

この記事では、Kerberos バージョン 5 認証プロトコルとキー配布センター (KDC) の構成に関するレジストリ エントリについて説明します。

元の KB 番号: 837361

まとめ

Kerberos は、ユーザーまたはホスト ID を検証するために使用される認証メカニズムです。 Kerberos は、Windows のサービスに推奨される認証方法です。

Windows を実行している場合は、Kerberos パラメーターを変更して、Kerberos 認証の問題のトラブルシューティングまたは Kerberos プロトコルのテストを行うことができます。 これを行うには、次のセクションに記載されているレジストリ エントリを追加または変更します。

重要

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

Note

Kerberos プロトコルのトラブルシューティングまたはテストが完了したら、追加したレジストリ エントリをすべて削除します。 そうしないと、コンピューターのパフォーマンスが影響を受ける可能性があります。

パラメーター キーの下のレジストリ エントリと値

このセクションにリストされるレジストリ エントリを次のレジストリ サブキーに追加する必要があります:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters

Note

Parameters キーが Kerberos の下に表示されない場合は、キーを作成する必要があります。

  • エントリ: SkewTime

    • 種類: REG_DWORD

    • 既定値: 5 (分)

      この値は、クライアント コンピューターと Kerberos 認証または KDC を受け入れるサーバーとの間で許可される最大時間差です。

      Note

      SkewTime は、再利用のための Kerberos チケットの有効性の決定で考慮されます。 有効期限が現在の時刻 + SkewTime より短い場合、チケットは期限切れと見なされます。 たとえば、SkewTime が 20 分に設定されていて、現在の時刻が 08:00 の場合、有効期限が 08:20 より前のチケットは期限切れと見なされます。

  • エントリ: LogLevel

    • 種類: REG_DWORD

    • 既定値: 0

      この値は、イベントがシステム イベント ログに記録されるかどうかを示します。 この値をゼロ以外の値に設定すると、Kerberos 関連のすべてのイベントがシステム イベント ログに記録されます。

      Note

      ログに記録されるイベントには、Kerberos クライアントが成功するさまざまな要求フラグを使用して再試行する誤検知が含まれる場合があります。 そのため、この設定に基づいてログに記録されたイベントが表示されたときに Kerberos の問題があると想定しないでください。 詳細については、「 Kerberos イベント ログを有効にする方法 を参照してください。

  • エントリ: MaxPacketSize

    • 種類: REG_DWORD

    • 既定値: 1465 (バイト)

      この値は、最大ユーザー データグラム プロトコル (UDP) パケット サイズです。 パケット サイズがこの値を超える場合は、TCP が使用されます。

      Windows Vista 以降のバージョンの Windows では、この値の既定値は 0 であるため、WINDOWS Kerberos クライアントでは UDP は使用されません。

  • エントリ: StartupTime

    • 種類: REG_DWORD

    • 既定値: 120 (秒)

      この値は、Windows が KDC の起動を待機してから Windows が終了するまでの時間です。

  • エントリ: KdcWaitTime

    • 種類: REG_DWORD

    • 既定値: 10 (秒)

      この値は、Windows が KDC からの応答を待機する時間です。

  • エントリ: KdcBackoffTime

    • 種類: REG_DWORD

    • 既定値: 10 (秒)

      この値は、前の呼び出しが失敗した場合の KDC への連続する呼び出しの間の時間です。

  • エントリ: KdcSendRetries

    • 種類: REG_DWORD

    • 既定値: 3

      この値は、クライアントが KDC に接続しようとする回数です。

  • Entry: DefaultEncryptionType

    • 種類: REG_DWORD

      この値は、事前認証の既定の暗号化の種類を示します。 AES256 の既定値は 10 進数 18 です

      考えられるその他の値:

      • AES128 の 10 進数 17
      • RC4 HMAC の 10 進数 23

      この値は、事前認証の既定の暗号化の種類を示します。

  • エントリ: FarKdcTimeout

    • 種類: REG_DWORD

    • 既定値: 10 (分)

      これは、ドメイン コントローラー キャッシュ内の別のサイトからドメイン コントローラーを無効にするために使用されるタイムアウト値です。

  • エントリ: NearKdcTimeout

    • 種類: REG_DWORD

    • 既定値: 30 (分)

      これは、ドメイン コントローラー キャッシュ内の同じサイト内のドメイン コントローラーを無効にするために使用されるタイムアウト値です。

  • エントリ: StronglyEncryptDatagram

    • 型: REG_BOOL

    • 既定値: FALSE

      この値には、データグラム パケットに 128 ビット暗号化を使用するかどうかを示すフラグが含まれています。

  • エントリ: MaxReferralCount

    • 種類: REG_DWORD

    • 既定値: 6

      この値は、クライアントがあきらめる前にクライアントが追求する KDC 紹介の数です。

  • エントリ: MaxTokenSize

  • エントリ: SpnCacheTimeout

    • 種類: REG_DWORD

    • 既定値: 15 分

      この値は、サービス プリンシパル名 (SPN) キャッシュ エントリを消去するときにシステムによって使用されます。 ドメイン コントローラーでは、SPN キャッシュは無効になっています。 クライアントとメンバー サーバーは、この値を使用して、除外キャッシュ エントリのタイムアウトと消去を行います (SPN が見つかりません)。 有効な SPN キャッシュ エントリ (たとえば、負のキャッシュではない) は、作成後 15 分後に削除されません。 ただし、 SPNCacheTimeout 値は、SPN キャッシュを管理可能なサイズに縮小するためにも使用されます。SPN キャッシュが 350 エントリに達すると、システムはこの値を使用して、古いエントリと未使用のエントリを scavenge / cleanup します。

  • エントリ: S4UCacheTimeout

    • 種類: REG_DWORD

    • 既定値: 15 分

      この値は、特定のコンピューターからの S4U プロキシ要求の数を制限するために使用される S4U 負のキャッシュ エントリの有効期間です。

  • エントリ: S4UTicketLifetime

    • 種類: REG_DWORD

    • 既定値: 15 分

      この値は、S4U プロキシ要求によって取得されるチケットの有効期間です。

  • エントリ: RetryPdc

    • 種類: REG_DWORD

    • 既定値: 0 (false)

    • 指定できる値: 0 (false) またはゼロ以外の値 (true)

      この値は、クライアントがパスワードの有効期限エラーを受け取った場合に、認証サービス要求 (AS_REQ) のプライマリ ドメイン コントローラーにクライアントが接続するかどうかを示します。

  • エントリ: RequestOptions

    • 種類: REG_DWORD

    • 既定値: 任意の RFC 1510 値

      この値は、チケット付与サービス要求 (TGS_REQ) で KDC オプションとして送信する必要があるその他のオプションがあるかどうかを示します。

  • エントリ: ClientIpAddresses

    • 種類: REG_DWORD

    • 既定値: 0 (動的ホスト構成プロトコルとネットワーク アドレス変換の問題のため、この設定は 0 です)。

    • 指定できる値: 0 (false) またはゼロ以外の値 (true)

      この値は、クライアント IP アドレスを AS_REQ に追加して、 Caddr フィールドにすべてのチケットに IP アドレスを強制的に含めるかどうかを示します。

      クライアント アドレスを必要とするサード パーティの領域では、アドレスを選択的に有効にすることができます。

      1. 昇格した [コマンド プロンプト] ウィンドウを開きます。

      2. 次のコマンドを実行します。

        ksetup /setrealmflags <your Kerberos realm name> sendaddress
        
      3. /server スイッチを使用して、ksetupリモート コンピューターで変更を加えることができます。

  • エントリ: TgtRenewalTime

    • 種類: REG_DWORD

    • 既定値: 600 秒

      この値は、Kerberos がチケットの有効期限が切れる前にチケット許可チケット (TGT) の更新を試みる前に待機する時間です。

  • エントリ: AllowTgtSessionKey

    • 種類: REG_DWORD

    • 既定値: 0

    • 指定できる値: 0 (false) またはゼロ以外の値 (true)

      この値は、セッション・キーが初期またはクロス領域 TGT 認証を使用してエクスポートされるかどうかを示します。 セキュリティ上の理由から、既定値は false です。

      Note

      Windows 10 以降のバージョンの Windows でアクティブな Credential Guard を使用すると、アプリケーションとの TGT セッション キーの共有を有効にできなくなります。

Kdc キーの下のレジストリ エントリと値

このセクションにリストされるレジストリ エントリを次のレジストリ サブキーに追加する必要があります:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Kdc

Note

Kdc キーが [サービス] の下に表示されない場合は、キーを作成する必要があります。

  • エントリ: KdcUseClientAddresses

    • 種類: REG_DWORD

    • 既定値: 0

    • 指定できる値: 0 (false) またはゼロ以外の値 (true)

      この値は、チケット付与サービス応答 (TGS_REP) に IP アドレスを追加するかどうかを示します。

  • エントリ: KdcDontCheckAddresses

    • 種類: REG_DWORD

    • 既定値: 1

    • 指定できる値: 0 (false) またはゼロ以外の値 (true)

      この値は、TGS_REQおよび TGT Caddr フィールドの IP アドレスがチェックされるかどうかを示します。

  • エントリ: NewConnectionTimeout

    • 種類: REG_DWORD

    • 既定値: 10 (秒)

      この値は、最初の TCP エンドポイント接続が切断される前にデータを受信するために開いたままにする時間です。

  • エントリ: MaxDatagramReplySize

    • 種類: REG_DWORD

    • 既定値: 1465 (10 進数、バイト)

      この値は、TGS_REPおよび認証サービス応答 (AS_REP) メッセージの最大 UDP パケット サイズです。 パケット サイズがこの値を超えると、クライアントが TCP に切り替わるよう要求する "KRB_ERR_RESPONSE_TOO_BIG" メッセージが返されます。

      Note

      MaxDatagramReplySizeを増やすと、Kerberos UDP パケットが断片化される可能性が高くなる可能性があります。

      この問題の詳細については、「 Windows で UDP ではなく TCP を Kerberos に強制的に使用させる方法を参照してください。

  • エントリ: KdcExtraLogLevel

    • 種類: REG_DWORD

    • 既定値 : 2

    • 指定できる値

      • 1 (10 進数) または0x1 (16 進数): セキュリティ イベント ログの不明な SPN エラーを監査します。 イベント ID 4769 は、失敗した監査でログに記録されます。
      • 2 (10 進数) または0x2 (16 進数): PKINIT エラーを記録します。 これにより、KDC 警告イベント ID 21 (既定で有効) がシステム イベント ログに記録されます。 PKINIT は、Kerberos での初期認証用の Public Key Cryptography のインターネット エンジニアリング タスク フォース (IETF) インターネット ドラフトです。
      • 4 (10 進数) または0x4 (16 進数): すべての KDC エラーをログに記録します。 これにより、KDC イベント ID 24 (U2U に必要な問題の例) がシステム イベント ログに記録されます。
      • 8 (10 進数) または0x8 (16 進数): S4U2Self チケットを要求したユーザーがターゲット ユーザーに十分なアクセス権を持っていない場合に、システム ログに KDC 警告イベント ID 25 を記録します。
      • 16 (10 進数) または0x10 (16 進数): 暗号化の種類 (ETYPE) と無効なオプションエラーに関する監査イベントをログに記録します。 この値は、KDC がイベント ログに書き込み、セキュリティ イベント ログで監査する情報を示します。 イベント ID 4769 は、失敗した監査でログに記録されます。
  • エントリ: DefaultDomainSupportedEncTypes

    • 種類: REG_DWORD

    • 既定値: 0x27

    • 指定できる値

      既定値は 0x27 (DES、RC4、AES セッション キー) です。 この値では AES で暗号化されたチケットと AES セッション キーの両方が許可されるため、セキュリティを強化するために値を 0x3C に設定することをお勧めします。 Kerberos プロトコルに RC4 が使用されていない AES 専用環境に移行する場合は、値を 0x38 に設定することをお勧めします。

      この値は、既定の暗号化の種類でマークされていないアカウントのセッション キーの既定の暗号化の種類として AES を設定します。

      詳細については、「 KB5021131: CVE-2022-37966 に関連する Kerberos プロトコルの変更を管理する方法を参照してください。