蒋文新
一 VPN概述
为了使得远程的企业员工可以与总部实时的交换数据信息。企业得向ISP租用网络提供服务。但公用网容易遭受各种安全攻击(比如拒绝服务攻击来堵塞正常的网络服务,或窃取重要的企业内部信息)
VPN这个概念的引进就是用来解决这个问题。它是利用公用网络来连接到企业私有网络。但在VPN中,用安全机制来保障机密型,真实可靠行,完整性严格的访问控制。这样就建立了一个逻辑上虚拟的私有网络。虚拟局域网提供了一个经济有效的手段来解决通过公用网络安全的交换私有信息。
二 VPN特性
一般VPN所具备的优点有以下几点:
a) 最小成本:无须购买网络设备和专用线路覆盖所有远程用户
b) 责任共享:通过购买公用网的资源,部分维护责任迁移至provider(更专业,有经验,是操作,维护成本降低)。
c) 安全性:
d) 保障Qos
e) 可靠性:如果一个VPN节点坏了,可以一个替换VPN建立起来绕过他,这种恢复工作是得VPN操作可以尽可能的延续
f) 可扩展性:可以通过从公用网申请更多得资源达到非常容易的扩展VPN,或者协商重构VPN
其中安全性是vpn最重要的一个特性,也是各类vpn产品所必须具备和支持的要素.
三 VPN的安全技术
目前VPN主要采用四项技术来保证安全,这四项技术分别是隧道技术(Tunneling)、加解密技术(Encryption & Decryption)、密钥管理技术(Key Management)、使用者与设备身份认证技术(Authentication)。
加解密技术是数据通信中一项较成熟的技术,VPN可直接利用现有技术。
密钥管理技术的主要任务是如何在公用数据网上安全地传递密钥而不被窃取。现行密钥管理技术又分为SKIP与ISAKMP/OAKLEY两种。SKIP主要是利用Diffie-Hellman的演算法则,在网络上传输密钥;在ISAKMP中,双方都有两把密钥,分别用于公用、私用。
身份认证技术最常用的是使用者名称与密码或卡片式认证等方式。
隧道指的是利用一种网络协议来传输另一种网络协议,它主要利用网络隧道协议来实现这种功能。网络隧道技术涉及了三种网络协议,即网络隧道协议、隧道协议下面的承载协议和隧道协议所承载的被承载协议。网络隧道技术是个关键技术,这项vpn的基本技术也是本文要详细和阐述的.
四 网络隧道协议
网络隧道是指在公用网建立一条数据通道(隧道),让数据包通过这条隧道传输。现有两种类型的网络隧道协议,一种是二层隧道协议,用于传输二层网络协议,它主要应用于构建远程访问虚拟专网(AccessVPN);另一种是三层隧道协议,用于传输三层网络协议,它主要应用于构建企业内部虚拟专网(IntranetVPN)和扩展的企业内部虚拟专网(Extranet VPN)。
二层隧道协议
第二层隧道协议是先把各种网络协议封装到PPP中,再把整个数据包装入隧道协议中。这种双层封装方法形成的数据包靠第二层协议进行传输。第二层隧道协议主要有以下三种:第一种是由微软、Ascend、3COM 等公司支持的 PPTP(Point to Point Tunneling Protocol,点对点隧道协议),在WindowsNT4.0以上版本中即有支持。
第二种是Cisco、北方电信等公司支持的L2F(Layer2Forwarding,二层转发协议),在 Cisco 路由器中有支持。
第三种由 IETF 起草,微软 Ascend 、Cisco、 3COM 等公司参与的 L2TP(Layer 2TunnelingProtocol,二层隧道协议)结合了上述两个协议的优点,L2TP协议是目前IETF的标准,由IETF融合PPTP与L2F而形成。这里就主要介绍一下 L2TP 网络协议。
其中,LAC 表示 L2TP 访问集中器(L2TPAccessConcentrator),是附属在交换网络上的具有 PPP 端系统和 L2TP 协议处理能力的设备,LAC 一般就是一个网络接入服务器 NAS(Network Access Server)它用于为用户通过 PSTN/ISDN 提供网络接入服务;LNS 表示 L2TP 网络服务器(L2TP Network Server),是 PPP 端系统上用于处理 L2TP 协议服务器端部分的软件。
在一个LNS和LAC对之间存在着两种类型的连接,一种是隧道(tunnel)连接,它定义了一个LNS和LAC对;另一种是会话(session)连接,它复用在隧道连接之上,用于表示承载在隧道连接中的每个 PPP 会话过程。
L2TP连接的维护以及PPP数据的传送都是通过L2TP消息的交换来完成的,这些消息再通过 UDP的1701端口承载于TCP/IP之上。L2TP消息可以分为两种类型,一种是控制消息,另一种是数据消息。控制消息用于隧道连接和会话连接的建立与维护。数据消息用于承载用户的 PPP 会话数据包。 L2TP 连接的维护以及 PPP 数据的传送都是通过 L2TP 消息的交换来完成的,这些消息再通过UDP的1701端口承载于 TCP/IP 之上。
控制消息中的参数用AVP值对(AttributeValuePair)来表示,使得协议具有很好的扩展性;在控制消息的传输过程中还应用了消息丢失重传和定时检测通道连通性等机制来保证了 L2TP 层传输的可靠性。数据消息用于承载用户的 PPP 会话数据包。L2TP 数据消息的传输不采用重传机制,所以它无法保证传输的可靠性,但这一点可以通过上层协议如TCP等得到保证;数据消息的传输可以根据应用的需要灵活地采用流控或不流控机制,甚至可以在传输过程中动态地使用消息序列号从而动态地激活消息顺序检测和流量控制功能;在采用流量控制的过程中,对于失序消息的处理采用了缓存重排序的方法来提高数据传输的有效性。
L2TP 还具有适用于VPN 服务的以下几个特性:
· 灵活的身份验证机制以及高度的安全性
L2TP 可以选择多种身份验证机制(CHAP、PAP等),继承了PPP的所有安全特性,L2TP 还可以对隧道端点进行验证,这使得通过L2TP所传输的数据更加难以被攻击。而且根据特定的网络安全要求还可以方便地在L2TP之上采用隧道加密、端对端数据加密或应用层数据加密等方案来提高数据的安全性。
· 内部地址分配支持
LNS可以放置于企业网的防火墙之后,它可以对于远端用户的地址进行动态的分配和管理,可以支持DHCP和私有地址应用(RFC1918)等方案。远端用户所分配的地址不是Internet地址而是企业内部的私有地址,这样方便了地址的管理并可以增加安全性。
· 网络计费的灵活性
可以在LAC和LNS两处同时计费,即ISP处(用于产生帐单)及企业处(用于付费及审记)。L2TP能够提供数据传输的出入包数,字节数及连接的起始、结束时间等计费数据,可以根据这些数据方便地进行网络计费。
· 可靠性
L2TP 协议可以支持备份 LNS,当一个主 LNS 不可达之后,LAC(接入服务器)可以重新与备份 LNS 建立连接,这样增加了 VPN 服务的可靠性和容错性。
· 统一的网络管理
L2TP协议将很快地成为标准的RFC协议,有关L2TP的标准MIB也将很快地得到制定,这样可以统一地采用 SNMP 网络管理方案进行方便的网络维护与管理。
三层隧道协议
第三层隧道协议是把各种网络协议直接装入隧道协议中,形成的数据包依靠第三层协议进行传输。三层隧道协议并非是一种很新的技术,早已出现的 RFC 1701 Generic Routing Encapsulation(GRE)协议就是个三层隧道协议。新出来的 IETF 的 IP 层加密标准协议 IPSec 协议也是个三层隧道协议。
IPSec(IPSecurity)是由一组RFC文档组成,定义了一个系统来提供安全协议选择、安全算法,确定服务所使用密钥等服务,从而在IP层提供安全保障。 它不是一个单独的协议,它给出了应用于IP层上网络数据安全的一整套体系结构,它包括网络安全协议 Authentication Header(AH)协议和 Encapsulating Security Payload(ESP)协议、密钥管理协议Internet Key Exchange (IKE)协议和用于网络验证及加密的一些算法等。下面就IPSec的认证与加密机制和协议分别做一些详细说明。
1. IPSec认证包头(AH):
它是一个用于提供IP数据报完整性和认证的机制。其完整性是保证数据报不被无意的或恶意的方式改变,而认证则验证数据的来源(识别主机、用户、网络等)。AH本身其实并不支持任何形式的加密,它不能保证通过Internet发送的数据的可信程度。AH只是在加密的出口、进口或使用受到当地政府限制的情况下可以提高全球Intenret的安全性。当全部功能实现后,它将通过认证IP包并且减少基于IP欺骗的攻击机率来提供更好的安全服务。AH使用的包头放在标准的IPv4和IPv6包头和下一个高层协议帧(如TCP、UDP、ICMP等)之间。
AH协议通过在整个IP数据报中实施一个消息文摘计算来提供完整性和认证服务。一个消息文摘就是一个特定的单向数据函数,它能够创建数据报的唯一的数字指纹。消息文摘算法的输出结果放到AH包头的认证数据(Authentication_Data)区。消息文摘5算法(MD5)是一个单向数学函数。当应用到分组数据中时,它将整个数据分割成若干个128比特的信息分组。每个128比特为一组的信息是大分组数据的压缩或摘要的表示。当以这种方式使用时,MD5只提供数字的完整性服务。一个消息文摘在被发送之前和数据被接收到以后都可以根据一组数据计算出来。如果两次计算出来的文摘值是一样的,那么分组数据在传输过程中就没有被改变。这样就防止了无意或恶意的窜改。在使用HMAC-MD5认证过的数据交换中,发送者使用以前交换过的密钥来首次计算数据报的64比特分组的MD5文摘。从一系列的16比特中计算出来的文摘值被累加成一个值,然后放到AH包头的认证数据区,随后数据报被发送给接收者。接收者也必须知道密钥值,以便计算出正确的消息文摘并且将其与接收到的认证消息文摘进行适配。如果计算出的和接收到的文摘值相等,那么数据报在发送过程中就没有被改变,而且可以相信是由只知道秘密密钥的另一方发送的。
2. 封包安全协议(ESP)包头:
它提供IP数据报的完整性和可信性服务ESP协议是设计以两种模式工作的:隧道(Tunneling)模式和传输(Transport)模式。两者的区别在于IP数据报的ESP负载部分的内容不同。在隧道模式中,整个IP数据报都在ESP负载中进行封装和加密。当这完成以后,真正的IP源地址和目的地址都可以被隐藏为Internet发送的普通数据。这种模式的一种典型用法就是在防火墙-防火墙之间通过虚拟专用网的连接时进行的主机或拓扑隐藏。在传输模式中,只有更高层协议帧(TCP、UDP、ICMP等)被放到加密后的IP数据报的ESP负载部分。在这种模式中,源和目的IP地址以及所有的IP包头域都是不加密发送的。
IPSec要求在所有的ESP实现中使用一个通用的缺省算法即DES-CBC算法。美国数据加密标准(DES)是一个现在使用得非常普遍的加密算法。它最早是在由美国政府公布的,最初是用于商业应用。到现在所有DES专利的保护期都已经到期了,因此全球都有它的免费实现。IPSecESP标准要求所有的ESP实现支持密码分组链方式(CBC)的DES作为缺省的算法。DES-CBC通过对组成一个完整的IP数据包(隧道模式)或下一个更高的层协议帧(传输模式)的8比特数据分组中加入一个数据函数来工作。DES-CBC用8比特一组的加密数据(密文)来代替8比特一组的未加密数据(明文)。一个随机的、8比特的初始化向量(IV)被用来加密第一个明文分组,以保证即使在明文信息开头相同时也能保证加密信息的随机性。DES-CBC主要是使用一个由通信各方共享的相同的密钥。正因为如此,它被认为是一个对称的密码算法。接收方只有使用由发送者用来加密数据的密钥才能对加密数据进行解密。因此,DES-CBC算法的有效性依赖于秘密密钥的安全,ESP使用的DES-CBC的密钥长度是56比特。
3. Internet 密钥交换协议(IKE):
用于在两个通信实体协商和建立安全相关,交换密钥。安全相关(SecurityAssociation)是IPSec中的一个重要概念。一个安全相关表示两个或多个通信实体之间经过了身份认证,且这些通信实体都能支持相同的加密算法,成功地交换了会话密钥,可以开始利用 IPSec 进行安全通信。IPSec协议本身没有提供在通信实体间建立安全相关的方法,利用 IKE建立安全相关。IKE定义了通信实体间进行身份认证、协商加密算法以及生成共享的会话密钥的方法。IKE中身份认证采用共享密钥和数字签名两种方式,密钥交换采用 Diffie Hellman 协议。安全相关也可以通过手工方式建立,但是当 VPN 中结点增多时,手工配置将非常困难。
由此,IPSec 提供了以下几种网络安全服务:
· 私有性 - IPsec 在传输数据包之前将其加密,以保证数据的私有性
· 完整性 - IPsec在目的地要验证数据包,以保证该数据包在传输过程中没有被替换
· 真实性 - IPsec 端要验证所有受 IPsec 保护的数据包
· 反重复 -IPsec防止了数据包被扑捉并重新投放到网上,即目的地会拒绝老的或重复的数据包;它通过与 AH 或 ESP 一起工作的序列号实现
五 小结
VPN综合了专用和公用网络的优点,允许有多个站点的公司拥有一个假想的完全专有的网络,而使用公用网络作为其站点之间交流的线路,它通过可靠的加密技术方法保证其安全性。I P s e c是VPN隧道协议中一个相当新的标准,是实现I n t e r n e t的I P协议级安全可靠的一种方法,必将成为各个VPN产品所支持的业界标准。
摘自 上海计算机用户协会
|