唐淳杰 廖仕軍
摘? ?要:MS-PPTP是一種成熟的VPN技術(shù),它已經(jīng)被世界上許多行業(yè)及個體用戶廣泛應(yīng)用,通過在公共網(wǎng)絡(luò)上使用PPTP協(xié)議建立維護VPN,同時,其商業(yè)產(chǎn)品也能集成于Microsoft Windows操作系統(tǒng)之上,形成MS-PPTP協(xié)議。文章專門對PPTP協(xié)議的國內(nèi)外研究概況與未來發(fā)展趨勢進行綜述,并著重對MS-PPTP協(xié)議的工作流程與協(xié)議安全性相關(guān)問題進行了深入探究。
關(guān)鍵詞:MS-PPTP協(xié)議;研究綜述;安全性問題;協(xié)議分析工具;實現(xiàn)
點對點隧道協(xié)議(Point to Point Tunneling Protocol,PPTP)是一種可支持多協(xié)議的虛擬專用網(wǎng)絡(luò)技術(shù)。PPTP工作在第二層,遠程用戶能夠通過Microsoft Windows各個系統(tǒng)工作站及其他裝有PPTP協(xié)議的系統(tǒng)進行網(wǎng)絡(luò)安全訪問,撥號進入本地互聯(lián)網(wǎng)服務(wù)提供商(Internet Service Provider,ISP),通過Internet安全連接與公司網(wǎng)絡(luò)連通。簡言之,PPTP協(xié)議能夠假定在PPTP客戶機與服務(wù)器用戶端之間建立連通且可用IP網(wǎng)絡(luò),通過代理自動配置(Proxy Auto-Config,PAC)與PNS實施對用戶數(shù)據(jù)隧道的低層擁塞控制與流控制和某些通信參數(shù)支持相關(guān)算法工作,應(yīng)用功能相當(dāng)之廣泛。
1? ? PPTP的國內(nèi)外研究綜述與發(fā)展趨勢
1.1? 國內(nèi)外研究綜述
目前,國內(nèi)外對PPTP的技術(shù)性研究已經(jīng)相當(dāng)深入,像國外針對PPTP協(xié)議的密碼算法脆弱性進行了深度研究分析,主要通過構(gòu)建具有高效能的彩虹表來降低脆弱性分析計算復(fù)雜度,實現(xiàn)對PPTP算法的最終脆弱性分析。所以說,針對PPTP安全協(xié)議算法的最終脆弱性進行解釋與分析,再設(shè)計基于彩虹表的密碼算法分析問題。就目前來看,國外針對該PPTP協(xié)議的相關(guān)算法問題主要集中在兩個方面:(1)各國正在研究新型的時空折衷方法,構(gòu)造新型的時空折衷表結(jié)構(gòu),希望有效降低時空復(fù)雜程度。(2)各國正在研究時空折衷方法的實現(xiàn)技術(shù),并利用各種高速計算平臺提高計算速度,已經(jīng)取得良好成效。
在國內(nèi),虛擬專用網(wǎng)絡(luò)(Virtual Private Network,VPN)技術(shù)早在1997年已經(jīng)發(fā)展起來,它為許多企業(yè)跨區(qū)域運營帶來利益,它所提供的企業(yè)網(wǎng)絡(luò)協(xié)議解決方案很有競爭力,主要用于路由器及撥號訪問服務(wù)器方面。1997年年底,Microsoft和Cisco公司將PPTP協(xié)議與L2F協(xié)議的優(yōu)點結(jié)合起來,形成了全新的L2TP協(xié)議,并開發(fā)出了IPSec安全標準,例如國內(nèi)的華為、中興等大型電子商務(wù)企業(yè)均開發(fā)出了VPN系統(tǒng)。不過從國內(nèi)外整體發(fā)展現(xiàn)狀來看,目前國際上依然缺乏公認的VPN技術(shù)標準,許多基礎(chǔ)性工作還有待進一步完善。
1.2? 未來發(fā)展趨勢
當(dāng)前計算機處理器的計算能力已經(jīng)相當(dāng)強大,計算速度越來越快,這導(dǎo)致密碼算法強度也越來越高,有關(guān)該協(xié)議技術(shù)領(lǐng)域中的時間復(fù)雜度與空間復(fù)雜度同樣越來越高,如何充分利用現(xiàn)有存儲計算資源,設(shè)計合理、有效的全新時空折衷法并發(fā)揮其技術(shù)優(yōu)勢成為關(guān)鍵。目前,基于PPTP協(xié)議的PPP分組IP網(wǎng)絡(luò)封裝傳輸更加強調(diào)各項功能的應(yīng)用網(wǎng)絡(luò)拓撲,在單一的PAC與PNS之間形成一條或多條PPTP隧道,并使用隧道ID來進行信息數(shù)據(jù)區(qū)分。而在未來,在同一條PPTP隧道中封裝多條用戶會話將變?yōu)榭赡?,它們通過通用路由封裝(Generic Routing Encapsulation,GRE)封裝密鑰字段并實施隧道分用和復(fù)用,可使得隧道中的會話流量得到有效控制[1]。
2? ? MS-PPTP協(xié)議的工作流程與協(xié)議安全性分析
2.1? MS-PPTP協(xié)議的基本工作流程
在PPTP安全協(xié)議背景下實施網(wǎng)絡(luò)拓撲,如果存在遠程用戶希望對總部網(wǎng)絡(luò)進行訪問,通過撥號服務(wù)就能展開MS-PPTP協(xié)議工作流程。
(1)該用戶會通過ISDN/PSTN面向總部進行撥號,撥號信息中就包含了總部的企業(yè)主機地址信息。
(2)當(dāng)撥號信息到達ISP后,ISP會根據(jù)呼叫號碼、企業(yè)主機地址等重要地址信息初步判斷是否已經(jīng)應(yīng)對用戶A提供了虛擬撥號服務(wù)內(nèi)容,在確認后方允許用戶訪問網(wǎng)絡(luò)。
(3)MS-PPTP協(xié)議還會檢查PAC及用戶指定目的地對應(yīng)PNS間是否存在控制連接,如果不存在,則要建立控制連接。
(4)在控制連接建立并存在后,PAC會面向PNS請求建立入站呼叫模塊,保證PNS與PAC通過控制連接交互控制信息,同時,建立邏輯接口,專門用于處理PPTP分組,而PPTP分組則通過隧道進行傳輸。
(5)如果PNS希望用戶撥號并進行新PPP LCP協(xié)商,則會首先與用戶進行LCP協(xié)商,協(xié)商結(jié)果由PNS通過控制連接發(fā)送到PAC LCP邏輯終點位置。
(6)通過PNS對撥號用戶進行身份鑒定,例如PPP PAP身份鑒定或者PPP CHAP身份鑒定。
(7)進行NCP協(xié)商,建立用戶會話,所有用戶數(shù)據(jù)通過PPTP隧道向外發(fā)送,在撥號用戶端進行內(nèi)部協(xié)議數(shù)據(jù)IP分組和封裝PPP分組,并交給虛擬接口處理。虛擬接口主要根據(jù)GRE頭中的信息來確定分組屬于哪一段會話,其中,部分封裝分組還會被交給PPP接口處理。
在PPP撥號完畢、會話建立后還要繼續(xù)創(chuàng)建PPP鏈路,明確PPTP鏈路控制協(xié)議,然后進行用戶驗證,建立口令驗證協(xié)議PAP、握手驗證協(xié)議CHAP以及微軟挑戰(zhàn)握手驗證協(xié)議MS-CHAP,最后,調(diào)用PPP回叫控制與網(wǎng)絡(luò)層協(xié)議,通過調(diào)用鏈路創(chuàng)建網(wǎng)絡(luò)控制協(xié)議NCP。同時,在MS-PPTP協(xié)議中進行數(shù)據(jù)壓縮與數(shù)據(jù)加密,使用壓縮控制協(xié)議協(xié)商數(shù)據(jù)內(nèi)容,通過PPP隧道對PPP分組進行封裝傳送[2]。
2.2? MS-PPTP協(xié)議的安全性分析
MS-PPTP協(xié)議中存在諸多分支子協(xié)議,針對這些協(xié)議的安全性分析必不可少。例如對Windows NT口令哈希函數(shù)、MS-CHAP協(xié)議、MPPE安全性、PPTP控制連接方案的安全性分析等。下文主要對MS-CHAP協(xié)議的安全性進行詳細分析。
2.2.1? MS-CHAP介紹
質(zhì)詢—握手鑒別協(xié)議(MS-Challenge Handshake Authentication Protocol,MS-CHAP)是MS-PPTP協(xié)議中的重要子協(xié)議,它主要通過PPP鏈接傳送數(shù)據(jù),通過它可完成對PPP連接的身份辨別協(xié)議提出與運作[3]。在該鏈接中,雙方主要通過PPP LCP進行協(xié)議協(xié)商,并對PPP連接進行配置測試。在PPP鏈接建立以后,要先對連接者的身份進行鑒別驗證,根據(jù)鑒別驗證結(jié)果接入NCP階段并展開協(xié)商。
上述內(nèi)容說明MS-CHAP是滿足身份鑒別機制需求的,它主要通過PPP鏈接在會話雙方建立“三次握手”,完成對彼此的身份鑒別。而CHAP主要用于NAS中的PSTN及ISDN電路交換鏈接,通過鑒別方向鑒別發(fā)出隨機數(shù)據(jù)質(zhì)詢信號,再通過鑒別方所提供依據(jù)計算相關(guān)規(guī)則,最終求解出單向散列值作為質(zhì)詢應(yīng)答結(jié)果。在MS-CHAP協(xié)議的安全性分析中主要包含了CHAP鑒別流程分析、CHAP分組格式分析以及MS-CHAP的綜合安全性分析。下文主要講解了MS-CHAP的綜合安全性探究過程。
2.2.2? MS-CHAP實現(xiàn)安全性的相關(guān)探究
MS-CHAP握手認證協(xié)議是MS-PPTP協(xié)議中的經(jīng)典認證方法,它會在Microsoft中建立如下安全性驗證過程。
(1)從客戶端發(fā)出一個注冊質(zhì)詢。
(2)在服務(wù)器返回一個8字節(jié)的隨機性質(zhì)詢數(shù)。
(3)系統(tǒng)計算Lan manager HASH值,并添加5個空字符共同構(gòu)成21字節(jié)的字符串,分為3個7字節(jié)密鑰,同時,有3個密鑰加密隨機質(zhì)詢數(shù),最后,獲得24字節(jié)密文。將密文轉(zhuǎn)化為應(yīng)答碼發(fā)送回服務(wù)器。
(4)服務(wù)器在數(shù)據(jù)庫中獲取HASH值并隨機匹配質(zhì)詢數(shù)進行運算,將應(yīng)答碼與HASH值做對比。在運算過程中,MS-CHAP會分配給用戶3個獨立加密的密文作為應(yīng)答碼,如果用戶口令長度在8個字符以內(nèi),則將LAN Manager HASH中的后8個字節(jié)作為常數(shù),這8個字節(jié)的常數(shù)則作為挑戰(zhàn)碼加密所獲得,再通過Microsoft CHAP協(xié)議進行破解。結(jié)合預(yù)先計算相關(guān)操作,得出以下優(yōu)化方法。
設(shè)置字節(jié)分別為P0~P7,將它們定義為Lan Manager HASH字節(jié),進而獲得密鑰,再用Lan Manager HASH中的固定數(shù)進行字節(jié)分配,再預(yù)先計算M個值完成跟蹤攻擊過程。再者,要在MS-CHAP協(xié)議中對客戶端實施認證,攻擊者可偽裝成服務(wù)器劫持數(shù)據(jù)連接,并基于加密功能對攻擊者進行分析,了解攻擊者的信息發(fā)送與接收過程,對質(zhì)詢數(shù)內(nèi)容與密鑰加密內(nèi)容進行推理,最終獲得會話密文文本[4]。
3? ? MS-PPTP協(xié)議的安全性分析模塊的實現(xiàn)與應(yīng)用
為了有效提高系統(tǒng)運行效率與響應(yīng)速度,還要為MS-PPTP協(xié)議的安全性建立分析模塊,在代碼實現(xiàn)過程中采用大量的內(nèi)存映射技術(shù)、共享內(nèi)存技術(shù)明顯提高系統(tǒng)運行效率。另外,所要構(gòu)建的安全性分析模塊是具有通信數(shù)據(jù)報文格式特征的,且它對字段的取值異常、格式異常、通信數(shù)據(jù)信息內(nèi)容特征等進行詳細分析,最后構(gòu)建一套完整的分析模塊。文章主要介紹了該安全性分析模塊的實現(xiàn)與功能應(yīng)用[5]。
3.1? MS-CHAP子模塊的鑒別協(xié)議與分析應(yīng)用
針對MS-CHAP子模塊進行Windows工作站遠程鑒別分析,主要是通過身份驗證來明確模塊的質(zhì)詢—響應(yīng)機制,必要時進行單向加密,深度分析MS-CHAP鑒別協(xié)議的安全性內(nèi)涵。同時,還要根據(jù)MS-PPTP協(xié)議的安全性研究分析結(jié)果對協(xié)議模塊漏洞進行深度鑒別,繼續(xù)開發(fā)得出PPTP-analyser模塊。分析PPTP鑒別內(nèi)容并提取隨機質(zhì)詢數(shù)與加密口令HASH值,將部分長度小于標準8個字節(jié)的口令對MS-CHAP協(xié)議內(nèi)容進行恢復(fù)。
在攔截模塊實現(xiàn)過程中,主要利用網(wǎng)絡(luò)接口混雜模式,在普通計算機系統(tǒng)監(jiān)視本地網(wǎng)絡(luò)所有分組中,不需要再設(shè)置其他特殊硬件設(shè)備。而在UNIX系統(tǒng)中,則要根據(jù)3種常用數(shù)據(jù)鏈路層進行訪問,它們分別為BSD的BPF,SVR4的DLPI和LINUX的PF_PACKET。
一般來說,攔截模塊所常常采用的是Linux平臺,同時配合PF_PACKET,主要將過濾機制放在內(nèi)核中,通過過濾包交由分析模塊進行進一步處理,而攔截模塊內(nèi)核的其他部分則負責(zé)實現(xiàn)動態(tài)加載內(nèi)核模塊功能。同時,為了滿足在高速網(wǎng)絡(luò)中有效的攔截數(shù)據(jù),系統(tǒng)還從多個方面提高系統(tǒng)效率。
首先,對操作系統(tǒng)實施調(diào)度策略并同時展開優(yōu)化,將輪詢與中斷驅(qū)動放在調(diào)度策略的不同位置中,目的在于提高系統(tǒng)數(shù)據(jù)的采集速度。
其次,在網(wǎng)絡(luò)的大量數(shù)據(jù)包中(非VPN數(shù)據(jù)包)再次設(shè)置攔截模塊,通過這些攔截模塊收獲大量數(shù)據(jù)包信息并篩選出可滿足基本VPN條件的數(shù)據(jù)包,有效減輕系統(tǒng)上層程序負擔(dān)。在系統(tǒng)內(nèi)核中還同時配置了一個擁有粗粒度的過濾子模塊,基于需求滿足的基礎(chǔ)上建立數(shù)據(jù)包并交由分析模塊再做進一步處理分析。在處理分析中對某些不符合需求的數(shù)據(jù)包予以直接丟棄處理,同時,允許用戶自定義過濾條件。
最后,為了有效提高系統(tǒng)運行效率與響應(yīng)速度,系統(tǒng)還采用到了零復(fù)制技術(shù),主要用于解決網(wǎng)絡(luò)數(shù)據(jù)在網(wǎng)卡、系統(tǒng)內(nèi)存中的多次重復(fù)復(fù)制問題,爭取做到零復(fù)制。零復(fù)制操作主要通過地址映射與對齊操作實現(xiàn),其目的是確保系統(tǒng)不復(fù)制任何數(shù)據(jù)包,保證內(nèi)核能夠直接訪問輸入/輸出(Input/Output,I/O)地址空間中的相關(guān)數(shù)據(jù)執(zhí)行處理過程。在具體的代碼實現(xiàn)過程中,還大量采用到了內(nèi)存映射技術(shù)、共享內(nèi)存技術(shù)等先進技術(shù)內(nèi)容,希望以此明顯提高系統(tǒng)的整體運行效率。
3.2? PPTP控制連接的分析應(yīng)用
PPTP控制連接可利用PPTP中的TCP協(xié)議建立1723端口形成服務(wù)器控制體系,再利用其中的連接通道對8字節(jié)口令進行鑒別加密,配合PPTP-analyser模塊截取PPTP控制連接會話,對繪畫中的PPTP通信中數(shù)據(jù)進行分析以獲取大量數(shù)據(jù),并且明確存在于客戶機地址、服務(wù)器地址、服務(wù)器PPTP虛通道數(shù)量的數(shù)據(jù)信息分配情況,再檢索用戶口令中的HASH信息[6]。在控制連接中,主要圍繞客戶機地址、服務(wù)器地址、服務(wù)器可用PPTP虛擬通道數(shù)量、客戶RAS版本、客戶機廠家標識、內(nèi)部分給客戶的虛擬通道IP地址、內(nèi)部DNS服務(wù)器分給客戶的名稱等來全面檢索用戶口令中的HASH信息,主要用于MPPE內(nèi)部初始化值信息檢索,并在RC4初始化過程中圍繞客戶端加密包值進行前端服務(wù)器加密優(yōu)化。另外就是基于信息猜測PPTP服務(wù)器大小,監(jiān)測其負荷容量。再通過重復(fù)發(fā)送PPTP會話再次開啟請求包。在該過程中,攻擊者就能了解并建立新連接,做到對連接關(guān)閉時間的有效控制。一般來說,MS-PPTP協(xié)議分析工具都能針對自身所存在的安全漏洞進行有效解析,在百兆網(wǎng)絡(luò)中還能實現(xiàn)對PPTP通信過程的有效監(jiān)測??蛇x擇在代碼實現(xiàn)中大量采用多線程、零復(fù)制等先進技術(shù),目的在于提高系統(tǒng)整體響應(yīng)能力。根據(jù)100 M網(wǎng)絡(luò)測試,該系統(tǒng)中可實現(xiàn)高達95%以上的VPN通信率截獲,并能夠?qū)νㄐ潘淼赖耐ㄐ艩顟B(tài)與通信進程進行實時動態(tài)分析。
總體來說,PPTP協(xié)議對傳送于隧道間的數(shù)據(jù)是不提供任何機密性保護措施的,所以其在傳輸公網(wǎng)上的所有數(shù)據(jù)信息與控制信息可能被完全泄漏,此時需要利用到MS-PPTP協(xié)議進行安全保護,利用PPTP框架針對微軟點進行對點加密,基于用戶口令彌補缺陷,實施補救措施。
4? ? 結(jié)語
本文中對PPTP協(xié)議背景下的虛擬撥號服務(wù)、遠程用戶數(shù)據(jù)信息傳遞與公共網(wǎng)絡(luò)設(shè)置等等進行了分析。經(jīng)過研究發(fā)現(xiàn)新MS-PPTP協(xié)議的使用可有效簡化數(shù)據(jù)訪問及通信流程,降低網(wǎng)絡(luò)數(shù)據(jù)庫訪問成本,對于用戶的管控過程也相對方便可行。在未來的工作中,還要進一步完善MS-PPTP協(xié)議,特別是加強對密文格式的分析,提高系統(tǒng)實時響應(yīng)能力,滿足未來千兆骨干網(wǎng)絡(luò)監(jiān)控的現(xiàn)實技術(shù)需要。
[參考文獻]
[1]林宏剛.MS-PPTP協(xié)議安全性研究[D].成都:四川大學(xué),2003.
[2]王坤,李建,謝培泰.MS PPTP密碼分析[J].計算機工程,2002(4):137-139,164.
[3]王坤,李建,謝培泰.MS-CHAPv2密碼分析[J].計算機工程與應(yīng)用,2002(24):172-173,185.
[4]李煥洲,林宏剛,戴宗坤,等.MS-CHAP鑒別協(xié)議安全性分析[J].四川大學(xué)學(xué)報(工程科學(xué)版),2005(6):135-138.
[5]朱燕瓊,徐慧.無線局域網(wǎng)認證機制綜述[J].計算機工程與設(shè)計,2012(1):96-100.
[6]李東杰.淺談海外基地利用VPN技術(shù)與總部進行信息資源共享[J].中國新通信,2015(14):52-54.