摘 要:VPN是网络安全非常重要的一个组成部分,在现代各个单位中得到了越来越广泛的应用,它提出了一种远程接入的方案,有效的解决了现代各个企业之间异地部门的安全通信问题。随着VPN技术的不断发展,在应用层提出的VPN解决方案显出了很大优势,安全、灵活、便捷的特性,使它成为了网络安全中有着非常重要地位的方案之一。 本文重点研究与探讨了点对点模式。在系统点对点工作模式的讨论上,又着重讨论了应用层VPN网关的设计问题,例如隧道技术在数据包中转发的问题和虚拟网卡等,然后提出了一种新的解决思路,在一定程度上使得VPN的安全性得以提高。
关键词:VPN;虚拟专用网;隧道技术;点对点,;虚拟网卡
1.VPN技术简介
VPN技术是一种组网技术,综合了加密技术和协议封装技术,利用在公共网络上建立加密隧道的方法,来建立一种虚拟的专用网。VPN系统有很多特点,如专用、虚拟、廉价、安全等。VPN系统安全性的基础是虚拟实现基于某协议的封装技术或者路由过滤技术,还有所采用的加密算法。VPN的实现方式有两种,软件实现或者硬件实现。在VPN技术出现以前,私有专用网络的建设维护费用非常高昂,再加之网络带宽的提高和通信技术的发展,现代办公的需要等原因,促使VPN技术的出现和快速发展。VPN的发展经历了三个主要阶段,最开始的路由过滤技术,之后的协议封装技术,现在的应用最普遍的隧道加密技术。
在应用方面看来,VPN主要分为三个类型,企业扩展虚拟网Extranet VPN、企业内部虚拟网Intranet VPN和远程访问虚拟网Access VPN。其中,企业扩展虚拟网和企业内部虚拟网一般被统称为专线VPN;远程访问虚拟网通常被叫做拨号VPN,也就是VPDN,Virtual Private-DIAL-UP Networks。
企业扩展虚拟网,就是不同的企业网通过公共网络来建立虚拟网。它适合提供B2B的访问服务,并保障其安全。Extranet VPN是通过使用一个共享基础设施来进行专用链接,将感兴趣的团体例如供应商户、合作企业或者客户与企业内部网络进行链接,这些团体与企业专用网络享有同样的服务质量、安全性能、可靠性和管理性。
企业内部虚拟网,也是通过公网建立的虚拟网,它链接的是企业的各个分支机构和企业总部。Intranet VPN是通过使用一个共享基础设施来进行专用链接,与企业专用网络享有同样的服务质量、安全性能、可靠性和管理性。
远程访问虚拟网,是通过公网的远程拨号建立的虚拟网,它链接的对象是企业的小分支部门或者是企业的员工。Access VPN完成链接的方式有很多种,用户可以根据需要选择链接,例如移动IP、ISDN、XDSL、拨号等等。
2.隧道技术
前面提到,VPN技术的实现基础,但是并不是所有VPN解决方案都使用相同的隧道技术,不同的隧道技术也有着各自的特点。首先,在隧道通信上,所使用的协议不同,但就目前来讲应用层实现VPN时,采用的协议只有TCP或者UDP,它们各自有着自己的优点。另外,隧道建立的起始位置也是随着客户需求而变化的,主要有从网关到网关、从主机到主机和从主机到网关三种类型。
本文中,将VPN隧道建立在VPN客户端和VPN服务器或者VPN网关和VPN网关之间,在这里所采用的技术都是在应用层实现的,所以,隧道通信中采用的网络协议也无外乎是UDP和TCP协议。而在本技术的实现过程中,采用的是TCP协议。TCP协议有着它固有的优点,首先它是流式传输,这样可以非常有效的减少IP数据包在传输过程中的分片。例如,假设要传输的IP数据包使用1500字节的MTU,如果这个IP数据包使用的是UDP协议,则根据协议栈规定,则需要在数据包中加上IP头和UDP头,这样新生成的数据包就会大于之前的MTU,从而会将其拆分为两个分段来进行传输,而且分段二的大小会很小,这样不仅影响了传输效率,还影响了数据在传输过程中的安全性。相反,如果采用TCP来进行IP数据包的传输,则IP数据包(最后一个除外)都会是MTU的大小,这样不仅使得传输效率有了非常大的提高,而且还有利于数据的安全性。但是TCP协议也有不足之处,就是TCP连接的建立和确认需要一定的网络开销。
在介绍过使用UDP和TCP协议建立隧道的特点后,本文采用的是TCP。在TCP协议的基础上,隧道传输要经历以下几个过程,隧道建立、隧道传输和隧道拆除。这三个过程组成了一个隧道的生命周期,如图1所示。
由上图可以看出,隧道技术的本质就是TCP的链接,经过压缩和特定方法加密后的IP数据包就在这个链接上进行传输。传输有两方面参与,一方将本地加密的IP数据包传输到对方的网关,另一方实在接收到远程发送的IP数据包以后,将其转发给本地虚拟网卡。由此可见,利用隧道技术进行的数据传输,本质上就是TCP协议的数据传输,隧道传输在技术上的实现也是通过socket编程,除了socket本身可以提供的I/O模型以外,隧道技术还必须要解决数据收发的同步操作,为了保证数据在隧道上高效的传输和收发,必须建立一个合适的数据收发的I/O模型,才能满足这个需求。一方面线程要及时发送其他线程传输过来的数据包,另一方面此线程还要及时接受来自隧道另一端的数据,并且尽力减少同步传输过程中带来的数据损失并保证数据的安全性,所以,隧道上接收的数据是在本地线程内完成的,而发送的数据则是由另外的其他线程完成的,故数据收发的同步操作指的是本地线程和其他线程之间的数据同步。Windows平台下对于socket实现应用程序的网络通信同样也是支持的,针对socket通信机制的平台扩充,windows也提供了一些高级的编程模型,例如一些WSA开头的Winsock函数,有效的解决了线程同步的问题。
3.点对点模式的研究
点对点模式有几方面的实现基础。首先,是隧道技术,本模式与隧道技术的生命周期关系非常紧密。隧道和协议之间的数据转发问题则是由虚拟网卡来进行完成的,而VPN网络地址空间则不需要进行一些新的规划。当然,对与不同的用户需求,本模式可以分出多种版本来解决移动用户、总部分支之间的链接问题。
虚拟网卡在本模型中起到了非常重要的作用,它解决了数据包在隧道和协议栈之间转发的关键问题。虚拟网卡在VPN网关中所处地位非常特殊,关系到IP数据包在VPN中的传输问题、数据转发模型和windows平台下的具体实现等等。
IP数据包在VPN是以以下方式传输的,VPN的传输媒介是不可靠的共享网络,隧道技术则在公网的基础上构建私有专用的网络,采用
访问控制、数据加密和身份认证等方法,使得通信安全得到保证。如前文所述,VPN的基础是隧道技术,异地主机之间的安全通信就是依靠隧道技术完成的。TCP/IP协议是现有internet的基础,主机之间是通过一个个的IP数据包进行通信的,隧道技术保护IP数据包不受破坏。为了达到保护数据的目的,VPN网关完成对原始数据包的加密,然后产生一个新的数据包并将其发送。
以图2为例进行说明,VPN通信的双方为A主机和B主机,A主机给B主机发送IP数据包,首先到达VPN的A网关,经过A网关的判断,数据包要发送到B网络,所以将这个IP数据包加入A网关和B网关之间的隧道传输等待队列。在传输过程的实现上,等待传输队列中的一个IP数据包首先被传输模块取到,然后对于此IP数据包,进行加密并将其压缩,即可进入隧道,发送出去。B网关接收到了加密后的数据包,将其解密,然后经过判断发送给B主机。这样就完成了一次数据传输。
在图2传输过程中,数据包经过隧道从A网络传输到B网络,完成整个传输过程,其中最关键的部分在于网关。VPN网关有两方面作用,一方面将内网的原始数据加密,然后通过隧道发送给对端网关,另一方面从隧道接收加密后的数据包,将其解密,然后发给内网目的主机。这样可得到,关键就是数据包从内网到隧道的转发功能,这个功能则是由虚拟网卡来解决的。
网关的有着对经过的IP数据包进行路由转发的功能,也就是从一个网口接受到IP数据包,然后经过判断从另外一个网口上发送出去。虚拟网卡就是构建在网关上的,经过网关发往B网络的IP数据包都会经过虚拟网卡发送过去,这样,发往B网络的所有IP数据包都可以被虚拟网卡截获,然后将其加密后送入隧道发送给B网关,B网关接收到IP数据包后进行解密,然后再交给虚拟网卡,虚拟网卡对其进行判断后,将其从B网关的另外一个网口发出,
IP数据包最终将被发送给目的B主机。
虚拟网卡将IP数据包截获以后,转交给应用程序来进行处理。首先,应用程序中的数据交换模块来读取虚拟网卡上的IP数据包,然后由这个应用程序的加密模块,将数据包进行加密处理,最后是由隧道传输模块接收到加密后的数据,将其发送给对端的网关。其中VPN隧道就是一条TCP连接,建立在两个网关之间的。UDP协议可以用来实现隧道技术。在隧道的对端,接收到IP数据包以后,处理的流程跟发送流程刚好相反,先由应用程序的解密模块将数据进行解密,然后将其转交给数据交换模块,数据交换模块再将其递交给虚拟网卡,虚拟网卡接收到IP数据包后,根据其目的地址在内网选择相应的内网网卡,最后内网网卡将数据送达至目的主机。虚拟网卡在这个过程中的作用是,数据包在VPN隧道和内网之间的转发,还保证了数据的安全性。
4.总结
虚拟专用网,就是应用隧道技术再公共网络上逻辑性地区分多个私有网络,是一种虚拟的网络,目的是保证网络传输的安全性能和提升服务质量。虚拟专用网建立在公共网络上,在建立隧道的时候,如果一次性给足带宽,则会引起带宽的浪费,从而使得可容纳的客户数量降低,公共网络使用率也会随着降低。相反,若带宽过低,则会提高虚拟专用网上连接被拒绝的次数,所以配置带宽要适当。
本文重点研究与探讨了点对点模式。在系统点对点工作模式的讨论上,又着重讨论了应用层VPN网关的设计问题,例如隧道技术在数据包中转发的问题和虚拟网卡等,然后提出了一种新的解决思路,在一定程度上使得VPN的安全性得以提高。
参考文献:
. 第1版. 北京:电子工业出版社,2002
作者简介:郑伟(1975- ),男,安徽省砀山县人,学士学位,安徽省淮北市公安消防支队,工程师,主要从事计算机信息系统和计算机通信方面的工作