访问受信任域中的资源时出现“不支持的 etype”错误
原始 KB 编号: 4492348
症状
Active Directory 域服务 (AD DS) 林子域中的计算机无法访问驻留在同一林中不同域中的服务。 如果对与客户端计算机之间的通信运行网络跟踪,则跟踪包含以下 Kerberos 消息:
6 9:35:19 AM 8/14/2018 17.8417442 192.168.1.101 192.168.1.2 KerberosV5 KerberosV5:AS Request Cname: Administrator Realm: contoso.com Sname: krbtgt/contoso.com {TCP:4, IPv4:1}
7 9:35:19 AM 8/14/2018 17.8452544 192.168.1.2 192.168.1.101 KerberosV5 KerberosV5:KRB_ERROR - KDC_ERR_ETYPE_NOSUPP (14) {TCP:4, IPv4:1}
在子域的域控制器上,事件查看器记录以下事件 14 条目:
Log Name: System
Source: Microsoft-Windows-Kerberos-Key-Distribution-Center
Event ID: 14
Task Category: None
Level: Error
Keywords: Classic
Description:
While processing an AS request for target service krbtgt, the account Administrator did not have a suitable key for generating a Kerberos ticket (the missing key has an ID of 1). The requested etypes : 18 17 3. The accounts available etypes : 23 -133 -128. Changing or resetting the password of Administrator will generate a proper key.
原因
配置子域 (或仅配置客户端) 时,会出现此问题,如下所示:
- 禁用 RC4_HMAC-MD5 加密类型,使 AES128-CTS-HMAC-SHA1-96 和 AES256-CTS-HMAC-SHA1-96 加密类型保持启用状态。
- 禁用 NTLM 身份验证。
Kerberos 加密类型
RC4 加密的安全性低于较新的加密类型 AES128-CTS-HMAC-SHA1-96 和 AES256-CTS-HMAC-SHA1-96。 安全指南(如 Windows 10 安全技术实施指南) 提供了有关通过将计算机配置为仅使用 AES128 和/或 AES256 加密来提高计算机安全性的说明 (请参阅 必须配置 Kerberos 加密类型,以防止) 使用 DES 和 RC4 加密套件 。
此类客户端可以继续连接到其自己的域中使用 AES128 或 AES256 加密的服务。 但是,其他因素可能会阻止客户端连接到另一个受信任域中的类似服务,即使这些服务也使用 AES128 或 AES256 加密。
在非常高的级别上,域控制器 (DC) 负责管理其自己的域中的访问请求。 作为 Kerberos 身份验证过程的一部分,DC 会检查客户端和服务是否可以使用相同的 Kerberos 加密类型。 但是,当客户端请求访问其他受信任域中的服务时,客户端的 DC 必须将客户端“引用”到服务域中的 DC。 当 DC 生成引荐票证时,它比较客户端和信任的加密类型,而不是比较客户端和服务的加密类型。
出现此问题的原因是信任本身的配置。 在 Active Directory 中,域对象将受信任的域对象关联 (表示其信任的每个域的 TDO) 。 TDO 的属性描述信任关系,包括信任支持的 Kerberos 加密类型。 子域和父域之间的默认关系是支持 RC4 加密类型的双向可传递信任。 父域和子域都有描述此关系的 TDO,包括加密类型。
当客户端联系 child.contoso.com
DC 以请求访问服务时,DC 确定该服务位于受信任的域 contoso.com
中。 DC 检查信任配置,以确定信任支持的加密类型。 默认情况下,信任支持 RC4 加密,但不支持 AES128 或 AES256 加密。 另一方面,客户端无法使用 RC4 加密。 DC 无法识别常见的加密类型,因此无法生成引荐票证,并且请求失败。
NTLM 身份验证
Kerberos 身份验证失败后,客户端会尝试回退到 NTLM 身份验证。 但是,如果 NTLM 身份验证被禁用,则客户端没有其他替代方法。 因此,连接尝试失败。
解决方案
要解决此问题,请使用以下方法:
- 方法 1:将信任配置为支持 AES128 和 AES 256 加密以及 RC4 加密。
- 方法 2:将客户端配置为除 AES128 和 AES256 加密外还支持 RC4 加密。
- 方法 3:配置信任以支持 AES128 和 AES 256 加密,而不是 RC4 加密。
选择取决于你的安全需求,以及你对最大程度地减少中断或保持向后兼容性的需求。
方法 1:配置信任以支持 AES128 和 AES 256 加密以及 RC4 加密
此方法将较新的加密类型添加到信任配置,并且不需要对客户端或服务进行任何更改。 在此方法中 ksetup
,使用命令行工具配置信任。
若要配置信任的 Kerberos 加密类型,请在受信任域中的 DC 上打开命令提示符窗口,然后输入以下命令:
ksetup /setenctypeattr <trustingdomain> RC4-HMAC-MD5 AES128-CTS-HMAC-SHA1-96 AES256-CTS-HMAC-SHA1-96
注意
在此命令中, <trustingdomain> 表示 (FQDN) 信任域的完全限定域名。
在示例中 contoso.com
,服务所在的根域 () , child.contoso.com
是客户端) 所在的子域 (,在 DC 上 contoso.com
打开命令提示符窗口,然后输入以下命令:
ksetup /setenctypeattr child.contoso.com RC4-HMAC-MD5 AES128-CTS-HMAC-SHA1-96 AES256-CTS-HMAC-SHA1-96
此命令完成后, child.contoso.com
DC 可以成功生成客户端可用于访问 DC 的 contoso.com
引荐票证。
由于两个域之间的关系是双向可传递信任,因此请在 DC 上打开命令提示符窗口,然后输入以下命令来配置信任的另一 child.contoso.com
端:
ksetup /setenctypeattr contoso.com RC4-HMAC-MD5 AES128-CTS-HMAC-SHA1-96 AES256-CTS-HMAC-SHA1-96
此命令完成后, contoso.com
DC 可以为中 contoso.com
无法使用 RC4 加密但必须使用 中的 child.contoso.com
资源的任何客户端生成引荐票证。
有关 ksetup 工具的详细信息,请参阅 ksetup。
方法 2:将客户端配置为除 AES128 和 AES256 加密外还支持 RC4 加密
此方法涉及更改客户端的配置,而不是信任。 可以更改单个客户端的配置,或使用组策略更改域中多个客户端的配置。 但是,此配置更改的主要缺点是,如果为了提高安全性禁用了 RC4 加密,则可能无法回滚该更改。
有关更改客户端可以使用的加密类型的完整说明,请参阅 适用于 Kerberos 的 Windows 配置支持的加密类型。
方法 3:配置信任以支持 AES128 和 AES 256 加密,而不是 RC4 加密
此方法类似于 中配置信任属性的方法 1。
对于 Windows 林信任,信任的双方都支持 AES。 因此,信任上的所有票证请求都使用 AES。 但是,检查引荐票证的第三方 Kerberos 客户端可能会通知你票证使用客户端不支持的加密类型。 若要继续允许此类客户端检查票证,请将其更新为支持 AES。
使用此方法时,请使用 Active Directory 域和信任 MMC 管理单元配置信任。 若要使用此方法,请执行以下步骤:
在“Active Directory 域和信任”中,导航到示例中的受信任域对象 (,
contoso.com
) 。 右键单击对象,选择 “属性”,然后选择“ 信任”。在 “信任此域的域 (传入信任) ”框中,选择示例中的信任域 (,
child.domain.com
) 。依次选择 “属性”、“ 其他域支持 Kerberos AES 加密”和“ 确定”。
注意
若要验证信任配置,请在“信任域”对话框中选择“ 验证 ”。
重要
对于单向信任,受信任域将信任域列为传入信任,信任域将受信任域列为传出信任。
如果关系是双向信任,则每个域将另一个域列为传入和传出信任。 在此配置中,请确保检查 信任此域 (传入信任) 的域和 此域信任的域 (传出信任) 的域配置。 在这两种情况下,都必须选中复选框。
在“ 信任” 选项卡上,单击“ 确定”。
导航到信任域的域对象 (
child.contoso.com
) 。重复步骤 1 - 4 以确保此域的信任配置镜像其他域的信任配置 (在这种情况下,传入和传出信任列表包括
contoso.com
) 。
更多信息
有关 TDO 的详细信息,请参阅以下文章:
有关 Kerberos 加密类型的详细信息,请参阅以下文章:
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈