在 TCP/IP 協議中,對 IP 數據包沒有提供任何安全保護,攻擊者可以通過網絡嗅探、 IP 欺騙、連接截獲等方法來攻擊正常的 TCP/IP 通信。因此,通信過程中會存在以下危險:數據并非來自合法的發送者、數據在傳輸過程中被非法篡改、信息內容已被人竊取等。
為了確保在 IP 網絡上進行安全保密的通信,IETF 制定了一套開放標準的網絡安全協議 IPSec(IP Security)。該協議把密碼技術應用在網絡層,以向信息的發送方和接收方提供源地址驗證、數據傳輸的完整性、存取控制、保密性等安全服務,保護通信免遭竊聽、抵御網絡攻擊,而且更高層的應用層協議也可以直接或間接地使用這些安全服務,為其上層協議如 TCP、UDP 等提供透明的安全保護服務,在 Internet 這樣不安全的網絡中為通信提供安全保證。
在 IPv6 中,IPSec 協議是一個必備的組成部分,被強制實施;在 IPv4 中,它是一個可選的擴展協議。
由于 Internet 等網絡具有公共特性,因此在通信過程中難以確認傳輸媒介是安全的,所以要進行安全的通信,則通信數據必須經過加密。IPSec 協議對數據的加密以數據包而不是整個數據流為單位,這不僅非常靈活,也有助于進一步提高 IP 數據包的安全性。
IPSec 協議的基本工作原理是:發送方在發送數據前對數據實施加密,然后把密文數據發送到網絡中去,開始傳輸。在整個傳輸過程中,數據都是以密文方式傳輸的,直到數據到達目的節點,才由接收方對密文進行解密,提取明文信息。
IPSec 協議對網絡層的通信使用了加密技術,它不是加密數據包的頭部和尾部信息(如源地址、目的地址、端口號、CRC 校驗值等),而是對數據包中的數據進行加密。由于加密過程發生在 IP 層,因此可在不改變 HTTP 等上層應用協議的情況下進行網絡協議的安全加密,為通信提供透明的安全傳輸服務。
IPSec 協議中使用端到端的工作模式,掌握加密、解密方法的只有數據的發送方和接收方,兩者各自負責相應的數據加密、解密處理,而網絡中其他節點只負責轉發數據,無須支持 IPSec,從而可以實現加密通信與傳輸媒介無關,保證機密數據在公共網絡環境下的適應性和安全性。因此,IPSec 可以應用到非常廣泛的環境中,能為局域網、撥號用戶、遠程站點、Internet 之上的通信提供強有力的保護,而且還能用來篩選特定數據流,還可以用于不同局域網之間通過互聯網的安全互聯。
IPSec 協議不是一個單獨的協議,它包括應用于 IP 層上網絡數據安全的一整套協議,主要包括 AH(Authentication Header,IP 認證頭部協議)、ESP(Encapsulating Security Payload,封裝安全負載協議)、IKE(Internet Key Exchange,Internet 密鑰交換協議)和用于網絡認證及加密的一些算法等。
AH 提供數據的完整性和認證,但不包括保密性;而 ESP 原則上只提供保密性,但也可在 ESP Header 中選擇適當的算法及模式來實現數據的完整性和認證。AH 和 ESP 可分開使用也可一起使用。IKE 則提供加密算法、密鑰等的協商。