计算机网络:IPSec协议

一张图总结

IPSec 协议概述

IPSec(Internet Protocol Security,互联网协议安全)是一套工作在网络层的安全通信协议族,主要用于保护 IP 网络中的数据传输安全。

传统 IP 协议本身并没有提供完善的安全机制。数据包在经过互联网传输时,可能遭遇:

  • 数据被窃听;
  • 数据被篡改;
  • 数据包被伪造;
  • 数据包被重复发送;
  • 通信双方身份无法得到可靠验证。

IPSec 就是为了解决这些问题而设计的。

简单来说,可以把 IPSec 理解成:

在 IP 层给网络通信增加一层"安全保护"。

它可以为 IP 数据提供:

  1. 机密性(Confidentiality)
  2. 完整性(Integrity)
  3. 身份认证(Authentication)
  4. 抗重放(Anti-Replay)

IPSec 最大的特点是工作在网络层,因此对于上层应用通常是透明的。

例如:

复制代码
        应用层
     HTTP / RTSP / FTP
          ↓
        TCP/UDP
          ↓
       IP + IPSec
          ↓
       Ethernet

应用程序通常不需要修改,就可以利用 IPSec 获得安全通信能力。

IPSec 的体系结构

IPSec 并不是单独的一个协议,而是一组协议和机制的集合。

其核心组成可以概括为:

复制代码
                 IPSec
                   │
       ┌───────────┼───────────┐
       ↓           ↓           ↓
      AH          ESP          IKE
   身份认证      加密保护      密钥协商
   数据完整性    数据机密性    建立SA
       │           │           │
       └───────────┴───────────┘
                   ↓
             Security Association
                    SA

其中最核心的是:

  • AH:Authentication Header
  • ESP:Encapsulating Security Payload
  • IKE:Internet Key Exchange
  • SA:Security Association

AH 协议

AH,即 Authentication Header,中文一般称为认证头

AH 的主要作用是:

  • 数据完整性保护;
  • 数据来源认证;
  • 抗重放攻击。

AH 不负责加密数据

也就是说:

复制代码
原始数据:

IP头 | TCP/UDP | 数据

经过 AH:

IP头 | AH | TCP/UDP | 数据

数据本身仍然是明文。

因此,如果攻击者截获数据包,理论上仍然可以看到数据内容。

AH 的核心作用是保证:

数据没有被别人修改,而且确实来自可信的通信方。

AH 中比较重要的字段包括:

  • Next Header:下一个协议;
  • Payload Length:负载长度;
  • SPI:Security Parameters Index;
  • Sequence Number:序列号;
  • Authentication Data:认证数据。

其中 SPI 用来标识具体的安全关联 SA。

ESP 协议

ESP,即 Encapsulating Security Payload,是 IPSec 中使用最广泛的协议。

ESP 可以同时提供:

  • 数据加密;
  • 数据完整性保护;
  • 数据来源认证;
  • 抗重放保护。

典型结构:

复制代码
┌────────┬────────┬──────────────┬────────┬──────────────┐
│ 原始IP头 │ ESP头 │   加密数据   │ ESP尾 │ 认证数据     │
└────────┴────────┴──────────────┴────────┴──────────────┘
          SPI      Sequence       Padding

ESP Header 主要包含:

复制代码
SPI
Sequence Number

ESP Trailer 通常包括:

复制代码
Padding
Pad Length
Next Header

最后还可能存在:

复制代码
Authentication Data

ESP 是实际 VPN 系统中非常常见的 IPSec 协议。

例如:

复制代码
设备A
  │
  │ 原始IP数据
  ↓
ESP加密
  │
  │ 密文
  ↓
Internet
  │
  ↓
ESP解密
  │
  ↓
设备B

因此,如果你以后在抓包时看到 IP 协议号 50,通常就是 ESP。

AH 的 IP 协议号是 51

AH 与 ESP 的区别

对比项目 AH ESP
数据加密
数据完整性
身份认证
抗重放
隐藏数据内容
使用情况 较少 非常常见
IP协议号 51 50

实际网络中,ESP 的使用远多于 AH

原因很简单:

VPN 通常不仅需要证明数据没被修改,还需要防止数据被窃听。

IPSec 的两种工作模式

IPSec 最重要的知识点之一,就是:

传输模式和隧道模式。

传输模式

传输模式主要用于主机到主机的通信。

原始数据:

复制代码
IP头 | TCP/UDP | 数据

经过 ESP 后:

复制代码
IP头 | ESP头 | TCP/UDP | 数据 | ESP尾

其中:

  • 原来的 IP Header 基本保留;
  • TCP/UDP 和应用数据被保护。

示意:

复制代码
主机A                           主机B
  │                               │
  │       IPSec ESP               │
  ├────────── Internet ───────────┤
  │                               │

适合:

  • 两台服务器之间通信;
  • 主机到主机的安全通信。

隧道模式

隧道模式是企业 VPN 中更加常见的模式。

它通常用于:

网关到网关、客户端到网关。

原始数据:

复制代码
原IP头 | TCP/UDP | 数据

经过 IPSec 隧道模式后:

复制代码
新IP头 | ESP头 | 原IP头 | TCP/UDP | 数据 | ESP尾

可以理解为:

复制代码
          加密区域
┌───────────────────────────────┐
│ 原IP头 | TCP/UDP | 数据       │
└───────────────────────────────┘
        ↑
      ESP保护
        ↑
新IP头 | ESP头 | 加密数据 | ESP尾

这也是为什么 IPSec 非常适合构建 VPN。

例如:

复制代码
公司A内网                         公司B内网
192.168.1.0/24                  192.168.2.0/24
     │                                │
     │                                │
   VPN网关A ===== IPSec隧道 ===== VPN网关B
                  Internet

公司 A 和公司 B 的内部网络就可以通过 IPSec 隧道安全通信。

Security Association------安全关联 SA

SA 是理解 IPSec 的关键。

SA(Security Association)可以理解成:

双方约定好的一套通信安全参数。

例如:

bash 复制代码
使用什么加密算法?
AES-256

使用什么认证算法?
SHA-256

使用什么密钥?
XXXXXXXX

SPI是多少?
0x1001

使用传输模式还是隧道模式?
Tunnel Mode

生命周期是多少?
3600秒

这些信息组合起来,就是一个 SA。

可以简单理解:

复制代码
SA
│
├── SPI
├── 对端IP
├── 加密算法
├── 认证算法
├── 加密密钥
├── 认证密钥
├── 序列号
├── 生命周期
└── 工作模式

IPSec 通常通过 SPD 和 SAD 来管理安全策略和安全关联。

SPD

Security Policy Database,安全策略数据库。

它回答:

哪些数据需要使用 IPSec?

例如:

复制代码
192.168.1.0/24
        ↓
192.168.2.0/24
        ↓
必须使用 IPSec

SAD

Security Association Database,安全关联数据库。

它回答:

具体使用什么 IPSec 参数?

IKE------互联网密钥交换协议

如果 IPSec 需要加密,那么双方首先需要解决一个非常重要的问题:

加密密钥从哪里来?

这就是 IKE 的作用。

IKE(Internet Key Exchange)负责:

  • 身份认证;
  • 密钥协商;
  • 加密算法协商;
  • 建立 IPSec SA;
  • 管理 SA 生命周期。

当前实际网络环境中主要使用 IKEv2

IKE 协商过程

可以简化理解为:

复制代码
客户端                         VPN服务器
   │                               │
   │ ─── IKE_SA_INIT ────────────> │
   │                               │
   │ <── IKE_SA_INIT ───────────── │
   │                               │
   │ ─── IKE_AUTH ───────────────> │
   │                               │
   │ <── IKE_AUTH ──────────────── │
   │                               │
   │       IPSec SA建立            │
   │                               │
   │ ===== 加密通信开始 ========= │

第一步:IKE_SA_INIT

双方协商:

  • 加密算法;
  • 完整性算法;
  • Diffie-Hellman 参数;
  • 随机数等。

其中 Diffie-Hellman 的核心作用是:

让双方能够在不直接传输密钥的情况下协商出共同的密钥材料。

第二步:IKE_AUTH

双方进行身份认证。

例如:

复制代码
用户名/密码
数字证书
预共享密钥 PSK

认证成功以后,就可以建立 IPSec SA。

IPSec 完整工作流程

整个过程可以概括为:

复制代码
① 数据产生
       ↓
② 检查安全策略 SPD
       ↓
③ 判断是否需要 IPSec
       ↓
④ IKE协商
       ↓
⑤ 建立 IKE SA
       ↓
⑥ 建立 IPSec SA
       ↓
⑦ ESP加密/认证
       ↓
⑧ Internet传输
       ↓
⑨ 对端ESP解密
       ↓
⑩ 恢复原始IP数据
       ↓
⑪ 交给TCP/UDP

因此,从工程角度看:

IKE负责"谈好怎么通信",IPSec/ESP负责"真正保护数据"。

这是理解 IPSec 最重要的一句话。

IPSec VPN 的典型应用

IPSec 最典型的应用就是 VPN。

远程访问 VPN

复制代码
员工电脑
   │
   │ IPSec
   ↓
Internet
   │
   ↓
企业VPN网关
   │
   ↓
企业内网

员工即使在互联网环境中,也可以安全访问公司内部资源。

站点到站点 VPN

例如两个机房:

复制代码
机房A                              机房B

192.168.1.0/24                  192.168.2.0/24
     │                                │
     ↓                                ↓
  VPN网关A ===== IPSec ===== VPN网关B
                 隧道
                  │
               Internet

对内网设备来说,IPSec VPN 对上层应用基本透明。

云计算 VPN

云服务器和企业数据中心之间,也可以建立 IPSec VPN。

例如:

复制代码
企业数据中心
      │
      │ IPSec VPN
      │
   Internet
      │
      │
      ↓
   云平台VPC

这也是企业混合云网络中比较常见的方案。

IPSec 的优缺点

优点

1. 工作在网络层

最大的优势是:

对应用透明。

HTTP、FTP、RTSP、TCP、UDP 等应用通常不需要修改。

例如:

复制代码
RTSP
 ↓
TCP
 ↓
IPSec
 ↓
IP

所以从你做流媒体系统的角度来看,如果设备和平台之间已经建立 IPSec VPN,那么上层的 RTSP、GB28181、SRT、HTTP-FLV 等业务协议通常不需要专门感知 IPSec

2. 安全性高

IPSec 可以提供:

  • AES 等加密;
  • SHA 等完整性校验;
  • 身份认证;
  • 抗重放。

能够有效防止:

  • 窃听;
  • 篡改;
  • 伪造;
  • 重放攻击。

3. 应用范围广

可以用于:

  • 企业 VPN;
  • 数据中心互联;
  • 云平台;
  • 远程办公;
  • 设备安全接入;
  • IoT 网络。

缺点

IPSec 虽然安全,但是也存在一些问题。

1. 配置比较复杂

涉及:

复制代码
IKE
SA
SPI
ESP
加密算法
认证算法
密钥
生命周期
SPD
SAD

配置错误时排查比较困难。

2. 存在额外开销

IPSec 会增加:

  • ESP Header;
  • ESP Trailer;
  • Authentication Data;
  • 外层 IP Header。

因此会产生额外的网络开销。

对于高码率视频流来说,这一点尤其值得关注。

例如原本:

复制代码
视频码率 = 4 Mbps

经过 IPSec 后,会增加一定的协议头开销。

虽然通常不是巨大问题,但在高并发视频流、4G/5G设备、低带宽链路中仍然需要考虑 MTU 和分片问题。

3. NAT 环境需要额外处理

传统 ESP 使用 IP 协议号 50,而 NAT 设备主要处理 TCP/UDP。

因此 IPSec 在 NAT 环境中通常需要使用:

NAT-T(NAT Traversal)

通过 UDP 封装 ESP,通常使用 UDP 4500

IPSec 与 SSL VPN 的区别

项目 IPSec VPN SSL VPN
工作层次 网络层 通常基于传输层/应用层
典型协议 AH/ESP/IKE TLS/HTTPS
应用透明性 很好 视实现而定
配置 相对复杂 相对简单
企业网络互联 非常适合 一般
远程办公 适合 非常常见
NAT穿透 需要考虑 通常较容易

简单理解:

IPSec 更偏向"网络到网络"的安全连接;SSL VPN 更偏向"用户到应用/网络"的安全访问。

总结

IPSec 是计算机网络中非常重要的一套网络层安全协议体系,其核心目标是为 IP 通信提供机密性、完整性、身份认证和抗重放保护

IPSec 最核心的几个概念可以记成:

bash 复制代码
             IPSec
                │
     ┌──────────┼──────────┐
     ↓          ↓          ↓
    AH         ESP         IKE
  认证完整性   加密保护     密钥协商
     │          │          │
     └──────────┼──────────┘
                ↓
               SA
           安全关联参数

其中:

  • AH:负责认证和完整性,但不负责加密;
  • ESP:负责加密,同时可以提供完整性和认证,是实际 VPN 中最常用的协议;
  • IKE:负责身份认证、密钥协商以及 IPSec SA 的建立;
  • SA:描述双方具体采用什么安全参数进行通信。

IPSec 又分为:

bash 复制代码
传输模式
IP头 | ESP | TCP/UDP | 数据

隧道模式
新IP头 | ESP | 原IP头 | TCP/UDP | 数据

其中隧道模式尤其适合:

bash 复制代码
企业网络 ←→ Internet ←→ 企业网络
设备网络 ←→ Internet ←→ 云平台

因此,在实际工程中可以把 IPSec 理解成一个位于 IP 层的安全隧道机制。上层的 TCP、UDP、HTTP、RTSP、GB28181、SRT 等业务协议可以运行在 IPSec 之上,而无需修改业务协议本身。

一句话总结:

IPSec 通过 AH/ESP 提供 IP 数据安全保护,通过 IKE 完成密钥和安全参数协商,通过 SA 管理具体的安全通信状态,最终实现安全的 IP 网络和 VPN 通信。

相关推荐
zyf1044163 小时前
暑期实践日志 Day33:整体复盘核查视频,完善剪辑成果
学习·计算机网络·剪辑·暑期实践·课题任务
Zguigo5 小时前
lesson37-39计算机网络核心概念精讲:从路由器到UDP的实战与备考指南
计算机网络·udp·智能路由器
Zguigo5 小时前
lesson10-13计算机网络物理层三节课速通:数据通信、信道、编码与传输介质(含考试重点)
计算机网络
搬砖的小码农_Sky6 小时前
LANDrop 在 Ubuntu 上的安装方法
linux·运维·计算机网络·ubuntu
Zguigo6 小时前
lesson27-29计算机网络第三章精讲:交换机与VLAN的工作原理、区别与实战应用
网络·计算机网络·负载均衡
OCR_1337162127516 小时前
计算机网络协议核心解析:入门必懂的网络通信底层逻辑
计算机网络
我爱cope19 小时前
【计算机网络 | 网络层1:网络层的职责:IP 协议究竟解决了什么问题?】
网络·tcp/ip·计算机网络
zyf10441620 小时前
暑期实践日志 Day33:完成全部字幕添加,工作基本收尾
学习·计算机网络·剪辑·暑期实践·课题任务
一条泥憨鱼1 天前
【从0开始学习计算机网络】| DNS -记录类型详解
计算机网络·http·github·域名·dns·记录