この記事では、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
種類: REG_DWORD
既定値: 12000 (10 進数)。 Windows Server 2012 および Windows 8 以降の既定値は 48000 です。
この値は、Kerberos トークンの最大値です。 Microsoft では、この値を 65535 未満に設定することをお勧めします。 詳細については、「 ユーザーが多数のグループに属している場合の Kerberos 認証を使用したプロトコルを参照してください。
エントリ: 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 アドレスを強制的に含めるかどうかを示します。クライアント アドレスを必要とするサード パーティの領域では、アドレスを選択的に有効にすることができます。
昇格した [コマンド プロンプト] ウィンドウを開きます。
次のコマンドを実行します。
ksetup /setrealmflags <your Kerberos realm name> sendaddress
/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 プロトコルの変更を管理する方法を参照してください。