跳到主要内容

3.1. 认证服务交换

概述

认证服务 (AS) 交换是客户端与 Kerberos 系统的首次交互。其结果是客户端获得票据授予票据 (Ticket-Granting Ticket, TGT),可用于后续的票据请求。

消息流

  1. KRB_AS_REQ: 客户端向 AS 发送认证请求
  2. KRB_AS_REP: AS 使用 TGT 和会话密钥响应(使用客户端密钥加密)
  3. 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 节