生活案例举例教你搞定难懂的Kerberos认证过程
字数 1984 2025-08-22 12:22:37
Kerberos认证协议详解与攻击防御
0x00 前言
Kerberos是一套安全认证协议,主要解决"证明你是你"的问题,让客户端和服务端建立信任机制。本文将通过生活案例与协议分析相结合的方式,详细讲解Kerberos认证过程及其安全特性。
0x01 Kerberos基本概念
核心角色
- 客户端(Client): 发起服务请求的角色
- 服务端(Server): 提供服务访问的角色
- 密钥分发中心(KDC):
- 认证服务(AS): 负责客户端的初始认证
- 票据授予服务(TGS): 负责服务票据的颁发
解决的问题
- 密码安全传输: 使用加密票据和会话密钥,密码不会在网络上明文传输
- 防止重放攻击和身份伪造: 使用时间戳和一次性认证器
- 中心化身份验证: 实现单点登录(SSO)
- 避免重复密码验证: 通过TGT和服务票据机制
0x02 生活案例:大厦访客系统
初始流程及问题
- 提前在访客系统提交申请
- 进入前台验证访客信息
- 办理门禁卡
- 刷门禁卡进入
问题:
- 门禁卡过期需重复验证
- 门禁卡遗失后可能被冒用
优化方案
-
访客证(TGT)机制:
- 验证后发放访客证,避免重复验证
- 访客证包含加密会话密钥
-
防重放措施:
- 每次验证使用时间戳
- 加密通信使用动态密钥
0x03 Kerberos认证过程详解
1. AS请求过程(获取TGT)
AS-REQ请求包:
- 用户名(cname)
- Authenticator(用户密钥加密的时间戳)
- 域名(realm)
- 请求的服务名(sname): krbtgt
- 加密类型(etype)
AS-REP响应包:
- TGT认购权证(krbtgt密钥加密):
- Logon Session Key
- 用户名、域名
- 认证时间、到期时间
- PAC(特权属性证书)
- enc_Logon Session Key(用户密钥加密)
2. TGS请求过程(获取ST)
TGS-REQ请求:
- TGT认购权证
- Authenticator(Logon Session Key加密的时间戳)
- 请求的服务名(sname)
- 域名(realm)
- 加密类型(etype)
TGS-REP响应:
- ST服务票据(服务密钥加密):
- Service Session Key
- 用户名、域名
- 认证时间、到期时间
- PAC
- enc_Service Session Key(Logon Session Key加密)
3. AP请求过程(服务访问)
AP-REQ请求:
- ST服务票据
- Authenticator(Service Session Key加密的时间戳)
验证过程:
- 服务端使用服务密钥解密ST获取Session Key
- 使用Session Key解密Authenticator验证时间戳
0x04 Kerberos票据攻击
1. 黄金票据攻击
原理: 伪造TGT,需要:
- 域名称
- 域的SID值
- KRBTGT账号的HASH
- 任意用户名
影响: 可获取任意服务的ST
2. 白银票据攻击
原理: 伪造ST,需要:
- 域名称
- 域的SID值
- 目标服务器名
- 服务账号的NTLM HASH
- 伪造的用户名
影响: 只能访问特定服务
3. AS-REQ相关攻击
- Pass-the-Hash(PTH): 使用Hash而非明文密码认证
- 域用户枚举: 利用AS响应判断用户存在性
- 密码喷洒攻击: 批量尝试已知密码
4. AS-REP Roasting攻击
条件: 用户启用"Do not require Kerberos preauthentication"
原理: 直接获取TGT和加密的Session Key,可离线破解
5. Kerberoasting攻击
原理: 请求服务ST后离线破解服务账号密码
原因: ST使用服务账号密码加密,且可请求任意服务的ST
0x05 防御措施
-
黄金票据防御:
- 定期更换KRBTGT密码(建议每30-60天)
- 监控异常TGT请求
-
白银票据防御:
- 使用强服务账号密码
- 限制服务账号权限
-
AS-REP Roasting防御:
- 禁用"不需要预认证"选项
- 对所有用户启用预认证
-
Kerberoasting防御:
- 使用强服务账号密码
- 实施服务账号管理策略
- 监控异常TGS请求
-
通用防御:
- 启用Kerberos审计日志
- 实施账户锁定策略
- 定期检查异常认证活动
0x06 总结
Kerberos协议通过TGT和ST的双票据机制,结合时间戳和加密会话密钥,实现了安全的身份认证。理解其工作原理有助于更好地防御相关攻击。关键点包括:
- 三阶段认证流程(AS、TGS、AP)
- 两种票据(TGT、ST)的区别与联系
- 五种主要攻击方式及防御措施
- PAC在授权中的重要作用
通过生活案例与协议分析的结合,可以更直观地理解Kerberos的工作机制和安全特性。