账户与安全

有关 Kerberos 协议和密钥分发中心的注册表项(KDC) - Windows Server

· 52CE 我爱测

本文介绍有关 Kerberos 版本 5 身份验证协议和密钥分发中心 (KDC) 配置的注册表项。 原始 KB 数: 837361 总结 Kerberos 是用于验证用户或主机标识的身份验证机制。 Kerberos 是 Windows 中服务的首选身份验证方法。 如果正在运行Windows,可以修改 Kerberos 参数以帮助排查 Kerberos 身份验证问题或测试 Kerberos 协议。 为此,请添加或修改以下各节中列出的注册表项。 重要 此部分(

本文介绍有关 Kerberos 版本 5 身份验证协议和密钥分发中心 (KDC) 配置的注册表项。

原始 KB 数: 837361

总结

Kerberos 是用于验证用户或主机标识的身份验证机制。 Kerberos 是 Windows 中服务的首选身份验证方法。

如果正在运行Windows,可以修改 Kerberos 参数以帮助排查 Kerberos 身份验证问题或测试 Kerberos 协议。 为此,请添加或修改以下各节中列出的注册表项。

重要

此部分(或称方法或任务)介绍了修改注册表的步骤。 但是,注册表修改不当可能会出现严重问题。 因此,按以下步骤操作时请务必谨慎。 作为额外保护措施,请在修改注册表之前先将其备份。 如果之后出现问题,您就可以还原注册表。 有关如何备份和还原注册表的详细信息,请参阅 如何在 Windows 中备份和还原注册表。

注意

完成故障排除或测试 Kerberos 协议后,删除添加的任何注册表项。 否则,计算机的性能可能会受到影响。

Parameters 键下的注册表项和值

必须将在本部分中列出的注册表项添加到以下注册表子项中:

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

注意

如果 Kerberos 下未显示 Parameters 键,则必须创建该键。

  • 条目:SkewTime

    • 类型:REG_DWORD

    • 默认值:5(分钟)

      此值是客户端计算机和接受 Kerberos 身份验证或 KDC 的服务器之间允许的最大时间差。

      注意

      SkewTime 被考虑用于确定 Kerberos 票证重复使用的有效性。 如果过期时间小于当前时间 + SkewTime,则票证被视为过期。 例如,如果将 SkewTime 设置为 20 分钟,并且当前时间为 08:00,则 08:20 之前的到期时间的任何票证都将被视为过期。

  • 条目:LogLevel

    • 类型:REG_DWORD

    • 默认值:0

      此值指示是否在系统事件日志中记录事件。 如果此值设置为任何非零值,则会在系统事件日志中记录所有与 Kerberos 相关的事件。

      注意

      记录的事件可能包括误报,其中 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 的次数。

  • 条目:默认加密类型 DefaultEncryptionType

    • 类型:REG_DWORD

      此值指示预身份验证的默认加密类型。 AES256 的默认值为 18 个小数

      可能的其他值:

      • AES128 的 17 个小数
      • RC4 HMAC 的 23 十进制值

      此值指示预身份验证的默认加密类型。

      注意

      从 Windows Server 2025 和 Windows 11 版本 24H2 开始,此设置不再适用。

  • 条目:FarKdcTimeout

    • 类型:REG_DWORD

    • 默认值:10(分钟)

      用于使来自不同站点的域控制器在域控制器缓存中失效的超时值。

  • 条目:NearKdcTimeout

    • 类型:REG_DWORD

    • 默认值:30(分钟)

      它是在域控制器缓存内,用于让同一站点上的域控制器失效的超时值。

  • 条目:StronglyEncryptDatagram

    • 类型:REG_DWORD

    • 默认值:0(FALSE)。 从 Windows Server 2025 和 Windows 11 24H2 开始,默认值为 1(TRUE)

      此值包含一个标志,指示是否对数据报数据包使用 128 位加密。

  • 条目:MaxReferralCount

    • 类型:REG_DWORD

    • 默认值:6

      此值是客户端在放弃之前尝试的 KDC 引荐数。

  • 条目:MaxTokenSize

    • 类型:REG_DWORD

    • 默认值:12000(十进制)。 从Windows Server 2012和Windows 8开始,默认值为 48000。

      此值是 Kerberos 令牌的最大值。 Microsoft建议将此值设置为小于 65535。 有关详细信息,请参阅 当用户属于多个组时 Kerberos 身份验证的问题。

  • 条目:SpnCacheTimeout

    • 类型:REG_DWORD

    • 默认值:15 分钟

      清除服务主体名称(SPN)缓存条目时,系统会使用此值。 在域控制器上,SPN 缓存处于禁用状态。 客户端和成员服务器使用此值来使负缓存记录过期并清除这些记录(找不到 SPN)。 创建 15 分钟后,不会删除有效的 SPN 缓存条目(例如,非负缓存)。 但是, 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)

      此值指示是否在AS_REQ中添加客户端 IP 地址,以强制 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,因为安全原因。

      注意

      在启用 Credential Guard 的 Windows 10 及更高版本中,您无法再与应用程序共享 TGT 会话密钥。

Kdc 键下的注册表项和值

必须将在本部分中列出的注册表项添加到以下注册表子项中:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Kdc

注意

如果未在“服务”下列出 Kdc 密钥,则必须创建密钥。

  • 条目:KdcUseClientAddresses

    • 类型:REG_DWORD

    • 默认值:0

    • 可能的值:0(false)或任何非零值(true)

      此值指示是否在票证授予服务回复(TGS_REP)中添加 IP 地址。 如果资源服务器强制验证此可选字段,并检测到客户端的 IP 地址与票证值不匹配,则返回错误KRB_AP_ERR_BADADDR(“错误的净地址”),并且登录失败。

  • 条目:KdcDontCheckAddresses

    • 类型:REG_DWORD

    • 默认值:1

    • 可能的值:0(false)或任何非零值(true)

      此值指示是否检查TGS_REQ和 TGT Caddr 字段的 IP 地址。

  • 条目:NewConnectionTimeout

    • 类型:REG_DWORD

    • 默认值:10(秒)

      此值是初始 TCP 终结点连接在断开连接之前保持打开状态以接收数据的时间。

  • 条目:MaxDatagramReplySize

    • 类型:REG_DWORD

    • 默认值:1465(十进制、字节)

      此值是TGS_REP和身份验证服务答复(AS_REP)消息中的最大 UDP 数据包大小。 如果数据包大小超过此值,KDC 将返回请求客户端切换到 TCP 的“KRB_ERR_RESPONSE_TOO_BIG”消息。

      注意

      增加 MaxDatagramReplySize 可能会增加 Kerberos UDP 数据包被分片的可能性。

      有关此问题的详细信息,请参阅 如何强制 Kerberos 在 Windows。

  • 条目:KdcExtraLogLevel

    • 类型:REG_DWORD

    • 默认值:2

    • 可能的值:

      • 1(十进制)或0x1(十六进制):审核安全事件日志中的未知 SPN 错误。 事件 ID 4769 已记录审计失败。
      • 2(十进制)或0x2(十六进制):记录 PKINIT 错误。 这会将 KDC 警告事件 ID 21(默认启用)记录到系统事件日志。 PKINIT 是 IETF(互联网工程任务组)为 Kerberos 的初始身份验证而创建的公钥加密的互联网草案。
      • 4(十进制)或0x4(十六进制):记录所有 KDC 错误。 这会将 KDC 事件 ID 24(U2U 所需问题示例)记录到系统事件日志。
      • 8(十进制)或0x8(十六进制):在系统日志中记录 KDC 警告事件 ID 25(当请求 S4U2Self 票证的用户无权访问目标用户时)。
      • 16(十进制)或0x10(十六进制):记录加密类型和无效选项错误的审核事件。 此值指示 KDC 将写入事件日志的信息内容以及安全事件日志中的审核记录。 事件 ID 4769 已记录审计失败。
  • 条目:DefaultDomainSupportedEncTypes

资料来源与适用范围

资料来源
微软官方中文故障文档
适用范围
按正文的 Windows / Windows Server 适用版本;保留原文兼容性要求
内容语言
中文;命令、路径和错误标识保留技术原文
本地收录日期
2026-10-26
授权说明
CC BY 4.0

正文与所需资源由本站本地存储。查看来源及更新记录 ↗

请按适用版本和实际日志确认原因;本站没有对每一种系统或设备逐项执行文中的操作。