跳到主要内容

3.6. KRB_CRED 交换

概述

KRB_CRED 消息用于在主体之间安全传输 Kerberos 凭据(票据和会话密钥)。这允许一个主体将其凭据转发或代理给另一个主体。

目的

KRB_CRED 用于以下情况:

  • 凭据转发:将 TGT 发送到远程主机
  • 凭据代理:将服务票据传递给中间服务
  • 票据委派场景

消息结构

KRB_CRED 包含:

  • 一个或多个票据(明文)
  • 加密部分包含:
    • 对应的会话密钥
    • 票据元数据(时间、标志等)
    • 时间戳
    • 序列号(可选)

KRB_CRED 消息的生成

发送者:

  1. 收集要传输的票据和会话密钥
  2. 构造加密部分,包含密钥和元数据
  3. 使用共享密钥或会话密钥加密敏感部分
  4. 将票据和加密数据打包为 KRB_CRED 消息
  5. 传输到接收者

KRB_CRED 消息的接收

接收者:

  1. 提取票据
  2. 解密加密部分以获得会话密钥
  3. 验证时间戳和序列号
  4. 将票据和密钥存储以供将来使用
  5. 可以使用转发的凭据访问服务

使用场景

票据转发

  • 用户登录到工作站 A
  • 希望从工作站 A 访问工作站 B
  • TGT 使用 KRB_CRED 转发到工作站 B
  • 用户可以从 B 获得服务票据而无需重新认证

票据代理

  • 客户端获得中间服务的票据
  • 中间服务需要代表客户端访问后端服务
  • 客户端将后端服务票据使用 KRB_CRED 发送到中间服务
  • 中间服务使用票据访问后端

安全考虑

  • 会话密钥在传输中受到保护
  • 接收者必须保护接收到的凭据
  • 转发应仅用于受信任的主机
  • 票据标志控制转发和代理能力

参考

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