跳到主要内容

2.7. Cryptographic Algorithm Negotiation (密码算法协商)

2.7. Cryptographic Algorithm Negotiation (密码算法协商)

称为 "SA" 的载荷类型表示对 SA 所用 IPsec 协议集合 (IKE, ESP 或 AH) 以及各协议关联密码算法的提议.

SA 载荷由一个或多个 proposal (提议) 组成. 每个提议包含一个 protocol (协议). 每个协议包含一个或多个 transform (变换), 各指定一种密码算法. 每个变换包含零个或多个 attribute (属性) (仅当 Transform ID 未完全规定密码算法时才需要属性).

当因多个变换均可接受多个值而导致支持的套件数量很大时, 这种层次结构旨在高效编码密码套件提议. 响应方必须按照下述规则选取单一套件, 它可以是 SA 提议的任意子集.

每个提议包含一个协议. 若接受某提议, SA 响应必须包含相同协议. 响应方必须接受单一提议或全部拒绝并返回错误. 错误以 NO_PROPOSAL_CHOSEN 类型的通知给出.

每个 IPsec 协议提议包含一个或多个变换. 每个变换包含 Transform Type (变换类型). 被接受的密码套件必须在提议所包含的每种类型中恰好包含一个变换. 例如: 若 ESP 提议包含 ENCR_3DES, 密钥长度 128 的 ENCR_AES, 密钥长度 256 的 ENCR_AES, AUTH_HMAC_MD5 与 AUTH_HMAC_SHA 等变换, 则被接受的套件必须包含 ENCR_ 变换之一与 AUTH_ 变换之一. 因此六种组合均可接受.

若发起方既提议带完整性保护的传统密码, 又提议组合模式密码, 则需要两个提议. 一个提议包含带对应完整性算法的传统密码, 另一个提议包含全部组合模式密码且不包含完整性算法 (因为组合模式密码不允许使用 "NONE" 以外的完整性算法).