唐淳杰 廖仕軍
摘? ?要: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.