东南大学信息安全学科研究生学位课网络信息安全理论与技术黄杰信息安全研究中心附VPN工作原理VPN•主要内容–1VPN概述–2隧道技术–3用户认证–4L2TP协议–5应用IPSec构建VPN1VPN概述•1.1VPN概述•VPN(VirtualPrivateNetwork,虚拟专用网)。“虚拟”(Virtual)指的是一种逻辑连接,“专用或私有”(Private)指的是排他性的连接,“网络”(Network)指按某种协议进行通信的计算机集合。•虚拟专用网络可以实现不同网络的组件和资源之间的相互连接。虚拟专用网络能够利用Internet或其它公共互联网络的基础设施为用户创建隧道,并提供与专用网络一样的安全和功能保障。•VPN是对在公共通信基础设施上构建的“虚拟专用或私有网”连接技术的总称。VPN与真实网络的差别在于VPN以隔离方式通过公用网,VPN外的节点不能与VPN内的节点通信。VPN的技术特点•采用加密、认证和隧道技术,利用公共通信网络设施的一部分来发送专用网络信息。•为相互通信的节点建立一个相对封闭的、逻辑上的专用网络。•只允许特定的利益集团内(VPN内部)建立对等连接,保证在网络中传输的数据的保密性。•能灵活利用多种公用远程通信网络来实现VPN内容不通信。–PSTN/N-ISDN,PSPDN,FR/ATM,或公用IP网等–实现不同内部局域网之间、网络与主机之间的远程信息交换。VPN的技术特点•性价比高•具有服务质量保障措施•能够提供强大的接入控制和入侵保护,保证内部信息交换的保密性。1.2VPN分类•根据网络类型的差异,IPVPN可分为两种类型:Client-LAN和LAN-LAN类型。•Client-LAN类型的VPNClient-LAN类型的VPN也称为AccessVPN,即远程访问方式的VPN。它提供了一种安全的远程访问手段,例如,出差在外的员工,有远程办公需要的分支机构,都可以利用这种类型的VPN,实现对企业内部网络资源进行安全的远程访问。VPN设备INTERNETVPN隧道网络AClient-LAN类型示意图•LAN-LAN类型的VPN–为了在不同局域网之间建立安全的数据传输通道,例如在企业内部各分支机构之间或者企业与其合作者之间的网络进行互联,可以采用LAN-LAN类型的VPN。而采用LAN-LAN类型的VPN,可以利用基本的Internet和Intranet网络建立起全球范围内物理的连接,再利用VPN的隧道协议实现安全保密需要,就可以满足公司总部与分支机构以及合作企业间的安全网络连接。VPN设备INTERNETVPN隧道网络ALAN-LAN类型示意图VPN设备网络B1.3VPN基本原理•VPN的基本思想很容易理解,假设公司有两个网络,相距很远,要用VPN连接,由两个VPN设备建立专用通道,数据传输过程如下图所示:VPN设备1INTERNET网络1VPN设备2网络2主机A主机BV1V2ABB用户数据AB用户数据新增头部原分组VPN设备1封装后的分组V1V2ABB用户数据AB用户数据新增头部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地址信息,进行正常的转发。1.4实现VPN的关键技术•实现VPN的关键技术有:•隧道化协议(TunnelingProtocol)隧道技术是将分组封装(Capsule)的技术,它是VPN实现以内部网地址通信与多协议通信的重要功能,PPTP、L2TP、IPSec、GRE和GTP被广泛采用。•认证协议在远程访问VPN中,使用了用户名及口令,它们被用来判断用户名是否有权访问。PPP采用了PAP(PasswordAuthenticationProtocol)及CHAP(ChallengeHandshakeAuthenticationProtocol)等规程进行认证。PPTP及L2TP等隧道协议采用这种PPP的认证协议。•加密技术加密技术由IPSecESP(EncapsulatingSecutityPayload)。2隧道技术•隧道技术是一种通过使用互联网络的基础设施在网络之间传递数据的方式。使用隧道传递的数据(或负载)可以是不同协议的数据帧或包。隧道协议将这些其它协议的数据帧或包重新封装在新的包头中发送。新的包头提供了路由信息,从而使封装的负载数据能够通过互联网络传递。•被封装的数据包在隧道的两个端点之间通过公共互联网络进行路由。被封装的数据包在公共互联网络上传递时所经过的逻辑路径称为隧道。一旦到达网络终点,数据将被解包并转发到最终目的地。注意隧道技术是指包括数据封装,传输和解包在内的全过程。•封装化和加密方式多种多样。一般来说,只将数据加密的通信路径不能称作隧道。在一个分组上再加上一个头标才称作封装化。对封装化的数据分组是否加密取决于隧道协议。例如IPSec的ESP是加密封装化的协议,L2TP则不对分组加密,保持原样地进行封装。•现有的封装协议主要包括两类:–一类是二层隧道协议,由于隧道协议封装的是数据链路层的数据包,即OSI开放系统互联模型中的第2层的数据包,所以称之为第2层隧道协议,如PPTP,L2F,L2TP主要用于构建远程访问型的VPN;–另一类是三层隧道协议,如IPSec、GRE等,它把第3层隧道协议即网络层的各种协议直接封装到隧道协议中进行传输,由于被封装的是第3层的网络协议,所以称为第3层隧道协议。它主要应用于构建LAN-LAN型的VPN。2.1二层隧道协议协议分项L2TPPPTPL2F开发商Cisco,微软,朗讯,3COM等微软,朗讯,3COM等Cisco全称第2层隧道化协议点对点隧道协议第2层转发内容综合L2F及PPTP的数据链路层的链接隧道化协议(无加密功能)在IP网中通过PPP帧实现的连接型隧道化协议传送多个协议及内部IP地址的第2层转发协议现状1999年8月发布RFC26611999年7月发布RFC2637RFC2341(1999年5月)2.2三层隧道协议3用户认证•用户认证是VPN的特点之一。在远程访问只有通过认证的远程用户才能穿越Internet不受限制地利用内部网资源。这种认证机制主要由PPP功能实现,方法也有多种。RADIUS是为接入服务器开发的认证系统,具有统一管理多个访问用户的用户数据库功能。3.1PPP认证方式略语名称RFCLCP参数PAPPasswordAuthenticationProtocolRFC1334C023CHAP(withMD5)Challenge-HandshakeAuthenticationProtocolRFC1994C22305EAPPPPExtensibleAuthenticationProtocolRFC2284C227主要的PPP认证方式•在链路建立的第2个阶段进行用户验证,最常用的认证协议有口令验证协议PAP和挑战-握手协议CHAP。•(1)口令验证协议PAP。口令验证协议PAP是一种简单的明文验证方式。网络接入服务器NAS(NetworkAccessServer)要求用户提供用户名和口令,PAP以明文方式返回用户信息。这种验证方式的安全性较差,第三方可以很容易的获取被传送的用户名和口令,并利用这些信息与NAS建立连接获取NAS提供的所有资源。因此PAP无法提供避免受到第三方攻击的保障措施。(2)挑战-应答验证协议CHAPA=fmd5(S,口令)B=fmd5(S,口令)比较A和B挑战生成挑战码(S)应答计算出应答值(A)成功/失败CHAP是安全性比PAP更高的认证协议,在网上传递的不是口令而是一次性的随机数。CHAP采取了挑战应答认证方式,下图显示了认证流程。认证者(Authenticator)被认证者(peer)(3)PPP扩展认证协议EAP•PPP扩展认证协议(EAP)是一个用于PPP认证的通用协议,可以支持多种认证方法。EAP并不在链路建立阶段指定认证方法,而是把这个过程推迟到认证阶段。这样认证方就可以在得到更多的信息以后再决定使用什么认证方法。这种机制还允许PPP认证方简单地把收到的认证报文透传给后方的认证服务器,由后方的认证服务器来真正实现各种认证方法。3.2基于服务器的认证方式—RADIUS•RADIUS(RemoteAuthenticationDialInUserService)由朗讯开发,1997年1月以RFC2085公布了第一版规范。原先的目的是为拨号用户进行认证和计费,后来经过多次改进,形成了一项通用的认证计费协议。•RADIUS是为了接入服务器开发的认证系统,它具有集中管理远程访问“拨号用户”的数据库功能。换句话说,RADIUS是存放使用者的“用户名”及“口令”的数据库。接受远程用户访问请求的接入服务器向RADIUS服务器查询该用户是否为合法用户。拨号用户拨号用户电话网NAS认证数据库权限认可数据库计费信息数据库RADIUS客户(接入服务器)RADIUSRADIUS用户认证的体系结构RADIUS的基本工作原理•用户接入NAS,NAS向RADIUS服务器使用Access-Require数据包提交用户信息,包括用户名、密码等相关信息,其中用户密码是经过MD5加密的,双方使用共享密钥,这个密钥不经过网络传播;RADIUS服务器对用户名和密码的合法性进行校验,必要时可以提出一个challenge,要求进一步对用户认证,也可以对NAS进行类似的认证;如果合法,给NAS返回Access-Require数据包,允许用户进行下一步工作,否则返回Access-Reject数据包,拒绝用户访问。4L2TP协议1、拨号PPP连接电话网LACLNS服务器L2TP隧道L2TP服务器拨号用户PPP控制数据2、隧道建立IP2UDPL2TPPPP控制数据4PPP控制数据IP2UDPL2TPPPP控制数据356、PPP通信PPP用户数据IP1IP2UDPL2TPPPP用户数据IP178基于L2TP的远程终端与内部网通信原理4.2L2TP两种实现模式•可以将L2TP安装于不同的位置:–一种是将L2TP集成到远程用户主机。此时的用户主机将充当LAC。这种配置称为自愿模式。在这种模式中,用户自主地对L2TP进行配置和管理。–另一种是将L2TP安装于NAS,这种配置称为强制模式。在这种模式下,对L2TP实现的配置和管理都被委托于NAS,用户能透明地得到L2TP服务。4.3L2TP协议工作流程•L2TP将PPP分组进行隧道封装并在不同的传输媒体上传输,首先要在传输的两端建立隧道,即建立控制连接,建好隧道后,在隧道内再建立会话连接,会话连接建立完毕,就可以进行数据传输了,此时的用户数据是以PPP帧封装的,该PPP帧再被L2TP帧封装。会话结束后,先拆除会话连接,再拆除隧道。至此,就完成一次数据传输的全过程。•(1)建立隧道•(2)建立会话•(3)传输用户数据(PPP帧)•(4)拆除会话•(5)拆除隧道4.4L2TP头•L2TP协议需传送用户数据和控制消息两种类型帧,依据封装的具体内容不同,L2TP头的格式将有所不同,有两种L2TP头:一种是数据帧头;另一种是控制帧头。二者由帧头第一位T位即类型位区分,为0表示数据帧,为1表示控制帧。(1)控制帧•建立、维护、拆除隧道和会话时使用。L2TP控制消息由一个L2TP头加上一个或多个AVP构成。AVP,AttributeValuePair指属性类型及属性值,L2TP所有的命令都以AVP表示。TL00F0000Ver长度隧道ID会话IDNsNr消息类型AVP其他(AVP)…L2TP的控制帧格式(2)数据