具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。
图1为本发明实施例实施因特网安全协议的***实施例的结构示意图。图1所示***包括因特网协议版本4(IPv4)网络节点13、NAT-PT网关12及因特网协议版本6(IPv6)网络节点11。IPv4网络节点13与IPv6网络节点11之间采用分段因特网安全协议(IPSec)通信,即,NAT-PT网关12与所述IPv4网络节点13、IPv6网络节点11之间分别建立相应的SA,用于 所述IPv4网络节点13与IPv6网络节点11之间的通信。通过采用分段IPSec通信,避免了AH算法的修改,使得***无须对IKE做额外的处理,从而大大降低了NAT-PT网络***实现网络层安全的***复杂度。
所述NAT-PT网关12还可设置与地址转换表相对应的标识位表,并在所述NAT-PT网关12建立地址映射时,将标识位加在地址映射表的相应位置。所述NAT-PT网关12能够根据这个标识位的值,判断通信过程中特定通信或特定站点是否需要采用IPSec,并根据判断结果进行控制,以保证数据通信的安全。如,当对应某一目的地址(网络)的标识位表示必须采用IPSec时,所述NAT-PT网关12决定去往该目的地址对应的主机(网络)或来自某一主机(网络)的通信必须采用IPSec。如果发起端不启用IPSec,则通话将不予进行。这样,可以由网关决定哪些敏感的通信必须采用IPSec,以保证通信的安全性。其中,NAT-PT网关12上标识位表中是否启用IPSec可由网关管理员根据需要设置;所述NAT-PT网关12可根据标识位控制一对一通信,也可以控制一个网络和一个网络通信,进一步增强了NAT-PT网络实施IPSec的灵活性。下面有具体说明。
所述IPv4网络节点13、NAT-PT网关12、IPv6网络节点11可安装有SSL(安全套接层)软件,用于收发请求消息,为SP协商阶段提供安全保障。所述NAT-PT网关12安装的SSL软件,在通信刚开始时作为服务端,接收发起端SSL客户端发送的数据;对NAT-PT网关12另一侧的主机来说,数据包是由NAT-PT网关12的SSL客户端发起的,所以NAT-PT网关即有SSL客户端又有SSL服务端,由对称性可知,对IPV4域和IPV6域的主机来说同样如此。也就是说,本SSL软件是一个客户端和服务端的结合体。在SP协商过程中,采用SSL软件来进行数据包的收发,对数据包进行加密,进一步增加了NAT-PT网络实施IPSec的安全性。
本发明实施例提供一种实施因特网安全协议的方法,包括:
NAT-PT网关接收发起端网络节点发送的与目的端网络节点通信的请 求消息;
当满足实施因特网安全协议条件时,所述NAT-PT网关根据所述发起端网络节点的通信请求消息,与所述发起端网络节点协商产生第一SA;
所述NAT-PT网关生成新的通信请求消息发送至所述目的端网络节点,根据所述新的通信请求与所述目的端网络节点协商产生第二SA;
所述NAT-PT网关利用所述第一SA保护所述发起端网络节点发送的通信数据;利用所述第二SA保护所述发送给所述目的端网络节点的通信数据。
以下结合附图,对本发明实施例进行详细阐述。
因特网安全协议因特网安全协议因特网安全协议
图2为本发明实施例实施因特网安全协议的方法实施例实施场景的网络拓扑示意图。假设IPv6网络节点11a的IPv6地址为“2001::1”;IPv6网络节点11b的IPv6地址为“2001::2”;IPv4网络节点13的IPv4地址为“202.146.243.30”。NAT-PT网关12地址缓冲池中,IPv4的地址属于子网“59.64.90/24”。IPv6域网络中,NAT-PT网关12负责给IPv4网络节点13分配网络前缀“PREFIX=3ffe:b00:ffff:0:0:1::/96”。可以在NAT-PT网关维护一个标识位表,假设此时NAT-PT网关12中的标识位表为表1,需要说明的是,NAT-PT网关12上所述标识位表中标识位的值可由网关管理员根据策略进行设置,当所述标识位值为“0”时,可根据发起端用户设置的标识位来决定是否启用IPSec;当所述标识位值为“1”时,无论用户端是否要求启用IPSec,所述NAT-PT将要求通过所述网关的网络节点之间的通信均需启用IPSec,若没有启用,则拦截发起端的通信请求,并要求所述发起端启用IPSec重新发送通信请求,由此实现NAT-PT网关对是否启用IPSec进行干预;
表1
表示与IPv6网络节点11b的通信必须采用IPSec。
图3为本发明实施例实施因特网安全协议的方法实施例一中IPv4网络节点13获取IPv6网络节点11a的NAT-PT映射地址的流程图。本实施例中,IPv4网络节点13请求发起与IPv6网络节点11a的通信。假设IPv4网络节点13只知道IPv6网络节点11a的域名地址,在通信前,首先获取IPv6网络节点11a的NAT-PT映射地址,所述的映射地址为IPV6网络节点的一个符合IPV4网络格式的地址,具体如图3所示,包括:
步骤101、IPv4网络节点13向域名***应用层网关(以下简称:DNS-ALG)请求IPv6网络节点11a的IPv4映射地址;
步骤103DNS-ALG将此请求转发到域名***(DNS)服务器中;
步骤105、DNS服务器响应IPv6网络节点11a的IPv6地址“2001::1”;
步骤107、DNS-ALG收到DNS服务器响应的IPv6地址(2001::1)后,将该IPv6地址发给NAT-PT网关12,并向NAT-PT网关12动态申请分配一个可路由的IPv4地址;
步骤109、NAT-PT网关12查询IPv4地址池,获得一个可路由的IPv4地址如“59.64.90.99”;
具体操作包括:NAT-PT网关12在IPv4地址池中查找没有被别的映射占用的IPv4地址,将所查找到的IPv4地址作为可路由的IPv4地址;
NAT-PT网关12可以维护一个地址转换表,获取到所述可路由的IPV4地址后,将该IPV4地址写入所述的地址转换表中,并根据表1填充相应的标识位值,得到表2。
表2
IPv6地址 |
NAT-PT映射地址 |
标识位 |
2001::1 |
59.64.90.99 |
0 |
步骤111、NAT-PT网关12将“59.64.90.99”返回给DNS-ALG;
步骤113、DNS-ALG把IPv6网络节点11a的NAT-PT映射地址作为查询结果响应给IPv4网络节点13,IPv4网络节点13便获得了IPv6网络节点的IPv4映射地址;
获取到IPV6网络节点的IPV4映射地址后,所述IPV4网络节点13便向NAT-PT网关12发起通信请求,请求与IPv6网络节点11a进行通信。本实施例中,由于IPv6网络节点11a对应的标识位为“0”,因此,网关将不干预这次通信,依照IPv4网络节点13通信请求消息中用户要求的通信方式进行后续操作。当IPv4网络节点13用户要求主动启用IPSec时,参见图4,具体包括:
步骤201、NAT-PT网关12接收IPv4网络节点13发送的通信请求消息,所述通信请求消息请求与所述IPv6网络节点11a进行IPsec通信。所述通信请求中,包括了源地址“SA=202.146.243.30”,目的地址“DA=59.64.90.99”,当用户要求启用IPSec时,所述的通信请求中还包括有启用IPSec的标志以及添加SP必须的参数,如对什么传输层协议进行IPsec处理,其中,生成SP所必须的参数在用户配置文件中获得。此IPV4网络节点发起通信请求的过程可以用SSL软件的加密通信保护。
步骤203、所述NAT-PT网关12与IPv4网络节点13根据所述通信请求消息协商产生第一对安全策略SP,写入NAT-PT网关12与IPv4网络节点13各自的安全策略库(SPD)。NAT-PT网关12接收到通信请求后,为进一步保证通信的安全性,可以进行网络节点的身份验证,当验证通过后,满足启用IPSec条件时,生成所述第一对SP;
步骤205、所述NAT-PT网关12根据所述目的地址“DA=59.64.90.99” 查询预先建立的地址转换表2,获取与所述IPv6网络节点11a所属网络地址格式对应的源地址和目的地址,即,IPv6格式的源地址“SA=PREFIX:CB92:F31E”和目的地址“DA=2001::1”,其中“CB92:F31E”为IPv4地址“202.146.243.30”的十六进制表示;并且,NAT-PT网关12还要生成新通信请求消息,所述新的通信请求消息中包括:IPV6域格式的源地址,目的地址,另外还有启用IPSec的标志以及添加SP必须的参数,如对什么传输层协议进行IPsec处理,将新的通信发送到所述IPv6网络节点11a,请求建立IPv6域的SP对;所述NAT-PT网关发送所述新的通信请求的过程也可用SSL软件加密保护。
步骤207、所述IPv6网络节点11a的SSL服务端收到新通信请求消息后,与NAT-PT网关12根据新通信请求消息产生需要在IPv6网络节点11a与NAT-PT网关12之间启用IPSec的第二对SP,写入各自的SPD,完成IPv6域的SP建立;
这样,整个通信过程中需要的两对SP建立完毕。
步骤209、所述IPv4网络节点13、NAT-PT网关12及IPv6网络节点11a根据所述第一对SP、第二对SP可以通过启用因特网密钥交换算法IKE,协商获得所述NAT-PT网关12与IPv4网络节点13之间的第一对安全关联(SA):SAb1与SAb2,所述NAT-PT网关12与所述IPv6网络节点11a之间的第二对SA:SAa1与SAa2;
步骤211、所述IPv4网络节点13用所述第一对SA中的SAb1保护通信数据,并发送给所述NAT-PT网关12;
步骤213、所述NAT-PT网关12通过所述第一对SA中的SAb1解密获得所述通信数据,用所述第二对SA中的SAa1保护所述通信数据,发送到所述IPv6网络节点11a;
步骤215、所述IPv6网络节点11a利用所述第二对SA中SAa1的解密获得所述通信数据,完成从IPv4网络节点13到IPv6网络节点11a的通 信。
IPv6网络节点11a响应IPv4网络节点13的数据包,采用第二对SA中的SAa2进行IPSec处理后发出。这些数据包的源地址“SA=2001::1”,目的地址“DA=PREFIX:CB92:F31E”。数据包到达NAT-PT网关12处,NAT-PT网关12用SAa2解开来自IPv6网络节点11a的IPsec数据包,再用第一对SA中的SAb2对数据包进行IPsec处理并继续发往IPv4网络节点13。此时数据包的源地址“SA=59.64.90.99”,目的地址“DA=202.146.243.30”。数据包到达IPv4网络节点13后用第一对SA中的SAb2解密报文。至此,完成了一次完整的交互式数据通信.
由于NAT-PT网关12处标识位表中对IPv6网络节点11b作了标识位置1的处理,IPv4网络节点13同IPv6网络节点11b之间的通信与上述方法实施例一的通信过程有所不同。假设对IPv6网络节点11b分配的IPv4映射地址是59.64.90.98,那么NAT-PT网关12建立的地址转换表如表3所示。
表3
IP地址 |
NAT-PT映射地址 |
标识位 |
2001::2 |
59.64.90.98 |
1 |
当发起端IPV4网络节点13向目的端IPV6网络节点11b的通信请求到达NAT-PT网关12(后,NAT-PT网关12查询地址转换表发现发往最终目的地址2001::2对应的标识位的值为“1”,表示必须在通信中采用IPSec,以保护数据包的安全。如果IPv4网络节点13所发送的通信请求中没有包括启用IPSec的标识,所述通信请求将被所述NAT-PT网关拦截,并给出回应,要求IPv4网络节点13启用IPSec。然后执行与上述方法实施例相同的操作流程。
图5为本发明实施例实施因特网安全协议的方法实施例二中IPv6网络节点11a获取IPv4网络节点13的IPv6地址的流程图。本实施例中IPSec 的实施场景与方法实施例一的实施场景相同。本实施例中,IPv6网络节点11a请求发起与IPv4网络节点13的通信。假设IPv6网络节点11a只知道IPv4网络节点13的域名地址,那么,首先需要获取IPv4网络节点13的符合IPV6网络节点11a所在网络地址格式的NAT-PT映射地址,包括:
步骤301、IPv6网络节点11a向DNS-ALG请求IPv4网络节点13的NAT-PT映射地址;
步骤303、DNS-ALG将此请求转发到DNS服务器中;
步骤305、DNS服务器响应IPv4网络节点13的IPv4地址“202.146.243.30”;
步骤307、DNS-ALG收到DNS服务器响应的IPv4地址后,向NAT-PT网关12查询地址前缀,并将发起端11a的IPv6地址告知网关12,NAT-PT网关12从IPv4地址池中找到一个可路由的IPv4地址59.64.90.100作为IPv6网络节点11a的IPv4映射地址,并建立地址转换表,并根据表1填充相应的标识位值,如表4所示。
表4
IPv6地址 | NAT-PT映射地址 | 标识位 |
2001::1 | 59.64.90.100 | 0 |
步骤309、NAT-PT网关12响应地址前缀如“PREFIX=3ffe:b00:ffff:0:0:1::/96”给DNS-ALG;
步骤311、DNS-ALG接收到地址前缀后,将该地址前缀与DNS服务器响应的IPv4地址构造成所需的NAT-PT映射地址:“PREFIX:CB92:F31E”,其中“CB92:F31E”为IPv4地址“202.146.243.30”的十六进制表示;
步骤313、DNS-ALG将所述NAT-PT映射地址“PREFIX:CB92:F31E”作为查询结果响应给IPv6网络节点11a。IPv6网络节点11a便获得了IPv4网络节点13的NAT-PT映射地址。
获取到目的端IPV4网络节点符合IPV6网络地址格式的映射地址后,IPv6网络节点11a向NAT-PT网关12发起通信请求,请求与IPv4网络节点13进行通信。由于IPv6网络节点11a对应的标识位为“0”,因此,所以网关不干预11a发起的通信,依照IPv6网络节点11a要求的NAT-PT网络通信方式进行后续操作。当IPv6网络节点11a要求启用IPSec时,参见图6,具体包括:
步骤401、NAT-PT网关12接收IPv6网络节点11a发送的通信请求消息,所述通信请求消息请求与所述IPv4网络节点13通信。通信请求消息中包括了源地址“SA=2001::1”,目的地址“DA=PREFIX:CB92:F31E”,当用户要求启用IPSec时,所述的通信请求中还包括有启用IPSec的标志以及添加SP必须的参数,如对什么传输层协议进行IPsec处理等;其中,生成SP所必须的参数在用户配置文件中获得。此IPV6网络节点11a发起通信请求的过程可以用SSL软件的加密通信保护。
步骤403、所述NAT-PT网关12根据所述通信请求消息与IPv6网络节点11a协商产生第一对SP,网关、IPv6网络节点11a将相应的SP分别写入各自的SPD;其中,NAT-PT网关12接收到通信请求后,为进一步保证通信的安全性,可以进行网络节点的身份验证,当验证通过后,满足启用IPSec条件时,生成所述第一对SP;
步骤405、所述NAT-PT网关12根据所述目的地址“DA=PREFIX:CB92:F31E”提取IPv4域目的地址CB92:F31E即202.146.243.30;并根据所述源地址“SA=2001::1”查询预先建立的地址转换表,获取IPv6网络节点11a的IPv4映射地址,获得新的IPv4域的源地址“SA=59.64.90.100”和目的地址“DA=202.146.243.30”;并生成新通信请求消息,发送到所述IPv4网络节点13;本过程也可用SSL加密保护。
其中,所述新的通信请求消息中包括:IPV4域的源地址,目的地址,另外还有启用IPSec的标志以及添加SP必须的参数,如对什么传输层协 议进行IPsec处理,将新的通信发送到所述IPv4网络节点13,请求建立IPv4域的SP对;所述NAT-PT网关发送所述新的通信请求的过程也可用SSL软件加密保护;
步骤407、所述IPv4网络节点13的SSL服务端收到新的通信请求消息后,根据新通信请求消息与NAT-PT网关12协商,产生需要在IPv4网络节点13与NAT-PT网关12之间启用IPSec的第二对SP,写入本地SPD和NAT-PT网关12的SPD;
至此,发起端IPv6网络节点11a和NAT-PT网关12之间、以及NAT-PT网关12和目的端IPv4网络节点13之间的两对SP建立完毕;
步骤409、根据所述第一对SP、第二对SP可以通过启用因特网密钥交换算法IKE,协商获得所述NAT-PT网关12与所述IPv6网络节点11a之间的第一对SA:SAa1与SAa2,所述NAT-PT网关12与IPv4网络节点13之间的第二对SA:SAb1与SAb2;
步骤411、所述IPv6网络节点11a用所述第一对SA中的SAa1保护通信数据,并发送给所述NAT-PT网关12;
步骤413、所述NAT-PT网关12通过所述第一对SA中的SAa1解密获得所述通信数据,用所述第二对SA中的SAb1保护所述通信数据,发送到所述IPv4网络节点13;
步骤415、所述IPv4网络节点13利用所述第二对SA中的SAb1解密获得所述通信数据,完成从IPv6网络节点11a到IPv4网络节点13的通信。
从IPv4网络节点13响应IPv6网络节点11a的IPv4数据包采用第二对SA中的SAb2进行IPSec处理后发出。这些数据包的源地址“SA=202.146.243.30”,目的地址“DA=59.64.90.100”。数据包到达NAT-PT网关12处,NAT-PT网关12用第二对SA中的SAb2解开来自IPv4网络节点13的IPSec数据包,同时用第一对SA中的SAa2对数据包进行IPSec处理并发往IPv6网络节点11a。此时数据报的源地址“SA= PREFIX:CB92:F31E”,目的地址“DA=2001::1”。数据包到达IPv6网络节点11a后用第一对SA中的SAa2解密报文。这样,一次IPv6节点11a发起的完整的交互式的安全通信便完成了。
由于NAT-PT网关12处标识位表中对IPv6网络节点11b作了标识位置1的处理,IPv6网络节点11b与IPv4网络节点13之间的通信不同于上述方法实施例二的通信过程。当通信请求到达NAT-PT网关12后,NAT-PT网关12查询地址转换表发现IPv6网络节点11b对应的标识位的值为“1”,表示必须在通信中采用IPSec,以保护通信的安全。如果IPv6网络节点11b不采用IPSec,通信请求将被拦截,并给出回应,要求IPv6网络节点11b主动启用IPSec。然后执行与上述方法实施例二相同的操作流程。
将上述方法实施例应用于NAT-PT网络通信时,完整的流程图如图7所示。发起端发送数据包后,首先执行步骤501,判断数据包是否为起始包。之后根据NAT-PT网关12中设置的标识位,或者根据发起方设置的标志位,控制NAT-PT网络实施IPSec,上述方法实施例已详细描述。其次执行步骤502,判断数据包是否为会话初始包。当所述数据包为会话初始包时,同发起端、接收端建立SP,并协商SA;当所述数据包不是会话初始包时,根据数据包是不是采用IPSec包分别处理通信。步骤501、步骤502为现有技术,本发明实施例不涉及对起始包、会话初始包的判断。
参见图8,本发明实施例提供一种NAT-PT网关,该网关包括:
通信请求接收单元801,用于接收发起端网络节点发送的与目的端网络节点通信的请求信息;
其中,所述的发起端网络节点与目的端网络节点可处在不同的网域中,例如,发起端网络节点位于因特网协议版本4(IPV4)网络,目的端网络节点位于因特网协议版本6(IPV6)网络;所述通信请求信息所述通信请求中,包括了符合发明端网络域地址格式的源地址“SA=202.146.243.30”,目的地址“DA=59.64.90.99”,当用户要求启用因特网安全协议(IPSec)时,所述的 通信请求中还包括有启用IPSec的标志以及添加SP必须的参数,如对什么传输层协议进行IPsec处理;
安全协议启动单元802,用于当满足启动安全协议条件时,根据所述发起端的通信请求信息与所述发起端网络节点协商产生第一对安全关联(SA);生成新的通信请求信息,根据所述新的通信请求信息与所述目的端网络节点协商产生第二对SA;
数据传输保护单元803,用于利用所述第一对SA保护所述发起端网络节点发送的通信数据;将所述发起端网络节点发送给目的端网络节点的数据发送给所述目的端网络节点,利用所述第二对SA保护所述发送给所述目的端网络节点的通信数据;
其中,所述NAT-PT网关利用所述的SA对数据进行保护可以通过:
将接收到的所述发起端网络节点发送至所述目的端网络节点的通信数据,用与所述发送端网络节点协商的SA解密所述通信数据;利用与所述目的端网络节点协商的SA加密所接收到的通信数据,发送至所述目的端网络节点。
其中,所述安全协议启动单元,可以包括:
安全策略生成单元8021,用于当满足启动IPSec条件时,根据发起端的通信请求信息与发起端网络节点协商产生第一对安全策略(SP),写入所述NAT-PT网关与发起端网络节点各自的安全策略库(SPD),生成新的通信请求信息,根据所述新的通信请求信息与所述目的端网络节点协商产生第二对SP,写入所述NAT-PT网关与所述目的端网络节点各自的SPD;
其中,启动IPSec条件,可以是:所述的发起端发送的通信请求中包含有启用IPSec的标志以及添加SP必须的参数,如对什么传输层协议进行IPsec处理;
所述新的通信请求信息中,包括:符合目的端网络域格式的源地址, 目的地址,另外还有启用IPSec的标志以及添加SP必须的参数,如对什么传输层协议进行IPsec处理;
安全关联生成单元8022,用于根据所述SPD中的SP,与所述发起端网络节点协商产生第一对SA,与所述目的端网络节点协商产生第二对SA。
本发明实施例中,所述NAT-PT网关12能够根据网络管理员预先设置干预通信过程中特定通信或特定站点是否需要采用IPSec,以保证数据通信的安全,因此,NAT-PT网关还可以包括:
因特网安全协议启动干预单元804,用于所述NAT-PT根据预置策略要求通信过程采用IPSec时,发起端网络节点的通信中没有启用IPSec时,拦截所述通信请求,要求所述发起端重新发送启用IPSec的通信请求;
本实施例中,所述NAT-PT网关还可以包括:
验证单元805,用于收到发起端网络节点的通信请求后,对发起端网络节点进行身份验证,当身份验证通过时,继续处理所述通信请求;
其中,当身份验证通过后,可将所述通信请求发送至因特网安全协议启动单元继续处理。
参见图9,本发明实施例还提供一种网络节点,该网络节点包括:
配置单元901,用于配置启用IPSec的条件参数;
其中,所述配置单元可向用户提供一配置界面,当用户需要在通信过程中启用IPSec时,用户根据需要配置启用IPSec的标志以及添加SP必须的参数,如对什么传输层协议进行IPsec处理;用户通过该配置单元可以选择对哪些数据通信采用IPSec,对哪些数据通信采用平常的通信,增加了NAT-PT网络实施IPSec的灵活性;
通信请求收发单元902,用于接收或发送通信请求;
其中,所述通信请求收发单元发起通信请求的过程可以用SSL软件的加密通信保护;
数据传输保护单元903,用于与NAT-PT网关协商SA,并利用所协商 的SA保护传输的通信数据;
所述利用SA对通信数据进行保护,可包括:
当所述网络节点作为发送端网络节点时,利用协商的SA加密所发送到NAT-PT网关的通信数据;当所述网络节点作为目的端网络节点时,利用与MAT-PT网关协商的SA解密所述NAT-PT网关发送的通信数据。
上述实施例,NAT-PT网络通过在NAT-PT网关与其两端网络节点分别建立SA,在NAT-PT网络中采用分段IPSec,不存在IPv4和IPv6经过IPsec处理后的数据包的地址和协议转换,所以避免了AH算法的修改,使得NAT-PT网络在实施IPSec的同时,降低了***复杂度。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。