3.1. 认证服务交换
概述
认证服务 (AS) 交换是客户端与 Kerberos 系统的首次交互。其结果是客户端获得票据授予票据 (Ticket-Granting Ticket, TGT),可用于后续的票据请求。
消息流
- KRB_AS_REQ: 客户端向 AS 发送认证请求
- KRB_AS_REP: AS 使用 TGT 和会话密钥响应(使用客户端密钥加密)
- KRB_ERROR: 如果请求无法满足则返回
关键组件
KRB_AS_REQ 消息生成
客户端构造包含以下内容的请求:
- 主体名称
- 域
- 请求的票据选项
- 时间戳(用于预认证)
- 加密类型偏好
接收和处理
AS 验证请求并检查:
- 主体是否存在于数据库中
- 预认证要求
- 策略约束
- 请求的选项
KRB_AS_REP 消息生成
如果请求有效,AS 构造包含以下内容的回复:
- TGT(使用 TGS 密钥加密)
- 会话密钥(使用客户端密钥加密)
- 票据过期时间
错误处理
如果请求无法满足,将返回带有适当错误代码的 KRB_ERROR 消息。
安全考虑
- 客户端的长期密钥用于保护 AS 回复
- 可要求预认证以防止离线字典攻击
- 请求中的时间戳提供重放保护
相关子章节
- 3.1.1. KRB_AS_REQ 消息的生成
- 3.1.2. KRB_AS_REQ 消息的接收
- 3.1.3. KRB_AS_REP 消息的生成
- 3.1.4. KRB_ERROR 消息的生成
- 3.1.5. KRB_AS_REP 消息的接收
- 3.1.6. KRB_ERROR 消息的接收
参考
完整技术细节请参阅 RFC 4120 第 3.1 节。