程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP入門教程 >> ASP VPN技術詳解(中)

ASP VPN技術詳解(中)

編輯:ASP入門教程
隧道技術基礎

隧道技術是一種通過使用互聯網絡的基礎設施在網絡之間傳遞數據的方式。使用隧道傳遞的數據(或負載)可以是不同協議的數據
桢(此字不正確)或包。隧道協議將這些其它協議的數據桢或包重新封裝在新的包頭中發送。新的包頭提供了路由信息,從而使封
裝的負載數據能夠通過互聯網絡傳遞。

被封裝的數據包在隧道的兩個端點之間通過公共互聯網絡進行路由。被封裝的數據包在公共互聯網絡上傳遞時所經過的邏輯路徑稱
為隧道。一旦到達網絡終點,數據將被解包並轉發到最終目的地。注意隧道技術是指包括數據封裝,傳輸和解包在內的全過程。

隧道所使用的傳輸網絡可以是任何類型的公共互聯網絡,本文主要以目前普遍使用Internet為例進行說明。此外,在企業網絡同樣
可以創建隧道。隧道技術在經過一段時間的發展和完善之後,目前較為成熟的技術包括:

1.ip網絡上的SNA隧道技術
當系統網絡結構(SystemNetworkArchitecture)的數據流通過企業IP網絡傳送時,SNA數據桢將被封裝在UDP和IP協議包頭中。

2.IP網絡上的NovellNetWareIPX隧道技術
當一個IPX數據包被發送到NetWare服務器或IPX路由器時,服務器或路由器用UDP和IP包頭封裝IPX數據包後通過IP網絡發送。另一
端的IP-TO-IPX路由器在去除UDP和IP包頭之後,把數據包轉發到IPX目的地。

近幾年不斷出現了一些新的隧道技術,本文將主要介紹這些新技術。具體包括:

1.點對點隧道協議(PPTP)
PPTP協議允許對IP,IPX或NetBEUI數據流進行加密,然後封裝在IP包頭中通過企業IP網絡或公共互聯網絡發送。

2.第2層隧道協議(L2TP)
L2TP協議允許對IP,IPX或NetBEUI數據流進行加密,然後通過支持點對點數據報傳遞的任意網絡發送,如IP,X.25,桢中繼或
ATM。

3.安全IP(IPSec)隧道模式
IPSec隧道模式允許對IP負載數據進行加密,然後封裝在IP包頭中通過企業IP網絡或公共IP互聯網絡如Internet發送。

隧道協議

為創建隧道,隧道的客戶機和服務器雙方必須使用相同的隧道協議。
隧道技術可以分別以第2層或第3層隧道協議為基礎。上述分層按照開放系統互聯(OSI)的參考模型劃分。第2層隧道協議對應OSI
模型中的數據鏈路層,使用桢作為數據交換單位。PPTP,L2TP和L2F(第2層轉發)都屬於第2層隧道協議,都是將數據封裝在點對
點協議(PPP)桢中通過互聯網絡發送。第3層隧道協議對應OSI模型中的網絡層,使用包作為數據交換單位。IP overIP以及IPSec
隧道模式都屬於第3層隧道協議,都是將IP包封裝在附加的IP包頭中通過IP網絡傳送。

隧道技術如何實現

對於象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)。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved