IPsec 的工作原理、組件和用途
什么是 IPsec?
IPsec 是一套用于保護 Internet 通信安全的協議——實際上,該名稱本身就是Internet Protocol Security的縮寫。
IPsec 于 20 世紀 90 年代首次編纂,受到需要保護互聯網流量的曙光的啟發:早期互聯網主要連接安全的政府和大學建筑,以及定義在線通信工作方式的互聯網協議 (IP) 發送信息圍繞不安全和未加密。
IPsec 旨在創建互聯網安全的通用標準,并啟用了一些第一個真正安全的互聯網連接。IPsec 不是您今天將使用的最常見的 Internet 安全協議,但它在保護 Internet 通信方面仍然發揮著至關重要的作用。
IPsec 有什么用?
如果您今天使用 IPsec,它可能是在虛擬專用網絡或VPN 的環境中。顧名思義,VPN 在公共 Internet 上的兩臺機器之間創建網絡連接,與專用內部網絡中的連接一樣安全(或幾乎一樣安全):可能 VPN 最著名的用例是允許遠程員工訪問公司防火墻后面的安全文件,就像他們在辦公室工作一樣。
在安全套件的協議是技術,主要種的安全VPN一個所謂的IPsec的VPN ,自然。在本文的大部分內容中,當我們說 VPN 時,我們指的是 IPsec VPN,在接下來的幾個部分中,我們將解釋它們的工作原理。
關于IPsec 端口的注意事項:如果您希望設置防火墻以允許 IPsec VPN 連接,請確保打開 UDP 端口 500 以及 IP 端口 50 和 51。
IPsec層
在我們深入了解 IPsec VPN 的工作原理之前,我們需要了解是什么賦予了它們在網絡世界中的特殊地位,為此我們需要討論OSI 網絡模型。OSI 模型定義了七層——基本上是不斷增加的抽象層——在這些層上進行網絡通信。堆棧的頂部是第 7 層,即應用程序層,即您的 Web 瀏覽器所在的層;底部是第 1 層,即物理層,電脈沖在此通過電線傳輸。
該模型的核心是傳輸層(第 4 層)和網絡層(第 3 層)。為管理傳輸層而編寫的代碼在單獨的計算機上運行,??并負責協調終端系統和主機之間的數據傳輸:要發送多少數據、以什么速率發送以及去向何處。一旦這一切都設置好了,傳輸層就會將數據交給網絡層,網絡層主要由運行在路由器和構成網絡的其他組件上的代碼控制。這些路由器決定單個網絡數據包到達目的地的路由,但通信鏈兩端的傳輸層代碼不需要知道這些細節。
位于 Internet 核心的 TCP/IP 協議套件跨越這兩層——TCP(或傳輸控制協議)用于傳輸,而 IP 用于網絡。就其本身而言,IP 沒有任何內置安全性,正如我們所指出的,這就是開發 IPsec 的原因。但是 IPsec 緊隨其后的是SSL/TLS——TLS代表傳輸層安全,它涉及在該層加密通信。
如今,TLS 已內置于幾乎所有瀏覽器和其他互聯網連接應用程序中,并且對于日常互聯網使用來說已經綽綽有余。但這并不完美,如果攻擊者能夠破解或以其他方式繞過您的 TLS 加密,他們就可以訪問您通過 Internet 發送的單個網絡數據包中的數據。這就是 IPsec VPN 可以添加另一層保護的原因:它涉及保護數據包本身。
IPsec 的工作原理
IPsec VPN 連接始于在兩臺正在通信的計算機或主機之間建立安全關聯(SA) 。通常,這涉及交換加密密鑰,這將允許各方對其通信進行加密和解密。(有關密碼學一般工作原理的更多信息,請查看CSO 的密碼學解釋器。)所使用的確切加密類型是在兩臺主機之間自動協商的,并將取決于它們在CIA 三元組中的安全目標;例如,您可以加密消息以確保消息完整性(即,確保數據未被更改)而不是機密性。但在大多數情況下,您也會嘗試對數據保密。
關于 SA 的信息被傳遞到在每個通信主機上運行的 IPsec 模塊,每個主機的 IPsec 模塊使用該信息來修改發送到另一臺主機的每個 IP 數據包,并處理收到的類似修改后的數據包。這些修改會影響數據包的標頭——數據包開頭的元數據,解釋數據包的去向、來源、長度和其他信息——以及它的有效載荷,即正在發送的實際數據。
IPsec 組件
有三種主要的 IPsec 協議決定 IPsec 如何修改 IP 數據包:
- Internet 密鑰交換 (IKE)在通信主機之間建立 SA,協商將在會話過程中使用的加密密鑰和算法。
- 身份驗證標頭 (AH)向正在發送的數據包添加一個標頭字段,其中包含數據包內容的加密散列。接收數據包的主機可以使用此散列來確保有效負載在傳輸過程中未被修改。
- 封裝安全負載 (ESP)對負載進行加密。它還在數據包頭中添加一個序列號,以便接收主機可以確保它不會收到重復的數據包。
請注意,可以同時使用 AH 和 ESP,盡管較新版本的 ESP 協議包含了 AH 的大部分功能。無論如何,這兩種協議都內置于 IP 實現中。
IPsec加密
IKE 和 ESP 建立的加密完成了我們期望從 IPsec VPN 中完成的大部分工作。您會注意到,我們對這里的加密工作方式有些含糊;這是因為 IKE 和 IPsec 允許使用廣泛的加密套件和技術,這就是 IPsec 在該領域取得超過 20 年進步的原因。IPsec VPN 將公鑰基礎設施(PKI) 用于加密目的是相當普遍的,但這絕不是必需的,還有其他選項可用。
IPsec 模式:IPsec 隧道與 IPsec 傳輸
IPsec 有兩種不同的運行方式,稱為模式:隧道模式和傳輸模式。兩者之間的區別與 IPsec 如何處理數據包頭有關。在傳輸模式下,IPsec 僅加密(或驗證,如果僅使用 AH)數據包的有效載荷,但或多或??少地保留現有數據包頭數據。在隧道模式下,IPsec 創建一個帶有新標頭的全新數據包,加密(或驗證)包括其標頭在內的整個原始數據包,并使用修改后的原始數據包作為新數據包的有效載荷。
你什么時候會使用不同的模式?如果網絡數據包已從專用網絡上的主機發送或發往專用網絡上的主機,則該數據包的標頭包含有關這些網絡的路由數據——黑客可以分析該信息并將其用于惡意目的。保護該信息的隧道模式通常用于位于企業專用網絡外邊緣的網關之間的連接。一個數據包在離開一個網絡時被加密,并放入一個新的數據包中,該數據包的目的地是目標網絡的網關。一旦它到達網關,它就會被解密并從封裝數據包中刪除,并沿其發送到內部網絡上的目標主機。因此,當數據包穿越公共互聯網時,有關專用網絡拓撲的標頭數據永遠不會公開。
另一方面,傳輸模式通常用于工作站到網關和主機到主機的直接連接。例如,使用 Windows 遠程桌面幫助診斷用戶計算機上的問題的服務技術將使用傳輸模式連接。
IPsec VPN 與 SSL VPN
如上所述,IPsec VPN 并不是城里唯一的游戲。還有SSL VPN,顧名思義,它受 TLS 協議而非 IPsec 保護。SSL VPN 通過網絡瀏覽器運行,通常用于訪問有防火墻的內聯網網站。因為它們內置于每個人都熟悉的瀏覽器軟件中,所以 SSL VPN 使用起來要簡單得多;IPsec VPN 通常需要安裝和配置專門的軟件。SSL VPN 還可以提供對專用網絡的更細粒度的限制訪問。
另一方面,由于它使用 TLS,因此 SSL VPN 在傳輸層而非網絡層受到保護,因此這可能會影響您對它在多大程度上增強連接安全性的看法。
IPsec教程
哪里可以了解更多:
- NetworkLessons 對IPsec 進行了深入的研究,引導您了解我們在此處瀏覽的技術細節。
- IBM 還提供了一系列很好的快速指南,解釋了如何配置各種 IPsec 連接的拓撲結構。
- Netgate 將引導您完成一個站點到站點 IPsec VPN 連接的示例,該示例應該很有啟發性