IPSec,VPN技术的分析与研究

  摘要:本文对IPsec协议的基本数据结构和安全特性进行分析,讨论了VPN关键技术和隧道协议,在此基础上给出了以IPsec为隧道协议的VPN基本工作原理,通过SSL VPN与IPsec VPN比较,得出IPsec VPN 的优缺点及其适用的工作场景。
  关键词:IPsec;AH;EPS;VPN; SSL
  中图分类号:TP393.08 文献标识码:A
  
  1 概述
  
  IPSec的英文全名为“Internet Protocol Security”,中文名为“因特网安全协议”,这个安全协议是VPN的基本加密协议,它为数据通过公用网络(如因特网)在网络层进行传输时提供安全保障。通信双方要建立IPSec通道,首先要采用一定的方式建立通信连接,因为IPSec协议支持几种操作模式,所以通信双方先要确定所要采用的安全策略和使用模式,包括加密运算法则和身份验证方法类型等。在IPSec协议中,一旦IPSec通道建立,所有在网络层之上的协议在通信双方都经过加密,如TCP、UDP 、SNMP、HTTP、POP、AIM、KaZaa等,而不管这些通道构建时所采用的安全和加密方法如何。
  
  2IPsec原理
  
  2.1安全特性[1]
  IPSec的安全特性主要有:
  2.1.1不可否认性
  “不可否认性”可以证实消息发送方是唯一可能的发送者,发送者不能否认发送过消息。“不可否认性”是采用公钥技术的一个特征,当使用公钥技术时,发送方用私钥产生一个数字签名随消息一起发送,接收方用发送者的公钥来验证数字签名。由于在理论上只有发送者才唯一拥有私钥,也只有发送者才可能产生该数字签名,所以只要数字签名通过验证,发送者就不能否认曾发送过该消息。
  2.1.2反重播性
  “反重播”确保每个IP包的唯一性,保证信息万一被截取复制后,不能再被重新利用、重新传输回目的地。
  2.1.3数据完整性
  防止传输过程中数据被篡改,确保发出数据和接收数据的一致性。IPSec利用Hash函数为每个数据包产生一个加密检查和,接收方在打开包前先计算检查和,若包遭篡改导致检查和不相符,数据包即被丢弃。
  2.1.4数据可靠性(加密)
  在传输前,对数据进行加密,可以保证在传输过程中即使数据包遭截取,信息也无法被读。该特性在IPSec中为可选项,与IPSec策略的具体设置相关。
  2.2数据包结构[2]
  2.2.1认证头
  认证头(AH)被用来保证被传输分组的完整性和可靠性。此外,它还保护不受重放攻击。
  表1认证头分组
  01230 1 2 3 4 5 6 70 1 2 3 4 5 6 70 1 2 3 4 5 6 70 1 2 3 4 5 6 7下一个头载荷长度保留安全参数索引(SPI)序列号认证数据(可变长度)字段含义:
  下一个头:标识被传送数据所属的协议。
  载荷长度:认证头包的大小。
  保留:为将来的应用保留(目前都置为0).
  安全参数索引 : 与IP地址一同用来标识安全参数。
  序列号:单调递增的数值,用来防止重放攻
  认证数据:包含了认证当前包所必须的数据。
  2.2.2封装安全载荷 (ESP)
  封装安全载荷(ESP)协议对分组提供了源可靠性、完整性和保密性的支持。与AH头不同的是,IP分组头部不被包括在内。
  字段含义:
  安全参数索引:与IP地址一同用来标识安全参数。
  序列号:单调递增的数值,用来防止重放攻击。
  载荷数据:实际要传输的数据。
  填充:某些块加密算法用此将数据填充至块的长度。
  填充长度:以位为单位的填充数据的长度。
  下一个头 : 标识被传送数据所属的协议。
  认证数据:包含了认证当前包所必须的数据。
  
  3VPN原理
  
  3.1VPN的基本概念[3]
  在VPN(Virtual Private Network,虚拟专用网络)中,任意两个节点之间的连接并没有传统专网所需的端到端的物理链路,而是利用某种公众网的资源动态组成的。 虚拟专用网对用户端透明,用户好像使用一条专用线路进行通信。
  3.2VPN的关键技术[4]
  目前VPN主要采用四项技术来保证安全,这四项技术分别是隧道技术(Tunneling)、加解密技术(Encryption & Decryption)、密钥管理技术(Key Management)、使用者与设备身份认证技术(Authentication)。
  3.2.1隧道技术
  隧道是一种利用公网设施,在一个网络之上的“网络”传输数据的方法,被传输的数据可以是另一协议的帧。隧道协议用附加的报头封装帧,附加的报头提供了路由信息,因此封装后的包能够通过中间的公网。封装后的包所途经的公网的逻辑路径称为隧道。一旦封装的帧到达了公网上的目的地,帧就会被解除封装并被继续送到最终目的地。
  3.2.2加解密技术
  加解密技术是数据通信中一项较成熟的技术,VPN可直接利用现有技术。用于VPN上的加密技术由IPSec的ESP (Encapsulationg Security Payload)实现。主要是发送者在发送数据之前对数据加密,当数据到达接收者时由接收者对数据进行解密的处理过程,算法主要种类包括:对称加密(单钥加密)算法、不对称加密(公钥加密)算法等。如DES (Data Encryption Standard)、IDEA (International Data Encryption Algorithm)、RSA(发明者Rivest、Shamir和Adleman名字的首字符)。
  3.2.3密钥管理技术
  密钥管理技术的主要任务是如何在公用数据网上安全地传递密钥而不被窃取。现行密钥管理技术又分为SKIP与ISAKMP/OAKLEY两种。
  SKIP主要是利用Diffie-Hellman的演算法则,在网络上传输密钥;在ISAKMP中,双方都有两把密钥,分别用于公用、私用。
  3.2.4使用者与设备身份认证技术
  使用者与设备身份认证技术最常用的是用户名/口令或智能卡认证等方式。
  3.3VPN隧道协议
  隧道协议分为第二、三层隧道协议。它们的本质区别再也用户的数据包是被封装在哪一层的数据包在隧道里传输。第二层隧道协议是先把各种网络协议封装到PPP中,再把整个数据包装入隧道协议中。这种双层封装方法形成的数据包靠第二层协议进行传输。第二层隧道协议有L2F、PPTP、L2TP等。L2TP协议是目前IETF的标准,由IETF融合PPTP与L2F而形成。
  3.3.1PPTP(Point to Point Tunneling Protocol,点到点隧道协议)
  PPTP是VPN的基础。PPTP的封装在数据链路层产生,PPTP协议采用扩展GRE(Generic Routing Encapsulation)头对PPP/SLIP报进行封装。所谓扩展GRE头,即在通常GRE头中,细化并修改了密钥字段的利用,并增加了确认、出现位和确认号字段,从而提供了PPTP的流量控制功能。
  3.3.2L2F(Layer 2 forwording)
  L2F可以在多种介质(如ATM、帧中继、IP网)上建立多协议的安全虚拟专用网,将链路层的协议(如PPP,HDLC等)封装起来传送。因此,网络的链路层完全独立于用户的链路层协议。
  3.3.3L2TP(Layer 2 Tunneling Protocol)
  是远程访问型VPN今后的标准协议。它结合了PPTP协议和L2F协议的优点,以便扩展功能。其格式基于L2F,信令基于PPTP。这种协议几乎能实现PPTP和L2F协议能实现的所有服务,并且更加强大、灵活。它定义了利用公共网络设施(如IP网络、ATM、帧中继网络)封装传输链路层PPP帧的方法。
  3.3.4IPSec
  是在IP层提供通信安全而提供的一套协议族,是一个开放性的标准框架。IPSec安全协议包括:封装的安全负载ESP(Encapsulation Securiy Payload)和认证报头AH(Authentication Header)、ISAKMP(The Internet Security Association & Key Management Protocol),它对所有链路层上的数据提供安全保护和透明服务。
  AH用于通信双方能够验证数据在传输过程中是否被更改并能验证发方的身份,实现访问控制、数据完整性、数据源的认证性和重放根据的保护的功能。
  ISAKMP[5]主要用于通信双方协商加密密钥和加密算法,它是基于D-H的密钥交换协议,并且用户的公钥和私钥是由可信任第三方TTP(Trusted Third Party)产生的。
  ESP 的基本思想是对整个IP包或更高层协议的数据进行封装,有2种模式:隧道(Tunnel)模式和传输(Transport)模式。在隧道模式下,IPSec把IPv4的整个IP包加密后封装在新的安全IP包的数据段中,并生成一个新的IP包,在传输模式下只是将原IP包中的数据进行加密后再发送出去。
  通用路由封装(GRE, Generic Routing Encapsulation):GRE规定了怎样用一种网络层协议去封装另一种网络层协议的方法。GRE的隧道由两端的源IP地址和目的IP地址来定义。GRE只提供了数据包的封装,它并没有加密功能来防止网络侦听和攻击。所有在实际环境中它常和IPSec一起使用,由IPSec提供用户数据的加密,从而给用户提供更好的安全性。
  
  4SSL VPN与IPSec VPN 比较
  
  4.1IPSec VPN 优缺点
  4.1.1优点
  (1)IPSec是与应用无关的技术,因此IPSec VPN的客户端支持所有IP层协议;
  (2)IPSec技术中,客户端至站点(client-to-site)、站点对站点(site-to-site)、客户端至客户端(client-to-client)连接所使用的技术是完全相同的;
  (3)IPSec VPN网关一般整合了网络防火墙的功能;
  4.1.2不足
  (1) IPSec VPN需要安装客户端软件,但并非所有客户端操作系统均支持IPSec VPN的客户端程序;
  (2)IPSec VPN的连接性会受到网络地址转换(NAT)的影响,或受网关代理设备(proxy)的影响;
  (3)IPSec VPN需要先完成客户端配置才能建立通信信道,并且配置复杂。
  4.2SSL VPN[6] 优缺点
  4.2.1优点
  (1)它的HTTPS客户端程序,如Microsoft Internet Explorer、Netscape Communicator、Mozilla等已经预装在了终端设备中,因此不需要再次安装;
  (2)像Microsoft Outlook与Eudora这类流行的邮件客户端/服务器程序所支持的SSL HTTPS功能,同样也与市场上主要的Web服务器捆绑销售,或者通过专门的软硬件供货商(例如Web存取设备)获得;
  (3)SSL VPN可在NAT代理装置上以透明模式工作;
  (4)SSL VPN不会受到安装在客户端与服务器之间的防火墙的影响。
  4.2.2不足
  SSL VPN不适用做点对点的VPN,后者通常是使用IPSec/IKE技术;
  SSL VPN需要开放网络防火墙中的HTTPS连接端口,以使SSL VPN网关流量通过。5 结束语
  IPsec协议的实现弥补TCP/IP参考模型设计之初的缺陷,但其本身也存在一些不足。通过SSL VPN与IPsec VPN比较,进一步明确了IPsec VPN的特点及其适用的工作场合。
  
  参考文献
  [1] Panos Trimintzios. A management and control architecture for providing IP differentiated services in MPLS-based networks, IEEE Communications Magazine, 2001, 39(5): pp.80-88.
  [2]Intergated service in the Internet architecture: an overview.RFC1633,1994.
  [3]J iang Y, Tham C, Ko C.Providing quality of service monitoring: challenges and approaches . International Journal of Network Management, 2000, 10 (6):pp.323-334.
  [4] RFC 2917-2001, Muthukrishnan and amalis, a core MPLS.
  [5]Steven brown著, 董晓宇,魏鸿,马洁等译. 构建虚拟专用网[M]. 北京:人民邮电出版社, 2001.
  [6]Thaddeus Fortenberry 著,陆建业译. Windows 2000虚拟专用网[M].北京:清华大学出版社,2001.
  (本文审稿王化文)