为正确封装及提取IPSec数据包,有必要采取一套专门的方案,将安全服务/密钥与要保护的通信数据联系到一起;同时要将远程通信实体与要交换密钥的IPSec数据传输联系到一起。换言之,要解决如何保护通信数据、保护什么样的通信数据以及由谁来实行保护的问题。这样的构建方案称为安全关联(SecurityAssociation,SA)。
SA是两个应用IPsec实体(主机、路由器)间的一个单向逻辑连接,决定保护什么、如何保护以及谁来保护通信数据。它规定了用来保护数据包安全的IPsec协议、转换方式、密钥以及密钥的有效存在时间等等。SA是单向的,要么对数据包进行“进入”保护,要么进行“外出”保护。具体采用什么方式,要由三方面的因素决定:第一个是安全参数索引(SPI),该索引存在于IPSec协议头内;第二个是IPSec协议值;第三个是要向其应用SA的目标地址。通常,SA是以成对的形式存在的,每个朝一个方向。既可人工创建它,亦可采用动态创建方式。SA驻留在安全关联数据库(SAD)内。
SA提供的安全服务取决于所选的安全协议(AH或ESP)、SA模式、SA作用的两端点和安全协议所要求的服务。
AH为IP数据报提供数据源验证和无连接完整性。AH还提供抗重播服务。接收端是否需要这一服务,可自行决定。AH不对数据包进行加密,ESP则可提供加密和验证以及抗重播服务。ESP验证的数据不包括外部IP头,加密和验证服务至少选择其中之一。
ESP为SA的加密服务提供了有限业务流机密性。通道模式隐藏了数据包的源地址和最终目的地址。ESP数据包进行填充,隐藏了数据包的真实大小,进而隐藏了其通信特征。移动用户的IP地址是动态分配的,通过与公司的作为网关使用的防火墙间建立通道模式ESP SA,也可实现业务流的机密性。
一个SA对IP数据报不能同时提供AH和ESP保护。有时,特定的安全策略要求对通信提供多种安全保护,这就需要使用多个SA。当把一系列SA应用于业务流时,称为SA束。SA束的顺序由安全策略决定,SA束中各个SA的终点可能不同。例如,一个SA可能用于移动主机与安全网关之间,而另一个可能用于移动主机与安全网关内的主机。
SA的管理就是创建和删除,可以使用手工方式或动态方式。
手工方式下,安全参数由管理员按安全策略手工指定、手工维护。但是,手工维护容易出错,而且手工建立的SA没有存活时间的说法,除非再用人工方式将其删除,否则便会一直存在下去。
若用动态方式创建,则SA有一个存活时间与其关联在一起。这个存活时间通常是由密钥管理协议在IPSec通信双方之间加以协商而确立下来的,存活时间非常重要。若超时使用一个密钥,会为攻击者侵入系统提供更多的机会。SA的自动建立和动态维护是通过IKE进行的。如果安全策略要求建立安全、保密的连接,但却不存在相应的SA,IPsec的内核则启动或触发IKE协商。
两种IPSec协议均提供了一个抗重播服务。
为了抵抗重播攻击,IPSec数据包使用了一个序列号,以及一个滑动的接收窗口。在每个IPSec头内,都包含了一个独一无二、且单调递增的序列号。创建好一个SA后,序列号便会初始化为零,并在进行IPSec输出处理前,令这个值递增。新的SA必须在序列号回归为零之前创建,由于序列号的长度为32位,所以必须在232次方个数据包之前。
接收窗口的大小可为大于32的任何值,但推荐为64。从性能考虑,窗口大小最好是最终实施IPSec的那台计算机的字长度的整数倍。
窗口“右”边界代表该SA接收的最高的有效序列号值。接收到的数据包必须是新的,且必须落在窗口内部,或靠在窗口右侧。否则,便将其丢弃。只要它在窗口内是从未出现过的,我们便认为它是新的。假如收到的一个数据包靠在窗口右侧,那么只要它未能通过真实性测试,也会将其丢弃。如通过了真实性检查,窗口便会向右移动,将那个包包括进来。
SAD为进入和外出包维持一个活动的SA列表。SAD的字段包括:
外部头目的IP地址:SA的目的地址,可为终端用户系统、防火墙和路由器等网络系统。目前的SA管理机制只支持单播地址的SA。
IPsec协议:标识SA用的是AH还是ESP。
SPI:32比特的安全参数索引,标识同一个目的地的SA。
序号计数器:32比特,用于产生AH或ESP头的序号,仅用于外出数据包。
序号计数器溢出标志:标识序号计数器是否溢出。如溢出,则产生一个审计事件,并禁止用SA继续发送数据包。
抗重播窗口:32比特计数器及位图,用于决定进入的AH或ESP数据包是否为重发。仅用于进入数据包,如接收方不选择抗重播服务(如手工设置SA时),则抗重播窗口未被使用。
AH信息:指示认证算法、密钥、密钥生命期等与AH相关的参数。
ESP信息:指示加密认证算法、密钥、初始值、密钥生命期等与ESP相关参数。
SA的生存期:一个时间间隔。超过这一间隔后,应建立一个新的SA(以及新的SPI)或终止通信。生存期以时间或字节数为标准,或将两者结合使用,并优先采用先到者。
IPsec协议模式:隧道、传输或混合方式(通配符),说明应用AH或ESP的模式。
路径最大传输单元MTU:所考察的路径的MTU及其寿命变量。