ESP IP 封装安全有效载荷( 三 )


认的讨论) 。
发送方的计数器和接收方的计数器在一个SA建立时被初始化为0 。(使用给定SA发送的第
一个分组的序列号1;序列号如何产生的细节参看3.3.3节)假如激活抗重播服务(默认地) , 传
送的序列号必须决不答应循环 。因此 , 在SA上传送第2的32次方个分组之前 , 发送方计数器
和接收方计数器必须重新置位(通过建立新SA和获取新密钥)
2.3有效载荷数据PayloadData
有效载荷数据是变长字段 , 它包含下一个头字段描述的数据 。有效载荷数据字段是强制性的 ,
它的长度是字节的整数倍 。假如加密有效载荷的算法要求加密同步数据 , 例如初始化向量(IV) ,
那么这个数据可以明确地装载在有效载荷字段 。任何要求这样明确的、每分组同步数据的加密算
法必须指出同步数据的长度、结构和位置 , 这是指定ESP中算法如何使用的某个RFC的一部分 。
假如这种同步数据是隐式的 , 派生数据的算法必须是RFC的一部分 。
注重关于确保IV存在时(实际)密文对齐:
o对于一些基于IV模式的操作 , 接收方把IV作为密文的开始 , 直接把IV传给算
法 。这些模式中 , (实际)密文是否开始对齐对于接收方并不重要 。
o某些情况下 , 接收方从密文中单独读入IV 。此时 , 算法规范必须解决(实际)密
文对齐如何实现 。
2.4填充(供加密使用)
几种因素要求或者激活填充字段的使用 。
o假如采用的加密算法要求明文是某个数量字节的倍数 , 例如块密码(blockcipher)
的块大小 , 使用填充字段填充明文(包含有效载荷数据、填充长度和下一个头字段 , 以及填充)
以达到算法要求的长度 。
o不管加密算法要求如何 , 也可以要求填充字段来确保结果密文以4字节边界终止 。
非凡是 , 填充长度字段和下一个头字段必须在4字节字内右对齐 , 如上图所示的ESP分组格式 ,
从而确保验证数据字段(假如存在)以4字节边界对齐 。
o除了算法要求或者上面提及的对齐原因之外 , 填充字段可以用于隐藏有效载荷实
际长度 , 支持(部分)信息流机密性 。但是 , 包含这种额外的填充字段占据一定的带宽 , 因而小
心使用 。
发送方可以增加0至255个字节的填充 。ESP分组的填充字段是可选的 , 但是所有实现必须
支持填充字段的产生和消耗 。
a.为了确保加密位是算法块大小(上面第一个加重号)的倍数 , 填充计算应用于除
IV之外的有效载荷数据、填充长度和下一个头字段 。
b.为了确保验证数据以4字节边界对齐(上面第二个加重号) , 填充计算应用于包
含IV的有效载荷数据、填充长度和下一个头字段 。
假如需要填充字节 , 但是加密算法没有指定填充内容 , 则必须采用下列默认处理 。填充字节
使用一系列(无符号、1字节)整数值初始化 。附加在明文之后的第一个填充字节为1 , 后面的
填充字节按单调递增:1,2,3,… 。当采用这种填充方案时 , 接收方应该检查填充字段 。(选择这种
方案是由于它相对简单 , 硬件实现轻易 。在没有其他完整性措施实施情况下 , 假如接收方检查解
密的填充值 , 这种方案粉碎了某种形式的“剪切和粘贴”攻击 , 提供有限的保护 。)
任何要求填充字段但不同于上述默认方法的加密算法 , 必须在一个指定ESP中算法如何使用
的RFC中定义填充字段内容(例如 , 0或者随机数)和所有要求接收方对这些填充字节的处理 。
这种情况下 , 填充字段的内容将由相应算法RFC中定义和选择的加密算法和模式决定 。相关的

推荐阅读