網路安全 – 網路層



網路層安全控制經常用於保護通訊,尤其是在共享網路(如網際網路)上,因為它們可以一次性為許多應用程式提供保護,而無需修改這些應用程式。

在前面的章節中,我們討論了許多為網路安全而發展的即時安全協議,這些協議確保了安全性的基本原則,例如隱私、來源認證、訊息完整性和不可否認性。

這些協議大多集中在OSI協議棧的高層,以彌補標準網際網路協議固有的安全缺陷。雖然這些方法很有價值,但它們不能輕易地推廣到任何應用程式。例如,SSL是專門為保護HTTP或FTP等應用程式而開發的。但還有許多其他應用程式也需要安全的通訊。

這種需求催生了在IP層開發安全解決方案的需求,以便所有上層協議都能利用它。1992年,網際網路工程任務組(IETF)開始定義一個標準“IPsec”。

在本章中,我們將討論如何使用這個非常流行的協議集IPsec在網路層實現安全。

網路層安全

任何為提供網路安全而開發的方案都需要在協議棧的某一層實現,如下面的圖所示:

通訊協議 安全協議
應用層 HTTP FTP SMTP PGP、S/MIME、HTTPS
傳輸層 TCP/UDP SSL、TLS、SSH
網路層 IP IPsec

為確保網路層安全而開發的流行框架是網際網路協議安全(IPsec)。

IPsec的特性

  • IPsec並非設計為僅與TCP作為傳輸協議一起工作。它也適用於UDP以及IP之上的任何其他協議,例如ICMP、OSPF等。

  • IPsec保護呈現給IP層的所有資料包,包括上層報頭。

  • 由於隱藏了攜帶埠號的上層報頭,因此流量分析更加困難。

  • IPsec的工作方式是從一個網路實體到另一個網路實體,而不是從應用程式程序到應用程式程序。因此,可以採用安全措施,而無需更改單個使用者計算機/應用程式。

  • 雖然廣泛用於在網路實體之間提供安全通訊,但IPsec也可以提供主機到主機的安全。

  • IPsec最常見的用途是提供虛擬專用網路(VPN),無論是兩個位置之間(閘道器到閘道器),還是遠端使用者和企業網路之間(主機到閘道器)。

安全功能

IPsec提供的重要的安全功能如下:

  • 機密性

    • 使通訊節點能夠加密訊息。

    • 防止第三方竊聽。

  • 源認證和資料完整性。

    • 確保接收到的資料包確實是資料包報頭中標識的源方傳送的。

    • 確認資料包未被篡改。

  • 金鑰管理。

    • 允許安全地交換金鑰。

    • 防止某些型別的安全攻擊,例如重放攻擊。

虛擬專用網路

理想情況下,任何機構都希望擁有自己的專用網路進行通訊以確保安全。但是,在地域分散的區域建立和維護這種專用網路可能非常昂貴。這需要管理複雜的通訊鏈路、路由器、DNS等基礎設施。

IPsec提供了一種簡單的機制,可以為這些機構實現虛擬專用網路(VPN)。VPN技術允許機構的辦公室間流量透過加密在進入公共網際網路之前加密流量並在邏輯上將其與其他流量分離來透過公共網際網路傳送。VPN的簡化工作原理如下圖所示:

Virtual Private Network

IPsec概述

IPsec是用於在IP層提供安全的協議框架/套件。

起源

在20世紀90年代初期,網際網路僅被少數機構使用,主要用於學術目的。但在接下來的幾十年裡,由於網路的擴充套件和許多組織將其用於通訊和其他目的,網際網路的增長呈指數級增長。

隨著網際網路的巨大增長,加上TCP/IP協議固有的安全弱點,人們感到需要一種能夠在網際網路上提供網路安全的技術。網際網路體系結構委員會(IAB)於1994年釋出了一份題為“網際網路體系結構中的安全”的報告。該報告確定了安全機制的關鍵領域。

IAB將身份驗證和加密作為IPv6(下一代IP)中必不可少的安全特性。幸運的是,這些安全功能的定義方式使得它們既可以與當前的IPv4一起實現,也可以與未來的IPv6一起實現。

安全框架IPsec已在多份“請求意見”(RFC)中定義。一些RFC指定協議的某些部分,而另一些則解決整個解決方案。

IPsec中的操作

當IPsec套件協同工作時,可以認為它具有兩個獨立的操作,從而提供一整套安全服務。這兩個操作是IPsec通訊和網際網路金鑰交換。

  • IPsec通訊

    • 它通常與標準IPsec功能相關聯。它涉及封裝、加密和雜湊IP資料報以及處理所有資料包程序。

    • 它負責根據在通訊方之間建立的可用安全關聯(SA)管理通訊。

    • 它使用諸如身份驗證報頭(AH)和封裝安全負載(ESP)之類的安全協議。

    • IPsec通訊不涉及金鑰的建立或管理。

    • IPsec通訊操作本身通常稱為IPsec。

  • 網際網路金鑰交換(IKE)

    • IKE是用於IPsec的自動金鑰管理協議。

    • 從技術上講,金鑰管理對於IPsec通訊不是必需的,金鑰可以手動管理。但是,對於大型網路來說,手動金鑰管理不可取。

    • IKE負責為IPsec建立金鑰,並在金鑰建立過程中提供身份驗證。儘管IPsec可以用於任何其他金鑰管理協議,但預設情況下使用IKE。

    • IKE定義了兩個協議(Oakley和SKEME)與已定義的金鑰管理框架網際網路安全關聯金鑰管理協議(ISAKMP)一起使用。

    • ISAKMP不是IPsec特有的,而是為任何協議建立SA的框架。

本章主要討論IPsec通訊和為實現安全而採用的相關協議。

IPsec通訊模式

IPsec通訊有兩種工作模式:傳輸模式和隧道模式。這些模式可以組合使用或單獨使用,具體取決於所需的通訊型別。

傳輸模式

  • IPsec不會封裝從上層接收到的資料包。

  • 保持原始IP報頭,並根據上層協議設定的原始屬性轉發資料。

  • 下圖顯示了協議棧中的資料流。

Transport Mode
  • 傳輸模式的侷限性在於無法提供閘道器服務。它保留用於點對點通訊,如下圖所示。

Point-to-Point Communications

隧道模式

  • 這種IPsec模式提供封裝服務以及其他安全服務。

  • 在隧道模式操作中,在上層應用安全協議之前封裝整個資料包。新增新的IP報頭。

  • 下圖顯示了協議棧中的資料流。

Tunnel Mode
  • 隧道模式通常與閘道器活動相關聯。封裝提供了透過單個閘道器傳送多個會話的能力。

  • 典型的隧道模式通訊如下圖所示。

Typical Tunnel Mode Communication
  • 就端點而言,它們具有直接的傳輸層連線。從一個系統轉發到閘道器的資料報被封裝,然後轉發到遠端閘道器。遠端關聯閘道器解封裝資料並將其轉發到內部網路上的目標端點。

  • 使用IPsec,也可以在閘道器和單個終端系統之間建立隧道模式。

Tunneling Mode Using IPsec

IPsec協議

IPsec使用安全協議來提供所需的安全服務。這些協議是IPsec操作的核心,其他所有內容都是為了支援IPsec中的這些協議而設計的。

通訊實體之間的安全關聯由使用的安全協議建立和維護。

IPsec定義了兩種安全協議——身份驗證報頭(AH)和封裝安全有效載荷(ESP)。

身份驗證報頭

AH協議提供資料完整性和源身份驗證服務。它可以選擇性地提供訊息重放抵抗能力。但是,它不提供任何形式的機密性。

AH是一種透過新增報頭來提供資料報全部或部分內容身份驗證的協議。報頭是根據資料報中的值計算的。用於計算的資料報的哪些部分以及在何處放置報頭取決於模式協作(隧道或傳輸)。

AH協議的操作非常簡單。可以認為它類似於用於計算校驗和或執行CRC檢查以進行錯誤檢測的演算法。

AH背後的概念是相同的,只是它不使用簡單的演算法,而是使用特殊的雜湊演算法和只有通訊雙方知道的秘密金鑰。兩個裝置之間設定了一個安全關聯,該關聯指定這些細節。

AH的過程經過以下階段。

  • 當從上層協議棧接收到IP資料包時,IPsec根據資料包中的可用資訊(例如,IP地址(源和目標))確定關聯的安全關聯(SA)。

  • 從SA中,一旦確定安全協議是AH,就計算AH報頭的引數。AH報頭包含以下引數:

Authentication Header
  • 報頭欄位指定AH報頭之後的資料包的協議。序列引數索引(SPI)從通訊方之間存在的SA中獲得。

  • 計算並插入序列號。這些數字為AH提供可選功能以抵抗重放攻擊。

  • 身份驗證資料的計算方式取決於通訊模式。

  • 在傳輸模式下,身份驗證資料的計算和最終IP資料包的組裝以進行傳輸如下圖所示。在原始IP報頭中,僅在協議號更改為51以指示AH的應用。

Ip Packet Transmission1
  • 在隧道模式下,上述過程如下圖所示。

Ip Packet Transmission2

封裝安全協議 (ESP)

ESP提供諸如機密性、完整性、源身份驗證和可選重放抵抗能力等安全服務。提供的服務集取決於在建立安全關聯 (SA) 時選擇的選項。

在ESP中,用於加密和生成鑑別器的演算法由用於建立SA的屬性確定。

ESP的過程如下。前兩步與上述AH的過程類似。

  • 一旦確定ESP參與其中,則計算ESP分組的欄位。ESP欄位的排列如下圖所示。

ESP Field Arrangement
  • 傳輸模式下的加密和認證過程如下圖所示。

Transport Mode Encryption Authentication
  • 在隧道模式下,加密和認證過程如下圖所示。

Tunnel Mode Encryption Authentication

雖然認證和機密性是ESP提供的首要服務,但兩者都是可選的。從技術上講,我們可以使用無認證的NULL加密。但是,在實踐中,必須實現兩者之一才能有效地使用ESP。

基本概念是在需要認證和加密時使用ESP,在需要無加密的擴充套件認證時使用AH。

IPsec中的安全關聯

安全關聯 (SA) 是IPsec通訊的基礎。SA 的特性如下:

  • 在傳送資料之前,傳送實體和接收實體之間會建立一個虛擬連線,稱為“安全關聯 (SA)”。

  • IPsec 提供了許多執行網路加密和身份驗證的選項。每個IPsec連線都可以提供加密、完整性、身份驗證或所有三種服務。確定安全服務後,兩個IPsec對等實體必須準確確定要使用哪些演算法(例如,DES或3DES用於加密;MD5或SHA-1用於完整性)。確定演算法後,這兩個裝置必須共享會話金鑰。

  • SA是一組上述通訊引數,它在兩個或多個系統之間建立關係以構建IPsec會話。

  • SA本質上很簡單,因此雙向通訊需要兩個SA。

  • SA透過安全引數索引 (SPI) 編號來標識,該編號存在於安全協議報頭中。

  • 傳送和接收實體都維護關於SA的狀態資訊。這類似於TCP端點,它們也維護狀態資訊。IPsec與TCP一樣是面向連線的。

SA的引數

任何SA都由以下三個引數唯一標識:

  • 安全引數索引 (SPI)。

    • 這是一個分配給SA的32位值。它用於區分在同一目的地終止並使用相同IPsec協議的不同SA。

    • 每個IPsec資料包都帶有包含SPI欄位的報頭。SPI用於將傳入資料包對映到SA。

    • SPI是由傳送方生成的隨機數,用於向接收方標識SA。

  • 目標IP地址 - 它可以是終端路由器的IP地址。

  • 安全協議識別符號 - 它指示關聯是AH還是ESP SA。

參與IPsec通訊的兩個路由器之間的SA示例如下圖所示。

SA Parameters

安全管理資料庫

在IPsec中,有兩個資料庫控制IPsec資料報的處理。一個是安全關聯資料庫 (SAD),另一個是安全策略資料庫 (SPD)。每個使用IPsec的通訊端點都應該具有邏輯上分開的SAD和SPD。

安全關聯資料庫

在IPsec通訊中,端點在安全關聯資料庫 (SAD) 中儲存SA狀態。SAD資料庫中的每個SA條目都包含九個引數,如下表所示:

序號 引數及描述
1

序列號計數器

用於出站通訊。這是AH或ESP報頭中提供的32位序列號。

2

序列號溢位計數器

設定一個選項標誌以防止進一步使用特定SA的通訊。

3

32位防重放視窗

用於確定傳入的AH或ESP資料包是否是重放。

4

SA的生命週期

SA保持活動的時間

5

演算法 - AH

用於AH及其關聯金鑰

6

演算法 - ESP認證

用於ESP報頭的身份驗證部分

7

演算法 - ESP加密

用於ESP及其關聯金鑰資訊的加密

8

IPsec操作模式

傳輸模式或隧道模式

9

路徑MTU(PMTU)

任何觀察到的路徑最大傳輸單元(以避免碎片)

SAD中的所有SA條目都按三個SA引數索引:目標IP地址、安全協議識別符號和SPI。

安全策略資料庫

SPD用於處理傳出資料包。它有助於確定應使用哪些SAD條目。如果不存在SAD條目,則SPD用於建立新的SAD條目。

任何SPD條目都將包含:

  • 指向SAD中儲存的活動SA的指標。

  • 選擇器欄位 – 上層傳入資料包中的欄位,用於決定IPsec的應用。選擇器可以包括源地址和目標地址,如果相關的話,埠號,應用程式ID,協議等。

傳出的IP資料報從SPD條目到特定的SA,以獲取編碼引數。傳入的IPsec資料報直接使用SPI/目標IP/協議三元組到達正確的SA,並從中提取關聯的SAD條目。

SPD還可以指定應繞過IPsec的流量。SPD可以被認為是一個數據包過濾器,其中決定的動作是SA程序的啟用。

總結

IPsec是一套用於保護網路連線的協議。它是一種相當複雜的機制,因為它沒有直接定義特定的加密演算法和身份驗證功能,而是提供了一個框架,允許實現通訊雙方都同意的任何內容。

身份驗證報頭 (AH) 和封裝安全有效載荷 (ESP) 是IPsec使用的兩種主要的通訊協議。AH只進行身份驗證,而ESP可以加密和身份驗證透過連線傳輸的資料。

傳輸模式在兩個端點之間提供安全的連線,而無需更改IP報頭。隧道模式封裝整個有效載荷IP資料包。它新增新的IP報頭。後者用於形成傳統的VPN,因為它透過不可靠的網際網路提供虛擬安全隧道。

建立IPsec連線涉及各種加密選擇。身份驗證通常建立在MD5或SHA-1等密碼雜湊之上。加密演算法是DES、3DES、Blowfish和AES是常見的。其他演算法也是可能的。

兩個通訊端點都需要知道雜湊或加密中使用的秘密值。手動金鑰需要在兩端手動輸入秘密值,大概透過某種帶外機制進行傳送,而IKE(網際網路金鑰交換)是一種線上執行此操作的複雜機制。

廣告
© . All rights reserved.