摘要

  • RFC 2407 为 IPsec DOI、Situation 位、身份类型、协议、变换、SA 属性与通知分配共同语义。编号能让对端读懂字段,却不能证明字段中的主张已经过认证、授权或执行。
  • 规范明确不替主机规定具体安全政策。完整凭据必须把协商数据连接到身份绑定、本地规则、应答方选择、SA 安装、接收方决定与后续报文结果。

设想一条协商报文写着 SIT_SECRECY,后面跟着某个 Labeled Domain Identifier、一个敏感级别和类别位图。解析器可以准确切开每个字段。它仍不知道这个标签域由谁治理、级别怎样映射为本机权限、接收端是否真的有对应规则,以及协商后的流量是否被同一规则处理。

这正是 1998 年 11 月发布的 RFC 2407 所画出的边界。ISAKMP 提供通用交换与载荷框架,IPsec Domain of Interpretation 则把它实例化:DOI 取值 1,并为 Situation、Security Association、Identification、协议、变换、属性与通知建立共同解释。

共同词典十分必要。没有它,同一个数字在不同实现中可能指向完全不同的算法或身份形态。IANA 注册表让独立系统不必靠猜测互通,也保留了私用区间,让明确协作的系统使用本地扩展。

但唯一编号只证明符号没有冲突。RFC 2407 对标签域的分配规则尤其坦白:这个 32 位值标识保密与完整性级别、类别存在于哪个命名空间;申请可以按需批准,并不强制附带公开文档。注册机关维护的是名字,不是该域内部的治理正当性。

Situation 一共定义三位:SIT_IDENTITY_ONLY、SIT_SECRECY 与 SIT_INTEGRITY。所有实现必须支持身份情形;Phase I 完全没有 Identification Payload 时必须中止。若声明保密或完整性标签,则必须附上标签域以及相应级别和类别。对方不支持时也要中止,并宜返回不支持通知。

存在字段与执行政策仍是两回事。规范随后明确说,IPsec DOI 不对实现施加具体安全政策,主机政策不在本文范围内。它可以是地址、掩码与“要求安全”标志的静态表,也可以包含通配域名、方向位和代理防火墙。网络共享格式,本地系统保留判断。

身份载荷同样只提供可解释的候选证据。它能表示 IPv4/IPv6 地址、子网、范围、FQDN、用户 FQDN、ASN.1 名称或不透明 Key ID。应答方可以用发起方身份选择政策,却必须先知道这个身份怎样与认证材料相连。

RFC 2407 因而要求:当证书用于认证 IKE 交换时,凡进入本地政策判断的身份,都应存在于该证书中。载荷里的名称是主张;证书里的绑定使主张获得证据;本地规则再决定它能做什么。三者不能压缩成一个“ID 已验证”状态。

ID_KEY_ID 更直接暴露本地语义。它是一串不透明字节,可用于选择 Aggressive Mode 的预共享密钥,也可能是厂商自定义信息。所有实现能认出类型 11,并不意味着其他组织能解释其内容。

提案与变换编号也不是结果。ISAKMP 允许在一次 Phase II 协商中同时提出多套安全协议组合。RFC 2407 列出 ISAKMP、AH、ESP 与 IPComp,却把哪些协议可一起协商明确留给主机政策。

变换还必须与属性一起读。SA 属性分别描述寿命单位与数值、组、封装模式、认证算法、密钥长度、轮数与压缩参数。有些组合定义清楚,另一些组合被明说为未定义。孤立的 transform number 只是一半句子。

即便完整句子被接受,也只完成协商层的动作。密钥管理进程还要把 SA 送进内核,选择器要命中预期流量,序列与寿命状态要持续有效,接收端要作出防重放选择,应用还可能拒绝最终数据。每一步都有不同负责人。

三种 DOI 私有状态通知把这些责任摊开。RESPONDER-LIFETIME 报告应答方真正采用的寿命;REPLAY-STATUS 报告它是否选择防重放。发送端报文里出现序列号,并不等于接收端已启用窗口。

INITIAL-CONTACT 更像一份带风险的陈述。发送方表示这是它与远端建立的第一条 SA。接收方可能推断对方重启,继而删除旧 SA。被认证的是说话者与交换,不是“重启已经发生”这个外部事实。删除仍是本地决定,应留下对象、理由、审批人与回滚凭据。

通知放在哪里也影响证明力。RFC 2407 禁止在 Aggressive Mode 中发送这些状态,因为缺少足够绑定;Main Mode 的某些位置只提供部分保护,Quick Mode 才把整个通知纳入哈希。相同状态码周围的密码学证据并不相同。

按照 Lu Heng 的现实分层,IANA 编号属于符号层,payload 属于消息层,认证属于绑定层,主机政策属于授权层,内核 SA 属于运行层,报文与应用结果属于效果层。把上层名字借给下层结果,是最常见的过度陈述。

委托关系也由此变得可见。注册表替互操作维护唯一性;证书机构替身份作证;IKE 进程替主机协商;政策负责人决定许可;内核执行;审计团队决定后来还能否还原。一个绿色“IKE 成功”指标无法代表所有代理人的决定。

2005 年,RFC 4306 用 IKEv2 合并并取代 RFC 2407、2408 与 2409。2023 年,IESG 将 IKEv1 三件套转为 Historic,理由包括 IKEv2 已广泛部署、旧协议多年无新工作,并存在放大攻击等问题。RFC 7296 后来成为 IKEv2 的互联网标准。

因此 RFC 2407 不是今天的算法清单。它的历史价值在于:一套规范把共同语义做得很厚,却仍承认政策与执行属于本地。标签域有了编号,政策没有随报文抵达。只有把身份绑定、规则命中、选择、安装、接收方决定和流量结果连成凭据链,才能说系统真正做了什么。

来源