首页 百科知识 安全封装协议规范

安全封装协议规范

时间:2022-12-16 百科知识 版权反馈
【摘要】:安全封装协议可以为IP数据包提供几种安全服务。一个IP数据包所用的具体ESP服务由相应的安全联结规定,保密服务是ESP的主要功能,如果在没有认证的情况下使用保密功能,这个IP数据包有可能受到主动攻击的威胁。ESP协议所涉及的算法分为加密算法和认证算法两类,由相应的安全联结规定两种算法实施细节,但至少要选取一种算法。ESP协议使用对称加密算法。为保证互操作性,协议规定了缺省算法为CBC模式的DES算法。

5.3.5 安全封装协议规范

1.安全封装协议介绍

安全封装协议(Encapsulating Security Payload)可以为IP数据包提供几种安全服务。它可以单独使用,也可以与AH协议一起使用,或者以隧道方式嵌套使用。

RFC1827中定义了一个早期版本的ESP,但是该版本没有提供对数据完整性的支持,IPSec工作组已经明确反对继续使用它,在RFC2406中又对它进行了更新的定义,增加了对数据完整性的支持。

ESP可以提供保密性、数据源认证、无连接的完整性、防重放攻击和有限的流量保密性。一个IP数据包所用的具体ESP服务由相应的安全联结规定,保密服务是ESP的主要功能,如果在没有认证的情况下使用保密功能,这个IP数据包有可能受到主动攻击的威胁(见后面的IPSec安全分析)。数据源认证和完整性认证(统称认证)作为一个整体,是ESP的可选用服务。防重放功能仅在有ESP认证时生效,并且具体处理取决于报文的接受方。流量保密需要使用ESP隧道模式,一般在安全网关处实施,这样可隐藏报文的实际收发地址

2.报文格式

ESP头(包)的格式如图5-10所示。

图5-10 ESP头(包)的格式

其中

(1)安全参数索引:与AH协议一样,收方可由此确定报文所用的安全联结。

(2)序号:与AH协议一样,这一序号也是一个递增计数器的值,用来防止重放攻击。

(3)载荷数据:载荷数据是非定长的域,用来存放经ESP协议处理过的数据,这些数据所属的类型由“下一协议头”字段定义。如果ESP算法在加密时需要算法同步数据(例如初始向量),那么,这些同步数据也包含在载荷数据中。

(4)填充数据:由于以下几个原因,ESP需要填充字段。

①加密算法需要明文长度为分组块长度的整数倍,例如块密码算法。使用填充字段后,加密算法所处理的明文(载荷数据、填充字段、填充长度字段和下一协议头字段)长度将满足算法要求。

②填充字段还能保证上层协议字段的右边界以4字节对齐。

③另外,通过使用填充字段,ESP协议能有效地隐藏实际载荷的长度,从而提供一定的流量保密性。但是,这种填充方式会浪费线路的有效带宽,因此在使用时一定要权衡利弊。填充字段不超过255字节。

如果ESP需要填充字段,但是加密算法没有规定填充的内容,那么就要依照ESP协议的缺省规定执行;填充字段为无符号单字节整型串,第一个字节值取1开始,以后依次增加,形成序列(1,2,3,…)。如果采用这种填充方式,在完成解密后,收方应该检查填充字段的内容,从而在一定程度上防止“剪贴”攻击。填充长度是指出填充字段的长度。

(5)上层协议:上层协议字段指出了载荷数据所包含的内容。例如,在ESP加密TCP协议时,这一字段的值为TCP协议标识。

(6)认证数据:认证数据是ESP认证算法对从安全参数索引字段开始,到上层协议字段为止的所有数据进行认证的结果。认证数据的长度由所选用的具体算法确定。

3.报文处理

(1)协议头位置

由于安全联结有传输和隧道两种模式,ESP协议头的位置也相应不同:

①传输模式

在传输模式下,ESP协议头插入在IP头与上层协议头之间(实际上,当使用ESP协议时,上层协议被封装在ESP载荷之中了)。一个IP数据包在ESP协议处理前后的形式如图5-11(a)所示。

②隧道模式

可以应用于主机,也可以应用于网关。在隧道模式下,内层的IP头含有该IP数据包的最终目的地址和最初源地址,外层的IP头可能含有与内层不同的地址,如隧道网关的地址。隧道模式下,ESP保护了整个内层的IP数据包如图5-11(b)所示。

图5-11 安全联结两种模式下的ESP协议头位置

(2)算法一致性要求

ESP协议所涉及的算法分为加密算法和认证算法两类,由相应的安全联结规定两种算法实施细节,但至少要选取一种算法。

①加密算法

ESP协议使用对称加密算法。为保证互操作性,协议规定了缺省算法为CBC模式的DES算法。同时,在调试时,可用“空白”加密算法(即载荷数据以明文形式传送)。由于IP层不能保证IP数据包按序传送,所以当加密算法要求有算法同步数据时(如初始向量),这些同步数据一定要与载荷数据一同传送。例如,在用CBC模式的DES算法时,初始向量为载荷数据的前64bit。

②认证算法

与AH协议类似,一个ESP处理的IP数据包所使用的认证算法由与之相应的安全联结定义。在点对点通信的情况下,可使用带密钥的消息认证码算法(HMAC),它可以基于对称加密算法(如DES),也可基于单向HASH算法(如MD5和SHA-1)。同时,在调试时可用“空白”认证算法(即不使用认证机制,报文中没有认证数据字段)。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈