文章目錄
- IPSec基礎知識
- IPSec特性
- IPSec組成部分
- IPSec對等體
- IPSec隧道
- 安全聯盟(Security Association)
- AH安全協議
- AH包結構
- ESP安全協議
- ESP包結構
- AH和ESP比較
- 封裝模式
- 傳輸模式
- 隧道模式
IPSec基礎知識
IPSec (Internet 協議安全)是一個工業標準網路安全協議,為IP 網路通信提供透明的安全服務,保護TCP/IP 通信免遭竊聽和篡改,可以有效抵御網路攻擊,同時保持易用性,
IPSec通過在IPSec對等體間建立雙向安全聯盟,形成一個安全互通的IPSec隧道,來實作Internet 上資料的安全傳輸,
IPSec特性
1.訪問控制:通信對等體認證機制,對于通信的對等體進行認證,從而完成訪問控制功能,
2.無連接的完整性、資料來源驗證:通過報文認證,防止傳輸程序中資料被篡改,確保發出資料和接收資料的一致性,IPSec利用Hash函式為每個資料包產生–個加密校驗和,接收方在打開包前先計算校驗和,若包遭篡改導致校驗和不相符,資料包即被丟棄,驗證資料源,以保證資料來自真實的發送者(IP報文頭內的源地址),
3.防重放:通過AH或者ESP的防重放視窗結合認證,來抵御重放攻擊,確保每個IP包的唯一性,保證資訊萬一被截取復制后,不能再被重新利用、重新傳輸回目的地址,該特性可以防止攻擊者截取破譯資訊后,再用相同的資訊包冒取非法訪問權,
4.機密性(加密):通過ESP的加密功能以及ESP協議的報文填充功能來完成,在傳輸前,對資料進行加密,可以保證在傳輸程序中,即使資料包遭截取,資訊也無法被讀出,該特性在IPSec中為可選項,與IPSec策略的具體設定相關,
IPSec組成部分
IPSec包括認證頭協議AH(AuthenticationHeader)、封裝安全載荷協議ESP(Encapsulating Security Payload)、因特網密鑰交換協議IKE (Internet Key Exchange),用于保護主機與主機之間、主機與網關之間、網關與網關之間的一-個或多個資料流,
其中,AH和ESP這兩個安全協議用于提供安全服務,IKE協議用于密鑰交換,
IPSec對等體
IPSec用于在協商發起方和回應方這兩個端點之間提供安全的IP通信,通信的兩個端點被稱為IPSec對等體,其中,端點可以是網關路由器,也可以是主機,
IPSec隧道
IPSec為對等體間建立IPSec隧道來提供對資料流的安全保護,一對IPSec對等體間可以存在多條IPSec隧道,針對不同的資料流各選擇一條隧道對其進行保護,例如有的資料流只需要認證、有的需要認證和加密,
IPSec對資料的加密是以資料包為單位,而不是以整個資料流為單位,發送方對要保護的資料包進行加密封裝,在Internet上傳輸,接收方采用相同的引數對報文認證、解封
裝,以得到原始資料,
安全聯盟(Security Association)
定義:安全聯盟是要建立IPSec隧道的通信雙方對隧道引數的約定,包括隧道兩端的IP地址、隧道采用的驗證方式、驗證演算法、驗證密鑰、加密演算法、加密密鑰、共享密鑰以及生存周期等一系列引數,
安全聯盟由一個三元組來唯一標識:安全引數索引(SPI, Security Parameter Index) 、目的IP地址、安全協議號(AH或ESP) ,SPI是為唯一標識SA而生成的一個32位元的數值,它在IPSec頭中傳輸,
安全聯盟是IPSec的基礎,也是IPSec的本質,SA是通信對等體間對某些要素的約定,例如,使用哪種安全協議、協議的操作模式(傳輸模式和隧道模式)、加密演算法(DES和3DES)、特定流中保護資料的共享密鑰以及密鑰的生存周期等,對等體間需要通過手工配置或IKE協議協商匹配的引數才能建立起安全聯盟,
單向性:在兩個對等體之間的雙向通信,最少需要兩個安全聯盟來分別對兩個方向的資料流進行安全保護,入站資料流和出站資料流分別由入站SA和出站SA進行處理,如果希望同時使用AH和ESP來保護對等體間的資料流,則分別需要兩個SA,一個用于AH,另一個用于ESP,
AH安全協議
- AH是一種基于IP的傳輸層協議,協議號為51,
- 只能支持認證 ,不支持加密 ,
- 對整個頭部進行認證,
AH對資料包和認證密鑰進行Hash計算,接收方收到帶有計算結果的資料包后,執行同樣的Hash計算并與原計算結果比較,傳輸程序中對資料的任何更改將使計算結果無效,這樣就提供了資料來源認證和資料完整性校驗,AH協議的完整性驗證范圍為整個IP報文,
AH包結構

AH報文頭欄位含義:
| 欄位 | 長度 | 含義 |
|---|---|---|
| 下一頭部 | 8位元 | 標識AH報文頭后面的負載型別,傳輸模式下,是被保護的上層協議(TCP或UDP)或ESP協議的編號;隧道模式下,是IP協議或ESP協議的編號,注意:當AH與ESP協議同時使用時,AH報文頭的下一頭部為ESP報文頭, |
| 負載長度 | 8位元 | 表示以32位元為單位的AH報文頭長度減2,預設為4, |
| 保留欄位 | 16位元 | 保留將來使用,預設為0, |
| SPI | 32位元 | IPSec安全引數索引,用于標識有相同IP地址和相同安全協議的不同IPSec安全聯盟, |
| 序列號 | 32位元 | 是一個從1開始的單項遞增的計數器,唯一地標識每一個資料包,用于防止重放攻擊, |
| 認證資料 | 一個變長欄位,長度為32位元的整數倍,通常為96位元, | 該欄位包含資料完整性校驗值 ICV(Integrity Check Value),用于接收方進行完整性校驗,可選擇的認證演算法有MD5、SHA1、SHA2、SM3, |
ESP安全協議
ESP支持加密和認證,
ESP是一種基于IP的傳輸層協議,協議號為50,其作業原理是在每一個資料包的標準IP報頭后面添加一個ESP報文頭,并在資料包后面追加一個ESP尾(ESP Tail和ESP Auth data),與AH不同的是,ESP將資料中的有效載荷進行加密后再封裝到資料包中,以保證資料的機密性,但ESP沒有對IP頭的內容進行保護,
ESP包結構

| 欄位 | 長度 | 含義 |
|---|---|---|
| SPI | 32位元 | IPSec安全引數索引,用于標識有相同IP地址和相同安全協議的不同IPSec安全聯盟, |
| 序列號 | 32位元 | 是一個從1開始的單項遞增的計數器,唯一地標識每一個資料包,用于防止重放攻擊, |
| 負載資料 | — | 包含由下一頭部欄位給出的變長資料, |
| 填充欄位 | — | 用于增加ESP報文頭的位數,填充欄位的長度與負載資料的長度和演算法有關,當待加密報文的明文長度不是加密演算法所要求的塊長度時,需要進行填充補齊, |
| 填充長度 | 8位元 | 給出前面填充欄位的長度,置0時表示沒有填充, |
| 下一頭部 | 8位元 | 標識ESP報文頭后面的下一個負載型別,傳輸模式下,是被保護的上層協議(TCP或UDP)的編號;隧道模式下,是IP協議的編號, |
| 認證資料 | 一個變長欄位,長度為32位元的整數倍,通常為96位元, | 該欄位包含資料完整性校驗值ICV,用于接收方進行完整性校驗,可選擇的認證演算法與AH的相同,ESP的驗證功能是可選的,如果啟動了資料包驗證,會在加密資料的尾部添加一個ICV數值, |
AH和ESP比較
| 安全特性 | AH | ESP |
|---|---|---|
| 協議號 | 51 | 50 |
| 資料完整性校驗 | 支持(驗證整個IP報文) | 支持(不驗證IP頭) |
| 資料源驗證 | 支持 | 支持 |
| 資料加密 | 不支持 | 支持 |
| 防報文重放攻擊 | 支持 | 支持 |
| IPSec NAT-T(NAT穿越) | 不支持 | 支持 |
封裝模式
傳輸模式

傳輸模式只為高層協議提供安全服務,這種模式常應用在需要保護的兩臺主機之間的端到端連接,而不是多臺主機的兩個網關之間的資料流,
隧道模式

隧道模式適于轉發設備對保護流量進行封裝處理的場景,建議應用于兩個安全網關之間的通訊,傳輸模式適于主機到主機、主機到網關對保護流量進行封裝處理的場景,
傳輸模式和隧道模式的區別在于:
- 從安全性來講,隧道模式優于傳輸模式,它可以完全地對原始IP資料報進行驗證和加密,隧道模式下可以隱藏內部IP地址,協議型別和埠,
- 從性能來講,隧道模式因為有一個額外的IP頭,所以它將比傳輸模式占用更多帶寬,
當安全協議同時采用AH和ESP時,AH和ESP協議必須采用相同的封裝模式,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/262960.html
標籤:其他
