admin 管理员组

文章数量: 887021


2024年3月8日发(作者:linux英文版怎么改成中文)

一. VPN技术分类

VPN的技术分两类,一类是基于MPLS(多协议标记交换)和L2TP(第二层隧道协议)等标准的VPN技术,一般用于ISP布署自己的骨干网络并对外提供VPN服务。它的侧重点在于在Internet上开出类似于专线性能的数据通道,信息安全方面考虑得很少或没有考虑,即使有ISP采用L2TP+IPSec的方案来提升VPN方案的安全性,也只能实现点到点的安全,而且不能提供细粒度的安全服务,不适合企业构造复杂的、安全性要求非常高的商业逻辑和应用。因此,在推动MPLS的VPN解决方案的同时,建议用户布署CPE(客户端设备,采用IPSec协议的VPN设备),以提升方案的安全性和灵活性。 另一种就是基于IPSec的VPN技术。它的侧重点在于安全保密,融合了加密、认证、密钥管理等密码技术。目前,企业构建自己的VPN网络时基本都是采用这种技术。

二.VPN的实现原理

有很多种方法可以实现VPN。目前大家经常看到的有MPLS、IPSEC、L2tp/pp2p、SSL等类型。

众所周知,由于公共IP的短缺,我们在组建局域网时,通常使用保留地址作为内部IP,这些保留地址Internet上是无法被路由的,所以在正常情况下我们无法直接通过Internet访问到在局域网内的主机。为了实现这一目的,

我们需要使用VPN隧道技术,其实现过程可以通过下面的图示说明:

1. 通常情况下,VPN网关采用双网卡结构,外网卡使用公共IP接入Internet;

2. 如果网络一的终端A需要访问网络二的终端B,其发出的访问数据包的目标地址为终端B的IP (内部IP);

3. 网络一的VPN网关在接收到终端A发出的访问数据包时对其目标地址进行检查,如果目标地址属于网络二的地址,则将该数据包进行封装,封装的方式根据所采用的VPN技术不同而不同,同时VPN网关会构造一个新的数据包(VPN数据包),并将封装后的原数据包作为VPN数据包的负载,VPN数据包的目标地址为网络二的VPN网关的外部地址;

4. 网络一的VPN网关将VPN数据包发送到Internet,由于VPN数据包的目标地址是网络二的VPN网关的外部地址,所以该数据包将被Internet中的路由正确地发送到网络二的VPN网关;

5. 网络二的VPN网关对接收到的数据包进行检查,如果发现该数据包是从网络一的VPN网关发出的,即可判定该数据包为VPN数据包,并对该数据包进行解包

处理。解包的过程主要是先将VPN数据包的包头剥离,在将负载通VPN技术反向处理还原成原始的数据包;

6. 网络二的VPN网关将还原后的原始数据包发送至目标终端,由于原始数据包的目标地址是终端B的IP,所以该数据包能够被正确地发送到终端B。在终端B看来,它收到的数据包就从终端A直接发过来的一样;

7. 从终端B返回终端A的数据包处理过程与上述过程一样,这样两个网络内的终端就可以相互通讯了。

通过上述说明我们可以发现,在VPN网关对数据包进行处理时,有两个参数对于VPN隧道通讯十分重要:原始数据包的目标地址(VPN目标地址)和远程VPN网关地址。根据VPN目标地址,VPN网关能够判断对哪些数据包需要进行VPN处理,对于不需要处理的数据包通常情况下可直接转发到上级路由;远程VPN网关地址则指定了处理后的VPN数据包发送的目标地址,即VPN隧道的另一端VPN网关地址。由于网络通讯是双向的,在进行VPN通讯时,隧道两端的VPN网关都必须知道VPN目标地址和与此对应的的远端VPN网关地址。

三.VPN技术比较

VPN技术非常复杂,它涉及到通信技术、密码技术和现代认证技术,是一项交叉科学。目前,CPE-based VPN主要包含两种技术:隧道技术与安全技术。

一、隧道技术

-----隧道技术的基本过程是在源局域网与公网的接口处将数据(可以是ISO

七层模型中的数据链路层或网络层数据)作为负载封装在一种可以在公网上传输的数据格式中,在目的局域网与公网的接口处将数据解封装,取出负载。被封装的数据包在互联网上传递时所经过的逻辑路径被称为“隧道”。

-----要使数据顺利地被封装、传送及解封装,通信协议是保证的核心。目前VPN隧道协议有4种:点到点隧道协议PPTP、第二层隧道协议L2TP、网络层隧道协议IPSec以及SOCKS v5,它们在OSI 七层模型中的位置如表所示。各协议工作在不同层次,无所谓谁更有优势。但我们应该注意,不同的网络环境适合不同的协议,在选择VPN产品时,应该注意选择。

1.点到点隧道协议—PPTP

----- PPTP协议将控制包与数据包分开,控制包采用TCP控制,用于严格的状态查询及信令信息;数据包部分先封装在PPP协议中,然后封装到GRE V2协议中。目前,PPTP协议基本已被淘汰,不再使用在VPN产品中。

2.第二层隧道协议—L2TP

----- L2TP是国际标准隧道协议,它结合了PPTP协议以及第二层转发L2F协议的优点,能以隧道方式使PPP包通过各种网络协议,包括ATM、SONET和帧中继。但是L2TP没有任何加密措施,更多是和IPSec协议结合使用,提供隧道验证。

3.IPSec协议

----- IPSec协议是一个范围广泛、开放的VPN安全协议,工作在OSI模型中的第三层——网络层。它提供所有在网络层上的数据保护和透明的安全通信。IPSec协议可以设置成在两种模式下运行:一种是隧道模式,一种是传输模式。在隧道模式下,IPSec把IPv4数据包封装在安全的IP帧中。传输模式是为了保护端到端的安全性,不会隐藏路由信息。1999年底,IETF安全工作组完成了IPSec的扩展,在IPSec协议中加上了ISAKMP协议,其中还包括密钥分配协议IKE和Oakley。

-----一种趋势是将L2TP和IPSec结合起来: 用L2TP作为隧道协议,用IPSec协议保护数据。目前,市场上大部分VPN采用这类技术。

表 4种隧道协议在OSI七层模型中的位置

----优点:它定义了一套用于保护私有性和完整性的标准协议,可确保运行在TCP/IP协议上的VPN之间的互操作性。

----缺点:除了包过滤外,它没有指定其他访问控制方法,对于采用NAT方式访问公共网络的情况难以处理。

----适用场合:最适合可信LAN到LAN之间的VPN。

4.SOCKS v5协议

----SOCKS v5工作在OSI模型中的第五层——会话层,可作为建立高度安全的VPN的基础。SOCKS v5协议的优势在访问控制,因此适用于安全性较高的VPN。 SOCKS v5现在被IETF建议作为建立VPN的标准。

-----优点:非常详细的访问控制。在网络层只能根据源目的的IP地址允许或拒绝被通过,在会话层控制手段更多一些;由于工作在会话层,能同低层协议如IPV4、IPSec、PPTP、L2TP一起使用;用SOCKS v5的代理服务器可隐藏网络地址结构;能为认证、加密和密钥管理提供“插件”模块,让用户自由地采用所需要的技术。SOCKS v5可根据规则过滤数据流,包括Java Applet和Actives控制。

----缺点:其性能比低层次协议差,必须制定更复杂的安全管理策略。

----适用场合:最适合用于客户机到服务器的连接模式,适用于獠客鳹PN和远程访问VPN。

二、安全技术

----VPN 是在不安全的Internet 中通信,通信的内容可能涉及企业的机密数据,因此其安全性非常重要。VPN中的安全技术通常由加密、认证及密钥交换与管理组成。

1.认证技术

----认证技术防止数据的伪造和被篡改,它采用一种称为“摘要”的技术。“摘要”技术主要采用HASH 函数将一段长的报文通过函数变换,映射为一段短的报文即摘要。由于HASH 函数的特性,两个不同的报文具有相同的摘要几乎不可能。该特性使得摘要技术在VPN 中有两个用途:验证数据的完整性、用户认证。

2.加密技术

----IPSec通过ISAKMP/IKE/Oakley 协商确定几种可选的数据加密算法,如DES 、3DES等。DES密钥长度为56位,容易被破译,3DES使用三重加密增加了安全性。当然国外还有更好的加密算法,但国外禁止出口高位加密算法。基于同样理由,国内也禁止重要部门使用国外算法。国内算法不对外公开,被破解的可能性极小。

3.密钥交换和管理

-----VPN 中密钥的分发与管理非常重要。密钥的分发有两种方法:一种是通过手工配置的方式,另一种采用密钥交换协议动态分发。手工配置的方法由于

密钥更新困难,只适合于简单网络的情况。密钥交换协议采用软件方式动态生成密钥,适合于复杂网络的情况且密钥可快速更新,可以显著提高VPN 的安全性。目前主要的密钥交换与管理标准有IKE (互联网密钥交换)、SKIP (互联网简单密钥管理)和Oakley。

三. VPN组网方式

----VPN在企业中的组网方式分以下3种。在各种组网方式下采用的隧道协议有所不同,要仔细选择。

1.客户端到客户端

2. Access VPN (远程访问VPN):客户端到网关

----远程用户拨号接入到本地的ISP,它适用于流动人员远程办公,可大大降低电话费。SOCKS v5协议适合这类连接。

3. Intranet VPN (企业内部VPN):网关到网关

----它适用于公司两个异地机构的局域网互连,在Internet 上组建世界范围内的企业网。利用Internet 的线路保证网络的互联性,而利用隧道、加密等VPN

特性可以保证信息在整个Intranet VPN 上安全传输。IPSec隧道协议可满足所有网关到网关的VPN连接,因此,在这类组网方式中用得最多。

4.Extranet VPN (扩展的企业内部VPN):与合作伙伴企业网构成Extranet

----由于不同公司的网络相互通信,所以要更多考虑设备的互连、地址的协调、安全策略的协商等问题。它也属于网关到网关的连接,选择IPSec协议是明智之举

不同应用方式的VPN工作原理

VPN的应用有两种基本类型:拨号式VPN与专用式VPN。

1. 常规的直接拨号连接与虚拟专网连接的异同点。

图1比较了常规的直接拨号连接与虚拟专网连接的异同点。在前一种情形可,PPP(点对点协议)数据包流是通过专用线路传输的。在VPN可,PPP数据包流是由一个LAN上的路由器发出,通过共享IP网络上的隧道进行传输,再到达另一个LAN上的路由器。这两者的关键不同点是隧道代替了实在的专用线路。隧道好比是在WAN中拉出一根串行通信电缆。

基于IP的VPN基本上归结为两类:拨号VPN(一般称为VDPN,即虚拟拨号专网)和专线VPN(Dedicated VPN,即专线的VPN),完整的VPN解决方案通常把拨号VPN和专线VPN组合在一起来满足所有用户的使用需求。

拨号VPN(即VDPN)为移动用户和远程办公用户提供了对公司企业网的远程访问。这是当今最常见的一种VPN部署形式,主要是基于L2TP协议。VDPN允许多个不同领域的用户都能通过公共网络或者Internet或其他公用网络获得安全的通路到他们的企业内部网络。

拨号VPN(即VDPN)为移动用户和远程办公用户提供了对公司企业网的远程访问。这是当今最常见的一种VPN部署形式,主要是基于L2TP协议。VDPN允许多个不同领域的用户都能通过公共网络或者Internet或其他公用网络获得安全的通路到他们的企业内部网络。

提供私有拨号网络服务的服务提供商可以用单个电话号码提供给所有的用户组织。访问者可以用拨号网络进入访问服务器,访问服务器通过PPP用户名来区别访问者。PPP用户名用于建立一个到企业网关的连接,当企业网关鉴别了用户之后,访问集成器建立一个通过网络提供商的骨干网、到企业风部网关的安全隧道。

PPP协议同时也被传输到内部网关,在内部网关的本地完全策略和本地认证授权决定了用户通过内部网关之后对内部网络的访问级别。

拨号VPN的原理如下图2所示。服务提供商管理MODEM池和确保可靠的连通性,而商业公司管理某企业内部网的用户认证。

专线VPN以多个用户和比拨号VPN高速的连接为特片。有许多类型的专线VPN业务,但最常见的是在IP网上建立的IP VPN业务,如图3所示。专线VPN提供了公司总部与公司分部、远程分支办事处以及Extranet用户的虚拟点对点连接。

虚拟专用网的体系结构有多种形式,分类示意图如图4。

模拟目前国内公众多媒体通信网的状况;在国内采用VPN组网一般分为三类

(1)ATM PVC组建方式,即利用电信部分提供的ATM PVC来组建用户的专用网。这种专用网的通信速率快,安全性高,支持多媒体通信。

(2)IP Tunneling组建方式。即在多媒体通信网的IP层组建专用网。其传输速率不能完全保证,不支持多媒体通信;使用国际通行的加密算法,安全性好;这种组网方式的业务在公众通信网遍及的地方均可提供。

(3)Dial-up Access组网方式(VDPN)。这是一种拨号方式的专用网组建方

式,可以利用已遍布全国的拨号公网来组建专用网,其接入地点在国内不限,上网可节省长途拨号的费用。对于流动性强、分支机构多、通信量小的用户而言,这是一种非常理想的组网方式。它可以将用户内部网的界限,从单位的地理所在延伸到全国范围。

2.1 拨号VPN(VDPN)

拨号VPN又可分为客户发起的(Client-Initiated)VPN和NAS发起的VPN

2.1.1 客户发起的VPN

在客户发起的VNP中,用户拨号到本地的POP远程,由客户来发出请求并建立到某企业内部网的加密隧道。为了建立一个安全的连接,客户端运行Ipsec软件,客户软件与公司内部网络防火墙上的Ipsec进程通信,或者直接与支持Ipsec的路由器通信,确保连接的安全性。这种形式的VPN优点是:

(1)远程用户能够同时与多个Home Gateway建立IP Tunnel。

(2)远程用户不必重新拨号,就可以进入另一网络。

(3)VPN的建立和管理与ISP无关

缺点是:因为这种加密的VPN隧道对于服务提供商而言是透明的,在客户端需要专用的拨号软件,而且管理移动PC上的Ipsec客户端软件也是麻烦的事件。因此,大部分的服务提供曾几何时会选择VPN隧道作为其网络一部分的形式,如下面所讨论的那样。

2.1.2 NAS发起的VPN

在NAS发起的VPN中,由服务提供商的POP中的NAS请求并创建到客户公司路由器(或者Home Gateway)的VPN隧道。NAS使用L2F(Layer 2 Forwarding

Protocol)或者L2TP(Layer 2 Tunneling Protocol)协议来建立到客户Home

Gateway的安全隧道。L2TP是不久前建立的标准,这个标准结合了Cisco公司的L2F和微软公司的PPTP协议。对于Home Gateway来说,L2F或L2TP隧道表现得似乎用户是直接拨号到公司内部网上.表现得似乎用户是直接拨号到公司内部网上。

在这种拨号VPN形式中,用户认证公两级处理。当用户拨入时,首先由服务提供商NAS执行基本的认证,这个认证仅仅识别出用户的公司身份。然后,NAS打开到用户公司Home Gateway的隧道,由Home Gateway来执行用户级的认证功能。

这种VPN形式有若干优点:对拨号用户透明,用户PC上无需特殊的客户软件,因而管理简单化;由于是由服务提供商初始化隧道,他们可以提供优质的拨号VPN服务,如通过预留Modem端口,优先的数据传送等手段保证拨号VPN用户得到所需的服务;NAS可以时支持Internet或其他公用网络和VPN服务;由于到某一目的的通信量全部通过单一隧道传送,大规模部署将更具有可扩充性和管理性。

这种VPN形式存在的缺点有:

(1)当远程用户进入其它网络时,需要重新拨号,并且只能以另一用户名登录。

(2)远程用户不能同时进入多个网络。

2.2 专线VPN

1)基于IP Tunnel的专线VPN

VPN与常规的直接拨号网络不同,在VPN中,PPP数据包流不是通过专用线路,而是通过共享IP网络上的隧道进行传输。这两者的关键不同点是隧道代替了实际的专用线路。如何形成VPN隧道呢?

隧道是由隧道协议形成的,这与流行的各种网络是依靠相应的网络协议完成通信没有区别。为了传输来自不同网络的数据包,最普遍使用的方法是先把各种网络协议(IP、IPX和AppleTalk等)封装到PPP里,再把这整个PPP数据包装入隧道协议里。隧道协议一般封装在IP协议中,但也可以是ATM或Frame Relay。由于隧道搭载的是PPP数据包(第二层),所以这种封装方法称为“第2层隧道”。用得很少的另一种方法是把各种网络协议直接装入隧道协议中(3Com公司的VTP就是这种隧道协议),由于隧道直接搭载第三层协议的数据包,所以称为“第3层隧道”。

2)基于Vitual Circuit(虚拟电路)的VPN

服务提供商可以提供虚拟电路来建立IP VPN服务。用PVC在帧中继(Frame

Relay)和ATM网络中建立点对点连接,并通过路由器来管理第三层的信息。电信运营商或者邮电局可以采用这种办法,充分利用其现有的帧交换(如帧中继)或信元交换(如ATM)基础设施提供IP VPN服务。

在前面叙述的专线VPN和拨号VPN本质上都是通过在公共IP网络中建立隧道(tunnel)来提供服务的。与之不同,基于虚拟电路的VPN通过在公共的帧或信元交换网络上的路由来传送IP服务,是使用PVC而不是tunnel来建立隐私性。因此,加密是不需要的。

这种形式的VPN具有如下优点:受控的路由器服务为具有帧或信元基础设施的服务提供商提供一种便宜、快速的建立VPN服务的办法;可充分利用FR CIR(Committed Information Rate)和ATM QoS来确保QoS能力;虚拟电路拓扑的弹性;连接无须加密。

它的缺点是:不能灵活选择路由;比IP Tunnel的相对费用高;缺少IP的多业务能力(如Voice Over IP Video Over IP等)。

五. 基于不同协议的VPN原理

现在有很多种方法可以实现VPN。目前大家经常看到的有MPLS、IPSEC、L2tp/pp2p、SSL等类型

1. MPLS VPN的工作原理

MPLS VPN是一种基于MPLS技术的IP VPN,是在网络路由和交换设备上应用MPLS(Multiprotocol Label Switching,多协议标记交换)技术,简化核心路由器的路由选择方式,利用结合传统路由技术的标记交换实现的IP虚拟专用网络(IP VPN)。这种基于标记的IP路由选择方法,要求在整个交换网络中间所有的路由器都识别这个标签,运营商需要大笔投资建立全局的网络。而且跨越不同运营商之间,如果没有协调好,标签无法交换。

标记是一个能够被路由器识别理解的数据位,可以被用来代表逐跳式或者显式路由,并指明服务质量(QoS)、虚拟专网以及影响一种特定类型的流量(或一个特殊用户的流量)在网络上的传输方式等各类信息。MPLS可以提供每个IP

数据包一个标记,将之与IP数据包封装于新的MPLS数据包,由此决定IP数据包的传输路径以及优先顺序,而与MPLS兼容的路由器会在将IP数据包按相应路径转发之前仅读取该MPLS数据包的包头标记,无须再去读取每个IP数据包中的IP地址位等信息。

IP包在边界路由器分配一个标记。自此,MPLS设备就会自始至终查看这些标记信息,将这些有标记的包交换至其目的地。由于路由处理减少,网络的等待时间也就随之缩短,而可伸缩性却有所增加。MPLS数据包的服务质量类型可以由MPLS边界路由器根据IP包的各种参数来确定,如IP的源地址、目的地址、端口号、TOS值等参数。

以大家比较好理解的物流系统作比喻。MPLS是在包裹上面打上一个特定的标签,要求整个物流系统的搬运环节都能够理解这个标签的意义,然后根据这个标签发送这个包裹。即使这个物流系统再繁忙,这类包裹的传输质量能够得到保证。但是这是有前提条件的,要求所有的搬运环节(搬运工)能够理解包裹的含义,例如: 1314信箱。并且能够理解加急、紧急等不同的字眼,不同的物流公司(对应不同的运营商),由于标签不统一,直接互通就很困难。

对于到达同一目的地的IP包,可根据其TOS值的要求来建立不同的转发路径,以达到其对传输质量的要求。同时,通过对特殊路由的管理,还能有效地解决网络中的负载均衡和拥塞问题。当网络中出现拥塞时,MPLS可实时建立新的转发路由来分散流量以缓解网络拥塞。

2. SSL VPN的基本原理分析

从简单而言, SSL VPN一般的实现方式是在企业的防火墙后面放置一个SSL代理服务器。如果用户希望安全地连接到公司网络上,那么当用户在浏览器上输入一个URL后,连接将被SSL代理服务器取得,并验证该用户的身份,然后SSL代理服务器将提供一个远程用户与各种不同的应用服务器之间连接。

几乎所有的主流商业浏览器都集成了SSL,实施SSL VPN不需要再安装额外

的软件。绝大多数SSL VPN的生产厂商都通过“signed plugins”提供其他的功能,“signed plugins”可以跟随浏览器自动传输给客户端。

SSL实现了客户端0安装,0配置。因此其功能和应用也受到限制。它适合PC-Web Server模式,就是大量的移动用户通过浏览器访问Web服务器,有的SSL VPN还对ftp、telnet等进行了扩充,增强了其可用性,即便如此,充其量是实现了PC-to-Lan的功能。适用于数据库-应用服务器-Web服务器-浏览器这一种模式。在保护范围、认证方式、应用程序类型上限制很多。而IPsec VPN则提供第三层IP的可达性,可以保证任何基于tcp/ip的程序运行。

如果就网络联通而言,即使不使用SSL VPN,企业也能够实现Web应用,大不了我直接把服务器放置在Internet上,其他用户明文直接访问好了。有了一个SSL VPN设备,相当于在服务器之前作了一个代理,客户端要和服务器连接,就要通过这个代理的认证,而且从客户端到SSL VPN之间,数据是加密的。这样,internet上的黑客无法通过抓取数据包分析通讯信息。并且SSL VPN一般能够支持虚拟主机应用,这样,一个IP地址可以访问N个服务器。

3.基于IPSec规范的VPN技术

1)IPSec协议简介

IPSec(1P Security)产生于IPv6的制定之中,用于提供IP层的安全性。由于所有支持TCP/IP协议的主机进行通信时,都要经过IP层的处理,所以提供了IP层的安全性就相当于为整个网络提供了安全通信的基础。鉴于IPv4的应用仍然很广泛,所以后来在IPSec的制定中也增添了对IPv4的支持。

最初的一组有关IPSec标准由IETF在1995年制定,但由于其中存在一些未解决的问题,从1997年开始IETF又开展了新一轮的IPSec的制定工作,截止至1998年11月份主要协议已经基本制定完成。不过这组新的协议仍然存在一些问题,预计在不久的将来IETF又会进行下一轮IPSec的修订工作。

2)IPSec基本工作原理

IPSec的工作原理(如图l所示)类似于包过滤防火墙,可以看作是对包过滤防火墙的一种扩展。当接收到一个IP数据包时,包过滤防火墙使用其头部在一个规则表中进行匹配。当找到一个相匹配的规则时,包过滤防火墙就按照该规则制定的方法对接收到的IP数据包进行处理。 这里的处理工作只有两种:丢弃或转发。

图1 IPSec工作原理示意图

IPSec通过查询SPD(Security P01icy Database安全策略数据库)决定对接收到的IP数据包的处理。但是IPSec不同于包过滤防火墙的是,对IP数据包的处理方法除了丢弃,直接转发(绕过IPSec)外,还有一种,即进行IPSec处理。正是这新增添的处理方法提供了比包过滤防火墙更进一步的网络安全性。

进行IPSec处理意味着对IP数据包进行加密和认证。包过滤防火墙只能控制来自或去往某个站点的IP数据包的通过,可以拒绝来自某个外部站点的IP数据包访问内部某些站点,.也可以拒绝某个内部站点方对某些外部网站的访问。但是包过滤防火墙不能保证自内部网络出去的数据包不被截取,也不能保证进入内部网络的数据包未经过篡改。只有在对IP数据包实施了加密和认证后,才能

保证在外部网络传输的数据包的机密性,真实性,完整性,通过Internet进新安全的通信才成为可能。

IPSec既可以只对IP数据包进行加密,或只进行认证,也可以同时实施二者。但无论是进行加密还是进行认证,IPSec都有两种工作模式,一种是与其前一节提到的协议工作方式类似的隧道模式,另一种是传输模式。

传输模式,如图2所示,只对IP数据包的有效负载进行加密或认证。此时,继续使用以前的IP头部,只对IP头部的部分域进行修改,而IPSec协议头部插入到IP头部和传输层头部之间。

图2 传输模式示意图

隧道模式,如图3所示,对整个IP数据色进行加密或认证。此时,需要新产生一个IP头部,IPSec头部被放在新产生的IP头部和以前的IP数据包之间,从而组成一个新的IP头部。

图3隧道模式示意图

3)IPSec中的三个主要协议

前面已经提到IPSec主要功能为加密和认证,为了进行加密和认证IPSec还需要有密钥的管理和交换的功能,以便为加密和认证提供所需要的密钥并对密钥的使用进行管理。以上三方面的工作分别由AH,ESP和IKE三个协议规定。为

了介绍这三个协议,需要先引人一个非常重要的术语棗SA(Securlty Association安全关联)。所谓安全关联是指安全服务与它服务的载体之间的一个“连接”。AH和ESP都需要使用SA,而IKE的主要功能就是SA的建立和维护。只要实现AH和ESP都必须提供对SA的支持。

通信双方如果要用IPSec建立一条安全的传输通路,需要事先协商好将要采用的安全策略,包括使用的加密算法、密钥、密钥的生存期等。当双方协商好使用的安全策略后,我们就说双方建立了一个SA。SA就是能向其上的数据传输提供某种IPSec安全保障的一个简单连接,可以由AH或ESP提供。当给定了一个SA,就确定了IPSec要执行的处理,如加密,认证等。SA可以进行两种方式的组合,分别为传输临近和嵌套隧道。

(Encapsulating Secuity Fayload)

ESP协议主要用来处理对IP数据包的加密,此外对认证也提供某种程度的支持。ESP是与具体的加密算法相独立的,几乎可以支持各种对称密钥加密算法,例如DES,TripleDES,RC5等。为了保证各种IPSec实现间的互操作性,目前ESP必须提供对56位DES算法的支持。

ESP协议数据单元格式三个部分组成,除了头部、加密数据部分外,在实施认证时还包含一个可选尾部。头部有两个域:安全策略索引(SPl)和序列号(Sequencenumber)。使用ESP进行安全通信之前,通信双方需要先协商好一组将要采用的加密策略,包括使用的算法、密钥以及密钥的有效期等。“安全策略索引”使用来标识发送方是使用哪组加密策略来处理IP数据包的,当接收方看到了这个序号就知道了对收到的IP数据包应该如何处理。“序列号”用来区分使用同一组加密策略的不同数据包。加密数据部分除了包含原IP数据包的有效负载,填充域(用来保证加密数据部分满足块加密的长度要求)包含其余部分在传输时都是加密过的。其中“下一个头部(Next Header)”用来指出有效负载部分使用的协议,可能是传输层协议(TCP或UDP),也可能还是IPSec协议(ESP或AH)。

通常,ESP可以作为IP的有效负载进行传输,这JFIP的头UKB指出下广个协议是ESP,而非TCP和UDP。由于采用了这种封装形式,所以ESP可以使用旧有的网络进行传输。

前面已经提到用IPSec进行加密是可以有两种工作模式,意味着ESP协议有两种工作模式:传输模式(Transport Mode)和隧道模式(TunnelMode)。当ESP工作在传输模式时,采用当前的IP头部。而在隧道模式时,侍整个IP数据包进行加密作为ESP的有效负载,并在ESP头部前增添以网关地址为源地址的新的IP头部,此时可以起到NAT的作用。

(Authentication Header)

AH只涉及到认证,不涉及到加密。AH虽然在功能上和ESP有些重复,但AH除了对可以对IP的有效负载进行认证外,还可以对IP头部实施认证。主要是处理数据对,可以对IP头部进行认证,而ESP的认证功能主要是面对IP的有效负载。为了提供最基本的功能并保证互操作性,AH必须包含对HMAC?/FONT>SHA和HMAC?/FONT>MD5(HMAC是一种SHA和MD5都支持的对称式认证系统)的支持。

AH既可以单独使用,也可在隧道模式下,或和ESP联用。

(Internet Key Exchange)

IKE协议主要是对密钥交换进行管理,它主要包括三个功能:

●对使用的协议、加密算法和密钥进行协商。

●方便的密钥交换机制(这可能需要周期性的进行)。

●跟踪对以上这些约定的实施。

4).VPN系统的设计

如图4所示,VPN的实现包含管理模块、密钥分配和生成模块、身份认证模块、数据加密/解密模块、数据分组封装/分解模块和加密函数库几部分组成。

管理模块负责整个系统的配置和管理。由管理模块来决定采取何种传输模式,对哪些IP数据包进行加密/解密。由于对IP数据包进行加密需要消耗系统资源,增大网络延迟,因此对两个安全网关之间所有的IP数据包提供VPN服务是不现实的。网络管理员可以通过管理模块来指定对哪些IP数据包进行加密。Intranet内部用户也可以通过Telnet协议传送的专用命令,指定VPN系统对自已的IP数据包提供加密服务。

密钥管理模块负责完成身份认证和数据加密所需的密钥生成和分配。其中密

钥的生成采取随机生成的方式。各安全网关之间密钥的分配采取手工分配的方式, 通过非网络传输的其它安全通信方式完成密钥在各安全网关之间的传送。各安全网关的密钥存贮在密数据库中,支持以IP地址为关键字的快速查询获取。

身份认证模块对IP数据包完成数字签名的运算。整个数字签名的过程如图5所示:

图5 数字签名

首先,发送方对数据进行哈希运算h=H(m),然后 用通信密钥k对h进行加密得到签名Signature={ h} key。发送方将签名附在明文之后,一起传送给接收方。 接收方收到数据后,首先用密钥k对签名进行解密得到 h,并将其与H(m)进行比较,如果二者一致,则表明数据是完整的。数字签名在保证数据完整性的同时,也起到了身份认证的作用,因为只有在有密钥的情况之下,才能对数据进行正确的签名。

数据加密/解密模块完成对IP数据包的加密和解密操作。可选的加密算法有IDEA算法和DES算法。前者在用软件方式实现时可以获得较快的加密速度。为了 进一步提高系统效率,可以采用专用硬件的方式实现数据的加密和解密,这时采用DES算法能得到较快的加密速度。随着当前计算机运算能力的提高,DES算法的安 全性开始受到挑战,对于安全性要求更高的网络数据,数据加密/解密模块可以提供TriPle DES加密服务。

数据分组的封装/分解模块实现对IP数据分组进行安全封装或分解。当从安全网关发送IP数据分组时,数据分组封装/分解模块为IP数据分组附加上身份认

证头AH和安全数据封装头ESP。当安全网关接收到IP 数据分组时,数据分组封装/分解模块对AH和ESP进行协议分析,并根据包头信息进行身份验证和数据解密。

加密函数库为上述模块提供统一的加密服务。加密 函数库设计的一条基本原则是通过一个统一的函数接口界面与上述模块进行通信。这样可以根据实际的需要,在挂接加密算法和加密强度不同的函数库时,其它模块不需作出改动

4.基于GRE协议的VPN原理及实现

1)GRE协议简介

GRE(Generic Routing Encapsulation)即通用路由封装协议是对某些网络层协议(如IP和IPX)的数据报进行封装,使这些被封装的数据报能够在另一个网络层协议(如IP)中传输。GRE是VPN(Virtual Private Network )的第三层隧道协议,即在协议层之间采用了一种被称之为Tunnel(隧道)的技术

⑴ GRE的Tunnel(隧道)工作原理

一个报文要想在Tunnel中传输,必须要经过加封装与解封装两个过程:

a) 加封装过程

如下图,连接Novell group1的接口收到IPX数据报后首先交由IPX协议处理,IPX协议检查IPX报头中的目的地址域来确定如何路由此包:

InternetIPX协议Group1Router AtunnelRouter BIPX协议Group2

GRE典型组网图

b) 封装好的报文的形式如下图所示:

Delivery Header(Transport Protocol)GRE Header(Encapsulation Protocol)Payload Packet(Passenger Protocol)封装好的Tunnel报文格式

c) 解封装的过程

解封装过程和加封装的过程相反。从Tunnel接口收到的IP报文,通过检查目的地址,发现目的地就是此路由器时,剥掉IP报头,再交给GRE协议处理后(进行检验密钥、检查校验和或报文的序列号等),剥掉GRE报头后,再交由IPX协议象对待一般数据报一样对此数据报进行处理。系统收到一个需要封装和路由的数据报,称之为净荷(Payload),这个净荷首先被加上GRE封装,成为GRE报文;再被封装在IP报文中,这样就可完全由IP层负责此报文的向前传输(Forwarded)。这个负责向前传输的IP协议被称为传递(Delivery)协议或传输(Transport)协议.

⑵ GRE应用范围:

① 多协议本地网通过单一协议骨干网传输

Novell IPX协议Group1Novell IPX协议Group2InternetInternettunnelIP协议Term 1Router ARouter BIP协议Term 2

② 扩大包含步跳数受限协议(如IPX)的网络的工作范围

RoutertunnelRouterIP networkRouterPCrrIP networkIP networkRouterPC

③ 将一些不能连续的子网连接起来,组建VPN

Routernovellgroup 1IP networkVLANRouternovellgroup2tunnel

其中,以第一种应用为主.

2基于GRE,以IP封装IPX原理及实现

⑴ 协议封装

一个封装在IP Tunnel中的IPX传输报文的格式如下:

IPGREIPX乘客协议(Passager Protocol)运载协议或封装协议(Carrier Protocol)(Encapsulation Protocol)运输协议(Transport Protocol)

⑵ IP承载IPX的GRE应用组网图

192.10.1.1202.18.3.2IPX协议Group1tunnelIPX协议Group21eRouter A1fInternet1fRouter B31

⑶ GRE配置

GRE的基本配置包括

创建虚拟Tunnel接口

配置Tunnel接口的源端地址

配置Tunnel接口的目的地址

配置Tunnel接口的网络地址


本文标签: 协议 数据包 网络 加密 数据