专利名称:一种实现安全联盟同步的方法
技术领域:
本发明涉及到因特网(Internet)安全技术,特别涉及到一种实现安全联盟同步的方法。
背景技术:
针对Internet的安全需要,Internet工程任务组(IETF)颁布了IP层的安全标准IPSec。IPSec协议族在IP层对数据包进行高强度的安全处理,可以提供包括访问控制、无连接的完整性控制、数据源认证、抗重播保护以及保密性等等服务,这些服务可以提供对IP协议以及上层协议的保护。IPSec是在网络层实现数据的加密和验证,提供端到端的网络安全方案,由于加密后的数据包仍然是一般的IP数据包,因此这种结构可以很好的应用在Internet上。
IPSec的组件包括安全协议验证头(AH)和封装安全载荷(ESP)、安全联盟(SA)和密钥交换(IKE)以及加密和验证算法等。
其中,AH是一个安全协议头,为IP包提供无连接的完整性验证、数据源认证和选择性抗重播服务;ESP也是一个安全协议头,它采用加密和验证机制,为IP数据报提供数据源验证、数据完整性、抗重播和机密性安全服务;安全联盟是两个应用IPSec服务功能实体之间的一个单向的逻辑连接,对于每个实体而言,通常都包括一个输入安全联盟和一个输出安全联盟,这两个安全联盟决定了该实体在发送方向或接收方向所使用的安全策略,每一对应用IPSec服务功能实体的四个安全联盟决定了这两个实体之间需要保护什么信息、如何保护以及由谁来保护的问题。安全联盟可以用由目的IP地址、安全参数索引(SPI)以及安全协议标识符确定的策略指针SAID唯一标识;IKE用于实现安全联盟的协商、密钥的确定以及自动分配等功能;加密和验证算法则定义了ESP和AH使用的加密和验证算法。
另外,IPSec服务功能的实现需要维护两个与安全联盟有关的数据库,安全策略数据库(SPD)和安全联盟数据库(SAD)。SPD为IPSec的实现提供安全策略的配置,包括源、目的IP地址、掩码、端口,传输层协议,安全策略的动作,进出标志,标识符,对应的安全联盟和策略指针等等;SAD是安全联盟的集合,其内容包括目的IP地址、安全协议、SPI、序列号计数器、序列号溢出标志、抗重播窗口、安全联盟的生命期、进出标志、安全联盟的状态、IPSec的协议模式、加密算法和验证算法等。每个安全联盟在SAD中都存在一条记录项与之相对应。SAD和SPD是通过策略指针SAID进行相互关联的,即通过查看SPD中某个安全策略(SP)记录的策略指针SAID值,就可以在SAD中进行查找,找到该安全策略应该实施的安全联盟。需要说明的是,这两个数据库均是在提供IPSec服务功能的设备协商、建立安全联盟之前由系统预先配置生成的。
上述IPSec标准通过建立的IPSec SA对IP数据包进行加密和验证,并通过IKE协商加密的密钥,确保数据包的机密性和可信性;同时,通过建立的IPSec SA对数据包进行封装,隐藏数据包的一些通信特征可以抵抗通信分析,增强了数据传输的安全性。目前,很多通信设备都提供了IPSec功能,用以增强数据传输的安全性、可靠性。
另一方面,在通常情况下,现代通信系统对关键的通信设备都采用了备份的机制,这样,在其中一个设备发生故障的情况下,可以将数据倒换到备用设备进行处理,保证数据业务不会中断。
但是,目前这些提供IPSec功能的通信设备尚不能提供IPSec安全服务的备份功能,因此,在上述提供IPSec功能的设备发生故障,并将数据通信倒换到备用设备进行处理时,进行通信的设备之间并不能提供连续的IPSec保护,即在倒换后,通信设备之间需要重新协商建立安全联盟。而在协商期间,所有上层的数据包将会被丢弃,这将会在一定程度上导致上层业务的中断。
发明内容
为了解决上述技术问题,本发明提供了一种实现安全联盟在主、备用设备之间同步的方法,能实现IPSec功能在主备用通信设备之间的同步备份,保证倒换期间上层业务不会中断。
本发明所述方法包括以下步骤a、主用设备将自身建立的安全联盟相关信息发送到备用设备;b、备用设备接收安全联盟相关信息,并根据接收的安全联盟相关信息建立自身的安全联盟。
步骤a所述发送具体为主用设备通过主、备用设备之间的专用接口将安全联盟相同信息发送到备用设备。
本发明所述安全联盟相关信息包括反重播计数、序号溢出标志、安全协议验证头验证算法以及其使用的密钥、封装安全载荷加密算法、密钥初始化矢量、密钥初始化矢量模式、封装安全载荷验证算法及其使用的密钥、安全联盟有效期、封装模式。
步骤a具体包括以下步骤a11、在备用设备启动后,主用设备的IPSec模块读取主用设备安全联盟数据库中的所有已经建立的安全联盟相关信息;a12、主用设备的IPSec模块将读取的安全联盟相关信息发送到备用设备的IPSec模块。
所述步骤a12进一步包括主用设备计算读取的安全联盟有效期参数与主用设备系统运行时间的差值,并将计算得到的差值作为安全联盟相关信息中的安全联盟有效期参数,发送到备用设备。
步骤a具体包括以下步骤a21、当主用设备的密钥交换模块发送建立或者更新安全联盟消息到主用设备的IPSec模块,通知主用设备的IPSec模块创建新的安全联盟或者更新已经建立的安全联盟时,主用设备的密钥交换模块将所述建立或者更新安全联盟消息发送到备用设备的密钥交换模块;a22、备用设备的密钥交换模块将所述建立或者更新安全联盟消息转发给备用设备的IPSec模块,通知备用设备IPSec模块在自身创建与主用设备对应的安全联盟或者更新与主用设备对应的安全联盟。
所述步骤a21进一步包括主用设备的密钥交换模块复制新生成的安全参数索引,并将复制的安全参数索引发送到备用设备的密钥交换模块;所述步骤a22进一步包括备用设备的IPSec模块使用所述复制的安全参数索引代替备用设备的IPSec模块自身产生的安全参数索引。
步骤b所述备用设备建立安全联盟具体为b1、根据接收到的备份安全联盟相关信息构建安全联盟结构;b2、根据安全联盟相关信息中的目的IP地址、安全参数索引以及安全协议标识符提取该安全联盟的策略指针值;b3、根据提取的策略指针值将构建的安全联盟结构加入到备用设备的SAD中;b4、建立该安全联盟与安全策略数据库中相应安全策略的映射关系。
本发明所述方法进一步包括主用设备周期发送安全联盟中反重播计数参数到备用设备,更新备用设备对应安全联盟中的反重播计数参数值。
本发明所述方法进一步包括在主用设备发送反重播计数参数到备用设备之前,主用设备根据当前一个周期内接收或发送数据报的平均速度,预先为发送的反重播计数值加上一个偏移量。
本发明所述方法进一步包括c、上层业务倒换到备用设备后,备用设备的IPSec模块主动通知密钥交换模块开始新的协商过程,更新从主用设备备份的安全联盟。
本发明所述备用设备设定周期定时器以及密钥交换模块每次更新的安全联盟数目,密钥交换模块更新安全联盟具体包括以下步骤c1、启动周期定时器;c2、当所述周期定时器超时的时候,备用设备IPSec模块扫描备用设备上是否有尚未更新的备份安全联盟,如果有,执行步骤c3;否则,停止该所述周期定时器;c3、确定尚未更新的备份安全联盟数目,发送消息给密钥交换模块,通知该模块更新备份安全联盟,密钥交换模块比较尚未更新的备份安全联盟数目与设定的密钥交换模块每次更新的安全联盟数目,如果大于设定的数目,则扫描并更新设定数目的备份安全联盟,然后返回步骤c2;如果小于或等于设定的数目,扫描并更新所有尚未更新的备份安全联盟,然后停止该所述周期定时器。
步骤c3所述扫描并更新具体为根据安全联盟数据库中安全联盟的顺序依次扫描并更新所有备份安全联盟。
步骤c3所述扫描并更新具体为根据安全策略数据库中安全策略的顺序依次扫描并更新与当前安全策略对应的所有备份安全联盟。
本发明所述方法进一步包括在备用设备的密钥交换模块中维护一个使用队列,如果备份过来的安全联盟上已经有数据包的收发,则将该安全联盟记入该使用队列;步骤c3所述扫描并更新具体为优先扫描并更新使用队列中的安全联盟。
由此可以看出,应用本发明所述的实现安全联盟同步的方法通过对相同IPSec SA在主备用通信设备进行备份,保证在上层业务倒换到备用设备后,仍然可以使用备用设备根据主用设备中相应的IPSec SA同步建立或者更新的IPSec SA对数据进行加密和验证,而不需要立即重新协商建立新的安全联盟,保证上层业务的数据报文在倒换前后可以被正常处理,无报文被丢弃。
另外,本发明所述的方法在上层业务倒换到备用设备后,能及时更新安全联盟相关信息,对IPSec的安全性不产生影响。
图1为本发明一个优选实施例所述的安全联盟同步机制示意图;图2为本发明另一个优选实施例所述的安全联盟同步机制示意图;图3为本发明所述倒换后备用设备IKE模块对安全联盟进行更新的方法流程图。
具体实施例方式
为使本发明的目的、技术方案以及优点更加清楚明白,以下参照附图并举实施例,对本发明作进一步的详细说明。
本发明公开了一种实现安全联盟同步的方法,该方法在主用设备和备用设备之间实时备份安全联盟相关信息,即在提供IPSec服务的主用设备和备用设备之间保存相同的安全联盟。在系统正常运行时,只有主用设备对数据报文进行加密、解密、验证等处理,并将安全联盟相关信息实时备份到备用设备;而在倒换后,新的主用设备,即原来的备用设备使用备份的安全联盟信息对后续的数据报文进行加密、解密、验证等处理,保证上层业务的数据报文可以被正常处理,而不会产生业务中断。同时,倒换后,新的主用设备可以正常进行IKE协商等流程,保证安全联盟和密钥的创建以及更新操作的正常进行。
根据IETF的IPSee协议规定,安全联盟的相关信息包括反重播计数器、序号溢出标志、AH验证算法以及其使用的密钥、ESP加密算法、ESP密钥初始化矢量IV、ESP密钥初始化矢量IV模式、ESP验证算法及其使用的密钥、安全联盟有效期、封装模式等等。
在实际的设备中,安全联盟的管理功能在实现上通常由两个功能模块来承担IPSec模块和IKE模块。其中,IPSec模块直接管理SAD中的IPSec SA;IKE模块则负责管理IKE SA,并负责通知IPSec模块创建、更新或者删除IPSec SA。在这里,IKE SA为提供IPSec服务设备之间的IPSec SA创建、更新或者删除等操作提供了一个安全的协商通道。
本发明所述的安全联盟同步的方法根据主用设备和备用设备的工作状态分成两种情况第一种情况是在主用设备正常工作,并已经建立了若干个IKE SA和IPSec SA之后,备用设备才启动时,IPSec SA的同步;第二种情况是在主用和备用设备都处于正常状态,主用设备建立新的IPSec SA或者对已经建立的IPSec SA进行更新时,IPSec SA的同步。
实施例1图1为第一种情况下IPSec SA同步方法示意图。在这种情况下,备用设备在启动后需要同步建立已经在主用设备建立的所有IPSec SA。
如图1所示,在备用设备启动后,IPSec SA的备份方法主要包括以下几个步骤步骤101主用设备的IPSec模块读取主用设备SAD中已经建立的所有IPSec SA1的安全联盟相关信息。
步骤102主用设备的IPSec模块采用自定义消息的方式将读取的安全联盟相关信息通过主、备用设备之间的专用接口传送到备用设备的IPSec模块。其中,所述的专用接口是主、备用设备之间专用于传输安全联盟相关信息的接口。
需要注意的是,在这一步骤中,传送的所述安全联盟相关信息中安全联盟有效期参数并不是从主用设备的SAD中直接读取的安全联盟有效期参数,而是所读取的安全联盟有效期参数与主用设备系统运行时间之间的差值。这是因为,根据IPSec协议的规定,安全联盟有效期参数是以系统运行的时间为参考的一个绝对时间值,由于主用设备和备用设备的系统运行时间通常不一致,如果直接传送读取的安全联盟参数,将会造成备用设备建立的安全联盟的有效期与主用设备相应安全联盟的有效期不一致。
步骤103备用设备的IPSec模块根据接收到的安全联盟相关信息建立IPSec SA1。
在这一步骤中,建立IPSec SA1的方法具体包括以下几个步骤首先,备用设备的IPSec模块根据接收到的备份安全联盟相关信息在其内部构建IPSec SA1结构;然后,备用设备的IPSec模块根据所述安全联盟相关信息中目的IP地址、SPI以及安全协议标识符提取该IPSec SA1的策略指针SAID值,并根据提取的SAID值将构建的IPSec SA1结构加入到备用设备的SAD中;最后,根据从主用设备上备份过来的IPSec SA1信息,建立与自身SPD中相应安全策略之间的映射关系。对于安全策略信息需要说明的是,由于备用设备通常可以使用数据配置的方法保持安全策略在主、备用设备上的一致性,因此,此类安全策略信息不需要备份。
从上述过程可以看出,备用设备在启动后,通过上述步骤101至103的安全联盟同步过程,就可以获得和主用设备已经建立的安全联盟相对应的安全联盟相关信息,实现IPSec SA1在主、备用设备之间的同步。这样,即使在上层业务发生倒换的时候,备用设备也可以使用备份的安全联盟相关信息对数据报进行处理,而不会导致上层业务的中断。
实施例2图2为第二种情况下IPSec SA同步方法示意图。在这种情况下,如果主用设备建立新的IPSec SA或对已经建立的IPSec SA进行更新,备用设备需要同步建立或者更新相应的IPSec SA。
如图2所示,本实施例所述的IPSec SA同步方法包括以下步骤步骤201在新发起的协商流程中,主用设备的IKE模块通知IPSec模块创建新的IPSec SA2或者更新已经建立的IPSec SA2;步骤202主用设备的IKE模块同时将上述建立或更新IPSec SA2的通知消息通过主、备用设备之间的专用接口传送到备用设备的IKE模块;步骤203备用设备的IKE模块将上述通知消息转发给备用设备的IPSec模块,通知该IPSec模块进行和主用设备同步的操作,即在备用设备的SAD中建立或者更新IPSec SA2。
需要说明的是,在上述步骤202和203中,如果IPSec SA2是新建立的安全联盟,那么在步骤202,主用设备的IKE模块还需要将主用设备IPSec模块所建立的IPSec SA2安全联盟相关信息中的SPI值通过专用接口传送到备用设备IKE模块;而在步骤203,备用设备的IKE模块会将接收到的主用设备建立的SPI值转发给备用设备的IPSec模块,用以替换该模块在建立IPSec SA2时自身产生的SPI值。这是因为,按照IPSec协议规定,IPSec模块在建立安全联盟时会自动生成一个SPI值,如果备用设备在建立IPSec SA2时使用自身产生的SPI值,将会造成备用设备与主用设备上相对应安全联盟IPSec SA2的SPI值不一致,进而导致备用设备倒换为主用设备后,无法与对端设备正常通信。
另外,上述步骤201和203中所述的建立IPSec SA2的方法与步骤103中建立IPSec SA1的方法相同。
通过上述流程,备用设备就可以在主用设备建立新的安全联盟或者更新已经建立的安全联盟时,获得和主用设备相同的安全联盟相关信息,实现IPSec SA2的在主、备用设备之间的同步。这样,如果此时发生上层业务的倒换,备用设备可以使用经过同步的安全联盟相关信息对数据报进行处理,而不会中断上层业务。
在上述两个实施例中,备份的安全联盟相关信息包括但不限于上述协议中定义的安全联盟相关参数,而可以根据具体实现进行相应的调整。
另外,需要特别注意的是,在完成上述安全联盟相关信息的同步后,还需要对那些安全联盟相关信息中动态变化的参数,进行实时同步更新。下面以用于防止网络中的其他通信设备的重播攻击的反重播计数参数为例进行说明。反重播计数参数通常用于指示通信设备当前发送和预计接收的数据报的序号,该参数的值通常随着通信设备之间数据报的交互而不断增长,因此如果不对该参数进行实时同步更新,那么,备用设备的反重播计数参数值一般会小于主用设备以及对端设备的反重播计数参数值。这样,在备用设备倒换为主用设备时,根据其反重播计数参数值,备用设备将会使用较小的序号发送数据报,并且该数据报的序号通常会落在对端已经接收的序号范围内,因而,该数据报将被对端通信设备丢弃;而由于对端设备相对应安全联盟的反重播计数参数值较大,因此,对端设备发送的大量重播数据报的序号将落在备用设备没有接收的序号范围内,这些数据报将会被备用设备正常接收,造成备用设备无法避免重播攻击,导致上层业务不能正常进行。
上述对安全联盟相关信息中动态变化的参数进行同步更新的方法可以有两种其中一种采用周期热备份的方式,定时刷新反重播计数,保证主、备用设备之间反重播计数的同步。进一步,还可以根据当前一个周期内主用设备接收/发送数据报的平均速度,在备用设备当前的反重播计数参数上加上一个合适的偏移量,使主、备用设备的反重播计数参数尽量保持同步。所述热备份的周期可以由通信系统根据经验值设定。
另一种方法是在倒换前,主用设备和备用设备同步所述动态变化的参数。但是,这种方法仅适于人为倒换的情况,而不适用于由于突发事件造成的倒换情况。
由上述实施例可以看出,通过本发明所述的安全联盟在主、备用设备之间同步的方法,在备用设备的安全联盟数据库中建立与主用设备相同的IPSec SA,保证在倒换到备用设备后,仍然可以使用备份的IPSec SA对数据进行加密和验证,而不需要重新协商建立安全联盟,保证上层业务的数据报文在倒换前后可以被正常处理,无报文被丢弃。
对比上述两个优选实施例所述的方法,实施例1所述的直接备份IPSecSA的方法并不常用,因为通常在现网运行中主、备用设备均是实时保持热备份的,因此很多时候,实施例2所述的备份IPSec模块和IKE模块之间的消息的方法更为实用,并且大大减少了人为的干预。
但是,由于本发明所述方法并没有在备用设备中同步备份IKE SA,因此,在倒换后,备用设备,即新的主用设备的IPSec SA不能自动进行更新,仅在其有效期内有效。如果当某个备份的IPSec SA到期后,新的主用设备与对端通信设备还有数据报交互,将会触发IKE模块开始新的协商流程,从而创建新的IPSec SA和IKE SA。但是,通常情况下,在上述的协商流程中,通信设备之间的头几个的数据报将会被丢弃,这也将造成上层业务的短时中断。
为了保证上层业务的连续性,在本发明所述的方法中增加了倒换后IPSec模块主动发起的重新协商过程,即在备用设备倒换为新的主用设备后,其IPSec模块会主动通知IKE模块重新开始新的协商,即更新从原主用设备同步过来的安全联盟,保证在备份的IPSec SA到期之前建立新的与该上层业务对应的IPSec SA和IKE SA,这样,就可以保证倒换后及时更新备份的安全联盟相关信息,进而保证上层业务的连续性。
下面将详细介绍本发明所述新主用设备IKE模块被动更新安全联盟的方法。由于在新的主用设备中可能会存在大量需要更新的安全联盟,如果一次完成对所有安全联盟的重新协商,则将会占用备用设备中央处理器(CPU)过长的时间。为了避免发生上述情况,所述方法在进行安全联盟的更新之前,设定一个周期定时器,仅在每次该周期定时器超时的时候,才对部分从原主用设备同步备份过来的安全联盟进行更新,本发明所述的方法还设定了IKE模块每次更新安全联盟的数目,保证在所述周期定时器的一个周期内,仅有一小部分时间用于安全联盟的更新,而在其它时间,CPU可以用于处理其他进程。其中,所述周期定时器的周期以及IKE模块每次更新安全联盟的数目均可以根据系统的处理能力而确定。
图3为本发明所述新主用设备IKE模块被动更新安全联盟方法的流程图。如图3所示,当备用设备倒换为新的主用设备时,新的主用设备将执行以下步骤
步骤301启动周期定时器;步骤302当所述周期定时器超时的时候,IPSec模块扫描新主用设备上是否有尚未更新的从主用设备同步过来的备份安全联盟,如果有,执行步骤303;否则,停止该所述周期定时器;由于在主、备用设备的SAD中每个安全联盟都有相应的状态标志字标识该安全联盟的状态,例如,如果主用设备上的安全联盟已经备份或更新到备用设备,则将该安全联盟的状态标志字设置为“已备份”,如果备用设备上的安全联盟是从主用设备同步过来的,则将该安全联盟的状态标志字设置为“从主用设备备份”,如果备用设备上安全联盟是备用设备在倒换为新主用设备后通过自身协商而建立的,或者是新的主用设备经过自身协商更新的,则将该安全联盟的状态标志字设置为“正常”,因此,新的主用设备可以通过检测安全联盟的状态标志字确定该安全联盟是否为尚未更新的从原主用设备同步过来的备份安全联盟;步骤303确定尚未更新的备份安全联盟数目,发送消息给IKE模块,通知它进行新的协商,更新上述尚未更新的备份安全联盟;步骤304IKE模块比较尚未更新的备份安全联盟数目与设定IKE模块每次更新的数目,如果大于设定的IKE模块每次更新的数目,则执行步骤305;如果小于等于设定的数目,则执行步骤306;步骤305扫描并更新设定数目的备份安全联盟,然后返回步骤302;步骤306扫描并更新所有尚未更新的备份安全联盟,然后停止该所述周期定时器。
在上述步骤305和306中扫描并更新安全联盟的方法可以有多种一种方法是根据SAD中安全联盟记录的顺序依次扫描并更新所有安全联盟。另一种方法是根据SPD中安全策略记录的顺序依次扫描并更新与之对应的安全联盟,即首先指定SPD中的一个安全策略,扫描并更新完与其对应的所有安全联盟后,再扫描并更新与SPD中下一个安全策略对应的所有安全联盟。第二种扫描并更新安全联盟的方法与第一种方法相比优点是IKE模块在进行重新协商的时候,直接根据安全策略的结构就可找到对应该安全策略的输入和输出安全联盟,可同时更新对应同一对端通信实体的输出以及输入的安全联盟信息,大大缩短了扫描及更新的过程。这是因为,在安全联盟创建时,对应于同一对端通信实体的输入和输出的安全联盟之间不一定相互关联,因此如果按照第一种方法进行扫描并更新的话,找到一个输出的安全联盟后可能还要继续查找与其对应的输入安全联盟,以便同时进行更新,这将造成扫描更新过程相对复杂,耗费的时间也较长。
还有一种方法是采用“使用优先”的原则进行扫描和更新,即在IKE模块中维护一个使用队列,如果在新的主用设备中,同步过来的安全联盟上已经有数据包的收发,则将该安全联盟记入使用队列,每次定时器超时的时候,优先扫描使用队列,先对已经被“使用”的安全联盟进行更新。然后再处理其它同步过来的安全联盟。
以上举优选的实施例,对本发明的目的、技术方案和优点进行了进一步的详细说明,所应理解的是,以上所述为本发明的优选实施例而已,并不用以显示本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种实现安全联盟同步的方法,其特征在于,所述方法包括以下步骤a、主用设备将自身建立的安全联盟相关信息发送到备用设备;b、备用设备接收安全联盟相关信息,并根据接收的安全联盟相关信息建立自身的安全联盟。
2.如权利要求1所述的方法,其特征在于,步骤a所述发送具体为主用设备通过主、备用设备之间的专用接口将安全联盟相同信息发送到备用设备。
3.如权利要求1所述的方法,其特征在于,所述安全联盟相关信息包括反重播计数、序号溢出标志、安全协议验证头验证算法以及其使用的密钥、封装安全载荷加密算法、密钥初始化矢量、密钥初始化矢量模式、封装安全载荷验证算法及其使用的密钥、安全联盟有效期、封装模式。
4.如权利要求1所述的方法,其特征在于,步骤a具体包括以下步骤a11、在备用设备启动后,主用设备的IPSec模块读取主用设备安全联盟数据库中的所有已经建立的安全联盟相关信息;a12、主用设备的IPSec模块将读取的安全联盟相关信息发送到备用设备的IPSec模块。
5.如权利要求4所述的方法,其特征在于,所述步骤a12进一步包括主用设备计算读取的安全联盟有效期参数与主用设备系统运行时间的差值,并将计算得到的差值作为安全联盟相关信息中的安全联盟有效期参数,发送到备用设备。
6.如权利要求1所述的方法,其特征在于,步骤a具体包括以下步骤a21、当主用设备的密钥交换模块发送建立或者更新安全联盟消息到主用设备的IPSec模块,通知主用设备的IPSec模块创建新的安全联盟或者更新已经建立的安全联盟时,主用设备的密钥交换模块将所述建立或者更新安全联盟消息发送到备用设备的密钥交换模块;a22、备用设备的密钥交换模块将所述建立或者更新安全联盟消息转发给备用设备的IPSec模块,通知备用设备IPSec模块在自身创建与主用设备对应的安全联盟或者更新与主用设备对应的安全联盟。
7.如权利要求6所述的方法,其特征在于,所述步骤a21进一步包括主用设备的密钥交换模块复制新生成的安全参数索引,并将复制的安全参数索引发送到备用设备的密钥交换模块;所述步骤a22进一步包括备用设备的IPSec模块使用所述复制的安全参数索引代替备用设备的IPSec模块自身产生的安全参数索引。
8.如权利要求1所述的方法,其特征在于,步骤b所述备用设备建立安全联盟具体为b1、根据接收到的备份安全联盟相关信息构建安全联盟结构;b2、根据安全联盟相关信息中的目的IP地址、安全参数索引以及安全协议标识符提取该安全联盟的策略指针值;b3、根据提取的策略指针值将构建的安全联盟结构加入到备用设备的SAD中;b4、建立该安全联盟与安全策略数据库中相应安全策略的映射关系。
9.如权利要求1所述的方法,其特征在于,所述方法进一步包括主用设备周期发送安全联盟中反重播计数参数到备用设备,更新备用设备对应安全联盟中的反重播计数参数值。
10.如权利要求9所述的方法,其特征在于,所述方法进一步包括在主用设备发送反重播计数参数到备用设备之前,主用设备根据当前一个周期内接收或发送数据报的平均速度,预先为发送的反重播计数值加上一个偏移量。
11.如权利要求1所述的方法,其特征在于,所述方法进一步包括c、上层业务倒换到备用设备后,备用设备的IPSec模块主动通知密钥交换模块开始新的协商过程,更新从主用设备备份的安全联盟。
12.如权利要求11所述的方法,其特征在于,所述备用设备设定周期定时器以及密钥交换模块每次更新的安全联盟数目,密钥交换模块更新安全联盟具体包括以下步骤c1、启动周期定时器;c2、当所述周期定时器超时的时候,备用设备IPSec模块扫描备用设备上是否有尚未更新的备份安全联盟,如果有,执行步骤c3;否则,停止该所述周期定时器;c3、确定尚未更新的备份安全联盟数目,发送消息给密钥交换模块,通知该模块更新备份安全联盟,密钥交换模块比较尚未更新的备份安全联盟数目与设定的密钥交换模块每次更新的安全联盟数目,如果大于设定的数目,则扫描并更新设定数目的备份安全联盟,然后返回步骤c2;如果小于或等于设定的数目,扫描并更新所有尚未更新的备份安全联盟,然后停止该所述周期定时器。
13.如权利要求12所述的方法,其特征在于,步骤c3所述扫描并更新具体为根据安全联盟数据库中安全联盟的顺序依次扫描并更新所有备份安全联盟。
14.如权利要求12所述的方法,其特征在于,步骤c3所述扫描并更新具体为根据安全策略数据库中安全策略的顺序依次扫描并更新与当前安全策略对应的所有备份安全联盟。
15.如权利要求12所述的方法,其特征在于,所述方法进一步包括在备用设备的密钥交换模块中维护一个使用队列,如果备份过来的安全联盟上已经有数据包的收发,则将该安全联盟记入该使用队列;步骤c3所述扫描并更新具体为优先扫描并更新使用队列中的安全联盟。
全文摘要
本发明公开了一种实现安全联盟同步的方法,在该方法中,主用设备将自身建立的安全联盟相关信息发送到备用设备;备用设备根据接收的安全联盟相关信息建立自身的安全联盟。应用本发明所述的方法通过对安全联盟相关信息在主备用通信设备进行备份,保证在倒换到备用设备后,仍然可以使用备用设备同步建立或更新的安全联盟对数据进行加密和验证,而不需要立即重新协商建立新的安全联盟,保证上层业务的数据报文在倒换前后可以被正常处理,无报文被丢弃。另外,本发明的方法在倒换后能及时更新安全联盟相关信息,对安全联盟的安全性不产生影响。
文档编号H04L9/00GK1791098SQ20041009882
公开日2006年6月21日 申请日期2004年12月13日 优先权日2004年12月13日
发明者杨黎莉, 郑克 申请人:华为技术有限公司