樊子牛,向 宏,陈建国,李晓彤
(1. 四川外语学院,重庆 400031;2. 重庆大学,重庆 400030)
IPSec与NAT兼容性的研究与改进
樊子牛1,向 宏2,陈建国1,李晓彤1
(1. 四川外语学院,重庆 400031;2. 重庆大学,重庆 400030)
IPSec是构建VPN(Virtual Private Network 虚拟专用网)的常用技术,但在实际的应用中,IPSec技术与用于解决IPv4地址匮乏的NAT技术存在严重的不兼容性[1,2]。这一不兼容性已经严重地限制了NAT和IPSec的应用范围,特别是对校外用户访问校内网络资源造成很大的不便。而目前的情况是,大量的宽带用户的终端是使用NAT方式接入互联网的。
IPSec与NAT不兼容的问题是多方面的, 主要有以下几点:
1)IPSec AH和NAT[6]
AH利用消息摘要算法对整个IP数据包产生一个加密后的散列值,接收方利用该散列值认证收到的IP数据包。但NAT将会改变数据包地址字段的值,导致消息完整性认证失效。
2)校验和和NAT[6]
IP数据包中封装的上一层协议(TCP或者UDP)的协议头中都有一个校验和字段,在NAT的处理中会重新计算并修改这个校验和字段,这样的IP包就会被对方的IPSec丢弃。对于隧道模式,不存在这个问题。
3)IKE中IP地址作身份标识符和NAT[6]
在IKE中,主模式(阶段1)、快速模式(阶段2)用IP地址作为通信双方的身份标识符,双方用身份载荷(ID Payload)交换IP地址的HASH值验证对方的身份。NAT对IP源、目的地址的修改将造成身份载荷与IP地址不相符。
4)固定的IKE端口和NAPT端口[6]
NAPT的工作原理是通过不同的端口号来区分不同的连接。在IKE协商时,进行的UDP通信的端口号是一般是固定的(一般是500),这会出现问题。
5)重叠的SPD项和NAT[6]
RFC2401规定了安全策略选择符允许值,其中包括目的IP地址、源IP地址、名字(用户ID和系统名)、数据敏感级别、传输层协议、源和目的端口等,如果其中某些值无法确定,可以用特殊值(Wildcard)代替。根据这个规定,假设服务器1.2.3.4为用户提供FTP服务,用户子网1和用户子网2内的IP地址均为192.168.50.25的主机都想使用这个FTP服务,而公司对这两台主机访问FTP服务的安全策略是不同的。这种情况下,在服务器上对两台主机的安全策略配置(不考虑数据敏感级别)如图1所示。
当服务器向外发送数据包时,需要查找安全策略库确定对这个数据包安全保护的安全关联,因为两个策略的查找键值是相同的,服务器就不能正确的用安全策略选择符定位这个数据包应该使用的安全关联。
6)NAT无法多路传输IPSec数据流[6]
在隧道模式中,ESP保护的IPSec流量没有包含可见的TCP或UDP报头,TCP或UDP端口号无法将流量多路传输到不同的内部网络的主机。对于NAT端的多个IPSec会话,其IPSec ESP数据流的传入流量的目标IP地址是相同的。为了将一个IPSec ESP数据流与另一个区分开,目标IP地址和SPI必须得到跟踪并映射到某个内部网络的IP地址和SPI。
7)动态NAT问题[6]
如前所述,动态NAT的地址绑定可能随时间变化。如果在一个安全关联的生存期内,IP地址发生变化,IPSec将不能正常的通信。
8)应用层协议中的IP和NAT[6]
NAT必须对应用透明,保证NAT在网络中的快速部署、应用。但是,在用IPSec ESP通信中,应用层数据是被加密传输的,因此,某些应用(如FTP)在IPSec和NAT存在的环境中不能正常的应用。
RSIP[3~5](Realm Specific IP)是指在不同地址域通信的主机自己能处理跨越不同地址域的地址变换问题。私有网络中主机在和公共网络中主机通信前,获取跨越不同地址域需要的地址映射信息,然后按照地址映射来封装数据包,使数据报能穿越不同的地址域。
RSIP的特点:从对IPSec的支持性角度来说,RSIP较UDP封装更为优越,因为RSIP的实施无须对现有IPSec实现进行修改。
RSIP的不足:协议复杂,同时涉及对客户机的修改、服务器的部署、服务器的修改等问题,因此实施费用相对较大,是一项长期的工作。NAT网关已广泛应用于各个领域,将现有的NAT网关升级为RSIP网关必然是耗费巨大的。
用UDP协议封装IPSec。协议数据单元方法实质是在通信实体之间建立一个UDP隧道,用UDP隧道来穿越NAT设备。基本的原理是:在IPSec协议头前面加上一个UDP协议头,在通信中间系统上看到传输的是UDP数据包,IPSec数据包作为UDP协议的用户数据。
UDP封装的特点:NAT不需要作任何的修改,就可以和IPSec协同工作,对目前的NAT应用和联网结构没有任何影响。对系统其它的部件干扰较小,因为,UDP本身就是TCP/IP协议的一部分,大多数程序能正确处理UDP数据包。
UDP封装的不足:UDP协议本身存在安全缺陷;要增加8个字节UDP协议头的通信开销;对某些高层协议不能有效支持;协商IPSec SA过程的时间明显增加;对多用户接入时无法支持细粒度的安全服务。
在IETF的UDP封装方案的基础上,文献[9]、文献[10]和文献[11]分别提出了不同的改进方案。主要目的是要解决文献[7]中提到的两个关于多用户接入时的问题(问题描述见1.4节)。
改进方案实际上也就是建立另一层隧道来传输IPSec包,用中间层封装的IP包作为区分会话的参数。文献[9]在隧道的选取上采用了L2TP+PPP,文献[10]在隧道的选取上采用了L2TP,文献[11]在隧道的选取上采用了PPPoE。
UDP封装改进方案的特点:解决了IETF的UDP封装方案在处理多用户接入时的问题。
UDP封装改进方案的不足:需要隧道网关的支持与部署;比原UDP封装方案多增加了一层隧道,处理效率相对来说也就下降了;没有形成统一标准,需要用户自主设计开发,要求较高;依然存在原UDP封装方案的安全问题。
在文献[7]中提到的两个无法解决的问题,这也是大多数校外师生用VPN接入校园网时所最到的问题。
图2 重叠SPD问题
在UDP封装隧道模式下(图2),两台不同NAT设备下的内部主机与IPSec网关通信,如果两台主机使用相同的内部地址(如:10.1.2.3),则IPSec网关上会建立两个SA与10.1.2.3关联,这样导致IPsec网关无法正确转发外部流入SGW的数据包。
当同一NAT设备下多台内部主机与IPsec网关采用UDP封装传输模式通信时(图3),如果多台内部主机申请的安全服务不同,则会产生冲突和SPD重叠。采用UDP封装隧道模式可避免此问题的出现,但不能提供更加灵活的安全策略。传统的UDP封装方案中没有解决多用户接入时支持细粒度的安全服务,而UDP封装改进方案虽然解决多用户接入的问题,但也带来新问题,如需要更多硬件与部署,性能降低等。
图3 同一NAT后多用户接入问题
本文提出的基于X.509证书的UDP封装方案主要思路是尝试解决多用户接入时的细粒度问题,并不会产生另外的硬件成本与部署要求。
图4 服务器的安全策略库
工作原理:考虑将IPSec协议和PKI体系进行结合,IPSec可以保障双方的通信安全,X.509[8]证书来确认隧道连接双方的身份。这样做不但能提高VPN网关的数据通信安全,而且可以解决之前IETF的RFC3984中提到的两个问题。如图4所示,将原来选择符中的源地址(图1)更改为X.509中的DN,即可满足以上要求。RFC2401规定了安全策略选择符的允许值范围,其中可以包含名字,名字可设置为X.509的Distinguished Name,如:C = US, SP = MA,O = GTE Internetworking, CN= Stephen T. Kent。DN名可以唯一地区别计算机或用户,所以上图中策略1、2的选择符可根据DN的不同来加以区分。这样就避免了由于源地址相同而产生的混淆问题。
封装方案的特点:解决了IETF的UDP封装方案在处理多用户接入时的问题,并不产生额外的硬件部署要求;性能上与IETF提出的UDP封装方案一致,比国内的UDP封装的改进方案在性能、资金投入和部署方面更为优越。
封装方案的不足:目前没有实现此方法的软件系统,所以需要修改现有系统的源代码。
将本方案与已有的IPSec和NAT兼容性方案进行比较,结果如表1所示:
表1 IPSec和NAT兼容性方案比较
如上表所示,RSIP的实施无须对现有的IPSec实现进行修改,从对IPSec的支持角度来说,所以RSIP比UDP封装法更为优越。然而,从易操作性、费用成本和向后兼容性来看,UDP封装方案似乎是最佳选择。在UDP方案中,传统的UDP方案没有解决重叠SPD问题,即提供多用户接入时的细粒度安全服务,UDP改进方案虽然解决了这个问题,但需要额外的硬件投入,同时系统性能也在下降。
基于X.509证书的UDP封装方案具有以下特点:
1)综合传统UDP封装方案和UDP改进方案的优点,避免两者在多用户接入问题的不足。
2)可部署性好。基于X.509证书的UDP封装穿越NAT方案比由IPv4升级到IPv6要更加简单,更容易在短时期内实现。由于不需要对现有NAT设备进行重新部署,所需费用较低。
3)使用X.509技术来实现VPN中的身份安全认证,安全性较已有兼容性方案有所提高。
4)远程访问的支持度好。可以支持移动用户以IPSec隧道模式安全地连接目标网络并实现NAT穿越。
5)具有良好的扩展性,可以部署在大规模远程访问的环境中。
6)互操作性好。基于X.509证书的UDP封装穿越NAT方案可以和现有的IPSec实现互操作,并可以达到向后兼容性的要求。
7)防火墙的兼容性好。网络管理员只需要在防火墙原有配置的基础上打开500和4500端口就可以对穿越NAT的IPSec数据流给予支持。
[1]祝之梅,李之棠.NAT与IPSec协议兼容性问题及解决方案[J].计算机应用,2004,24(3).
[2]欧阳星明,朱尚文.IPSec与NAT的冲突问题及其解决方案研究[J].华中科技大学学报.2005,33(2).
[3]M.Borella,J.Lo.RFC 3102.October 2001.Realm Specific IP:Framework.IETF.
[4]M.Borella,D.Grabelsky,J.Lo,K.Taniguchi.RFC3103. October 2001. Realm Specific IP:Protocol Specification.IETF.
[5]G.Montenegro, M.Borella.RFC 3104.October 2001.RSIP Support for End-to-end IPsec.IETF.
[6]B.Aboba,W.Dixon.RFC 3715. March 2004. IPsec Network Address Translation(NAT)Compatibility Requirements.IETF.
[7]A. Huttunen, B.Swander,V.Volpe.RFC 3948. January 2005.UDP Encapsulation of IPsec ESP Packets.IETF.
[8]R.Housley,W.Polk.RFC 2528. March 1999.Internet X.509 Public Key Infrastructure.IETF.
[9]潘登,徐佩霞.一种新的IPSec穿越NAT方案[J].小型微型计算机系统,2005,26(2).
[10]魏臻,杨海潮.一种改进的IPSec穿越NAT方案[J].计算机技术与发展,2006,16(8).
[11]陈熊贵,曹珍富,郭圣.IPSec穿越NAT多用户的一种实现方案[J].计算机工程,2006,32(20).
Analysis and improvement of compatibility of IPSec with NAT
FAN Zi-niu1, XIANG Hong2, CHEN Jian-guo1, LI Xiao-tong1
通过对目前多种IPSec与NAT兼容性方案的研究与分析,提出了用X.509证书来进行身份认证的IPSec与NAT兼容性方案。在保持灵活设置安全策略能力和进一步提高安全性的前提下,能很好地解决多用户接入的并发性问题。
IPSec;NAT;X.509;SPD
樊子牛(1972-),云南昆明人,网络工程师,硕士,研究方向为教育技术辅助外语教学、双语教学、网络技术。
TP391
B
1009-0134(2010)06-0104-04
10.3969/j.issn.1009-0134.2010.06.35
2010-03-30