IPsec VPN基礎:認識IPsec VPN
1.IPSEC 提供了下列服務:
數據的機密性----------這是通過加密來防止數據遭受竊聽攻擊。
數據的完整性和驗證--------通過HMAC功能來驗證數據包沒有被損壞,并通過一個有效地對等體收到。
抗回放檢測--------這是通過在數據包中包括加密的序列號確保來自中間人攻擊設備的抗回放攻擊不能發生。
對等體驗證--------這是為了在兩個對等體之間傳遞之前。對方就是"他說它是"的設備。設備驗證支持對稱欲共享密鑰、非對稱欲共享密鑰、以及數字證書。遠程訪問連接也支持使用XAUTH的用戶認證。
2.IPSEC VPN的基本過程:
ISAKMP/IKE階段1
1>一個VPN網關對等體發起了到另外一個遠端的VPN網關對等體的會話。
2>ISAKMP/IKE階段1開始,兩個對等體協商如何保護管理連接。
3>DH用于在管理連接上對加密算法和HMAC功能安全地共享密鑰。
4>在安全的管理連接上執行設備認證。
ISAKMP/IKE階段2
5>對等體協商參數和密鑰消息來保護數據連接(通過安全的管理連接來實現的,或者可選性的再次使用DH)
6>建立數據連接,VPN網關現在可以通過數據連接保護用戶的流量。階段2結束。
3.遠程訪問IPSEC VPN的基本過程
ISAKMP/IKE階段1
1>遠程訪問客戶發起到遠程VPN網關的連接。
2>當用戶和VPN網關協商如何保護管理連接時,IKE階段1開始。
3>DH用于在管理連接上對加密算法和HMAC功能安全的共享密鑰。
4>在安全的管理連接上實行設備認證。
ISAKMP/IKE階段1.5
5>可選的,執行用戶認證。這是通過XAUTH標準實現的。VPN網關要求用戶輸入用戶名和口令。
6>可選的,IPSEC網關會把策略推送到客戶方,廠商在實施的時候可能存在私有性,例如,一個非cisco客戶可能不理解被一個cisco VPN網關推送的策略。在cisco實施中,客戶可以推送一個內部的IP地址,一個域名、DNS和WINS服務器的地址、隧道分離的策略、防火墻的策略和其他的連接策略。
7>可選的,可以發生反向路由注入。這就是為什么客戶可以可選的通過IPSEC的管理連接向VPN的網關注入路由選擇信息,而VPN網關可以將這個路由選擇信息注入到內部的的網絡。
ISAKMP/IKE階段2
8>階段2開始:客戶和VPN網關協商參數和密鑰信息來保護數據連接。
9>數據連接建立,階段2結束:VPN網關現在可以通過數據連接保護用戶數據了。
10>最終與管理和數據連接相關的生存周期將會到期,這些連接將會重新構建。
4.加密算法
加密算法中包括對稱加密和非對稱加密。
對稱加密的優點是加密速度快,加密后的數據少,缺點是密鑰交換不安全。主要有DES、3DES、AES等
非對稱加密的優點是密鑰交換安全。既能用于既能用于加密,也能用于認證。缺點是加密緩慢,加密后數據較長。主要有RSA等。
5.數據包認證(HMAC功能+DH算出的密鑰)
VPN主要啟用散列消息驗證碼(HMAC)功能來實現數據包的認證和設備的認證(對數據包的完整性認證和源認證)。通常散列函數有一個缺點:如果一個竊聽者可以截獲被發送的數據,他可以很容易的產生關于這個數據的簽名。HMAC通過一個共享密鑰來產生數字簽名從而克服了這個問題。只有知道密鑰的另一方才能建立并檢驗發送的數據的簽名。這里只能確定數據是完整的,沒有確定源或目的就是想要建立連接的那位,因為雖然他們的密鑰是相同的,但是這個密鑰是通過DH方法交換來的,DH也不能確定對方是其應該交換密鑰的一方。也就是說這里的源或者目的可能是攻擊者。
HMAC的基本及制圖如下:
HMAC的另一個問題就是當你的數據在兩個設備之間發送的時候,你的簽名可能被一個中間設備破壞。例如一個地址轉換設備。或者需要更改QOS信息。解決方法就是:在使用HMAC功能計算數字簽名的時候不要包括數據包中某些字段。這些字段包括IP數據包中下述字段:IP地址字段、存活時間字段、服務類型、TCP或者UDP端口號字段和可能的其他字段。
6.密鑰交換(DH算法)
DH算法可以分為1、2、3、4、5、7、14、15等類型。Cisco路由器只是支持1、2、5三種。
DH算法可以是直線算法或橢圓曲線兩種。
DH算法能夠動態的、安全地、帶內的方式來周期性的刷新密鑰。將實際管理它們的時間縮小到一個很少的時間。
DH算法為數據加密和數據完整性認證(HMAC)提供密鑰
DH密鑰交換過程是在一個不安全的網絡上進行的,公鑰不能確定發送到了想要發送的對等體上。也就是說存在中間人攻擊。所以還需要進行對等體的認證也就是設備認證。
7.設備認證和用戶認證(這部分進行了源認證)
設備認證通常使用下面三種方法:
欲共享對稱密鑰(HMAC功能+配置的欲共享密鑰)
欲共享非對稱密鑰
數字證書
遠程訪問VPN增加了一個額外的特性:將用戶放入到組的能力,這個時候的欲共享密鑰就是組欲共享密鑰,對組進行認證,同一組的用戶認證VPN網關使用相同的欲共享密鑰,VPN網關使用與共享密鑰認證一個組。但是如果VPN網關要認證一個用戶,則要進行用戶認證,也就是用戶需要提供一個用戶名和密碼。這是在VPN1.5階段XAUTH中進行的。