3.6. KRB_CRED 交换
概述
KRB_CRED 消息用于在主体之间安全传输 Kerberos 凭据(票据和会话密钥)。这允许一个主体将其凭据转发或代理给另一个主体。
目的
KRB_CRED 用于以下情况:
- 凭据转发:将 TGT 发送到远程主机
- 凭据代理:将服务票据传递给中间服务
- 票据委派场景
消息结构
KRB_CRED 包含:
- 一个或多个票据(明文)
- 加密部分包含:
- 对应的会话密钥
- 票据元数据(时间、标志等)
- 时间戳
- 序列号(可选)
KRB_CRED 消息的生成
发送者:
- 收集要传输的票据和会话密钥
- 构造加密部分,包含密钥和元数据
- 使用共享密钥或会话密钥加密敏感部分
- 将票据和加密数据打包为 KRB_CRED 消息
- 传输到接收者
KRB_CRED 消息的接收
接收者:
- 提取票据
- 解密加密部分以获得会话密钥
- 验证时间戳和序列号
- 将票据和密钥存储以供将来使用
- 可以使用转发的凭据访问服务
使用场景
票据转发
- 用户登录到工作站 A
- 希望从工作站 A 访问工作站 B
- TGT 使用 KRB_CRED 转发到工作站 B
- 用户可以从 B 获得服务票据而无需重新认证
票据代理
- 客户端获得中间服务的票据
- 中间服务需要代表客户端访问后端服务
- 客户端将后端服务票据使用 KRB_CRED 发送到中间服务
- 中间服务使用票据访问后端
安全考虑
- 会话密钥在传输中受到保护
- 接收者必须保护接收到的凭据
- 转发应仅用于受信任的主机
- 票据标志控制转发和代理能力
参考
完整技术细节请参阅 RFC 4120 第 3.6 节。