IPSec VPN的詳細介紹
IPSec (IP SECURITY)是為實現VPN 功能而最普遍使用的協議。通過相應的隧道技術,可實現VPN。IPSec有兩種模式:隧道模式和傳輸模式。
IPSec 不是一個單獨的協議,它給出了應用于IP 層上網絡數據安全的一整套體系結構。該體系結構包括認證頭協議(Authentication Header,簡稱為AH)、封裝安全負載協議(EncapsulatingSecurity Payload,簡稱為ESP)、密鑰管理協議(Internet Key Exchange,簡稱為IKE)和用于網絡認證及加密的一些算法等。
IPSec 規定了如何在對等體之間選擇安全協議、確定安全算法和密鑰交換,向上提供了訪問控制、數據源認證、數據加密等網絡安全服務。
認證頭協議(AH):IPsec 體系結構中的一種主要協議,它為IP 數據包提供無連接完整性與數據源認證,并提供保護以避免重播情況。AH 盡可能為IP頭和上層協議數據提供足夠多的認證。
IPsec 封裝安全負載(ESP):IPsec 體系結構中的一種主要協議。ESP 加密需要保護的數據并且在IPsec ESP 的數據部分進行數據的完整性校驗,以此來保證機密性和完整性。ESP 提供了與AH 相同的安全服務并提供了一種保密性(加密)服務,ESP 與AH 各自提供的認證根本區別在于它們的覆蓋范圍。
密鑰管理協議(IKE):一種混合型協議,由Internet 安全聯盟(SA)和密鑰管理協議(ISAKMP)這兩種密鑰交換協議組成。IKE 用于協商AH 和ESP所使用的密碼算法,并將算法所需的必備密鑰放到恰當位置。
IPSec工作時,首先兩端的網絡設備必須就SA(security association)達成一致,這是兩者之間的一項安全策略協定。
安全聯盟(Security Association)
IPSec 在兩個端點之間提供安全通信,兩個端點被稱為IPSec ISAKMP 網關。安全聯盟(簡稱為SA)是IPSec 的基礎,也是IPSec 的本質。SA 是通信對等體間對某些要素的約定,例如使用哪種協議、協議的操作模式、加密算法(DES、3DES、AES-128、AES-192 和AES-256)、特定流中保護數據的共享密鑰以及SA 的生存周期等。
安全聯盟是單向的,在兩個對等體之間的雙向通信,最少需要兩個安全聯盟來分別對兩個方向的數據流進行安全保護。
SA 建立方式
建立安全聯盟的方式有兩種,一種是手工方式(Manual),一種是IKE 自動協商(ISAKMP)方式。
手工方式配置比較復雜,創建安全聯盟所需的全部信息都必須手工配置,而且IPSec 的一些高級特性(例如定時更新密鑰)不能被支持,但優點是可以不依賴IKE而單獨實現IPSec 功能。該方式適用于當與之進行通信的對等體設備數量較少的情況,或是在小型靜態環境中。IKE 自動協商方式相對比較簡單,只需要配置好IKE 協商安全策略的信息,由IKE 自動協商來創建和維護安全聯盟。該方式適用于中、大型的動態網絡環境中。
該方式建立SA 的過程分兩個階段。第一階段,協商創建一個通信信道(ISAKMP SA),并對該信道進行認證,為雙方進一步的IKE 通信提供機密性、數據完整性以及數據源認證服務;第二階段,使用已建立的ISAKMP SA 建立IPsec SA。分兩個階段來完成這些服務有助于提高密鑰交換的速度。
第一階段SA
第一階段SA 為建立信道而進行的安全聯盟。第一階段協商的步驟是:
1. 參數配置。包括:
認證方法:選擇預共享密鑰或數字證書認證
Diffie-Hellman 組的選擇
2. 策略協商。包括:
加密算法:選擇DES、3DES、AES-128、AES-192 或AES-256
hash 算法:選擇MD5 或SHA
3. DH 交換。雖然名為“密鑰交換”,但事實上在任何時候,兩臺通信主機之間都不會交換真正的密鑰,它們之間交換的只是一些DH 算法生成共享密鑰所需要的基本材料信息。DH 交換,可以是公開的,也可以受保護。在彼此交換過密鑰生成“材料”后,兩端主機可以各自生成出完全一樣的共享“主密鑰”,保護緊接其后的認證過程。
4. 認證 。DH 交換需要得到進一步認證,如果認證不成功,通信將無法繼續下去。“主密鑰”結合在第一步中確定的協商算法,對通信實體和通信信道進行認證。在這一步中,整個待認證的實體載荷,包括實體類型、端口號和協議,均由前一步生成的“主密鑰”提供機密性和完整性保證。#p#
第二階段SA
第二階段SA 為快速SA,為數據傳輸而建立的安全聯盟。這一階段協商建立IPsec SA,為數據交換提供IPSec 服務。第二階段協商消息受第一階段SA 保護,任何沒有第一階段SA 保護的消息將被拒收。第二階段協商(快速模式協商)步驟是:
1. 策略協商,雙方交換保護需求:
使用哪種IPSec 協議:AH 或ESP
是否使用hash 算法:MD5、SHA 或NULL
是否要求加密,若是,選擇加密算法:DES 或3DES、AES-128、NULL、AES-192 或AES-256
在上述三方面達成一致后,將建立起兩個SA,分別用于入站和出站通信。
2. 會話密鑰“材料”刷新或交換。
在這一步中,將通過DH 交換生成加密IP 數據包的“會話密鑰”。
3. 將SA 遞交給IPSec 驅動程序。
在第二階段協商過程中,如果響應超時,則自動嘗試重新進行第二階段SA 協商。
驗證算法
AH 和ESP 都能夠對IP 報文的完整性進行驗證,以判別報文在傳輸過程中是否被篡改。驗證算法的實現主要是通過雜湊函數。雜湊函數是一種能夠接受任意長的消息輸入,并產生固定長度輸出的算法,該輸出稱為消息摘要。IPSec 對等體計算摘要,如果兩個摘要是相同的,則表示報文是完整未經篡改的。一般來說IPSec 使用兩種驗證算法:
MD5:MD5 輸入任意長度的消息,產生128bit 的消息摘要。
SHA-1:SHA-1 輸入長度小于2 的64 次方比特的消息,產生160bit 的消息摘要。SHA-1 的摘要長于MD5,因而是更安全的。
加密算法
ESP 能夠對IP 報文內容進行加密保護,防止報文內容在傳輸過程中被窺探。加密算法實現主要通過對稱密鑰系統,它使用相同的密鑰對數據進行加密和解密。
StoneOS 實現了三種加密算法:
DES(Data Encryption Standard):使用56bit 的密鑰對每個64bit 的明文塊進行加密。
3DES(Triple DES):使用三個56bit 的DES 密鑰(共168bit 密鑰)對明文進行加密。
AES(Advanced Encryption Standard):StoneOS 實現了128bit、192bit 和256bit 密鑰長度的AES 算法。
IPSec VPN 的應用
SA 系列安全網關通過“基于策略的VPN”和“基于路由的VPN”兩種方式把配置好的VPN 隧道應用到安全網關上,實現流量的加密解密安全傳輸。
基于策略的VPN:將配置成功的VPN 隧道名稱引用到策略規則中,使符合條件的流量通過指定的VPN 隧道進行傳輸。
基于路由的VPN:將配置成功的VPN 隧道與隧道接口綁定;配置靜態路由時,將隧道接口指定為下一跳路由。
【編輯推薦】