Internet Protocol Security 是一个协议套件,用于在 IP 网络上安全地传输数据包。它通过加密数据包和验证发送者来提供安全性

它的核心目标是:  

  • 机密性(Confidentiality):防止数据被未授权的人读取。
  • 完整性(Integrity):确保数据在传输过程中没有被篡改。
  • 身份验证(Authentication):验证通信双方的身份,确保数据确实来自声明的发送者。

工作模式

IPSec 主要有两种工作模式:

  • 传输模式(Transport Mode):只加密和/或验证 IP 数据包的有效负载(即实际传输的数据),而 IP 头部保持不变. 这种模式通常用于保护主机之间的通信。
  • 隧道模式(Tunnel Mode):加密整个原始 IP 数据包,并为其创建一个新的 IP 头部. 隧道模式常用于在网络之间创建安全的 VPN 连接,例如,连接两个办公室的网络。

IPSec 的关键组件

安全协议

  • AH(Authentication Header):提供数据完整性和身份验证,但不加密数据.
  • ESP(Encapsulating Security Payload):提供数据机密性、完整性和身份验证. ESP 可以单独使用,也可以与 AH 结合使用。

安全关联(SA,Security Association)

  • SA 是通信双方之间关于如何使用 IPSec 来保护通信的一种约定.  
  • 每个 SA 都是单向的,因此如果需要双向安全通信,则需要建立两个 SA。
  • SA 包括加密算法、密钥、生存期等参数。

密钥交换协议

  • IKE(Internet Key Exchange):用于在通信双方之间安全地协商和交换 SA.  
  • IKE 负责生成加密和身份验证所需的密钥。

IPSec 的工作原理

  1. IKE 阶段 1:建立一个安全的通道,用于后续的 IKE 通信
  2. IKE 阶段 2:协商 IPSec SA,确定将哪些安全协议(AH 或者 ESP)、哪些加密算法以及其他相关参数
  3. 数据传输:一旦 SA 建立,数据就可以根据 SA 中定义的参数进行安全地传输,这可能设计加密数据包、添加 AH 头部或者同时都有
  4. 连接终止:SA 会在一段时间后过期,或者在通信结束时终止