自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

人狠話不多,這份IPSec的體系結(jié)構(gòu)詳解請拿走~

網(wǎng)絡(luò) 網(wǎng)絡(luò)管理
前兩天有同學(xué)說想看IPSec,所以今天就來聊聊IPSec的體系結(jié)構(gòu)。話不多說,開始。

IP安全 (IP Security)體系結(jié)構(gòu),簡稱 IPSec,是 IETF IPSec 工作組于1998年制定的一組基于密碼學(xué)的安全的開放網(wǎng)絡(luò)安全協(xié)議。IPSec工作在 IP 層,為 IP 層及其上層協(xié)議提供保護(hù)。

IPSec提供訪問控制、無連接的完整性、數(shù)據(jù)來源驗證、防重放保護(hù)、保密性、自動密鑰管理等安全服務(wù)。IPSec獨(dú)立于算法,并允許用戶( 或系統(tǒng)管理員 ) 控制所提供的安全服務(wù)粒度。比如可以在兩臺安全網(wǎng)關(guān)之間創(chuàng)建一條承載所有流量的加密隧道,也可以在穿越這些安全網(wǎng)關(guān)的每對主機(jī)之間的每條TCP連接間建立獨(dú)立的加密隧道。

IPSec在傳輸層之下,對應(yīng)用程序和終端用戶來說是透明的。當(dāng)在路由器或防火墻上安裝 IPSec時,無需更改用戶或服務(wù)器系統(tǒng)中的軟件設(shè)置即使在終端系統(tǒng)中執(zhí)行 IPSec,應(yīng)用程序之類的上層軟件也不會受到影響。

1. IPSec的組成

IPSec是因特網(wǎng)工程任務(wù)組(IETF)定義的一種協(xié)議套件,由一系列協(xié)議組成,驗證頭(AH)、封裝安全載荷(ESP)、 Internet安全關(guān)聯(lián)和密鑰管理協(xié)議 ISAKMP的 Internet IP 安全解釋域 (DOI)、ISAKMP、Internet密鑰交換( IKE)、 IP 安全文檔指南、 OAKLE密Y 鑰確定協(xié)議等,它們分別發(fā)布在RFC2401~RFC2412 的相關(guān)文檔中。圖2.3 顯示了 IPSec的體系結(jié)構(gòu)、組件及各組件間的相互關(guān)系。

  • AH(認(rèn)證頭)和 ESP(封裝安全載荷):是IPSec體系中的主體,其中定義了 協(xié)議的載荷頭格式以及它們所能提供的服務(wù),另外還定義了數(shù)據(jù)報的處理規(guī)則, 正是這兩個安全協(xié)議為數(shù)據(jù)報提供了網(wǎng)絡(luò)層的安全服務(wù)。兩個協(xié)議在處理數(shù)據(jù)報 文時都需要根據(jù)確定的數(shù)據(jù)變換算法來對數(shù)據(jù)進(jìn)行轉(zhuǎn)換,以確保數(shù)據(jù)的安全,其中包括算法、密鑰大小、算法程序以及算法專用的任何信息。
  • IKE(Internet密鑰交換):IKE利用 ISAKMP語言來定義密鑰交換,是對安 全服務(wù)進(jìn)行協(xié)商的手段。IKE交換的最終結(jié)果是一個通過驗證的密鑰以及建立在 通信雙方同意基礎(chǔ)上的安全服務(wù)——亦即所謂的“IPSec安全關(guān)聯(lián)”。
  • SA(安全關(guān)聯(lián)):一套專門將安全服務(wù)/ 密鑰和需要保護(hù)的通信數(shù)據(jù)聯(lián)系起 來的方案。它保證了IPSec數(shù)據(jù)報封裝及提取的正確性,同時將遠(yuǎn)程通信實體和 要求交換密鑰的IPSec數(shù)據(jù)傳輸聯(lián)系起來。即SA解決的是如何保護(hù)通信數(shù)據(jù)、保 護(hù)什么樣的通信數(shù)據(jù)以及由誰來實行保護(hù)的問題。
  • 策略:策略是一個非常重要的但又尚未成為標(biāo)準(zhǔn)的組件,它決定兩個實體之 間是否能夠通信; 如果允許通信,又采用什么樣的數(shù)據(jù)處理算法。如果策略定義不當(dāng), 可能導(dǎo)致雙方不能正常通信。與策略有關(guān)的問題分別是表示與實施。“表 示”負(fù)責(zé)策略的定義、存儲和獲取, “實施”強(qiáng)調(diào)的則是策略在實際通信中的應(yīng)用。

2. IPSec 的工作原理

設(shè)計IPSec是為了給 IPv4 和IPv6 數(shù)據(jù)提供高質(zhì)量的、可互操作的、基于密碼學(xué)的安全性。IPSec通過使用兩種通信安全協(xié)議來達(dá)到這些目標(biāo):認(rèn)證頭(AH) 和封裝安全載荷(ESP),以及像 Internet密鑰交換(IKE)協(xié)議這樣的密鑰管理 過程和協(xié)議來達(dá)到這些目標(biāo)。

IP AH協(xié)議提供數(shù)據(jù)源認(rèn)證,無連接的完整性, 以及一個可選的抗重放服務(wù)。ESP協(xié)議提供數(shù)據(jù)保密性,有限的數(shù)據(jù)流保密性,數(shù)據(jù)源認(rèn)證,無連接的完整性 以及抗重放服務(wù)。對于AH和ESP都有兩種操作模式:傳輸模式和隧道模式。IKE 協(xié)議用于協(xié)商 AH和ESP所使用的密碼算法,并將算法所需要的密鑰放在合適的位置。

IPSec所使用的協(xié)議被設(shè)計成與算法無關(guān)的。算法的選擇在安全策略數(shù)據(jù)庫(SPD)中指定。IPSec允許系統(tǒng)或網(wǎng)絡(luò)的用戶和管理員控制安全服務(wù)提供的粒度。通過使用安全關(guān)聯(lián)(SA), IPSec能夠區(qū)分對不同數(shù)據(jù)流提供的安全服務(wù)。

IPSec本身是一個開放的體系,隨著網(wǎng)絡(luò)技術(shù)的進(jìn)步和新的加密、驗證算法 的出現(xiàn),通過不斷加入新的安全服務(wù)和特性,IPSec就可以滿足未來對于信息安 全的需要。隨著互聯(lián)網(wǎng)絡(luò)技術(shù)的不斷進(jìn)步,IPSec作為網(wǎng)絡(luò)層安全協(xié)議,也是在 不斷地改進(jìn)和增加新的功能。其實在 IPSec的框架設(shè)計時就考慮過系統(tǒng)擴(kuò)展問題。例如在 ESP和 AH的文檔中定義有協(xié)議、報頭的格式以及它們提供的服務(wù),還定義有數(shù)據(jù)報的處理規(guī)則,但是沒有指定用來實現(xiàn)這些能力的具體數(shù)據(jù)處理算法。AH默認(rèn)的、強(qiáng)制實施的加密MAC是HMA-CMD5和HMA-CSHA,在實施方案中其它的加密算法 DES- CBC、CAST- CBC以及 3DES-CBC等都可以作為加密器使用。

3. IPSec的模式

IPSec協(xié)議(包括 AH和ESP)既可以用來保護(hù)一個完整的IP 載荷, 也可以用來 保護(hù)某個 IP 載荷的上層協(xié)議。這兩個方面的保護(hù)分別由IPSec兩種不同的“模式” 來提供:傳輸模式和隧道模式。

  • 傳輸模式:在傳輸模式中,IP頭與上層協(xié)議頭之間需插入一個特殊的IPSec 頭。傳輸模式保護(hù)的是IP包的有效載荷或者說保護(hù)的是上層協(xié)議(如TCP、UDP 和 ICMP),如圖 2.4所示。在通常情況下,傳輸模式只用于兩臺主機(jī)之間的安全通信。
  • 隧道模式:隧道模式為整個IP 包提供保護(hù)。如圖2.5 所示,要保護(hù)的整個IP 包都需封裝到另一個IP 數(shù)據(jù)報中,同時在外部與內(nèi)部IP頭之間插入一個IPSec頭。所有原始的或內(nèi)部包通過這個隧道從IP 網(wǎng)的一端傳遞到另一端,沿途的路由器只 檢查最外面的IP報頭,不檢查內(nèi)部原來的IP報頭。由于增加了一個新的IP報頭,因此,新 IP 報文的目的地址可能與原來的不一致。

在千兆網(wǎng)絡(luò)加密工程實現(xiàn)上,我們需要的是根據(jù)IPSec協(xié)議,實現(xiàn)一個安全 網(wǎng)關(guān)設(shè)備, 為了保證數(shù)據(jù)的機(jī)密性,考慮采用隧道模式的ESP封裝。 由于 IKE協(xié)議 是通過軟件實現(xiàn)的, 而本文著重討論 IPSec的硬件實現(xiàn)部分, 故本文不再介紹 IKE 協(xié)議。

4. IPSec的實現(xiàn)方式

IPSec可以在主機(jī)、路由器或防火墻(創(chuàng)建一個安全網(wǎng)關(guān))中同時實施和部 署。用戶可以根據(jù)對安全服務(wù)的需要決定究竟在什么地方實施,IPSec的實現(xiàn)方 式可分為集成方式、BITS方式、 BITW方式三種。

  • 集成方式:把 IPSec集成到 IP協(xié)議的原始實現(xiàn)中,這需要處理IP源代碼,適用于在主機(jī)和安全網(wǎng)關(guān)中實現(xiàn)。
  • “堆棧中的塊( BITS)”方式:把 IPSec作為一個“鍥子”插在原來的 IP 協(xié)議棧和鏈路層之間。這不需要處理IP 源代碼,適用于對原有系統(tǒng)的升級改造。這種方法通常用在主機(jī)方式中。
  • “線纜中的塊( BITW)”方式:這是本文采用實現(xiàn)IPSec的方式,它將 IPSec的實現(xiàn)在一個設(shè)備中進(jìn)行,該設(shè)備直接接入路由器或主機(jī)設(shè)備。當(dāng)用于支持一臺主機(jī)時,與BITS實現(xiàn)非常相似,但在支持路由器或防火墻時,它必須起到一臺安全網(wǎng)關(guān)的作用。

5. IPSec協(xié)議的處理

IPSec處理分兩類:外出處理和進(jìn)入處理。

(1) 外出處理

在外出處理的過程中,數(shù)據(jù)包從傳輸層流進(jìn)IP層。IP層首先取出 IP頭的有關(guān)參數(shù), 檢索SPDB數(shù)據(jù)庫,判斷應(yīng)為這個包提供那些安全服務(wù)。輸入SPDB的是傳送 報頭中的源地址和目的地址的“選擇符”。SPDB輸出的是根據(jù)“選擇符”查詢的 策略結(jié)果,有可能出現(xiàn)以下幾種情況:

丟棄這個包。此時包不會得以處理,只是簡單地丟掉。繞過安全服務(wù)。在這種情況下,這個IP包不作任何處理,按照一個普通的IP包發(fā)送出去。應(yīng)用安全服務(wù)。在這種情況下,需要繼續(xù)進(jìn)行下面的處理。

如果 SPDB的策略輸出中指明該數(shù)據(jù)包需要安全保護(hù),那么接著就是查詢SADB 來驗證與該連接相關(guān)聯(lián)的SA是否已經(jīng)建立,查詢的結(jié)果可能是下面的兩種情況之 一:如果相應(yīng)的SA已存在,對SADB的查詢就會返回指向該SA的指針; 如果查詢不到相應(yīng)的SA,說明該數(shù)據(jù)包所屬的安全通信連接尚未建立,就會調(diào)用IKE進(jìn)行協(xié)商,將所需要的 SA建立起來。 如果所需要的SA已經(jīng)存在,那么 SPDB結(jié)構(gòu)中包含指向 SA或SA集束的一個指針(具體由策略決定)。如果SPDB的查詢輸出規(guī)定必須將 IPSec應(yīng)用于數(shù)據(jù)包,那么在SA成功創(chuàng)建完成之前,數(shù)據(jù)包是不被允許傳送出去的。

對于從 SADB中查詢得到的 SA還必須進(jìn)行處理,處理過程如下:

  • 如果 SA的軟生存期已滿,就調(diào)用IKE建立一個新的SA。
  • 如果 SA的硬生存期已滿,就將這個SA刪除。
  • 如果序列號溢出,就調(diào)用IKE來協(xié)商一個新的SA。

SA處理完成后,IPSec的下一步處理是添加適當(dāng)?shù)腁H或 ESP報頭,開始對數(shù)據(jù)包進(jìn)行處理。其中涉及到對負(fù)載數(shù)據(jù)的加密、計算校驗等在下面的內(nèi)容中會給予詳細(xì)的介紹。SA中包含所有必要的信息,并已排好順序,使IPSec報頭能夠按正確的順序加以構(gòu)建。在完成IPSec的報頭構(gòu)建后,將生成的數(shù)據(jù)報傳送給原始IP 層進(jìn)行處理,然后進(jìn)行數(shù)據(jù)報的發(fā)送。

(2) 進(jìn)入處理

進(jìn)入處理中,在收到IP包后,假如包內(nèi)根本沒有包含IPSec報頭, 那么IPSec就會查閱SPDB,并根據(jù)為之提供的安全服務(wù)判斷該如何對這個包進(jìn)行處理。因為如果特定通信要求IPSec安全保護(hù),任何不能與 IPSec保護(hù)的那個通信的SPDB定義相匹配的進(jìn)入包就應(yīng)該被丟棄。它會用“選擇符” 字段來檢索 SPDB數(shù)據(jù)庫。策略 的輸出可能是以下三種情況:丟棄、繞過或應(yīng)用。如果策略的輸出是丟棄,那么數(shù)據(jù)包就會被放棄; 如果是應(yīng)用,但相應(yīng)的SA沒有建立,包同樣會被丟棄;否則就將包傳遞給下一層作進(jìn)一步的處理。

如果 IP 包中包含了 IPSec報頭,就會由 IPSec層對這個包進(jìn)行處理。IPSec從 數(shù)據(jù)包中提取出SPI、源地址和目的地址組織成

IPSec完成了對策略的校驗后,會將 IPSec報頭剝離下來, 并將包傳遞到下一層。下一層要么是一個傳輸層,要么是網(wǎng)絡(luò)層。 假如說數(shù)據(jù)包是 IP【ES【PTCP】】,下一層就是傳輸層;假如這個包是 IP【AH【 ESP【TCP】】】,下一層仍然是 IPSec層。

6. 認(rèn)證頭( AH)協(xié)議

(1) AH 的目標(biāo)

IP 協(xié)議中,用來提供 IP 數(shù)據(jù)包完整性的認(rèn)證機(jī)制是非常簡單的。IP 頭通過頭 部的校驗和域來保證IP 數(shù)據(jù)包的完整性。 而校驗和只是對IP 頭的每 16位計算累加 和的反碼。這樣并沒有提供多少安全性,因為 IP 頭很容易修改, 可以對修改過的 IP 頭重新計算校驗和并用它代替以前的校驗和。這樣接受端的主機(jī)就無法知道數(shù) 據(jù)包己經(jīng)被修改。

設(shè)計認(rèn)證頭 (AH)協(xié)議的目的是用于增加IP 數(shù)據(jù)包的安全性。AH協(xié)議提供無連 接的完整性 (connectionless integrity)、數(shù)據(jù)源認(rèn)證 (dataoriginauthentication)和反重播 (anti-replay)攻擊服務(wù)。 然而,AH不提供任何 保密性服務(wù), 也就是說它不加密所保護(hù)的數(shù)據(jù)包。AH的作用是為 IP數(shù)據(jù)流提供高 強(qiáng)度的密碼認(rèn)證,以確保被修改過的數(shù)據(jù)包可以被檢查出來。AH使用消息認(rèn)證碼 (MAC)對IP 進(jìn)行認(rèn)證。MAC不同于雜湊函數(shù),因為它需要密鑰來產(chǎn)生消息摘要,而 雜湊函數(shù)不需要密鑰。常用的MAC是 HMAC,它與任何迭代密碼雜湊函數(shù)( 如MD5, SHA-l, Tiger等 ) 結(jié)合使用,而不用對雜湊函數(shù)進(jìn)行修改。由于生成IP 數(shù)據(jù)包的 消息摘要需要密鑰,所以IPSec的通信雙方需要共享一個同樣的認(rèn)證密鑰。這個密鑰就是由雙方的SA信息來提供的。

(2) AH 協(xié)議包格式

AH只用于保證收到的數(shù)據(jù)包在傳輸過程中不被修改,保證由要求發(fā)送它的當(dāng) 事人將它發(fā)送出去, 以及保證它是一個新的非重播的數(shù)據(jù)包。AH用于傳送模式時, 保護(hù)的是端到端的通信。通信的終點必須是IPSec終點,所以在我們所研究的VPN 的隧道方式中不預(yù)考慮。AH協(xié)議隧道模式的包格式如圖2.6 所示:

  • 下一個頭 (8bit):指示下一個負(fù)載的協(xié)議類型。
  • 載荷長度 (8bit):AH的負(fù)載長度。
  • 保留 (8bit):供將來使用。
  • 安全參數(shù)索引SPI (32bit):它是一個 32位長的整數(shù)。它與源地址或目的 地址以及工PSEC協(xié)議 (AH或 ESP)來共同唯一標(biāo)識一個數(shù)據(jù)包所屬的數(shù)據(jù)流的安全聯(lián)合 (SA) 。SPI的值 1~255被 IANA留作將來使用; 0被保留,用32于本地和具體實現(xiàn)。所以目前有效的SPI值從 256~2³²-1。
  • 序列號 (32bit):這里包含了一個作為單調(diào)增加計數(shù)器的32位無符號整數(shù),用于防止對數(shù)據(jù)包的重演。所謂重演指的是數(shù)據(jù)包被攻擊者截取并 重新發(fā)送。如果接收端啟動了反重演攻擊功能,它將使用滑動接收窗口 檢測重演數(shù)據(jù)包。具體的滑動窗口因不同的工PSEC實現(xiàn)而不同,一般具有一下功能。窗口長度最小32比特,窗口的右邊界代表一特定SA所接收 倒的驗證有效的最大序列號,序列號小于窗口左邊界的數(shù)據(jù)包將被丟棄。將序列號值位于串口之內(nèi)的數(shù)據(jù)包與位于窗口內(nèi)的接收到的數(shù)據(jù)包清 單進(jìn)行比照,如果接收到的數(shù)據(jù)包的序列號位于窗口內(nèi)并且是新的,或 者序列號大于窗口右邊界且有效,那么接收主機(jī)繼續(xù)處理認(rèn)證數(shù)據(jù)的計算。
  • 認(rèn)證數(shù)據(jù):這是一個變長域(必須是32bit字的整數(shù)倍)。它包含數(shù)據(jù)包的認(rèn)證數(shù)據(jù),該認(rèn)證數(shù)據(jù)被稱為這個數(shù)據(jù)包的完整性校驗值(ICV) 。用于計算 ICV的可用的算法因IPSEC的實現(xiàn)不同而不同;然而,為了保證互操作性,AH強(qiáng)制所有的IPSec必須包含兩個 MAC: HMAC-MD5和HMAC-SHA-I。
責(zé)任編輯:趙寧寧 來源: 思科CCIE俱樂部
相關(guān)推薦

2022-08-09 07:53:49

gRPC框架通信

2012-02-06 17:22:44

MySQL

2010-09-25 13:38:23

Inside JVM

2009-06-26 15:58:28

EJB

2009-06-03 09:11:03

Hibernate工作原理體系結(jié)構(gòu)

2010-03-22 09:08:24

Visual Stud

2009-09-11 10:38:03

LINQ體系結(jié)構(gòu)

2014-07-23 09:33:52

2009-07-15 13:46:26

Swing體系結(jié)構(gòu)

2010-04-08 10:17:37

Oracle體系結(jié)構(gòu)

2013-08-01 11:17:20

SAP

2023-05-31 08:19:00

體系結(jié)構(gòu)設(shè)計

2016-12-26 10:29:01

Spring框架結(jié)構(gòu)

2010-06-21 14:51:14

ASON路由

2010-08-16 12:54:21

ASON路由技術(shù)

2009-09-08 14:34:42

Linq to SQL

2009-07-10 16:07:10

TikeSwing創(chuàng)建MVC體系結(jié)構(gòu)

2010-04-23 09:13:05

Oracle體系結(jié)構(gòu)

2010-09-27 09:43:07

JVM體系結(jié)構(gòu)

2020-02-18 16:07:17

物聯(lián)網(wǎng)表存儲數(shù)據(jù)庫
點贊
收藏

51CTO技術(shù)棧公眾號