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