强制启用AES-256需域功能级别≥2008、DC与客户端系统达标,并在AD用户属性中勾选AES256_HMAC_SHA1;通过GPO配置Kerberos策略仅支持AES128/AES256;验证用klist和事件ID 4769。
在windows域环境中强制启用aes-256加密协议,核心是确保kerberos身份验证使用强加密算法,防止降级到弱加密(如rc4或des),从而提升域内认证安全性。这需要在域控制器和客户端两端协同配置,且必须满足系统版本与功能支持前提。
确认基础环境支持
AES-256 Kerberos加密要求:
- 域功能级别至少为Windows Server 2008(推荐2012 R2及以上);
- 域控制器运行Windows Server 2008或更高版本;
- 客户端为Windows Vista/Server 2008或更新系统(旧系统如XP不支持AES-256);
- 账户的“加密类型”属性中已启用AES256_HMAC_SHA1(需在AD用户属性中显式勾选)。
在域控制器上配置默认域策略
通过组策略强制所有域成员优先使用AES-256:
- 打开“组策略管理”,编辑Default Domain Policy(或专用GPO);
- 路径:计算机配置 → 策略 → Windows设置 → 安全设置 → 账户策略 → Kerberos策略;
- 将“支持的Kerberos加密类型”设为:AES128_HMAC_SHA1, AES256_HMAC_SHA1(禁用RC4_HMAC_MD5、DES_CBC_CRC等弱算法);
- 该策略下发后,新获取TGT的客户端将只请求AES加密票据,旧票据仍可缓存使用,重启或klist purge后生效。
批量启用用户账户的AES256支持
Kerberos票据加密能力最终取决于用户账户属性,需确保每个账户启用AES256:
- 在Active Directory用户和计算机(ADUC)中,右键用户→属性→“账户”选项卡→点击“加密类型”按钮;
- 勾选AES256_HMAC_SHA1(同时建议勾选AES128,兼顾兼容性);
- 批量操作可用PowerShell:
Set-ADAccountControl -Identity "username" -SupportedEncryptionTypes AES128,AES256 - 注意:密码未重置前,部分旧密钥可能未生成AES密钥,建议用户改密一次以刷新密钥列表。
验证与排错要点
启用后务必验证是否真正生效:
- 客户端执行 klist tickets,查看票据的Encryption Type字段是否含aes256-cts-hmac-sha1-96;
- 域控制器事件日志(Event ID 4769)中,Service Ticket Encryption Type字段应显示24(对应AES256);
- 若出现登录失败,检查客户端是否因不支持AES而被拒绝——常见于老旧应用或非Windows客户端,需单独为其账户保留RC4支持(不推荐);
- 禁用RC4后,某些依赖NTLM或旧Kerberos实现的服务(如部分Linux SSSD配置、旧版SQL Server连接)可能异常,需同步升级或调整。










