域与目录服务

Linux 帐户无法获取 AES 票证 - Windows Server

· 52CE 我爱测

现象 在Active Directory 域服务(AD DS)环境中,Linux 集成帐户在使用 Kerberos 身份验证时接收 RC4 加密票证而不是高级加密标准(AES)加密票证。 若要解决此问题,请转到密钥分发中心(KDC)。 - 在事件 ID 4769 的日志中,受影响的计算机的票证加密类型的值是0x17。 这对应于 RC4 加密类型。 - 运行klist(/zh-cn/windows-server/administration/windows-

现象

在Active Directory 域服务(AD DS)环境中,Linux 集成帐户在使用 Kerberos 身份验证时接收 RC4 加密票证而不是高级加密标准(AES)加密票证。 若要解决此问题,请转到密钥分发中心(KDC)。

  • 在事件 ID 4769 的日志中,受影响的计算机的票证加密类型的值是0x17。 这对应于 RC4 加密类型。

    Source: Microsoft-Windows-Security-Auditing 
    Event ID: 4769 
    Task Category: Kerberos Service Ticket Operations 
    Level: Information 
    Computer: MyDC.contoso.com 
    Description: 
    A Kerberos service ticket was requested. 
    … 
    Service Information: 
    Service Name: MYLINUX 
    Service ID: CONTOSO\MYLINUX 
    Network Information: 
    Client Address: ::ffff:10.20.30.40 
    Client Port: 57499 
    Additional Information: 
    Ticket Options: 0x40810000 
    Ticket Encryption Type: 0x17 
    Failure Code: 0x0 
    Transited Services: -
    
  • 运行klist命令后,KerbTicket 加密类型的值为 RSADSI RC4-HMAC(NT)。 这表示加密类型为 RC4。

    C:\> Klist get MYLINUX@CONTOSO.COM  
    Current LogonId is 0:0xb532bccf  
    A ticket to MYLINUX@CONTOSO.COM has been retrieved successfully.  
    Cached Tickets: (2)  
    …  
    #1> Client: MyUser@CONTOSO.COM  
    Server: MYLINUX@CONTOSO.COM  
    KerbTicket Encryption Type: RSADSI RC4-HMAC(NT)  
    Ticket Flags 0x40a50000 -> forwardable renewable pre_authent ok_as_delegate name_canonicalize  
    Start Time: <DateTime> (local)  
    End Time: <DateTime> (local)  
    Renew Time: <DateTime> (local)  
    Session Key Type: AES-256-CTS-HMAC-SHA1-96  
    Cache Flags: 0  
    Kdc Called: MyDC.Contoso.com  
    

注意

将 msDS-SupportedEncryptionTypes 属性值设置为 24(0x18), 以强制 AES256 或 AES128 加密无法解决问题。 同样,禁用 RC4 加密,并通过使用 网络安全:配置 Kerberos 允许的加密类型 组策略对象(GPO)启用 AES 加密,无法解决该问题。

原因

出现此问题的原因是 Linux 的 operatingSystemVersion 属性值设置为 3.10.0x。 AD DS 从左到右读取属性值,在第一个小数点处停止(.)如果值的第一个字符是数字,并且该值小于 6,则 KDC 确定请求的操作系统可能不支持较新的加密类型。 在这种情况下,值为 3。 因此,KDC 将忽略 msDS-SupportedEncryptionTypes ,并将使用域的假定支持的加密类型。 有关详细信息,请参阅 KDC DefaultDomainSupportedEncTypes 注册表配置。

此行为是特意这样设计的。 它容纳不支持 msDS-SupportedEncryptionTypes** 属性或 AES 加密类型的较旧版本的 Windows(包括 Windows 2000 Server、Windows Server 2003 和 Windows XP**)。 以下规范描述了此设计:

  • 如果服务器或服务具有使用支持的加密类型填充的KerbSupportedEncryptionTypes属性<58>,那么 KDC 应在 TGS-REP 消息的加密部分 ([Referrals-11] 附录 A) 中返回一个 PA-DATA 结构,其中 padata-type 设置为 PA-SUPPORTED-ENCTYPES [165],以指示服务器或服务支持的加密类型(第2.2.7节)。 如果不是这样,KDC 应<60> 检查服务器或服务帐户的 UseDESOnly 标志。
  • <58> 第 3.3.5.7 节:如果帐户用于计算机对象,并且 OperatingSystemVersion([MS-ADA3] 第 2.56 节)的值小于 6,则 KerbSupportedEncryptionTypes 被视为未填充。 如果请求的计算机运行 Windows 2000、Windows XP 或 Windows Server 2003,此方法可确保不会尝试更新的加密类型。 这些系统不支持设置 KerbSupportedEncryptionTypes。

有关详细信息,请参阅 TGS Exchange和 Kerberos 协议扩展附录 A58<>规范。

解决方案

若要解决此问题,请使用以下一种方法:

  • 删除 operatingSystemVersion 属性。
  • 设置属性值,使第一个字符不是数字数字。 例如,将该值设置为 Linux 3.10.0x ,而不是 3.10.0x。
  • 升级到符合规范的更新的系统版本。 从第三方供应商(例如 Linux)获取更新。

有关 KDC 如何选择加密类型的详细信息,请参阅 Kerberos Exchange 中的加密类型选择。

资料来源与适用范围

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

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

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