附 VPN工作原理
黄 杰
信息安全研究中心
VPN
主要内容
1 VPN概述
2 隧道技术
3 用户认证
4 L2TP协议
5 应用IPSec构建VPN
1 VPN概述
VPN概述
VPN(Virtual Private Network,虚拟专用网)。“虚拟” (Virtual)指的是一种逻辑连接,“专用或私有”(Private)指的是排他性的连接,“网络”(Network)指按某种协议进行通信的计算机集合。
虚拟专用网络可以实现不同网络的组件和资源之间的相互连接。虚拟专用网络能够利用Internet或其它公共互联网络的基础设施为用户创建隧道,并提供与专用网络一样的安全和功能保障。
VPN是对在公共通信基础设施上构建的“虚拟专用或私有网”连接技术的总称。VPN与真实网络的差别在于VPN以隔离方式通过公用网,VPN外的节点不能与VPN内的节点通信。
VPN的技术特点
采用加密、认证和隧道技术,利用公共通信网络设施的一部分来发送专用网络信息。
为相互通信的节点建立一个相对封闭的、逻辑上的专用网络。
只允许特定的利益集团内(VPN内部)建立对等连接,保证在网络中传输的数据的保密性。
能灵活利用多种公用远程通信网络来实现VPN内容不通信。
PSTN/N-ISDN, PSPDN, FR/ATM,或公用IP网等
实现不同内部局域网之间、网络与主机之间的远程信息交换。
VPN的技术特点
性价比高
具有服务质量保障措施
能够提供强大的接入控制和入侵保护,保证内部信息交换的保密性。
VPN分类
根据网络类型的差异,IP VPN可分为两种类型:Client-LAN和LAN-LAN类型。
Client-LAN类型的VPN
Client-LAN类型的VPN也称为Access VPN,即远程访问方式的VPN。它提供了一种安全的远程访问手段,例如,出差在外的员工,有远程办公需要的分支机构,都可以利用这种类型的VPN,实现对企业内部网络资源进行安全的远程访问。
VPN设备
INTERNET
VPN隧道
网络A
Client-LAN类型示意图
LAN-LAN类型的VPN
为了在不同局域网之间建立安全的数据传输通道,例如在企业内部各分支机构之间或者企业与其合作者之间的网络进行互联,可以采用LAN-LAN类型的VPN。而采用LAN-LAN类型的VPN,可以利用基本的Internet和Intranet网络建立起全球范围内物理的连接,再利用VPN的隧道协议实现安全保密需要,就可以满足公司总部与分支机构以及合作企业间的安全网络连接。
VPN设备
INTERNET
VPN隧道
网络A
LAN-LAN类型示意图
VPN设备
网络B
VPN基本原理
VPN的基本思想很容易理解,假设公司有两个网络,相距很远,要用VPN连接,由两个VPN设备建立专用通道,数据传输过程如下图所示:
VPN设备1
INTERNET
网络1
VPN设备2
网络2
主机A
主机B
V1
V2
A
B
B
用户数据
A
B
用户数据
新增头部
原分组
VPN设备1封装后的分组
V1
V2
A
B
B
用户数据
A
B
用户数据
新增头部
VPN设备2拆封后的分组
VPN设备2拆封前的分组
VPN基本原理示意图
(1)主机A建立分组,将其IP地址作为源地址,将主机B的IP地址作为目标地址,将分组发送到VPN设备1,通常是网关。
(2)分组到达VPN设备1,VPN设备1在分组中增加一新头。在此分组中,将分组的源IP地址写为自己的IP地址V1,目标地址写为对等VPN设备2的IP地址V2,然后发送。
(3)分组通过Internet到达VPN设备2,VPN设备2能够识别新增的头部,对其进行拆除,从而得到第1步由主机A生成的原分组,然后根据分组的IP地址信息,进行正常的转发。
实现VPN的关键技术
实现VPN的关键技术有:
隧道化协议(Tunneling Protocol)
隧道技术是将分组封装(Capsule)的技术,它是VPN实现以内部网地址通信与多协议通信的重要功能,PPTP、L2TP、IPSec、GRE和GTP被广泛采用。
认证协议
在远程访问VPN中,使用了用户名及口令,它们被用来判断用户名是否有权访问。PPP采用了PAP(Password Authentication Protocol)及CHAP(Challenge Handshake Authentication Protocol)等规程进行认证。PPTP及L2TP等隧道协议采用这种PPP的认证协议。
加密技术
加密技术由IPSec ESP(Encapsulating Secutity Payload)。
2 隧道技术
隧道技术是一种通过使用互联网络的基础设施在网络之间传递数据的方式。使用隧道传递的数据(或负载)可以是不同协议的数据帧或包。隧道协议将这些其它协议的数据帧或包重新封装在新的包头中发送。新的包头提供了路由信息,从而使封装的负载数据能够通过互联网络传递。
被封装的数据包在隧道的两个端点之间通过公共互联网络进行路由。被封装的数据包在公共互联网络上传递时所经过的逻辑路径称为隧道。一旦到达网络终点,数据将被解包并转发到最终目的地。注意隧道技术是指包括数据封装,传输和解包在内的全过程。
封装化和加密方式多种多样。一般来说,只将数据加密的通信路径不能称作隧道。在一个分组上再加上一个头标才称作封装化。对封装化的数据分组是否加密取决于隧道协议。例如IPSec的ESP是加密封装化的协议,L2TP则不对分组加密,保持原样地进行封装。
现有的封装协议主要包括两类:
一类是二层隧道协议,由于隧道协议封装的是数据链路层的数据包,即OSI开放系统互联模型中的第2层的数据包,所以称之为第2层隧道协议,如PPTP,L2F,L2TP主要用于构建远程访问型的VPN;
另一类是三层隧道协议,如IPSec、GRE等,它把第3层隧道协议即网络层的各种协议直接封装到隧道协议中进行传输,由于被封装的是第3层的网络协议,所以称为第3层隧道协议。它主要应用于构建LAN-LAN型的VPN。
二层隧道协议
RFC2341(1999年5月)
1999年7月发布RFC2637
1999年8月发布RFC2661
现状
传送多个协议及内部IP地址的第2层转发协议
在IP网中通过PPP帧实现的连接型隧道化协议
综合L2F及PPTP的数据链路层的链接隧道化协议(无加密功能)
内容
第2层转发
点对点隧道协议
第2层隧道化协议
全称
Cisco
微软,朗讯,3COM等
Cisco,微软,朗讯,3COM等
开发商
L2F
PPTP
L2TP
协议
分项
三层隧道协议
3 用户认证
用户认证是VPN的特点之一。在远程访问只有通过认证的远程用户才能穿越Internet不受限制地利用内部网资源。这种认证机制主要由PPP功能实现,方法也有多种。RADIUS是为接入服务器开发的认证系统,具有统一管理多个访问用户的用户数据库功能。
PPP认证方式
C2 27
RFC 2284
PPP Extensible Authentication Protocol
EAP
C2 23 05
RFC 1994
Challenge-Handshake Authentication Protocol
CHAP
(with MD5)
C0 23
RFC 1334
Password Authentication Protocol
PAP
LCP参数
RFC
名称
略语
主要的PPP认证方式
在链路建立的第2个阶段进行用户验证,最常用的认证协议有口令验证协议PAP和挑战-握手协议CHAP。
(1)口令验证协议PAP。口令验证协议PAP是一种简单的明文验证方式。网络接入服务器NAS (Network Access Server)要求用户提供用户名和口令,PAP以明文方式返回用户信息。这种验证方式的安全性较差,第三方可以很容易的获取被传送的用户名和口令,并利用这些信息与NAS建立连接获取NAS提供的所有资源。因此PAP无法提供避免受到第三方攻击的保障措施。
(2)挑战-应答验证协议CHAP
A=fmd5
(S,口令)
B=fmd5
(S,口令)
比较A和B
挑战 生成挑战码(S)
应答 计算出应答值(A)
成功/失败
CHAP是安全性比PAP更高的认证协议,在网上传递的不是口令而是一次性的随机数。CHAP采取了挑战应答认证方式,下图显示了认证流程。
认证者
(Authenticator)
被认证者
(peer)
(3)PPP扩展认证协议EAP
PPP扩展认证协议(EAP)是一个用于PPP认证的通用协议,可以支持多种认证方法。EAP并不在链路建立阶段指定认证方法,而是把这个过程推迟到认证阶段。这样认证方就可以在得到更多的信息以后再决定使用什么认证方法。这种机制还允许PPP认证方简单地把收到的认证报文透传给后方的认证服务器,由后方的认证服务器来真正实现各种认证方法。
基于服务器的认证方式—RADIUS
RADIUS(Remote Authentication Dial In User Service)由朗讯开发,1997年1月以RFC2085公布了第一版规范。原先的目的是为拨号用户进行认证和计费,后来经过多次改进,形成了一项通用的认证计费协议。
RADIUS是为了接入服务器开发的认证系统,它具有集中管理远程访问“拨号用户”的数据库功能。换句话说, RADIUS是存放使用者的“用户名”及“口令”的数据库。接受远程用户访问请求的接入服务器向RADIUS服务器查询该用户是否为合法用户。
拨号用户
拨号用户
电话网
NAS
认证数据库
权限认可数据库
计费信息数据库
RADIUS客户(接入服务器)
RADIUS
RADIUS用户认证的体系结构
RADIUS的基本工作原理
用户接入NAS,NAS向RADIUS服务器使用Access-Require数据包提交用户信息,包括用户名、密码等相关信息,其中用户密码是经过MD5加密的,双方使用共享密钥,这个密钥不经过网络传播; RADIUS服务器对用户名和密码的合法性进行校验,必要时可以提出一个challenge,要求进一步对用户认证,也可以对NAS进行类似的认证;如果合法,给NAS返回Access-Require数据包,允许用户进行下一步工作,否则返回Access-Reject数据包,拒绝用户访问。
4 L2TP协议
1、拨号PPP连接
电话网
L
A
C
L
N
S
服务器
L2TP隧道
L2TP服务器
拨号用户
PPP
控制数据
2、隧道建立
IP2
UDP
L2TP
PPP
控制数据
4
PPP
控制数据
IP2
UDP
L2TP
PPP
控制数据
3
5
6、PPP通信
PPP
用户数据
IP1
IP2
UDP
L2TP
PPP
用户数据
IP1
7
8
基于L2TP的远程终端与内部网通信原理
L2TP两种实现模式
可以将L2TP安装于不同的位置:
一种是将L2TP集成到远程用户主机。此时的用户主机将充当LAC。这种配置称为自愿模式。在这种模式中,用户自主地对L2TP进行配置和管理。
另一种是将L2TP安装于NAS,这种配置称为强制模式。在这种模式下,对L2TP实现的配置和管理都被委托于NAS,用户能透明地得到L2TP服务。
L2TP协议工作流程
L2TP将PPP分组进行隧道封装并在不同的传输媒体上传输,首先要在传输的两端建立隧道,即建立控制连接,建好隧道后,在隧道内再建立会话连接,会话连接建立完毕,就可以进行数据传输了,此时的用户数据是以PPP帧封装的,该PPP帧再被L2TP帧封装。会话结束后,先拆除会话连接,再拆除隧道。至此,就完成一次数据传输的全过程。
(1)建立隧道
(2)建立会话
(3)传输用户数据(PPP帧)
(4)拆除会话
(5)拆除隧道
L2TP头
L2TP协议需传送用户数据和控制消息两种类型帧,依据封装的具体内容不同,L2TP头的格式将有所不同,有两种L2TP头:一种是数据帧头;另一种是控制帧头。二者由帧头第一位T位即类型位区分,为0表示数据帧,为1表示控制帧。
(1)控制帧
建立、维护、拆除隧道和会话时使用。L2TP控制消息由一个L2TP头加上一个或多个AVP构成。AVP,Attribute Value Pair指属性类型及属性值,L2TP所有的命令都以AVP表示。
其他(AVP)…
消息类型AVP
Nr
Ns
会话ID
隧道ID
长度
T L 0 0 F 0 0 0 0 Ver
L2TP的控制帧格式
(2)数据帧
传输数据时使用。L2TP对PPP分组进行封装,格式如图:
偏移量(可选)
偏移量(可选)
Nr(可选)
Ns(可选)
会话ID
隧道ID
长度(可选)
T L R 0 F 0 S P 0 Ver
L2TP的数据帧格式
5 应用IPSec构建VPN
概述
IPSec是IETF以RFC形式公布的一组安全IP协议集,是在IP层提供保护的安全协议标准,IPSec将几种安全技术结合形成一个比较完整的安全体系结构,它通过在IP协议中增加两个基于密码的安全机制——认证头(AH)和封装安全载荷(ESP)来支持IP数据项的可认证性、完整性和机密性。
IPSec工作涉及一个核心概念:安全关联(SA)。若要深刻理解安全关联,还需要对密钥管理IKE(Internet Key Exchange)协议有初步的了解。
IKE概述
IKE用于协商IPSec安全关联(SA)。这一过程要求IPSec系统首先互相验明自己的身份,并且建立ISAKMP或IKE共享密钥。
在阶段1,IKE在两个对等体间创建一个认证过的安全通道,它被称为IKE安全关联。Diffie-Hellman密钥协定在这个阶段中总要被执行。
在阶段2,IKE协商IPSec安全关联,并产生IPSec所要求的密钥材料。发送端发送一变换集,接收端选择其中一个。
IKE协商安全关联步骤
ISAKMP
Alice
Alice的电脑
ISAKMP
Alice
ISAKMP
Bob
Bob的电脑
会话
1、从Alice到Bob的外出数据包无SA
2、Alice的IKE(ISAKMP)开始与Bob的进行协商
3、协商结束,现在Alice与Bob已具有IKE和IPSecSA
IKE协商中全关联
IPSec是如何工作的
IPSec的操作可分为5个主要的步骤:
步骤1:确定IPSec过程的感兴趣的数据流,确定需要IPSec安全保护的数据流;
步骤2:IKE阶段1——在这个阶段中,IKE鉴别IPSec对等体并协商IKE安全关联,为阶段2中的IPSec安全关联协商建立安全通道;
步骤3:IKE阶段2——IKE协商IPSec安全关联参数,并在对等体中建立相匹配的IPSec安全关联;
步骤4:数据传送——基于保存在安全关联数据库中的IPSec参数和密钥,在IPSec对等体间传送数据;
步骤5:IPSec隧道终止——IPSec安全关联因被删除或超时而终止。
IPSec工作的5步过程
主机A
主机B
路由器A
路由器B
1、主机A向主机B发送触发性数据流
2、路由器A和B协商一个IKE阶段1会话
IKE SA
IKE phase 1
IKE SA
3、路由器A和B协商一个IKE阶段2会话
IPSec SA
IKE phase 2
IPSec SA
4、信息被通过IPSec隧道交换
IPSec 隧道
5、IPSec 隧道被终止
IPSec安全关联(SA)
每个IPSec连接能够提供加密、完整性、认证或三者全部。IPSec的安全关联是单向的。一个IPSec变换指定一种AH或ESP协议,及相应的算法与模式。
一天或100MB
更多SA属性(例如,生存时间)
7572CA49F7632946
密钥
AH,HMAC-MD5
IPSec变换
7a390BC1
安全参数索引(SPI)
目的地址
IPSec安全关联示例
谢谢
1、分布式环境中的加密设备可以支持链路加密和端对端加密。链路加密中每个节点都需要一套加密设备。而对于端对端加密,只需在两个终端执行加密和解密操作。
2、即使用户间的通信数据都被加密,攻击者仍能够通过流量分析来获取信息。克服该攻击的一个有效手段是对传输数据进行填充,例如在没有加密数据传输时,发送随机比特流。
3、密钥分配为需要传输加密数据的通信双方提供传递密钥的功能。为了提供安全的密钥分配,需要一系列的机制和协议保障其安全。
4、密钥分配通常会涉及到主密钥和会话密钥的使用,主密钥不经常被使用并长期存在;会话密钥临时生成和分发给通信双方。
5、随机或伪随机数发生器是许多密码函数在实际应用中必须具备的能力。其原则是产生的比特串不能够被预测。
帧中继(FR)是基于光纤数字传输和用户设备智能化、简化网络节点协议功能的一种快速分组交换技术。与相比FR更适合对速率和实时性要求更高的数据应用业务。
电信网分为传输、复用、交换、终端等几个部分,其中除终端以外的传输、复用和交换三个部分合起来统称为传递方式(也叫转移模式)ATM是异步转移模式的英文缩写,ATM综合了电路交换和分组交换的优点,即能灵活的分配带宽,又取消了复杂的流量控制和差错控制,使传输时延大大降低 .
SDH(SynchronosDigitalHierarchy)是一种新的数字传输体制。
DDN即数字数据网,是以传输数据信号为主的数字传输网络,DDN可以为用户提供点对点,点对多点的全数字、全透明、入网速率在2Mb/s以内的高质量数字专用传输通道,以满足用户对多媒体通信和组建中高速计算机通信网的需要。
ISDN 电话综合业务数字网(Integrated Services Digital Network,ISDN)
PSPDN, 英文全称: Packet Switched Public Data Network 中文解释:分组交换公用数据网
Ppp协议是点对点协议,是为在同等单元之间传输数据包这样的简单链路设计的链路层协议。设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案。
LAC(L2TP Access Concentrator)为L2TP接入集中器,是接受公网上的用户拨号的设备,是L2TP协议的客户/服务器模式的客户端。将已成帧的PPP分组进行适当的处理并封装入L2TP处理,发送给LNS。
LNS( L2TP Network Server),它是L2TP的服务器端。在LNS处,能进行L2TP封装或解封,并进行PPP处理。
NAS( Network Access Server ):即网络访问服务器,它能对用户提供可选的、临时的网络访问。