IPsec 網絡安全體系
前言:
IPsec是網絡層的安全框架,不同於應用層等框架,IPSec安全服務包括訪問控制、數據源認證、無連 接數據完整性、抗重播、數據機密性和有限的通信流量機密性。
網絡安全體系
網絡安全是通過多層次的保護實現的,衍生出來的常用方式如下:
- 防火牆
- 信息加密
- 數字簽名
- PKI技術與認證
- IPsec安全體系
這里只簡單提一下各種方案,這其中每一項都復雜無比,然后重點說一下IPsec安全體系。
信息加密就是使用加密算法,重新組織信息,常用的加密算法分為兩類:對稱加密和非對稱加密。區別是對稱加密的加解密秘鑰相同,非對稱加密的加解密秘鑰不同。
對稱加密算法比較
名稱 | 秘鑰長度 | 運算速度 | 安全性 | 資源消耗 |
---|---|---|---|---|
DES | 56位 | 較快 | 低 | 中 |
3DES | 112位或者168位 | 慢 | 中 | 高 |
AES | 128位,192位,256位 | 快 | 高 | 低 |
非對稱加密算法比較
名稱 | 成熟度 | 安全性 | 運算速度 | 資源消耗 |
---|---|---|---|---|
RSA | 高 | 高 | 慢 | 高 |
DSA | 高 | 高 | 慢 | 只能用於數字簽名 |
ECC | 低 | 高 | 快 | 低 |
對稱與非對稱加密的比較
名稱 | 秘鑰管理 | 安全性 | 運算速度 |
---|---|---|---|
對稱算法 | 比較難,不適合互聯網,一般用於內部系統 | 中 | 快好幾個數量級(軟件加解密速度至少快100倍,每秒可以加解密數M比特數據),適合大數據量的加解密處理 |
非對稱算法 | 密鑰容易管理 | 高 | 慢,適合小數據量加解密或數據簽名 |
數字簽名是通過私鑰加密要發送信息的摘要,來保證信息的完整性和沒被篡改。
下面我們重點說一下IPsec安全體系。
IPsec安全框架
IPsec既然是一個安全框架,自然就不是只有一個協議,IPsec包含三個部分的協議和算法:
- 認證頭協議(AH協議)
- 封裝安全負載協議(ESP協議)
- 秘鑰管理協議(IKE協議)
- 各類加密和認證算法
認證頭協議(AH):IPsec 體系結構中的一種主要協議,它為IP 數據包提供無連接完整性與數據源認證,並提供保護以避免重播情況。AH 盡可能為IP頭和上層協議數據提供足夠多的認證。
IPsec 封裝安全負載(ESP):IPsec 體系結構中的一種主要協議。ESP 加密需要保護的數據並且在IPsec ESP 的數據部分進行數據的完整性校驗,以此來保證機密性和完整性。ESP 提供了與AH 相同的安全服務並提供了一種保密性(加密)服務,ESP 與AH 各自提供的認證根本區別在於它們的覆蓋范圍。
密鑰管理協議(IKE):一種混合型協議,由Internet 安全聯盟(SA)和密鑰管理協議(ISAKMP)這兩種密鑰交換協議組成。IKE 用於協商AH 和ESP所使用的密碼算法,並將算法所需的必備密鑰放到恰當位置。
IPsec支持兩種模式:傳輸模式和隧道模式。借助於隧道模式,經常被用於做vpn。
1.傳輸模式與隧道模式
隧道(tunnel)模式:用戶的整個IP數據包被用來計算AH或ESP頭,AH或ESP頭以及ESP加密的用戶數據被封裝在一個新的IP數據包中。通常,隧道模式應用在兩個安全網關之間的通訊。
傳輸(transport)模式:只是傳輸層數據被用來計算AH或ESP頭,AH或ESP頭以及ESP加密的用戶數據被放置在原IP包頭后面。通常,傳輸模式應用在兩台主機之間的通訊,或一台主機和一個安全網關之間的通訊。
傳輸模式與隧道模式的封裝結構如下圖:
2.認證與加密算法
(1). 認證算法
認證算法的實現主要是通過雜湊函數。雜湊函數是一種能夠接受任意長的消息輸入,並產生固定長度輸出的算法,該輸出稱為消息摘要。IPsec對等體計算摘要,如果兩個摘要是相同的,則表示報文是完整未經篡改的。IPsec使用兩種認證算法:
-
MD5:MD5通過輸入任意長度的消息,產生128bit的消息摘要。
-
SHA-1:SHA-1通過輸入長度小於2的64次方bit的消息,產生160bit的消息摘要。
MD5算法的計算速度比SHA-1算法快,而SHA-1算法的安全強度比MD5算法高。
(2). 加密算法
加密算法實現主要通過對稱密鑰系統,它使用相同的密鑰對數據進行加密和解密。目前設備的IPsec實現三種加密算法:
-
DES(Data Encryption Standard):使用56bit的密鑰對一個64bit的明文塊進行加密。
-
3DES(Triple DES):使用三個56bit的DES密鑰(共168bit密鑰)對明文進行加密。
-
AES(Advanced Encryption Standard):使用128bit、192bit或256bit密鑰長度的AES算法對明文進行加密。
這三個加密算法的安全性由高到低依次是:AES、3DES、DES,安全性高的加密算法實現機制復雜,運算速度慢。對於普通的安全要求,DES算法就可以滿足需要。
3.IKE秘鑰交換協議
一種混合型協議,由Internet 安全聯盟(SA)和密鑰管理協議(ISAKMP)這兩種密鑰交換協議組成。
IPSec 在兩個端點之間提供安全通信,兩個端點被稱為IPSec ISAKMP 網關。安全聯盟(簡稱為SA)是IPSec 的基礎,也是IPSec 的本質。SA 是通信對等體間對某些要素的約定,例如使用哪種協議、協議的操作模式、加密算法(DES、3DES、AES-128、AES-192 和AES-256)、特定流中保護數據的共享密鑰以及SA 的生存周期等。
建立安全聯盟的方式有兩種,一種是手工方式(Manual),一種是IKE 自動協商(ISAKMP)方式。
IKE協商AH 和ESP所使用的密碼算法,並將算法所需的必備密鑰放到恰當位置。IKE為IPsec提供了自動協商交換密鑰、建立SA的服務,能夠簡化IPsec的使用和管理,大大簡化IPsec的配置和維護工作。
SA的建立過程包括兩個階段:
第一階段主要有這么幾個工作要做:
- 參數的配置,如參數配置。包括:認證方法,選擇預共享密鑰或數字證書認證。
Diffie-Hellman 組的選擇 - 策略協商。包括:加密算法選擇DES、3DES、AES-128、AES-192 或AES-256。hash 算法選擇MD5 或SHA
- DH 交換。雖然名為“密鑰交換”,但事實上在任何時候,兩台通信主機之間都不會交換真正的密鑰,它們之間交換的只是一些DH 算法生成共享密鑰所需要的基本材料信息。DH 交換,可以是公開的,也可以受保護。在彼此交換過密鑰生成“材料”后,兩端主機可以各自生成出完全一樣的共享“主密鑰”,保護緊接其后的認證過程。
- 認證 。DH 交換需要得到進一步認證,如果認證不成功,通信將無法繼續下去。“主密鑰”結合在第一步中確定的協商算法,對通信實體和通信信道進行認證。在這一步中,整個待認證的實體載荷,包括實體類型、端口號和協議,均由前一步生成的“主密鑰”提供機密性和完整性保證。
第二階段主要的工作如下:
第二階段為快速SA,為數據傳輸而建立的安全聯盟。這一階段協商建立IPsec SA,為數據交換提供IPSec 服務。第二階段協商消息受第一階段SA 保護,任何沒有第一階段SA 保護的消息將被拒收。
-
策略協商,雙方交換保護需求:
- 使用哪種IPSec 協議:AH 或ESP
- 是否使用hash 算法:MD5、SHA 或NULL
- 是否要求加密,若是,選擇加密算法:DES 或3DES、AES-128、NULL、AES-192 或AES-256
在上述三方面達成一致后,將建立起兩個SA,分別用於入站和出站通信。
-
會話密鑰“材料”刷新或交換。在這一步中,將通過DH 交換生成加密IP 數據包的“會話密鑰”。
-
將SA 遞交給IPSec 驅動程序。在第二階段協商過程中,如果響應超時,則自動嘗試重新進行第二階段SA 協商。
4.小結
IPsec作為一個安全框架,提供了2種封裝方式,傳輸模式和隧道模式,根據需要選擇合適的模式進行保護。SA作為IPsec的基礎,可以使用IKE的方式來管理交換秘鑰,協商工作參數。對於IPsec在Linux的實現可以進一步了解。