跳到主要内容

4.4.2.1. SAD 中的数据项

SAD 中必须包含以下数据项:

安全参数索引(SPI,Security Parameter Index)​

一个 32 位值,由 SA 的接收端选定,用于唯一标识该 SA。

  • 在出站 SA 的 SAD 条目中,SPI 用于构造包的 AH 或 ESP 头。
  • 在入站 SA 的 SAD 条目中,SPI 用于将流量映射到适当的 SA(参见第 4.1 节中关于单播/多播的说明)。

序列号计数器(Sequence Number Counter)​

一个 64 位计数器,用于生成 AH 或 ESP 头中的“序列号(Sequence Number)”字段。64 位序列号是默认值,但如果经过协商,也支持 32 位序列号。

序列号计数器溢出(Sequence Counter Overflow)​

一个标志,指示当序列号计数器溢出时,是应当生成一个可审计事件并阻止在该 SA 上继续传输后续的包,还是允许回绕(rollover)。该事件的审计日志条目应该(SHOULD)包含 SPI 取值、当前日期/时间、本地地址、远端地址,以及来自相关 SAD 条目的选择器。

防重放窗口(Anti-Replay Window)​

一个 64 位计数器和一个位图(bit-map,或其等价结构),用于判断某个入站 AH 或 ESP 包是否为重放包。

注意:如果接收方为某个 SA 禁用了防重放(例如手动配置密钥的 SA 的情况),则该 SA 的防重放窗口被忽略。64 位序列号是默认值,但该计数器的大小也兼容 32 位序列号。

AH 认证算法(AH Authentication Algorithm)​

AH 认证算法、密钥等。仅当支持 AH 时才需要。

ESP 加密算法(ESP Encryption Algorithm)​

ESP 加密算法、密钥、模式、IV 等。如果使用了组合模式(combined mode)算法,这些字段将不适用。

ESP 完整性算法(ESP Integrity Algorithm)​

ESP 完整性算法、密钥等。如果未选择完整性服务,这些字段将不适用。如果使用了组合模式算法,这些字段将不适用。

ESP 组合模式算法(ESP Combined Mode Algorithms)​

ESP 组合模式算法、密钥等。当 ESP 使用组合模式(加密与完整性)算法时使用这些数据。如果未使用组合模式算法,这些字段不适用。

本 SA 的生存期(Lifetime of this SA)​

一个时间间隔,超过该间隔后 SA 必须被一个新的 SA(以及新的 SPI)替换或终止,并指明应当执行哪种动作。这可以表达为时间或字节计数,也可以同时采用两者,以先到期的生存期为准。

要求:

  • 合规的实现必须(MUST)支持两种类型的生存期
  • 必须(MUST)支持同时使用两者

证书约束:如果使用时间,并且 IKE 使用 X.509 证书来建立 SA,则 SA 生存期必须受证书有效期区间,以及用于为该 SA 进行 IKE 交换的证书吊销列表(CRL)的 NextIssueDate 所约束。发起方和响应方都有责任以这种方式约束 SA 生存期。

注意:当 SA 到期时如何处理密钥刷新的细节属于本地事项。不过,一种合理的方法如下:

(a) 字节计数​

如果使用字节计数,则实现应该(SHOULD)统计应用了 IPsec 密码算法的字节数。对于 ESP,这是加密算法(包括空(Null)加密);对于 AH,这是认证算法。这包括填充字节等。注意,实现必须(MUST)能够处理 SA 两端的计数器失去同步的情况,例如由于包丢失,或 SA 两端的实现处理方式不同所致。

(b) 两类生存期​

应该(SHOULD)有两类生存期:

  • 软生存期(Soft lifetime):警告实现启动相应动作,例如建立替换 SA
  • 硬生存期(Hard lifetime):当前 SA 结束并被销毁的时刻

(c) 包交付​

如果整个包未能在 SA 的生存期内交付,则该包应该(SHOULD)被丢弃。

IPsec 协议模式(IPsec Protocol Mode)​

隧道(tunnel)或传输(transport)。表示此 SA 上的流量应用 AH 或 ESP 的哪种模式。

有状态分片检查标志(Stateful Fragment Checking Flag)​

指示有状态分片检查是否适用于此 SA。

旁路 DF 位(Bypass DF Bit,T/F)​

适用于内层和外层头均为 IPv4 的隧道模式 SA。

DSCP 取值(DSCP Values)​

允许在此 SA 上承载的包所使用的 DSCP 取值集合。如果未指定取值,则不应用任何 DSCP 特定的过滤。如果指定了一个或多个取值,则它们用于在匹配某出站包流量选择器的多个 SA 中选择一个 SA。注意,不会对到达该 SA 的入站流量检查这些取值。

旁路 DSCP(Bypass DSCP,T/F)或映射到未受保护的 DSCP 取值​

如需限制 DSCP 取值的旁路,则旁路 DSCP(T/F)或映射到未受保护的 DSCP 取值(数组)——适用于隧道模式 SA。该功能将 DSCP 取值从内层头映射到外层头中的取值,例如用于处理隐蔽信道信令(covert channel signaling)方面的顾虑。

路径 MTU(Path MTU)​

任何观测到的路径 MTU 以及老化变量(aging variables)。

隧道头 IP 源地址与目的地址(Tunnel Header IP Source and Destination Address)​

两个地址必须同为 IPv4 地址或同为 IPv6 地址。地址的版本隐含了要使用的 IP 头类型。仅当 IPsec 协议模式为隧道时才使用。