跳到主要内容

3.2. 客户端/服务器认证交换

概述

客户端/服务器 (CS) 认证交换用于客户端希望使用从 TGS 获得的服务票据向应用服务器进行认证的情况。

消息流

  1. KRB_AP_REQ: 客户端向应用服务器发送认证请求
    • 包含服务票据
    • 包含认证器(使用会话密钥加密)
  2. KRB_AP_REP: 来自服务器的可选相互认证响应

KRB_AP_REQ 消息

组件

  • 票据 (Ticket): 使用服务器长期密钥加密,包含:
    • 客户端身份
    • 会话密钥
    • 有效期
  • 认证器 (Authenticator): 使用会话密钥加密,包含:
    • 客户端主体名称
    • 时间戳
    • 可选的子会话密钥

生成过程

客户端构造认证器并将其与票据打包以传输到应用服务器。

接收和验证

应用服务器:

  1. 使用其长期密钥解密票据
  2. 提取会话密钥
  3. 解密并验证认证器
  4. 检查时间戳以防止重放

KRB_AP_REP 消息

目的

提供相互认证 - 向客户端证明服务器拥有会话密钥。

生成

服务器创建使用会话密钥加密的回复,包含来自客户端认证器的时间戳。

接收

客户端验证时间戳以确认服务器拥有会话密钥。

使用加密密钥

认证成功后,会话密钥(或可选的子会话密钥)可用于:

  • 加密后续消息
  • 提供完整性保护
  • 建立安全通道

参考

完整技术细节请参阅 RFC 4120 第 3.2 节