跳到主要内容

3. Message Exchanges (消息交换)

以下各节描述了网络客户端和服务器之间的交互以及这些交换中涉及的消息.

Overview (概述)

Kerberos 协议由多种消息交换模式组成, 用于实现认证以及安全通信. 本章说明每类交换的详细消息流和要求, 包括客户端如何取得票据、如何向应用服务器证明身份, 以及后续安全消息如何提供完整性、机密性或凭据转发能力.

Exchange Types (交换类型)

Authentication Service (AS) Exchange

AS 交换用于客户端首次向 Kerberos 系统认证并取得 Ticket-Granting Ticket (TGT). 在该流程中, 客户端通常向 KDC 发送 KRB_AS_REQ, 并接收 KRB_AS_REP 或 KRB_ERROR. 取得 TGT 后, 客户端可以在后续交换中请求其他服务票据, 而不需要再次直接使用客户端的长期密钥.

Client/Server Authentication Exchange

Client/Server Authentication Exchange 用于客户端使用服务票据直接向应用服务器认证. 典型消息包括 KRB_AP_REQ, 以及在需要相互认证时由服务器返回的 KRB_AP_REP. 该交换验证客户端拥有票据中的会话密钥, 并可为后续应用协议建立可使用的加密上下文.

Ticket-Granting Service (TGS) Exchange

TGS 交换用于客户端基于已有 TGT 获取服务票据. 客户端向 KDC 提交 KRB_TGS_REQ, 请求访问特定应用服务器的凭据; KDC 成功处理后返回 KRB_TGS_REP, 或在失败时返回 KRB_ERROR. 该流程也承载若干 KDC 选项, 包括用于用户到用户认证的 ENC-TKT-IN-SKEY.

Secure Message Exchanges

  • KRB_SAFE: 为消息提供完整性保护.
  • KRB_PRIV: 为消息提供机密性和完整性保护.
  • KRB_CRED: 用于凭据转发 (credential forwarding).

User-to-User Authentication

User-to-User Authentication 支持对等认证场景. 当服务器无法访问持久密钥时, 客户端可以通过相关 TGS 流程和 ENC-TKT-IN-SKEY 选项获取使用会话密钥加密的票据, 从而完成用户到用户的认证.

Reference

所有消息交换的完整技术细节见 RFC 4120 Section 3.