***技術詳解(2)

六、隧道技術如何實現
  對於象PPTP和L2TP這樣的第2層隧道協議,創建隧道的過程類似於在雙方之間建立會話;隧道的兩個端點必須同意創建隧道並協商隧道各種配置變量,如地址分配,加密或壓縮等參數。絕大多數情況下,通過隧道傳輸的數據都使用基於數據報的協議發送。隧道維護協議被用來作爲管理隧道的機制。
  第3層隧道技術通常假定所有配置問題已經通過手工過程完成。這些協議不對隧道進行維護。與第3層隧道協議不同,第2層隧道協議(PPTP和L2TP)必須包括對隧道的創建,維護和終止。
  隧道一旦建立,數據就可以通過隧道發送。隧道客戶端和服務器使用隧道數據傳輸協議準備傳輸數據。例如,當隧道客戶端向服務器端發送數據時,客戶端首先給負載數據加上一個隧道數據傳送協議包頭,然後把封裝的數據通過互聯網絡發送,並由互聯網絡將數據路由到隧道的服務器端。隧道服務器端收到數據包之後,去除隧道數據傳輸協議包頭,然後將負載數據轉發到目標網絡。
  七、隧道協議和基本隧道要求
  因爲第2層隧道協議(PPTP和L2TP)以完善的PPP協議爲基礎,因此繼承了一整套的特性。
  1.用戶驗證

  第2層隧道協議繼承了PPP協議的用戶驗證方式。許多第3層隧道技術都假定在創建隧道之前,隧道的兩個端點相互之間已經瞭解或已經經過驗證。一個例外情況是IPSec協議的ISAKMP協商提供了隧道端點之間進行的相互驗證。

  2.令牌卡(Tokencard)支持

  通過使用擴展驗證協議(EAP),第2層隧道協議能夠支持多種驗證方法,包括一次性口令(one-timepassword),加密計算器(cryptographic calculator)和智能卡等。第3層隧道協議也支持使用類似的方法,例如,IPSec協議通過ISAKMP/Oakley協商確定公共密鑰證書驗證。

  3.動態地址分配

  第2層隧道協議支持在網絡控制協議(NCP)協商機制的基礎上動態分配客戶地址。第3層隧道協議通常假定隧道建立之前已經進行了地址分配。目前IPSec隧道模式下的地址分配方案仍在開發之中。

  4.數據壓縮

  第2層隧道協議支持基於PPP的數據壓縮方式。例如,微軟的PPTP和L2TP方案使用微軟點對點加密協議(MPPE)。IETP正在開發應用於第3層隧道協議的類似數據壓縮機制。

  5.數據加密

  第2層隧道協議支持基於PPP的數據加密機制。微軟的PPTP方案支持在RSA/RC4算法的基礎上選擇使用MPPE。第3層隧道協議可以使用類似方法,例如,IPSec通過ISAKMP/Oakley協商確定幾種可選的數據加密方法。微軟的L2TP協議使用IPSec加密保障隧道客戶端和服務器之間數據流的安全。

  6.密鑰管理

  作爲第2層協議的MPPE依靠驗證用戶時生成的密鑰,定期對其更新。IPSec在ISAKMP交換過程中公開協商公用密鑰,同樣對其進行定期更新。

  7.多協議支持

  第2層隧道協議支持多種負載數據協議,從而使隧道客戶能夠訪問使用IP,IPX,或NetBEUI等多種協議企業網絡。相反,第3層隧道協議,如IPSec隧道模式只能支持使用IP協議的目標網絡。

  八、點對點協議
  因爲第2層隧道協議在很大程度上依靠PPP協議的各種特性,因此有必要對PPP協議進行深入的探討。PPP協議主要是設計用來通過撥號或專線方式建立點對點連接發送數據。PPP協議將IP,IPX和NETBEUI包封裝在PP楨內通過點對點的鏈路發送。PPP協議主要應用於連接撥號用戶和NAS。 PPP撥號會話過程可以分成4個不同的階段。分別如下:
  階段1:創建PPP鏈路
  PPP使用鏈路控制協議(LCP)創建,維護或終止一次物理連接。在LCP階段的初期,將對基本的通訊方式進行選擇。應當注意在鏈路創建階段,只是對驗證協議進行選擇,用戶驗證將在第2階段實現。同樣,在LCP階段還將確定鏈路對等雙方是否要對使用數據壓縮或加密進行協商。實際對數據壓縮/加密算法和其它細節的選擇將在第4階段實現。
  階段2:用戶驗證
  在第2階段,客戶會PC將用戶的身份明發給遠端的接入服務器。該階段使用一種安全驗證方式避免第三方竊取數據或冒充遠程客戶接管與客戶端的連接。大多數的PPP方案只提供了有限的驗證方式,包括口令驗證協議(PAP),挑戰握手驗證協議(CHAP)和微軟挑戰握手驗證協議(MSCHAP)。
  1.口令驗證協議(PAP)

  PAP是一種簡單的明文驗證方式。NAS要求用戶提供用戶名和口令,PAP以明文方式返回用戶信息。很明顯,這種驗證方式的安全性較差,第三方可以很容易的獲取被傳送的用戶名和口令,並利用這些信息與NAS建立連接獲取NAS提供的所有資源。所以,一旦用戶密碼被第三方竊取,PAP無法提供避免受到第三方***的保障措施。

  2.挑戰-握手驗證協議(CHAP)

  CHAP是一種加密的驗證方式,能夠避免建立連接時傳送用戶的真實密碼。NAS向遠程用戶發送一個挑戰口令(challenge),其中包括會話ID和一個任意生成的挑戰字串(arbitrary challengestring)。遠程客戶必須使用MD5單向哈希算法(one-wayhashingalgorithm)返回用戶名和加密的挑戰口令,會話ID以及用戶口令,其中用戶名以非哈希方式發送。

  CHAP對PAP進行了改進,不再直接通過鏈路發送明文口令,而是使用挑戰口令以哈希算法對口令進行加密。因爲服務器端存有客戶的明文口令,所以服務器可以重複客戶端進行的操作,並將結果與用戶返回的口令進行對照。CHAP爲每一次驗證任意生成一個挑戰字串來防止受到再現***(replay attack).在整個連接過程中,CHAP將不定時的向客戶端重複發送挑戰口令,從而避免第3方冒充遠程客戶(remoteclient impersonation)進行***。

  3.微軟挑戰-握手驗證協議(MS-CHAP)

  與CHAP相類似,MS-CHAP也是一種加密驗證機制。同CHAP一樣,使用MS-CHAP時,NAS會向遠程客戶發送一個含有會話ID和任意生成的挑戰字串的挑戰口令。遠程客戶必須返回用戶名以及經過MD4哈希算法加密的挑戰字串,會話ID和用戶口令的MD4哈希值。採用這種方式服務器端將只存儲經過哈希算法加密的用戶口令而不是明文口令,這樣就能夠提供進一步的安全保障。此外,MS-CHAP同樣支持附加的錯誤編碼,包括口令過期編碼以及允許用戶自己修改口令的加密的客戶-服務器(client-server)附加信息。使用MS-CHAP,客戶端和NAS雙方各自生成一個用於隨後數據加密的起始密鑰。MS-CHAP使用基於MPPE的數據加密,這一點非常重要,可以解釋爲什麼啓用基於MPPE的數據加密時必須進行MS-CHAP驗證。

  在第2階段PPP鏈路配置階段,NAS收集驗證數據然後對照自己的數據庫或中央驗證數據庫服務器(位於NT主域控制器或遠程驗證用戶撥入服務器)驗證數據的有效性。

  階段3:PPP回叫控制(callbackcontrol)
  微軟設計的PPP包括一個可選的回叫控制階段。該階段在完成驗證之後使用回叫控制協議(CBCP)如果配置使用回叫,那麼在驗證之後遠程客戶和NAS之間的連接將會被斷開。然後由NAS使用特定的電話號碼回叫遠程客戶。這樣可以進一步保證撥號網絡的安全性。NAS只支持對位於特定電話號碼處的遠程客戶進行回叫。
  階段4:調用網絡層協議
  在以上各階段完成之後,PPP將調用在鏈路創建階段(階段1)選定的各種網絡控制協議(NCP).例如,在該階段IP控制協議(IPCP)可以向撥入用戶分配動態地址。在微軟的PPP方案中,考慮到數據壓縮和數據加密實現過程相同,所以共同使用壓縮控制協議協商數據壓縮(使用MPPC)和數據加密(使用MPPE)。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章