一文讀懂互聯(lián)網(wǎng)協(xié)議安全 — IPSec
IPSec(互聯(lián)網(wǎng)協(xié)議安全)是一個安全網(wǎng)絡(luò)協(xié)議套件,用于保護(hù)互聯(lián)網(wǎng)或公共網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)。IETF在 1990 年代中期開發(fā)了 IPSec 協(xié)議,它通過 IP網(wǎng)絡(luò)數(shù)據(jù)包的身份驗證和加密來提供 IP 層的安全性。
IPSec簡介
IPSec 可為通信兩端設(shè)備提供安全通道,比如用于兩個路由器之間以創(chuàng)建點到點 VPN,以及在防火墻和 Windows 主機(jī)之間用于遠(yuǎn)程訪問 VPN等。IPSec可以實現(xiàn)以下四項功能:
- 數(shù)據(jù)機(jī)密性:IPSec發(fā)送方將包加密后再通過網(wǎng)絡(luò)發(fā)送,可以保證在傳輸過程中,即使數(shù)據(jù)包遭截取,信息也無法被讀取。
- 數(shù)據(jù)完整性:IPSec可以驗證IPSec發(fā)送方發(fā)送過來的數(shù)據(jù)包,以確保數(shù)據(jù)傳輸時沒有被改變。若數(shù)據(jù)包遭篡改導(dǎo)致檢查不相符,將會被丟棄。
- 數(shù)據(jù)認(rèn)證:IPSec接受方能夠鑒別IPSec包的發(fā)送起源,此服務(wù)依賴數(shù)據(jù)的完整性。
- 防重放:確保每個IP包的唯一性,保證信息萬一被截取復(fù)制后不能再被重新利用,不能重新傳輸回目的地址。該特性可以防止攻擊者截取破譯信息后,再用相同的信息包獲取非法訪問權(quán)。
IPSec 不是一個協(xié)議,而是一套協(xié)議,以下構(gòu)成了 IPSec 套件:
AH協(xié)議
AH(Authentication Header)指一段報文認(rèn)證代碼,確保數(shù)據(jù)包來自受信任的發(fā)送方,且數(shù)據(jù)沒有被篡改,就像日常生活中的外賣封條一樣。在發(fā)送前,發(fā)送方會用一個加密密鑰算出AH,接收方用同一或另一密鑰對之進(jìn)行驗證。然而,AH并不加密所保護(hù)的數(shù)據(jù)報,無法向攻擊者隱藏數(shù)據(jù)。
ESP協(xié)議
ESP(Encapsulating Security Payload)向需要保密的數(shù)據(jù)包添加自己的標(biāo)頭和尾部,在加密完成后再封裝到一個新的IP包中。ESP還向數(shù)據(jù)報頭添加一個序列號,以便接收主機(jī)可以確定它沒有收到重復(fù)的數(shù)據(jù)包。
SA協(xié)議
安全關(guān)聯(lián)(SA)是指用于協(xié)商加密密鑰和算法的一些協(xié)議,提供AH、ESP操作所需的參數(shù)。最常見的 SA 協(xié)議之一是互聯(lián)網(wǎng)密鑰交換 (IKE),協(xié)商將在會話過程中使用的加密密鑰和算法。
IPSec 是如何工作的?
IPSec 的工作方式涉及五個關(guān)鍵步驟,如下:
- 主機(jī)識別:主機(jī)識別數(shù)據(jù)包是否需要保護(hù),使用 IPSec 進(jìn)行傳輸時,這些數(shù)據(jù)包流量會自己觸發(fā)安全策略。主機(jī)還會檢查傳入的數(shù)據(jù)包是否正確加密。
- IKE 階段 1:主機(jī)使用 IPSec 協(xié)商將用于安全通道的策略集,雙方驗證完成后,在它們之間建立一個安全通道,用于協(xié)商 IPSec 電路加密或驗證通過它發(fā)送的數(shù)據(jù)的方式。
- IKE 階段 2:通過安全通道進(jìn)行,在該通道中,兩臺主機(jī)協(xié)商在會話中使用的加密算法類型,主機(jī)還同意并交換雙方計劃用于進(jìn)出流量的加密和解密密鑰。
- IPSec 傳輸:通過新創(chuàng)建的 IPSec 加密隧道交換數(shù)據(jù),之前設(shè)置的 IPSec SA 用于加密和解密數(shù)據(jù)包。
- IPSec 終止:當(dāng)主機(jī)之間的會話超時或通信完成時,通信雙方之間的隧道在空閑時間達(dá)到一定值后會自動刪除。
IPSec 模式
IPSec 有兩種不同的運行方式:隧道模式和傳輸模式。兩者之間的區(qū)別在于 IPSec 如何處理數(shù)據(jù)包報頭。 在隧道模式下加密和驗證整個 IP數(shù)據(jù)包(包括 IP 標(biāo)頭和有效負(fù)載),并附加一個新的報頭,如下圖所示。通常,隧道模式應(yīng)用在兩個安全網(wǎng)關(guān)之間的通訊。
隧道模式 在傳輸模式下,IPSec 僅加密(或驗證)數(shù)據(jù)包的有效負(fù)載,但或多或少地保留現(xiàn)有的數(shù)據(jù)報頭數(shù)據(jù)。通常,傳輸模式應(yīng)用在兩臺主機(jī)之間的通訊,或一臺主機(jī)和一個安全網(wǎng)關(guān)之間的通訊。
IPSec傳輸模式和隧道模式的區(qū)別在于:
- 從安全性來講,隧道模式優(yōu)于傳輸模式。它可以完全對原始IP數(shù)據(jù)包進(jìn)行驗證和加密。隧道模式下可以隱藏內(nèi)部IP地址、協(xié)議類型和端口。
- 從性能來講,隧道模式因為有一個額外的IP頭,所以它將比傳輸模式占用更多帶寬。
- 從場景來講,傳輸模式主要應(yīng)用于兩臺主機(jī)或一臺主機(jī)和一臺VPN網(wǎng)關(guān)之間通信;隧道模式主要應(yīng)用于兩臺VPN網(wǎng)關(guān)之間或一臺主機(jī)與一臺VPN網(wǎng)關(guān)之間的通信。
IPSec 如何在 VPN 中使用?
VPN本質(zhì)上是在公共網(wǎng)絡(luò)上實現(xiàn)的專用網(wǎng)絡(luò)。VPN 通常用于企業(yè),使員工能夠遠(yuǎn)程訪問其公司網(wǎng)絡(luò)。按照VPN協(xié)議分類,常見的VPN種類有:IPSec、SSL、GRE、PPTP和L2TP等。其中IPSec是通用性較強(qiáng)的一種VPN技術(shù),適用于多種網(wǎng)絡(luò)互訪的場景。 IPSec 通常用于保護(hù) VPN的安全。VPN在用戶的計算機(jī)和VPN服務(wù)器之間創(chuàng)建了一個專用網(wǎng)絡(luò),而IPSec協(xié)議實現(xiàn)了一個安全的網(wǎng)絡(luò),保護(hù)VPN數(shù)據(jù)不受外部訪問。
通過IPSec VPN可以在主機(jī)和主機(jī)之間、主機(jī)和網(wǎng)絡(luò)安全網(wǎng)關(guān)之間或網(wǎng)絡(luò)安全網(wǎng)關(guān)(如路由器、防火墻)之間建立安全的隧道連接。其協(xié)議主要工作在IP層,在IP層對數(shù)據(jù)包進(jìn)行加密和驗證。可以使用兩種 IPSec 模式設(shè)置 VPN:隧道模式和傳輸模式。
IPSec VPN與SSL VPN
SSL VPN是采用SSL/TLS協(xié)議來實現(xiàn)遠(yuǎn)程接入的一種輕量級VPN技術(shù),包括服務(wù)器認(rèn)證、客戶認(rèn)證、SSL鏈路上的數(shù)據(jù)完整性和SSL鏈路上的數(shù)據(jù)保密性。SSL VPN提供安全、可代理連接,只有經(jīng)認(rèn)證的用戶才能對資源進(jìn)行訪問。SSL VPN能對加密隧道進(jìn)行細(xì)分,從而使得終端用戶能夠同時接入Internet和訪問內(nèi)部企業(yè)網(wǎng)資源,也就是說它具備可控功能。
IPSec VPN和SSL VPN 都可以實現(xiàn)企業(yè)級安全遠(yuǎn)程訪問,但它們以不同的方式提供。IPSec工作在網(wǎng)絡(luò)層,即把原始數(shù)據(jù)包網(wǎng)絡(luò)層及以上的內(nèi)容進(jìn)行封裝;SSL VPN工作在傳輸層,封裝的是應(yīng)用信息。
IPSec和SSL的具體區(qū)別:
自1998年正式頒布以來,IPSec經(jīng)過了二十多年的發(fā)展,其設(shè)計初衷是在網(wǎng)絡(luò)層建立一套通用的安全機(jī)制,保護(hù)所有IP網(wǎng)絡(luò)通信的安全。相比位于傳輸層和應(yīng)用層的安全協(xié)議,IPSec可以提供較為廣泛和通用的安全保護(hù)。由于位于網(wǎng)絡(luò)層,IPSec對上層協(xié)議是透明的,不需要修改上層協(xié)議就可以使用。但I(xiàn)PSec也存在著一定的限制,在某些情況下,其不可以進(jìn)行直接的端到端通信(即傳輸模式)。另外,IPSec配置復(fù)雜性較高,相比其他 VPN 協(xié)議要求更高。