基于IPSec VPN应用研究

时间:2022-07-10 05:51:10

基于IPSec VPN应用研究

摘要:以IPSec VPN系统为研究,重点分析了IPSec协议协议标准、安全服务、安全关联和密钥管理。分析了基于IPSec的VPN系统中的隧道、加解密、用户认证和访问控制等四项关键技术。最后给出了实现IPSec VPN系统的一个设计实例。

关键词:VPN;IPSec;隧道技术;加密技术;认证技术;访问控制

中图分类号:TP393文献标识码:B文章编号:1009-3044(2010)05-1072-03

Research of the IPSec VPN Application

QIAO Xiao-lin

(Computer Center of Shenzhen Polytechnic, Shenzhen 518055, China)

Abstract: The body under study is the VPN system based on The IPSec architecture are introduced and the main mode and principle of IPSec are detailed described here. It also makes a detaied researched and analysis on the four key technologies in VPN.Finally, a case study of using netfilter as a firewall was given.

Key words: VPN; IPSec; tunneling technology; encryption technology; authentication technology; access control

IPSec是由IETF开发的一套Internet安全协议标准,可以无缝为IP引入安全特性,提高互操作的、高质量的、基于加密的安全服务。IPSec通过2个报头来实现IP层的安全服务―分别是AH(IP认证头,AuthenticationHeader)和ESP (IP安全封装,EncapsulationSecurityPayload)。AH协议提供数据认证和数据完整;ESP通过加密来提供数据的保密性和安全性。

1 IPSec协议分析

1.1 IPSec协议标准

IPsec是用来增强VPN安全性的标准协议。IPsec协议套件可以“无缝”地为IP引入安全特性,提供一种标准的、健壮的以及包容广泛的机制,包括数据起源地验证、无连接数据的完整性验证、数据内容的机密性、抗重播保护以及有限的数据流机密性保证,可被IP及上层协议(如TCP、UDP等)使用。

1.2 IPSec安全服务

IPsec使用两种协议来为VPN提供安全服务:验证头和封装安全载荷:

1) 验证头(AH)。IPsec中的验证头可证明数据的起源地、保障数据的完整性以及防止相同数据包的不断重播,但它不能用来保证数据的机密性。AH通常是可以使用的适当协议。

2) 封装安全载荷(ESP)。ESP用于确保IP数据包的机密性、数据的完整性和对数据源的身份验证,同时提供抗重播服务。AH和ESP两种协议均通过在IPsec数据包中使用专门序列号和“滑动”接收窗口技术提供重播服务。针对一致性测试及互通性,IPsec定义了一系列默认的加密算法,这些算法虽可提供常规性质的安全保障,但不适合高度密集的数据和需要必须超长期保密的数据。在IPsec中,可方便直接地增加新的算法,并不会破坏它的共通性。AH和ESP均能同时以传送模式或通道模式工作,在IPsec的传送模式中,IP头与上层协议头之间插入一个特殊的IPsec头,用来保护上层协议。在IPsec的通道模式中,要保护的整个IP包都要封装到另一个IP数据包里,同时在外部与内部IP头之间插入一个IPsec头,用来保护整个IP数据包。图1描述了分别处于传送模式和通道模式下的受IPsec保护的IP头。

图1 受IPsec保护的IP包

1.3 安全关联(SA)

安全关联(SA)解决如何保护通信数据、保护什么样的通信数据以及由谁来实行保护的问题。SA包括加密算法、认证算法和共享的会话钥匙等内容。IPsecSA是单向保护、成对存在。一个SA包括SPI、IPsec协议值和SA指向的目标地址三个基要素。当系统发送一个需要IPsec保护的包时,它在其数据库中查询SA,并应用指定的处理和安全协议,把SA中的SPI插入到IPsec的头中。当IPsec的对等实体接收到该包时,它在其数据库中按目标地址、协议和SPI查询SA,然后根据需要处理该包。

1.4 密钥管理

在IPsec中,SA通过对来自SPD(安全策略数据库)的策略进行“命中”来处理一个特定的IP包。若没有SA,便需要密钥管理(IKE)在IPsec通信双方建立“安全联盟”。IPsec的密钥管理部分负责密钥的分发。IPsec支持两种密钥管理方式:手动管理方式和自动管理方式。自动管理模式有很强的弹性,但需要花费更多的时间及精力去设置,同时,还需要使用更多的软件。IPsec的自动管理密钥协议(IKMP)的默认名字是ISAKMP/Oakley。互联网安全组织及密钥管理协议(Internet Security Association and Key Management Protocol ISAKMP)对互联网密钥管理的架构以及特定的协议提供支持。Oakley密钥使用的协议基于Diffle Hellman算法,但它也提供额外的安全功能,特别是Oakley包括验证用户的机制。

2 IPSec VPN中的关键技术

目前IPSec VPN主要采用四项关键技术:隧道技术(Tunneling)、加解密技术(Encry ption&decryp-tion)、密钥管理技术(Key management)、使用者与设备身份认证技术(Authentication)。

2.1 隧道技术

隧道技术是VPN的基本技术,类似于点对点连接技术,在公用网建立一条数据通道(隧道),让数据包通过这条隧道传输。隧道是由隧道协议形成的,分为第二、第三层隧道协议。第二层隧道协议是先把各种网络协议封装到PPP中,再把整个数据包装入隧道协议中。这种双层封装方法形成的数据包靠第二层协议进行传输。第三层隧道协议是把各种网络协议直接装入隧道协议中,形成的数据包依靠第三层协议进行传输。第三层隧道协议有VTP、IPSec等。IPsec (IPSecurity)是由一组RFC文档组成,定义了一个系统提供安全协议选择、安全算法、确定服务所使用密钥等服务,从而在IP层提供安全保障。IPsec由IPsec框架、AH和ESP、IKE、ISAKMP、Oakley及其他加密算法等几部分组成。IPsec使用AH(Authentication Header)和ESP(Encapsu-lating Security Payload)两个协议来提供数据流量的安全性。AH提供数据完整性、数据认证以及可选的反重放服务;ESP可提供数据的保密性,它同时也可提供类似AH的服务(如数据完整性、数据源认证等)。AH和ESP可单独使用,也可以共同使用。

2.2 加解密技术

加解密技术是数据通信中一项较成熟的技术,VPN可直接利用现有技术。IPSec提供了与具体加密算法的独立性,因此一般的实现需要支持多种算法并通过ISAKMP协商机制选用。ESP采用的缺省加密算法是56比特长度密钥的DES加密算法的CBC(CipherBlockChaining)模式[5]。该算法的一般加密过程是:发送方先将待发送的数据分成64比特长的数据块,对于长度不适合的数据块还需要进行填充。ESP的DES-CBC算法使用外部的64比特长的随机数作为算法的随机初始向量,并随加密数据一起传送(在ESP头部以加密数据形式传送),这种方式使得接收方在数据包丢失和乱序的情况下仍能获得正确的算法初始向量,同时可避免由于采用前一密文数据块的数据作为初始向量而导致的前后初始向量之间很大的相关性。但此时要求随机数产生器产生的相邻随机数之间应保证起码的汉明距离。

CBC模式的密文产生是将前一数据块的密文与当前数据块明文进行异或运算,然后进行标准的DES加密算法得到当前数据块的密文。这种处理使得最终的密文与应用信息的内容直接相关,因此可增加算法的复杂性和破解算法的难度。ESP的密钥交换通过ISAKMP机制实现,而该机制则提供了与具体密钥交换技术的独立性。

2.3 用户认证技术

ESP协议提供机密性、数据源验证、抗重播攻击以及数据完整性等安全服务。虽然ESP采用非对称加密算法时也能提供一定的认证功能,但IPsec的用户认证功能主要由AH(Authentication Header)提供。

验证头(AH)协议为IP包提供信息源验证,完整性保证和一些可选的、有限的抗重播服务。AH定义保护方法、头的位置、身份验证的覆盖范围以及输出和输入处理规则。与ESP不同,AH不对受保护的数据包进行加密。

2.4 访问控制技术

虚拟专用网的基本功能就是不同的用户对不同主机或服务器的访问权限是不一样的。由VPN服务的提供者与最终网络信息资源的提供者共同来协商确定特定用户对特定资源的访问权限,以此实现基于用户的细粒度的访问控制,实现对信息资源的最大限度保护。

访问控制策略可以细分为选择性访问控制和强制性的访问控制。选择性访问控制是基于主体或主体所在组的身份,一般被内置于许多操作系统当中。强制性访问控制是基于被访问信息的敏感性。

3 IPsec VPN系统的设计

已经知道IPsec协议工作在第三层,它是至今唯一一种能为任何形式的Intranet通信提供安全保障的协议,它灵活地将加密、认证、密钥管理和访问控制等结合在一起,为Intranet提供了一个标准的、安全的网络环境。VPN则充分利用了Intranet访问的方便性,将远程用户、公司分支机构、商业伙伴等同公司的内部网建立起可信的安全连接,并保证了数据在其上的安全传输。目前,IPsec协议已经成为实现VPN功能的最佳选择。

如图2所示, IPsecVPN的实现包含管理模块、密钥分配和生成模块、身份认证模块、数据加密/解密模块、数据分组封装/分解模块和加密函数库几部分组成。管理模块负责整个系统的配置和管理。该模块决定采取何种传输模式,对哪些IP数据包进行加密/解密。网络管理员可以通过管理模块来指定对哪些IP数据包进行加密。Intranet内部用户也可以通过Telnet协议传送的专用命令,指定VPN系统对自己的IP数据包提供加密服务。密钥管理模块负责完成身份认证和数据加密所需的密钥生成和分配。其中密钥的生成采取随机生成的方式。各网关之间密钥的分配采取手工分配的方式,通过非网络传输的其它安全通信方式完成密钥在各网关之间的传送。身份认证模块完成对IP数据包的数字签名。数据加密/解密模块完成对IP数据包的加密和解密。可选的加密算法有IDEA算法和DES算法。前者在软件方式实现时可获得较快的加密速度,后者在采用硬件实现时能得到较快的加密速度。数据分组的封装/分解模块实现对IP数据的安全封装和分解。当网关发送IP数据分组时,该模块为IP数据附加上身份认证头AH和安全数据封装头ESP。当网关接收到IP数据分组时,该模块对AH和ESP进行分析,并根据头信息进行身份验证和数据解密。加密函数库为上述模块提供统一的加密服务。

基于Windows2000的VPN实现:在Windows2000Server中提供了两种类型的VPN技术:点对点隧道协议(PPTP)和带有IPSec的第二层隧道协议(L2TP)。L2TP使用用户级PPP身份验证方法和带有IPSec数据加密的机器级证书。配置基于Windows2000Server的VPN连接需要三个步骤:1) 配置VPN服务器,使之能够接受VPN接入;2) 配置客户端的拨号网络,使之能够访问Intranet;3) 配置客户端的VPN连接。需要注意的是,应该分别在服务器和客户机端配置相应的IPSec策略,并配置VPN使用L2TP技术。

4 结束语

在实现VPN的过程中,应该到目前为止,IPSec仍然不能算是适用于所有配置的一套极为完整的方案,其中仍然存在一些需要解决的问题,如IPSec能力上的薄弱,多播环境中密钥管理,以及在多播环境中保证提供源验证及抗重播攻击服务不失效等问题。此外,同PPTP集成在操作系统中不同,采用IPSec协议,需要在应用端安装额外的软件。目前,IETF工作组中已制定的与IPSec相关的12个RFC文档:RFC2104、RFC2401-RFC2409和RFC2451。随着对Internet的安全性要求的日益增高,VPN的应用的日趋广泛以及移动IP数量的剧增,能够支持端到端的安全传输、构筑高可靠安全隧道的IPSec的应用必然普及,它更能成为新一代的网络安全协议与标准。

参考文献:

[1] Doraswamy N,Harkins D.IPSec―新一代因特网安全标准[M].北京:机械工业出版社,2000.

[2] Davis C R.IPsec:Securing VPNS[M].Berkshire:Mc Graw Hill Education,2001.

[3] 刘皓波,彭章友.一种基于IEEE802.15.3协议物理层的编码调制方案[J].微计算机信息,2005(1):113-115.

[4] Stallings W.Cryptography and Security:principles and practice[M].北京:电子工业出版社,2000.

[5] 江红,VPN安全技术的研究与分析[J].计算机工程,2002(28):130-132.

[6] Ferguson N,Schneier B.A Cryptographic Evaluation of IPSec[M].Counterpane Internet Security,Inc.

[7] Kent S,Atkinson R.Security Architecture for the Internet Protocol[S].RFC 2401,1998.

上一篇:东理校园卡系统的设计 下一篇:浅谈高职院校一卡通管理的规划与改进