×××的英文全称是“Virtual Private Network”,翻译过来就是“虚拟专用网络”。顾名思义,虚拟专用网络我们可以把它理解成是虚拟出来的企业内部专线。它可以通过特殊的加密的通讯协议为连接在Internet上的位于不同地方的两个或多个企业内部网之间建立一条专有的通讯线路,就好比是架设了一条专线一样,但是它并不需要真正的去铺设光缆之类的物理线路。

  我们可以把×××理解成为是建立在实际网络(或物理网络)基础上的一种功能性网络。它利用低成本的公共网络做为企业骨干网,同时又克服了公共网络缺乏保密性的弱点,在×××网络中,位于公共网络两端的网络在公共网络上传输信息时,其信息都是经过安全处理的,可以保证数据的完整性、真实性和私有性。

  每家公司都有自己的内部网络,而这个网络是封闭的、有边界的。小一些的网络可能仅由办公室中的几台电脑组成,规模较大的网络可能由一栋建筑物中的所有终端组成甚至整个厂区中的所有终端组成,但无论如何,这个内部网络总是有边界的,所以物理上将上海总部的内网与北京分部的内网直接相连在一般条件下是不可能实现的,而这一问题同时也限制了企业内部各种应用的延伸。

  我们知道,网络通信是采用分层机制实现的,上层的各种应用无法查觉到下层网络的工作方式,所以无论是逻辑上还是物理上只要将两个网络进行直接连连,对于上层应用来讲是没有分别的。×××所实现的效果正是将两个物理上分离的网络通过Internet这个公共网络进行逻辑上的直接连接,通过这种方式我们可以无限延伸企业的内部网络,继而使所有用户可以访问相同的资源,使用相同的应用。

IPSec ×××技术与实现原理_第1张图片
站点到站点的×××(Site to Site)和客户端到端点的×××(Client to Site)

  ×××的优势之处还在于它可以很好的利用当前既有的Internet线路资源,不再受地域的限制,而对于用户来讲,×××的工作方式是完全透明的。×××可以帮助远程用户、公司分支机构、商业伙伴及供应商同公司的内部网建立可信的安全连接,并保证数据的安全传输。针对不同的用户要求,×××有三种解决方案:远程访问虚拟网(Access ×××)、企业内部虚拟网(Intranet ×××)和企业扩展虚拟网(Extranet ×××),分别适用于远程/移动用户访问、连接各个企业内部网络、连接企业内部网与合作伙伴内部网。

  目前很多公司都面临着这样的挑战:分公司、经销商、合作伙伴、客户和外地出差人员要求随时经过公用网(Internet)访问公司的内部资源,这些资源包括公司的内部资料、办公OA、ERP系统、CRM系统、项目管理系统等。为了实现实时的互通互访,很多公司在企业内部部署了×××解决方案。实现×××通信的方式有多种,常见的像IPSec ×××、PPTP ×××、SSL ×××等。本文将仅讨论IPSec ×××的实现原理,这里先预告一下,在稍后的文章中我们将用实例演示如何组建IPSec ×××网络。

什么是IPSec ×××?IPSec ×××即指采用IPSec协议来实现远程接入的一种×××技术,IPSec全称为Internet Protocol Security,是由Internet Engineering Task Force (IETF) 定义的安全标准框架,用以提供公用和专用网络的端对端加密和验证服务。

  IPsec协议不是一个单独的协议,它给出了应用于IP层上网络数据安全的一整套体系结构,包括网络认证协议AH(Authentication Header,认证头)、ESP(Encapsulating Security Payload,封装安全载荷)、IKE(Internet Key Exchange,因特网密钥交换)和用于网络认证及加密的一些算法等。其中,AH协议和ESP协议用于提供安全服务,IKE协议用于密钥交换。

  IPsec提供了两种安全机制:认证和加密。认证机制使IP通信的数据接收方能够确认数据发送方的真实身份以及数据在传输过程中是否遭篡改。加密机制通过对数据进行加密运算来保证数据的机密性,以防数据在传输过程中被窃听。IPsec协议中的AH协议定义了认证的应用方法,提供数据源认证和完整性保证;ESP协议定义了加密和可选认证的应用方法,提供数据可靠性保证

  一下子出现了三个专用名词,这可能让您感到十分费解,没关系,下面我们就来具体说一说AH、ESP和IKE它们在实现IPSec中分别起着什么作用。

  AH协议(IP协议号为51)提供数据源认证、数据完整性校验和防报文重放功能,它能保护通信免受篡改,但不能防止窃听,适合用于传输非机密数据。AH的工作原理是在每一个数据包上添加一个身份验证报文头,此报文头插在标准IP包头后面,对数据提供完整性保护。可选择的认证算法有MD5(Message Digest)、SHA-1(Secure Hash Algorithm)等。MD5算法的计算速度比SHA-1算法快,而SHA-1算法的安全强度比MD5算法高。

  ESP协议(IP协议号为50)提供加密、数据源认证、数据完整性校验和防报文重放功能。ESP的工作原理是在每一个数据包的标准IP包头后面添加一个ESP报文头,并在数据包后面追加一个ESP尾。与AH协议不同的是,ESP将需要保护的用户数据进行加密后再封装到IP包中,以保证数据的机密性。常见的加密算法有DES3DESAES等。同时,作为可选项,用户可以选择MD5SHA-1算法保证报文的完整性和真实性。这三个加密算法的安全性由高到低依次是:AES、3DES、DES,安全性高的加密算法实现机制复杂,运算速度慢。对于普通的安全要求,DES算法就可以满足需要。

  在实际进行IP通信时,可以根据实际安全需求同时使用这两种协议或选择使用其中的一种。AH和ESP都可以提供认证服务,不过,AH提供的认证服务要强于ESP。同时使用AH和ESP时,设备支持的AH和ESP联合使用的方式为:先对报文进行ESP封装,再对报文进行AH封装,封装之后的报文从内到外依次是原始IP报文、ESP头、AH头和外部IP头。IPsec有如下两种工作模式:


tunnel和transport模式下的数据封装形式,data为传输层数据

  隧道(tunnel)模式:用户的整个IP数据包被用来计算AH或ESP头,AH或ESP头以及ESP加密的用户数据被封装在一个新的IP数据包中。通常,隧道模式应用在两个安全网关之间的通讯。

  传输(transport)模式:只是传输层数据被用来计算AH或ESP头,AH或ESP头以及ESP加密的用户数据被放置在原IP包头后面。通常,传输模式应用在两台主机之间的通讯,或一台主机和一个安全网关之间的通讯。

讲完了AH、ESP及数据封装模式,接下来我们来看一下IPSec是如何实现数据安全传输的。IPsec的两个端点被称为是IPsec对等体,要在两个对等体之间实现数据的安全传输就要在两者之间建立安全关联(Security Association,SA)。SA是IPsec的基础,也是IPsec的本质。SA是通信对等体间对某些要素的约定,例如,使用哪种协议(AH、ESP还是两者结合使用)、协议的封装模式(传输模式和隧道模式)、加密算法(DES、3DES和AES)、特定流中保护数据的共享密钥以及密钥的生存周期等。

  SA是单向的,在两个对等体之间的双向通信,最少需要两个SA来分别对两个方向的数据流进行安全保护。同时,如果两个对等体希望同时使用AH和ESP来进行安全通信,则每个对等体都会针对每一种协议来构建一个独立的SA。SA是具有生存周期的,且只对通过IKE协商建立的SA有效,手工方式建立的SA永不老化。IKE协商建立的SA的生存周期有两种定义方式:基于时间的生存周期,定义了一个SA从建立到失效的时间;基于流量的生存周期,定义了一个SA允许处理的最大流量。

  生存周期到达指定的时间或指定的流量,SA就会失效。SA失效前,IKE将为IPsec协商建立新的SA,这样,在旧的SA失效前新的SA就已经准备好。在新的SA开始协商而没有协商好之前,继续使用旧的SA保护通信。在新的SA协商好之后,则立即采用新的SA保护通信。

  到这里大家可能也就明白了IKE是什么,简单的讲IKE是一种安全机制,它提供端与端之间的动态认证。IKE为IPsec提供了自动协商交换密钥、建立SA的服务,这能够简化IPsec的使用和管理,大大简化IPsec的配置和维护工作。IKE不是在网络上直接传输密钥,而是通过一系列数据的交换,最终计算出双方共享的密钥,有了IKE,IPsec很多参数(如:密钥)都可以自动建立,降低了手工配置的复杂度。

  本文主要讨论了IPsec实现数据安全传输的原理,最后我们来总结一下IPsec所具有的优点:

  1、支持IKE(Internet Key Exchange,因特网密钥交换),可实现密钥的自动协商功能,减少了密钥协商的开销。可以通过IKE建立和维护安全关联(Security Association,SA)的服务,简化了IPsec的使用和管理。

  2、所有使用IP协议进行数据传输的应用系统和服务都可以使用IPsec,由于IPSec工作在OSI的第3层,低于应用程序直接涉及的层级,所以对于应用程序来讲,利用IPSec ×××所建立起来的隧道是完全透明的,无需修改既有的应用程序,并且,现有应用程序的安全解决方法也不会受到任何影响。

  3、对数据的加密是以数据包为单位的,而不是以整个数据流为单位,这不仅灵活而且有助于进一步提高IP数据包的安全性,可以有效防范网络***。