IPsec是一組基於網絡層的,應用密碼學的安全通信協議族,它不是具體的哪個協議,而是一個開放的協議族。
作用:在IPv4和IPv6環境中爲網絡層流量提供靈活的安全服務。
IPsec 虛擬專用網:是基於IPsec協議族構建的在IP層實現的安全虛擬專用網。通過在數據包中插入頭部來保證OSI上層協議數據的安全,主要用於保護TCP、UDP、ICMP和隧道的IP數據包。
虛擬專用網只是IPsec協議族的一種應用方式,虛擬專用網也不止IPsec一種實現方式,還有二層、四層虛擬專用網實現方式。
IPsec協議安全體系框架:
IPsec 虛擬專用網體系結構主要由AH、ESP和IKE協議套件組成。
AH協議:AH是報文頭驗證協議,主要提供的功能數據的完整性的校驗、數據源驗證和抗報文重放功能。然而AH並不加密所保護的數據報。
ESP協議:ESP是封裝安全載荷協議,它能提供AH協議所有的功能(但其數據的完整性校驗不包括IP頭),還可以提供對IP報文的加密功能。
IKE協議:IKE協議用來自動協商AH和ESP所使用的密碼算法。
這裏簡單說一下重放攻擊:
假設綠帽向藍帽要求認證自己的身份。藍帽要求綠帽提供密碼作爲身份的驗證。此時,紅帽竊聽通訊,並記錄下綠帽的密碼。在通訊完成後,紅帽聯繫藍帽,並要求認證自己爲綠帽的身份,在提供了正確的綠帽密碼後,藍帽接受紅帽的驗證,並認可其綠帽身份。
IPsec協議族:
1、IPsec有兩個通信保護機制:ESP機制爲通信提供機密性和完整性;AH機制爲通信提供完整性的保護。ESP機制和AH機制都能爲通信提供抗重放攻擊。
2、DOI將所有的IPsec小組的文獻捆綁在一起。他可以被認爲是所有IPsec安全參數的主數據庫。IKE定義了安全參數如何協商,以及共享密鑰如何建立,但他沒有定義的是協商的內容,這方面的定義是由“”“解釋域(DOI)”文檔來進行的
工作模式:
1、傳輸模式:主要應用於主機和主機之間端到端通信數據的保護。
封裝方式
在傳輸模式下,IPsec協議處理模塊會在IP報頭和高層協議報頭之間插入一個IPsec報頭。這種模式下IP報頭與原始IP分組中的IP報頭一致,只是協議字段會被修改成IPsec協議的協議號(50或51)。傳輸模式只爲高層協議提供安全服務。
2、隧道模式:經常用於私網和私網之間通過公網進行通信,建立安全虛擬專用網通道。
在隧道模式下原始IP分組被封裝成一個新的IP報文,在內部報頭以及外部報頭之間插入一個IPsec報頭,原IP地址受到IPsec的保護。還可以對數據進行加密,隱藏數據包中的IP地址。
封裝方式:增加新的IP(外網IP)頭,其後是IPsec包頭,最後將整個數據包封裝。
IPsec通信協議:
1、AH(認證報頭)協議
AH分配到的協議號是51。也就是說,使用AH協議進行安全保護的IPv4數據報文的IP頭部中協議字段將是51,表明IP頭之後是一個AH頭。
AH提供的安全服務:
1)無連接數據完整性;通過哈希函數產生的校驗來保證
2)數據源認證;通過在計算驗證碼時加入一個共享密鑰來實現。
3)抗重放服務;AH報頭中的序列號可以防止重放攻擊。
AH不提供任何保密性服務:它不加密所保護的數據包。
2、ESP(封裝安全有效載荷)協議
ESP同樣被當作一種IP協議對待,緊貼在ESP頭前的IP頭,以協議號50標誌ESP頭,ESP之前的IP頭中的協議字段將是50,以表明IP頭之後是一個ESP頭。
ESP提供的安全服務:
1)無連接數據完整性
2)數據源認證
3)抗重放服務
4)數據保密
5)有限的數據流保護
ESP在傳輸模式下的封裝:
ESP在隧道模式下的封裝:
在隧道模式中,ESP保護整個IP包,整個原始IP包將會以ESP載荷的方式加入新建的數據包,同時,系統根據隧道起點和終點等參數,建立一個隧道IP頭,作爲這個數據包的新IP頭,ESP頭夾在隧道IP頭和原始IP包之間,並點綴ESP尾。而ESP提供加密服務,所以原始IP包和ESP尾以密文的形式出現。
ESP在驗證過程中,只對ESP頭部、原始數據包IP包頭和原始數據進行驗證;只對原始的整個數據包進行加密,而不加密驗證數據。
AH和ESP的比較
安全特性 |
AH |
ESP |
協議號 |
51 |
50 |
數據完整性校驗 |
支持 |
支持(不驗證IP頭) |
數據源驗證 |
支持 |
支持 |
數據加解密 |
不支持 |
支持 |
抗重放服務 |
支持 |
支持 |
NAT-T(NAT穿越) |
不支持 |
支持 |
注意:ESP在隧道模式不驗證外部IP頭,因此ESP在隧道模式下可以在NAT環境中運行。
ESP在傳輸模式下會驗證外部IP頭部,將導致校驗失敗。而AH因爲提供數據來源確認(源IP地址一旦改變,AH校驗失敗),所以無法穿越NAT。
IPsec建立階段:
安全聯盟SA:通信的雙方符合SA約定的內容就可以建立SA。
SA包括:安全參數索引、目的IP地址、安全協議號。
IKE的產生:
1.用IPsec保護一個IP包之前,必須先建立安全聯盟(SA)
2.IKE可以自動進行安全聯盟的建立與密鑰交換。Intent密鑰交換(IKE)就用於動態建立SA,代表IPsec對SA進行協商。
IKE的用途:
IKE爲IPsec協商生成密鑰,供AH/ESP加密和驗證使用。
在IPsec通信雙方之間,動態的建立安全聯盟(SA),對SA進行管理和維護。
IKE是UDP之上的一個應用層協議。通過使用安全關聯(SA),IPsec能夠區分對不同的數據流提供的安全服務。
IKE工作工程:
第一階段:通信各方建立一個已經通過身份驗證和安全保護的通道,此階段的交換建立一個IKE SA。第一階段交換有兩種協商模式:主模式協商、野蠻模式協商
第二階段:用已經建立的安全聯盟(IKE SA)爲IPsec協商安全服務,即爲IPsec協商具體的安全聯盟,建立IPsec SA,產生真正可以用來加密數據流的密鑰,IPsec SA用於最終的IP數據安全傳送。
IKE協商階段
1)IKE階段1:
一、主模式:默認使用IP地址作爲身份標識;默認傳遞自己的出接口地址做身份標識,校驗對端的公網IP做對端身份標識(自動生成雙方身份ID)
第一次交換(消息1和2):策略協商
發送方發送一個包含cookie(記爲Ci)和SA負載(記爲SAi;攜帶IKE SA的各項參數,包括:HASH散列類型(HASH算法),加密算法、認證方式、DH組的強度、SA存活期)的數據包來協商參數。這裏的cookie(Ci)可以認爲它是一個表面身份的令牌,每次通信都需要它。
接收方查看IKE策略消息,尋找合適的IP地址匹配策略,找到後發回一條消息去響應,包括一個cookie(記爲Cr)和SA負載(記爲Sar,已經挑選好的參數),如果沒有合適的參數,則返回一個拒絕。
第二次交換(消息3和4):D-H交換,通過交換通信雙方可以生成密鑰。
第三次交換(消息5和6):對等體之間的驗證。(此傳輸過程數據加密)。
總結:1-2包爲認證做準備好策略;3-4包生成密鑰爲下一步提供加密基礎;5-6身份交換驗證。
注:
1、X、Y是交互的公鑰。Ni和Nr是隨機數,用以保持活性,防重放攻擊。
2、DH算法(交換密鑰算法)可以讓通信雙方生成一個只有通信雙方知道其他人卻不認識的對稱密鑰。
首先Bob和Alice利用公鑰分別與各自私鑰做加密算法;得到一個加密產物,而Bob和Alice分別交換自己通過私鑰加密的中間產物,這樣Bob和Alice就擁有了對方的加密產物;最後Bob和Alice將自己和對方的加密產物再一起運算,這樣雙方得到了相同的密鑰,而且這個東西最開始是由Bob和Alice的私鑰加密的,所以其他人是不可能認識的。
二、野蠻模式:可以使用用戶名或者IP等作爲雙方身份標識,即可以手動配置身份ID。
野蠻模式同樣包含三個步驟,僅通過三個包進行傳輸。野蠻模式下標識爲Aggressive。
三個交互包:
1、第一個交互包發起方建立SA,發起DH交換
2、第二個交互包接收方接受SA
3、第三個交互包發起方認證接受方(加密傳輸)
注:
1、X、Y是交互的公鑰,Ni和Nr是隨機數(用以保持活性)
IKE階段1兩種模式對比:
|
主模式 |
野蠻模式 |
消息交互 |
交互6個信息 |
交互3個信息 |
身份ID |
以IP地址作爲身份ID,自動生成本端身份ID和對端身份ID |
可以以多種形式(IP地址、字符串)手動或自動生成本端和對端的身份ID |
域共享密鑰 |
只能基於IP地址來確定預共享密鑰。 |
基於ID信息(主機名和IP地址)來確定預共享密鑰 |
安全性 |
較高;前4個消息以明文傳輸,最後2個消息加密,對對端身份進行了保護 |
較低;前兩個消息以明文傳輸,最後一個消息進行加密,不保護對端身份 |
速度 |
較慢 |
較快 |
2)IKE階段2協商過程:
1、協商IPsec安全參數
安全參數稱爲transform set,包括:加密算法、hash算法、安全協議、封裝模式、存活時間
2、建立IPsec SA
階段2使用快速模式交換,通過3條消息建立IPsec SA,用來協商加密用戶數據的安全策略(認證和加密方法和對應算法)
前兩條消息協商IPsec SA的各項參數值,並且生成IPsec使用的密鑰。
其中第二條消息還提供響應方在場證明。
第三條消息爲發起方提供在場證據。
IKE階段2只有一種信息交互模式——快速模式。
第二階段所有數據都經過了加密:
主要功能:
1.協商安全參數來保護數據連接。
2.週期性的對數據連接更新密鑰信息。
第二階段的效果爲協商出IPsec單向SA,爲保護IPsec數據流而創建。第二階段整個協商過程受第一階段IKE SA保護
當第二階段協商完畢之後,第一階段的策略將暫時不會被使用,直到有新的虛擬專用網連接建立時或IPSEC SA加密密鑰超時時,纔會用第一階段的策略重新生成並傳遞新的加密數據和認證的密鑰。
數據傳輸階段
數據傳輸階段是通過AH或者ESP通信協議進行數據傳輸;數據傳輸建立在網絡層。
數據傳輸階段問題:虛擬專用網黑洞,對端虛擬專用網連接已經斷開而我方還處在SA的有效時間內,從而形成了虛擬專用網隧道的黑洞。我方不停的發送加密的虛擬專用網數據過去,但對方拒絕接收。
解決:DPD解決虛擬專用網隧道黑洞。
DPD:死亡對等體檢測,檢查對端的IKE SA是否存在,當虛擬專用網隧道異常的時候,能檢測到並重新發起協商,來維持虛擬專用網隧道。DPD只對第一階段生效,如果第一階段本身已經超時斷開,則不會再發DPD包。
DPD概述:DPD採用空閒計時器機制。
每當收到IPsec加密的包後就重置包對應的IKE SA的空閒計時器。如果計時器開始到結束過程都沒有接受到該SA對應的加密包,那麼下一次有IP包要被這個SA加密發送或接收到加密包之前就需要使用DPD來檢測對方是否存活。默認是發出5次請求,在沒有收到任何DPD應答就會刪除SA。
DPD有兩種模式:
1.週期模式:週期向對端發送DPD包檢測對等體,收到回覆則證明正常,如果收不到回覆,則每隔2s發送一次DPD,如果發送7次仍沒有回覆,自動清除本地對應的IKE SA和IPsec SA。
2.按需模式:默認模式,當IPsec 虛擬專用網發出流量而收不到回程的數據,則發出DPD探測包。每隔2s發送一次,7次都沒有迴應則刪除本地對應的IKE SA和IPsec SA。
NAT下IPsec 虛擬專用網部署的問題
1、IKE協商問題
身份ID爲IP地址類型,在NAT環境下,關鍵看雙方的虛擬專用網使用的身份ID是否匹配(無論是自由配置 還是默認生成) 只要是匹配的,NAT環境協商也沒有問題,但是如果是不匹配的,就會協商失敗
野蠻模式:可以以多種形式(IP,字符串等)手動或自動的生成本端和對端的身份ID,兩方從雙方交互 在IKE數據包中的身份標識字段。不會從IP層的源IP標識對端身份。即使經過NAT,只會改變IP層的源IP,不會改變IKE數據包中的身份標識字段。所以說在有NAT的環境下,只能採用野蠻模式。若IPsec 虛擬專用網主模式身份ID若可以自由配置,那在NAT環境下則可以協商成功。
2、NAT數據傳輸問題
IPsec虛擬專用網的數據傳輸有2個通信模式和2個工作模式,也就是4種數據傳輸模式。
(1)AH的傳輸模式和隧道模式。
由於AH會認證源目IP地址,所以在經過NAT後,兩端的AH頭部認證不一致。AH會在進隧道的時候,將所有IP包進行完整性認證,形成AH校驗摘要,一旦進入隧道,經過NAT,在接收方計算得到的AH頭部就會和發送方的AH 認證頭不一致。AH校驗失敗,數據被接收方丟棄。
AH協議是根據自己的完整性決定丟棄數據的。但是在網絡協議棧的設計中,本身也存在校驗機制來校驗數據包是否正確。
(2)ESP的傳輸模式和隧道模式。
先引出一個TCP/UDP僞首部校驗機制。
目的端根據僞首部和數據單元計算校驗和來驗證數據在傳輸過程中沒有改變而且到達了正確的目的。
僞首部是爲了增加校驗和檢錯能力。是一個虛擬的數據結構,從IP分組頭中提取出的,既不向下傳送也不向上遞交,僅僅爲了計算校驗和。通過僞首部的目的地址來檢查TCP報文是否收錯了,通過僞首部的傳輸層協議來檢查傳輸層協議是否選對了。
在ESP的傳輸模式下,發送方和接收方的僞首部不一致,計算出來的校驗值也不同。所以在經過NAT後,數據包會被丟棄。
在ESP到的隧道模式下,NAT只會改變新IP包頭的源IP,原始的IP被加密後放在新數據包的數據部分。這時TCP的僞首部驗證會通過。
總結:在NAT環境下,只能通過IKE的野蠻模式進行IEK階段1的協商,在數據傳輸極端只能使用ESP的隧道模式進行數據傳輸。IPsec的IKE協商是通過應用層的協議進行協商,但是IPsec 虛擬專用網是三層虛擬專用網,所以數據傳輸是以三層的數據包形式傳輸,使用AH或者ESP協議傳輸數據。IPsec傳輸數據沒有端口。
問題:三層傳輸導致只能同時建立一個虛擬專用網,否則經過NAT之後數據回包無法正常進行。因爲無法標識是哪個虛擬專用網連接的回包。
多虛擬專用網 IKE的協商問題。
IKE協商規定源和目的的端口號必須爲UDP 500,在多虛擬專用網場景下可能會在防火牆設備NAT後發生變化,從而導致IKE 協商失敗。
數據傳輸過程中,由於ESP工作在網絡層,沒有傳輸層頭部,從而無法進行NAPT端口複用,導致數據傳輸失敗。
解決:NAT-T技術
使用NAT-T技術來解決標準IPsec 虛擬專用網只能同時進行一個虛擬專用網連接的問題。NAT-T允許多個IPsec 虛擬專用網同時連接。
(1)NAT-T協議運用在IPsec 虛擬專用網中,在IKE協商和虛擬專用網連接時,允許源端口爲非UDP 500端口,使用目的端口是UDP 4500端口。
(2)NAT-T協議爲ESP增加了UDP頭部,從而解決了數據傳輸過程經過防火牆後無法進行端口複用的問題。