隧道所使用的传输网络可以是任何类型的公共互联网络,本文主要以目前普遍使用Internet为例进行说明。此外,在企业网络同样可以创建隧道。隧道技术在经过一段时间的发展和完善之后,目前较为成熟的技术包括: 1.IP网络上的SNA隧道技术 当系统网络结构(SystemNetworkArchitecture)的数据流通过企业IP网络传送时,SNA数据桢将被封装在UDP和IP协议包头中。 2.IP网络上的NovellNetWareIPX隧道技术 当一个IPX数据包被发送到NetWare服务器或IPX路由器时,服务器或路由器用UDP和IP包头封装IPX数据包后通过IP网络发送。另一端的IP-TO-IPX路由器在去除UDP和IP包头之后,把数据包转发到IPX目的地。 近几年不断出现了一些新的隧道技术,本文将主要介绍这些新技术。具体包括: 1.点对点隧道协议(PPTP) PPTP协议允许对IP,IPX或NetBEUI数据流进行加密,然后封装在IP包头中通过企业IP网络或公共互联网络发送。 2.第2层隧道协议(L2TP) L2TP协议允许对IP,IPX或NetBEUI数据流进行加密,然后通过支持点对点数据报传递的任意网络发送,如IP,X.25,桢中继或ATM。 3.安全IP(IPSec)隧道模式 IPSec隧道模式允许对IP负载数据进行加密,然后封装在IP包头中通过企业IP网络或公共IP互联网络如Internet发送。 隧道协议 为创建隧道,隧道的客户机和服务器双方必须使用相同的隧道协议。 隧道技术可以分别以第2层或第3层隧道协议为基础。上述分层按照开放系统互联(OSI)的参考模型划分。第2层隧道协议对应OSI模型中的数据链路层,使用桢作为数据交换单位。PPTP,L2TP和L2F(第2层转发)都属于第2层隧道协议,都是将数据封装在点对点协议(PPP)桢中通过互联网络发送。第3层隧道协议对应OSI模型中的网络层,使用包作为数据交换单位。IP overIP以及IPSec隧道模式都属于第3层隧道协议,都是将IP包封装在附加的IP包头中通过IP网络传送。
对于象PPTP和L2TP这样的第2层隧道协议,创建隧道的过程类似于在双方之间建立会话;隧道的两个端点必须同意创建隧道并协商隧道各种配置变量,如地址分配,加密或压缩等参数。绝大多数情况下,通过隧道传输的数据都使用基于数据报的协议发送。隧道维护协议被用来作为管理隧道的机制。
第3层隧道技术通常假定所有配置问题已经通过手工过程完成。这些协议不对隧道进行维护。与第3层隧道协议不同,第2层隧道协议(PPTP和L2TP)必须包括对隧道的创建,维护和终止。
隧道一旦建立,数据就可以通过隧道发送。隧道客户端和服务器使用隧道数据传输协议准备传输数据。例如,当隧道客户端向服务器端发送数据时,客户端首先给负载数据加上一个隧道数据传送协议包头,然后把封装的数据通过互联网络发送,并由互联网络将数据路由到隧道的服务器端。隧道服务器端收到数据包之后,去除隧道数据传输协议包头,然后将负载数据转发到目标网络。 隧道协议和基本隧道要求
因为第2层隧道协议(PPTP和L2TP)以完善的PPP协议为基础,因此继承了一整套的特性。
1.用户验证 第2层隧道协议继承了PPP协议的用户验证方式。许多第3层隧道技术都假定在创建隧道之前,隧道的两个端点相互之间已经了解或已经经过验证。一个例外情况是IPSec协议的ISAKMP协商提供了隧道端点之间进行的相互验证。
2.令牌卡(Tokencard)支持 通过使用扩展验证协议(EAP),第2层隧道协议能够支持多种验证方法,包括一次性口令(one-timepassword),加密计算器(cryptographic calculator)和智能卡等。第3层隧道协议也支持使用类似的方法,例如,IPSec协议通过ISAKMP/Oakley协商确定公共密钥证书验证。
3.动态地址分配 第2层隧道协议支持在网络控制协议(NCP)协商机制的基础上动态分配客户地址。第3层隧道协议通常假定隧道建立之前已经进行了地址分配。目前IPSec隧道模式下的地址分配方案仍在开发之中。
4.数据压缩 第2层隧道协议支持基于PPP的数据压缩方式。例如,微软的PPTP和L2TP方案使用微软点对点加密协议(MPPE)。IETP正在开发应用于第3层隧道协议的类似数据压缩机制。
5.数据加密 第2层隧道协议支持基于PPP的数据加密机制。微软的PPTP方案支持在RSA/RC4算法的基础上选择使用MPPE。第3层隧道协议可以使用类似方法,例如,IPSec通过ISAKMP/Oakley协商确定几种可选的数据加密方法。微软的L2TP协议使用IPSec加密保障隧道客户端和服务器之间数据流的安全。
6.密钥管理 作为第2层协议的MPPE依靠验证用户时生成的密钥,定期对其更新。IPSec在ISAKMP交换过程中公开协商公用密钥,同样对其进行定期更新。
7.多协议支持 第2层隧道协议支持多种负载数据协议,从而使隧道客户能够访问使用IP,IPX,或NetBEUI等多种协议企业网络。相反,第3层隧道协议,如IPSec隧道模式只能支持使用IP协议的目标网络
因为第2层隧道协议在很大程度上依靠PPP协议的各种特性,因此有必要对PPP协议进行深入的探讨。PPP协议主要是设计用来通过拨号或专线方式建立点对点连接发送数据。PPP协议将IP,IPX和NETBEUI包封装在PP桢内通过点对点的链路发送。PPP协议主要应用于连接拨号用户和NAS。 PPP拨号会话过程可以分成4个不同的阶段。分别如下:
阶段1:创建PPP链路 PPP使用链路控制协议(LCP)创建,维护或终止一次物理连接。在LCP阶段的初期,将对基本的通讯方式进行选择。应当注意在链路创建阶段,只是对验证协议进行选择,用户验证将在第2阶段实现。同样,在LCP阶段还将确定链路对等双方是否要对使用数据压缩或加密进行协商。实际对数据压缩/加密算法和其它细节的选择将在第4阶段实现。
阶段2:用户验证 在第2阶段,客户会PC将用户的身份明发给远端的接入服务器。该阶段使用一种安全验证方式避免第三方窃取数据或冒充远程客户接管与客户端的连接。大多数的PPP方案只提供了有限的验证方式,包括口令验证协议(PAP),挑战握手验证协议(CHAP)和微软挑战握手验证协议(MSCHAP)。
1.口令验证协议(PAP) PAP是一种简单的明文验证方式。NAS要求用户提供用户名和口令,PAP以明文方式返回用户信息。很明显,这种验证方式的安全性较差,第三方可以很容易的获取被传送的用户名和口令,并利用这些信息与NAS建立连接获取NAS提供的所有资源。所以,一旦用户密码被第三方窃取,PAP无法提供避免受到第三方攻击的保障措施。
2.挑战-握手验证协议(CHAP) CHAP是一种加密的验证方式,能够避免建立连接时传送用户的真实密码。NAS向远程用户发送一个挑战口令(challenge),其中包括会话ID和一个任意生成的挑战字串(arbitrary challengestring)。远程客户必须使用MD5单向哈希算法(one-wayhashingalgorithm)返回用户名和加密的挑战口令,会话ID以及用户口令,其中用户名以非哈希方式发送。
在第2阶段PPP链路配置阶段,NAS收集验证数据然后对照自己的数据库或中央验证数据库服务器(位于NT主域控制器或远程验证用户拨入服务器)验证数据的有效性。
阶段3:PPP回叫控制(callbackcontrol) 微软设计的PPP包括一个可选的回叫控制阶段。该阶段在完成验证之后使用回叫控制协议(CBCP)如果配置使用回叫,那么在验证之后远程客户和NAS之间的连接将会被断开。然后由NAS使用特定的电话号码回叫远程客户。这样可以进一步保证拨号网络的安全性。NAS只支持对位于特定电话号码处的远程客户进行回叫。
阶段4:调用网络层协议 在以上各阶段完成之后,PPP将调用在链路创建阶段(阶段1)选定的各种网络控制协议(NCP).例如,在该阶段IP控制协议(IPCP)可以向拨入用户分配动态地址。在微软的PPP方案中,考虑到数据压缩和数据加密实现过程相同,所以共同使用压缩控制协议协商数据压缩(使用MPPC)和数据加密(使用MPPE)。
一旦完成上述4阶段的协商,PPP就开始在连接对等双方之间转发数据。每个被传送的数据报都被封装在PPP包头内,该包头将会在到达接收方之后被去除。如果在阶段1选择使用数据压缩并且在阶段4完成了协商,数据将会在被传送之间进行压缩。类似的,如果如果已经选择使用数据加密并完成了协商,数据(或被压缩数据)将会在传送之前进行加密。 点对点隧道协议(PPTP)
PPTP是一个第2层的协议,将PPP数据桢封装在IP数据报内通过IP网络,如Internet传送。PPTP还可用于专用局域网络之间的连接。RFC草案"点对点隧道协议"对PPTP协议进行了说明和介绍。该草案由PPTP论坛的成员公司,包括微软,Ascend,3Com,和ECI等公司在1996年6月提交至IETF。可在如下站 http://www.ietf.org http://www.ietf.org参看草案的在线拷贝.PPTP使用一个TCP连接对隧道进行维护,使用通用路由封装(GRE)技术把数据封装成PPP数据桢通过隧道传送。可以对封装PPP桢中的负载数据进行加密或压缩。图7所示为如何在数据传递之前组装一个PPTP数据包。 第2层转发(L2F)
L2F是Cisco公司提出隧道技术,作为一种传输协议L2F支持拨号接入服务器将拨号数据流封装在PPP桢内通过广域网链路传送到L2F服务器(路由器)。L2F服务器把数据包解包之重新注入(inject)网络。与PPTP和L2TP不同,L2F没有确定的客户方。应当注意L2F只在强制隧道中有效。(自愿和强制隧道的介绍参看"隧道类型")。
第2层隧道协议(L2TP)
L2TP结合了PPTP和L2F协议。设计者希望L2TP能够综合PPTP和L2F的优势。
L2TP是一种网络层协议,支持封装的PPP桢在IP,X.25,桢中继或ATM等的网络上进行传送。当使用IP作为L2TP的数据报传输协议时,可以使用L2TP作为Internet网络上的隧道协议。L2TP还可以直接在各种WAN媒介上使用而不需要使用IP传输层。草案RFC"第2层隧道协议"对L2TP进行了说明和介绍。该文档于1998年1月被提交至IETF。可以在以下网 http://www.ietf.org http://www.ietf.org获得草案拷贝。
IP网上的L2TP使用UDP和一系列的L2TP消息对隧道进行维护。L2TP同样使用UDP将L2TP协议封装的PPP桢通过隧道发送。可以对封装PPP桢中的负载数据进行加密或压缩。图8所示为如何在传输之前组装一个L2TP数据包。 PPTP与L2TP
PPTP和L2TP都使用PPP协议对数据进行封装,然后添加附加包头用于数据在互联网络上的传输。尽管两个协议非常相似,但是仍存在以下几方面的不同:
1.PPTP要求互联网络为IP网络。L2TP只要求隧道媒介提供面向数据包的点对点的连接。L2TP可以在IP(使用UDP),桢中继永久虚拟电路(PVCs),X.25虚拟电路(VCs)或ATM VCs网络上使用。 2.PPTP只能在两端点间建立单一隧道。L2TP支持在两端点间使用多隧道。使用L2TP,用户可以针对不同的服务质量创建不同的隧道。 3.L2TP可以提供包头压缩。当压缩包头时,系统开销(overhead)占用4个字节,而PPTP协议下要占用6个字节。 4.L2TP可以提供隧道验证,而PPTP则不支持隧道验证。但是当L2TP或PPTP与IPSEC共同使用时,可以由IPSEC提供隧道验证,不需要在第2层协议上验证隧道。
IPSec隧道模式
IPSEC是第3层的协议标准,支持IP网络上数据的安全传输。本文将在"高级安全"一部分中对IPSEC进行详细的总体介绍,此处仅结合隧道协议讨论IPSEC协议的一个方面。除了对IP数据流的加密机制进行了规定之外,IPSEC还制定了IPoverIP隧道模式的数据包格式,一般被称作IPSEC隧道模式。一个IPSEC隧道由一个隧道客户和隧道服务器组成,两端都配置使用IPSEC隧道技术,采用协商加密机制。
为实现在专用或公共IP网络上的安全传输,IPSEC隧道模式使用的安全方式封装和加密整个IP包。然后对加密的负载再次封装在明文IP包头内通过网络发送到隧道服务器端。隧道服务器对收到的数据报进行处理,在去除明文IP包头,对内容进行解密之后,获的最初的负载IP包。负载IP包在经过正常处理之后被路由到位于目标网络的目的地。 IPSEC隧道模式具有以下功能和局限: 1.只能支持IP数据流 2.工作在IP栈(IPstack)的底层,因此,应用程序和高层协议可以继承IPSEC的行为。 3.由一个安全策略(一整套过滤机制)进行控制。安全策略按照优先级的先后顺序创建可供使用的加密和隧道机制以及验证方式。当需要建立通讯时,双方机器执行相互验证,然后协商使用何种加密方式。此后的所有数据流都将使用双方协商的加密机制进行加密,然后封装在隧道包头内。
关于IPSEC的详细介绍参看本文稍后的"高级安全"部分。
可以把IPSEC想象成是位于TCP/IP协议栈的下层协议。该层由每台机器上的安全策略和发送、接受方协商的安全关联(security association)进行控制。安全策略由一套过滤机制和关联的安全行为组成。如果一个数据包的IP地址,协议,和端口号满足一个过滤机制,那么这个数据包将要遵守关联的安全行为。
协商安全关联(NegotiatedSecurityAssociation) 上述第一个满足过滤机制的数据包将会引发发送和接收方对安全关联进行协商。ISAKMP/OAKLEY是这种协商采用的标准协议。在一个ISAKMP/OAKLEY交换过程中,两台机器对验证和数据安全方式达成一致,进行相互验证,然后生成一个用于随后的数据加密的个共享密钥。
验证包头 通过一个位于IP包头和传输包头之间的验证包头可以提供IP负载数据的完整性和数据验证。验证包头包括验证数据和一个序列号,共同用来验证发送方身份,确保数据在传输过程中没有被改动,防止受到第三方的攻击。IPSEC验证包头不提供数据加密;信息将以明文方式发送。 封装安全包头 为了保证数据的保密性并防止数据被第3方窃取,封装安全负载(ESP)提供了一种对IP负载进行加密的机制。另外,ESP还可以提供数据验证和数据完整性服务;因此在IPSEC包中可以用ESP包头替代AH包头。 用户管理 在选择VPN技术时,一定要考虑到管理上的要求。一些大型网络都需要把每个用户的目录信息存放在一台中央数据存储设备中(目录服务)便于管理人员和应用程序对信息进行添加,修改和查询。每一台接入或隧道服务器都应当能够维护自己的内部数据库,存储每一名用户的信息,包括用户名,口令,以及拨号接入的属性等。但是,这种由多台服务器维护多个用户帐号的作法难以实现及时的更新,给管理带来很大的困难。因此,大多数的管理人员采用在目录服务器,主域控制器或RADIUS服务器上建立一个主帐号数据库的方法,进行有效管理。
RAS支持 微软的远程接入服务器(RAS)使用域控制器或RADIUS服务器存储每名用户的信息。因为管理员可以在单独的数据库中管理用户信息中的拨号许可信息,所以使用一台域控制器能够简化系统管理。
微软的RAS最初被用作拨号用户的接入服务器。现在,RAS可以作为PPTP和L2TP协议的隧道服务器(NT5将支持L2TP)。这些第2层的VPN方案继承了已有的拨号网络全部的管理基础。
扩展性 通过使用循环DNS在同属一个安全地带(securityperimeter)的VPN隧道服务器之间进行请求分配,可以实现容余和负荷平衡。一个安全地带只具有一个对外域名,但拥有多个IP地址,负荷可以在所有的IP地址之间进行任意的分配。所有的服务器可以使用一个共享数据库,如NT域控制器验证访问请求。
RADIUS 远程验证用户拨入服务(RADIUS)协议是管理远程用户验证和授权的常用方法。RADIUS是一种基于UDP协议的超轻便(lightweight)协议。RADIUS服务器可以被放置在Internet网络的任何地方为客户NAS提供验证(包括PPP PAP,CHAP,MSCHAP和EAP)。另外,RADIUS服务器可以提供代理服务将验证请求转发到远端的RADIUS服务器。例如,ISP之间相互合作,通过使用RADIUS代理服务实现漫游用户在世界各地使用本地ISP提供的拨号服务连接Internet和VPN。如果ISP发现用户名不是本地注册用户,就会使用RADIUS代理将接入请求转发给用户的注册网络。这样企业在掌握授权权利的前提下,有效的使用ISP的网络基础设施,使企业的网络费用开支实现最小化。
记费,审计和报警 为有效的管理VPN系统,网络管理人员应当能够随时跟踪和掌握以下情况:系统的使用者,连接数目,异常活动,出错情况,以及其它可能预示出现设备故障或网络受到攻击的现象。日志记录和实时信息对记费,审计和报警或其它错误提示具有很大帮助。例如,网络管理人员为了编制帐单数据需要知道何人在使用系统以及使用了多长时间。异常活动可能预示着存在对系统的不正确使用或系统资源出现不足。对设备进行实时的监测可以在系统出现问题时及时向管理员发出警告。一台隧道服务器应当能够提供以上所有信息以及对数据进行正确处理所需要的事件日志,报告和数据存储设备。
NT4.0在RAS中提供了对记费,审计和报警的支持。RADIUS协议对呼叫-记费请求(call-accountingrequest)进行了规定。当RAS向RADIUS发送呼叫-记费请求后由后者建立记费记录分别记录呼叫开始,结束以及预定中断的情况。 结论
如本文所述,Windows系统自带的VPN服务允许用户或企业通过公共或专用网络与远端服务器,分支机构,或其他公司建立安全和可靠的连接。虽然上述通讯过程发生公共互联网络上,但是用户端如同使用专用网络进行通讯一样建立起安全的连接。使用Windows系统的VPN技术可以解决在当今远程通讯量日益增大,企业全球运作分布广泛的情况下,员工需要访问中央资源,企业相互之间必须能够进行及时和有效的通讯的问题。
应该很全面了!
不错,谢谢
欢迎光临 千家论坛_智能建筑与智能家居技术交流社区 (http://bbs.qianjia.com:8020/) | Powered by Discuz! X3.2 |