唐淳杰 廖仕军
摘 要:MS-PPTP是一种成熟的VPN技术,它已经被世界上许多行业及个体用户广泛应用,通过在公共网络上使用PPTP协议建立维护VPN,同时,其商业产品也能集成于Microsoft Windows操作系統之上,形成MS-PPTP协议。文章专门对PPTP协议的国内外研究概况与未来发展趋势进行综述,并着重对MS-PPTP协议的工作流程与协议安全性相关问题进行了深入探究。
关键词:MS-PPTP协议;研究综述;安全性问题;协议分析工具;实现
点对点隧道协议(Point to Point Tunneling Protocol,PPTP)是一种可支持多协议的虚拟专用网络技术。PPTP工作在第二层,远程用户能够通过Microsoft Windows各个系统工作站及其他装有PPTP协议的系统进行网络安全访问,拨号进入本地互联网服务提供商(Internet Service Provider,ISP),通过Internet安全连接与公司网络连通。简言之,PPTP协议能够假定在PPTP客户机与服务器用户端之间建立连通且可用IP网络,通过代理自动配置(Proxy Auto-Config,PAC)与PNS实施对用户数据隧道的低层拥塞控制与流控制和某些通信参数支持相关算法工作,应用功能相当之广泛。
1 PPTP的国内外研究综述与发展趋势
1.1 国内外研究综述
目前,国内外对PPTP的技术性研究已经相当深入,像国外针对PPTP协议的密码算法脆弱性进行了深度研究分析,主要通过构建具有高效能的彩虹表来降低脆弱性分析计算复杂度,实现对PPTP算法的最终脆弱性分析。所以说,针对PPTP安全协议算法的最终脆弱性进行解释与分析,再设计基于彩虹表的密码算法分析问题。就目前来看,国外针对该PPTP协议的相关算法问题主要集中在两个方面:(1)各国正在研究新型的时空折衷方法,构造新型的时空折衷表结构,希望有效降低时空复杂程度。(2)各国正在研究时空折衷方法的实现技术,并利用各种高速计算平台提高计算速度,已经取得良好成效。
在国内,虚拟专用网络(Virtual Private Network,VPN)技术早在1997年已经发展起来,它为许多企业跨区域运营带来利益,它所提供的企业网络协议解决方案很有竞争力,主要用于路由器及拨号访问服务器方面。1997年年底,Microsoft和Cisco公司将PPTP协议与L2F协议的优点结合起来,形成了全新的L2TP协议,并开发出了IPSec安全标准,例如国内的华为、中兴等大型电子商务企业均开发出了VPN系统。不过从国内外整体发展现状来看,目前国际上依然缺乏公认的VPN技术标准,许多基础性工作还有待进一步完善。
1.2 未来发展趋势
当前计算机处理器的计算能力已经相当强大,计算速度越来越快,这导致密码算法强度也越来越高,有关该协议技术领域中的时间复杂度与空间复杂度同样越来越高,如何充分利用现有存储计算资源,设计合理、有效的全新时空折衷法并发挥其技术优势成为关键。目前,基于PPTP协议的PPP分组IP网络封装传输更加强调各项功能的应用网络拓扑,在单一的PAC与PNS之间形成一条或多条PPTP隧道,并使用隧道ID来进行信息数据区分。而在未来,在同一条PPTP隧道中封装多条用户会话将变为可能,它们通过通用路由封装(Generic Routing Encapsulation,GRE)封装密钥字段并实施隧道分用和复用,可使得隧道中的会话流量得到有效控制[1]。
2 MS-PPTP协议的工作流程与协议安全性分析
2.1 MS-PPTP协议的基本工作流程
在PPTP安全协议背景下实施网络拓扑,如果存在远程用户希望对总部网络进行访问,通过拨号服务就能展开MS-PPTP协议工作流程。
(1)该用户会通过ISDN/PSTN面向总部进行拨号,拨号信息中就包含了总部的企业主机地址信息。
(2)当拨号信息到达ISP后,ISP会根据呼叫号码、企业主机地址等重要地址信息初步判断是否已经应对用户A提供了虚拟拨号服务内容,在确认后方允许用户访问网络。
(3)MS-PPTP协议还会检查PAC及用户指定目的地对应PNS间是否存在控制连接,如果不存在,则要建立控制连接。
(4)在控制连接建立并存在后,PAC会面向PNS请求建立入站呼叫模块,保证PNS与PAC通过控制连接交互控制信息,同时,建立逻辑接口,专门用于处理PPTP分组,而PPTP分组则通过隧道进行传输。
(5)如果PNS希望用户拨号并进行新PPP LCP协商,则会首先与用户进行LCP协商,协商结果由PNS通过控制连接发送到PAC LCP逻辑终点位置。
(6)通过PNS对拨号用户进行身份鉴定,例如PPP PAP身份鉴定或者PPP CHAP身份鉴定。
(7)进行NCP协商,建立用户会话,所有用户数据通过PPTP隧道向外发送,在拨号用户端进行内部协议数据IP分组和封装PPP分组,并交给虚拟接口处理。虚拟接口主要根据GRE头中的信息来确定分组属于哪一段会话,其中,部分封装分组还会被交给PPP接口处理。
在PPP拨号完毕、会话建立后还要继续创建PPP链路,明确PPTP链路控制协议,然后进行用户验证,建立口令验证协议PAP、握手验证协议CHAP以及微软挑战握手验证协议MS-CHAP,最后,调用PPP回叫控制与网络层协议,通过调用链路创建网络控制协议NCP。同时,在MS-PPTP协议中进行数据压缩与数据加密,使用压缩控制协议协商数据内容,通过PPP隧道对PPP分组进行封装传送[2]。
2.2 MS-PPTP协议的安全性分析
MS-PPTP协议中存在诸多分支子协议,针对这些协议的安全性分析必不可少。例如对Windows NT口令哈希函数、MS-CHAP协议、MPPE安全性、PPTP控制连接方案的安全性分析等。下文主要对MS-CHAP协议的安全性进行详细分析。
2.2.1 MS-CHAP介绍
质询—握手鉴别协议(MS-Challenge Handshake Authentication Protocol,MS-CHAP)是MS-PPTP协议中的重要子协议,它主要通过PPP链接传送数据,通过它可完成对PPP连接的身份辨别协议提出与运作[3]。在该链接中,双方主要通过PPP LCP进行协议协商,并对PPP连接进行配置测试。在PPP链接建立以后,要先对连接者的身份进行鉴别验证,根据鉴别验证结果接入NCP阶段并展开协商。
上述内容说明MS-CHAP是满足身份鉴别机制需求的,它主要通过PPP链接在会话双方建立“三次握手”,完成对彼此的身份鉴别。而CHAP主要用于NAS中的PSTN及ISDN电路交换链接,通过鉴别方向鉴别发出随机数据质询信号,再通过鉴别方所提供依据计算相关规则,最终求解出单向散列值作为质询应答结果。在MS-CHAP协议的安全性分析中主要包含了CHAP鉴别流程分析、CHAP分组格式分析以及MS-CHAP的综合安全性分析。下文主要讲解了MS-CHAP的综合安全性探究过程。
2.2.2 MS-CHAP实现安全性的相关探究
MS-CHAP握手认证协议是MS-PPTP协议中的经典认证方法,它会在Microsoft中建立如下安全性验证过程。
(1)从客户端发出一个注册质询。
(2)在服务器返回一个8字节的随机性质询数。
(3)系统计算Lan manager HASH值,并添加5个空字符共同构成21字节的字符串,分为3个7字节密钥,同时,有3个密钥加密随机质询数,最后,获得24字节密文。将密文转化为应答码发送回服务器。
(4)服务器在数据库中获取HASH值并随机匹配质询数进行运算,将应答码与HASH值做对比。在运算过程中,MS-CHAP会分配给用户3个独立加密的密文作为应答码,如果用户口令长度在8个字符以内,则将LAN Manager HASH中的后8个字节作为常数,这8个字节的常数则作为挑战码加密所获得,再通过Microsoft CHAP协议进行破解。结合预先计算相关操作,得出以下优化方法。
设置字节分别为P0~P7,将它们定义为Lan Manager HASH字节,进而获得密钥,再用Lan Manager HASH中的固定数进行字节分配,再预先计算M个值完成跟踪攻击过程。再者,要在MS-CHAP协议中对客户端实施认证,攻击者可伪装成服务器劫持数据连接,并基于加密功能对攻击者进行分析,了解攻击者的信息发送与接收过程,对质询数内容与密钥加密内容进行推理,最终获得会话密文文本[4]。
3 MS-PPTP协议的安全性分析模块的实现与应用
为了有效提高系统运行效率与响应速度,还要为MS-PPTP协议的安全性建立分析模块,在代码实现过程中采用大量的内存映射技术、共享内存技术明显提高系统运行效率。另外,所要构建的安全性分析模块是具有通信数据报文格式特征的,且它对字段的取值异常、格式异常、通信数据信息内容特征等进行详细分析,最后构建一套完整的分析模块。文章主要介绍了该安全性分析模块的实现与功能应用[5]。
3.1 MS-CHAP子模块的鉴别协议与分析应用
针对MS-CHAP子模块进行Windows工作站远程鉴别分析,主要是通过身份验证来明确模块的质询—响应机制,必要时进行单向加密,深度分析MS-CHAP鉴别协议的安全性内涵。同时,还要根据MS-PPTP协议的安全性研究分析结果对协议模块漏洞进行深度鉴别,继续开发得出PPTP-analyser模块。分析PPTP鉴别内容并提取随机质詢数与加密口令HASH值,将部分长度小于标准8个字节的口令对MS-CHAP协议内容进行恢复。
在拦截模块实现过程中,主要利用网络接口混杂模式,在普通计算机系统监视本地网络所有分组中,不需要再设置其他特殊硬件设备。而在UNIX系统中,则要根据3种常用数据链路层进行访问,它们分别为BSD的BPF,SVR4的DLPI和LINUX的PF_PACKET。
一般来说,拦截模块所常常采用的是Linux平台,同时配合PF_PACKET,主要将过滤机制放在内核中,通过过滤包交由分析模块进行进一步处理,而拦截模块内核的其他部分则负责实现动态加载内核模块功能。同时,为了满足在高速网络中有效的拦截数据,系统还从多个方面提高系统效率。
首先,对操作系统实施调度策略并同时展开优化,将轮询与中断驱动放在调度策略的不同位置中,目的在于提高系统数据的采集速度。
其次,在网络的大量数据包中(非VPN数据包)再次设置拦截模块,通过这些拦截模块收获大量数据包信息并筛选出可满足基本VPN条件的数据包,有效减轻系统上层程序负担。在系统内核中还同时配置了一个拥有粗粒度的过滤子模块,基于需求满足的基础上建立数据包并交由分析模块再做进一步处理分析。在处理分析中对某些不符合需求的数据包予以直接丢弃处理,同时,允许用户自定义过滤条件。
最后,为了有效提高系统运行效率与响应速度,系统还采用到了零复制技术,主要用于解决网络数据在网卡、系统内存中的多次重复复制问题,争取做到零复制。零复制操作主要通过地址映射与对齐操作实现,其目的是确保系统不复制任何数据包,保证内核能够直接访问输入/输出(Input/Output,I/O)地址空间中的相关数据执行处理过程。在具体的代码实现过程中,还大量采用到了内存映射技术、共享内存技术等先进技术内容,希望以此明显提高系统的整体运行效率。
3.2 PPTP控制连接的分析应用
PPTP控制连接可利用PPTP中的TCP协议建立1723端口形成服务器控制体系,再利用其中的连接通道对8字节口令进行鉴别加密,配合PPTP-analyser模块截取PPTP控制连接会话,对绘画中的PPTP通信中数据进行分析以获取大量数据,并且明确存在于客户机地址、服务器地址、服务器PPTP虚通道数量的数据信息分配情况,再检索用户口令中的HASH信息[6]。在控制连接中,主要围绕客户机地址、服务器地址、服务器可用PPTP虚拟通道数量、客户RAS版本、客户机厂家标识、内部分给客户的虚拟通道IP地址、内部DNS服务器分给客户的名称等来全面检索用户口令中的HASH信息,主要用于MPPE内部初始化值信息检索,并在RC4初始化过程中围绕客户端加密包值进行前端服务器加密优化。另外就是基于信息猜测PPTP服务器大小,监测其负荷容量。再通过重复发送PPTP会话再次开启请求包。在该过程中,攻击者就能了解并建立新连接,做到对連接关闭时间的有效控制。一般来说,MS-PPTP协议分析工具都能针对自身所存在的安全漏洞进行有效解析,在百兆网络中还能实现对PPTP通信过程的有效监测。可选择在代码实现中大量采用多线程、零复制等先进技术,目的在于提高系统整体响应能力。根据100 M网络测试,该系统中可实现高达95%以上的VPN通信率截获,并能够对通信隧道的通信状态与通信进程进行实时动态分析。
总体来说,PPTP协议对传送于隧道间的数据是不提供任何机密性保护措施的,所以其在传输公网上的所有数据信息与控制信息可能被完全泄漏,此时需要利用到MS-PPTP协议进行安全保护,利用PPTP框架针对微软点进行对点加密,基于用户口令弥补缺陷,实施补救措施。
4 结语
本文中对PPTP协议背景下的虚拟拨号服务、远程用户数据信息传递与公共网络设置等等进行了分析。经过研究发现新MS-PPTP协议的使用可有效简化数据访问及通信流程,降低网络数据库访问成本,对于用户的管控过程也相对方便可行。在未来的工作中,还要进一步完善MS-PPTP协议,特别是加强对密文格式的分析,提高系统实时响应能力,满足未来千兆骨干网络监控的现实技术需要。
[参考文献]
[1]林宏刚.MS-PPTP协议安全性研究[D].成都:四川大学,2003.
[2]王坤,李建,谢培泰.MS PPTP密码分析[J].计算机工程,2002(4):137-139,164.
[3]王坤,李建,谢培泰.MS-CHAPv2密码分析[J].计算机工程与应用,2002(24):172-173,185.
[4]李焕洲,林宏刚,戴宗坤,等.MS-CHAP鉴别协议安全性分析[J].四川大学学报(工程科学版),2005(6):135-138.
[5]朱燕琼,徐慧.无线局域网认证机制综述[J].计算机工程与设计,2012(1):96-100.
[6]李东杰.浅谈海外基地利用VPN技术与总部进行信息资源共享[J].中国新通信,2015(14):52-54.