如果禁用 Kerberos 的 DES,则会记录 KDC 事件 ID 16 或 27

本文介绍如何在 Windows 7 和 Windows Server 2008 R2 中为 Kerberos 身份验证启用 DES 加密。

适用于: Windows 7 Service Pack 1、Windows Server 2008 R2 Service Pack 1
原始 KB 编号: 977321

摘要

从 Windows 7、Windows Server 2008 R2 和所有更高版本的 Windows 操作系统开始,禁用用于 Kerberos 身份验证的数据加密标准 (DES) 加密。 本文介绍了由于 DES 加密已禁用而可能会在应用程序、安全性和系统日志中收到以下事件的各种方案:

  • KDCEVENT_UNSUPPORTED_ETYPE_REQUEST_TGS
  • KDCEVENT_NO_KEY_INTERSECTION_TGS

此外,本文介绍如何在 Windows 7 和 Windows Server 2008 R2 中为 Kerberos 身份验证启用 DES 加密。 有关详细信息,请参阅本文的“症状”、“原因”和“解决方法”部分。

症状

请考虑以下方案:

  • 服务使用在运行 Windows 7 或 Windows Server 2008 R2 的计算机上仅为 DES 加密配置的用户帐户或计算机帐户。
  • 服务使用仅为 DES 加密配置的用户帐户或计算机帐户,该帐户与基于 Windows Server 2008 R2 的域控制器一起位于域中。
  • 运行 Windows 7 或 Windows Server 2008 R2 的客户端使用仅为 DES 加密配置的用户帐户或计算机帐户连接到服务。
  • 信任关系配置为仅用于 DES 加密,并包括运行 Windows Server 2008 R2 的域控制器。
  • 应用程序或服务被硬编码为仅使用 DES 加密。

在上述任一情况下,可能会在应用程序、安全性和系统日志以及 Microsoft-Windows-Kerberos-Key-Distribution-Center 源中收到以下事件:

ID 符号名称 邮件
27 KDCEVENT_UNSUPPORTED_ETYPE_REQUEST_TGS 处理目标服务器 %1 的 TGS 请求时,帐户 %2 没有合适的密钥来生成 Kerberos 票证, (缺少的密钥的 ID 为 %3) 。 请求的 etype 为 %4。 可用的帐户类型为 %5。
事件 ID 27 - KDC 加密类型配置
16 KDCEVENT_NO_KEY_INTERSECTION_TGS 处理目标服务器 %1 的 TGS 请求时,帐户 %2 没有合适的密钥来生成 Kerberos 票证, (缺少的密钥的 ID 为 %3) 。 请求的 etype 为 %4。 可用的帐户类型为 %5。 更改或重置 %6 的密码将生成正确的密钥。
事件 ID 16 - Kerberos 密钥完整性

原因

默认情况下,以下计算机上禁用 Kerberos DES 加密的安全设置:

  • 运行 Windows 7 的计算机
  • 运行 Windows Server 2008 R2 的计算机
  • 运行 Windows Server 2008 R2 的域控制器

注意

Windows 7 和 Windows Server 2008 中存在对 Kerberos 的加密支持 R2.By 默认,Windows 7 对“加密类型”和“etypes”使用以下高级加密标准 (AES) 或 RC4 密码套件:

  • AES256-CTS-HMAC-SHA1-96
  • AES128-CTS-HMAC-SHA1-96
  • RC4-HMAC

配置为仅 DES 加密的服务会失败,除非满足以下条件:

  • 该服务已重新配置为支持 RC4 加密或支持 AES 加密。
  • 服务帐户域的所有客户端计算机、所有服务器和所有域控制器都配置为支持 DES 加密。

默认情况下,Windows 7 和 Windows Server 2008 R2 支持以下密码套件:如果需要,可以在 Windows 7 中启用 DES-CBC-MD5 密码套件和 DES-CBC-CRC 密码套件。

解决方法

强烈建议检查环境中是否仍需要 DES 加密,或检查特定服务是否需要仅 DES 加密。 检查服务是否可以使用 RC4 加密或 AES 加密,或者检查供应商是否具有具有更强加密功能的身份验证替代项。

基于 Windows Server 2008 R2 的域控制器需要修补程序 978055 才能正确处理从运行 Windows Server 2003 的域控制器复制的加密类型信息。 请参阅下面的详细信息部分。

  1. 确定应用程序是否硬编码为仅使用 DES 加密。 但是,在运行 Windows 7 的客户端或密钥分发中心( (KDC) )上的默认设置禁用了此功能。

    若要检查此问题是否受到影响,请收集一些网络跟踪,然后为类似于以下示例跟踪的跟踪检查:

    帧 1 {TCP:48, IPv4:47} <SRC IP<>DEST IP> KerberosV5 KerberosV5:TGS 请求领域: CONTOSO.COM Sname: HTTP/<hostname。<>Fqdn>

    帧 2 {TCP:48, IPv4:47} <DEST IP><SRC IP> KerberosV5 KerberosV5:KRB_ERROR - KDC_ERR_ETYPE_NOSUPP (14)

    0.000000 {TCP:48, IPv4:47} <源 IP<>目标 IP> KerberosV5:TGS 请求领域: <fqdn> Sname: HTTP/<hostname。<>Fqdn>
    -Etype:
    +SequenceOfHeader:
    +EType:aes256-cts-hmac-sha1-96 (18)
    +EType:aes128-cts-hmac-sha1-96 (17)
    +EType:rc4-hmac (23)
    +EType:rc4-hmac-exp (24)
    +EType: rc4 hmac old exp (0xff79)
    +TagA:
    +EncAuthorizationData:

  2. 确定用户帐户或计算机帐户是否配置为仅进行 DES 加密。

    在“Active Directory 用户和计算机”管理单元中,打开用户帐户属性,然后检查是否在“帐户”选项卡下设置“对此帐户使用 Kerberos DES 加密类型”选项。

如果你认为自己受此问题影响,并且必须打开用于 Kerberos 身份验证的 DES 加密类型,请启用以下组策略以将 DES 加密类型应用于运行 Windows 7 或 Windows Server 2008 R2 的所有计算机:

  1. 在 组策略 管理控制台 (GPMC) 中,找到以下位置:

    计算机配置\ Windows 设置\ 安全设置\ 本地策略\ 安全选项

  2. 单击以选择“网络安全:配置 Kerberos 允许的加密类型”选项。

  3. 单击以选择“定义这些策略设置”以及加密类型的所有六个检查框。

  4. 单击“确定”。 关闭 GPMC。

注意

策略将 SupportedEncryptionTypes 注册表项设置为 值 0x7FFFFFFF。 注册表项 SupportedEncryptionTypes 位于以下位置:

HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\Kerberos\parameters\

根据具体方案,可能需要在域级别设置此策略,以便将 DES 加密类型应用于运行 Windows 7 或 Windows Server 2008 R2 的所有客户端。 或者,对于运行 Windows Server 2008 R2 的域控制器,你可能必须在组织单位 (OU) 设置此策略。

更多信息

以下两种配置中遇到仅限 DES 的应用程序兼容性问题:

  • 调用应用程序仅针对 DES 加密进行硬编码。
  • 运行服务的帐户配置为仅使用 DES 加密。

必须满足以下加密类型条件,Kerberos 身份验证才能正常工作:

  1. 客户端和客户端上验证器的域控制器之间存在一个通用类型。
  2. 域控制器和资源服务器之间存在用于加密票证的常见类型。
  3. 会话密钥的客户端和资源服务器之间存在一种常见类型。

请考虑以下情况:

Role 操作系统 Kerberos 支持的加密级别
DC Windows Server 2003 RC4 和 DES
客户端 Windows 7 AES 和 RC4
资源服务器 J2ee Des

在这种情况下,RC4 加密满足条件 1,DES 加密满足条件 2。 第三个条件失败,因为服务器仅限 DES,并且客户端不支持 DES。

如果域中满足以下条件,则必须在每个基于 Windows Server 2008 R2 的域控制器上安装修补程序978055:

  • 存在一些启用了 DES 的用户或计算机帐户。
  • 在同一域中,有一个或多个运行 Windows 2000 Server、Windows Server 2003 或 Windows Server 2003 R2 的域控制器。

注意

  • 基于 Windows Server 2008 R2 的域控制器需要修补程序978055才能正确处理从运行 Windows Server 2003 的域控制器复制的加密类型信息。
  • 基于 Windows Server 2008 的域控制器不需要此修补程序。
  • 如果域只有基于 Windows Server 2008 的域控制器,则不需要此修补程序。

有关详细信息,请单击以下文章编号以查看 Microsoft 知识库中的文章:

978055 修复:Windows Server 2008 R2 域控制器加入域后,无法在 Windows Server 2003 域中对对 Kerberos 身份验证类型使用 DES 加密的用户帐户进行身份验证