IPsec 基础知识
阅读本主题,了解 IPsec 密钥管理、安全协议、隧道协商以及 IPsec 和 IKE 标准。
使用 功能资源管理器 确认平台和版本对特定功能的支持。
查看 特定于平台的 IPsec 隧道行为 部分,了解与您的平台相关的注意事项。
有关更多信息,请参阅 “其他平台信息” 部分。
IPsec 概述
IPsec 是一套相互关联的协议,用于在 IP 数据包层进行加密的安全通信。IPsec 可提供手册和自动安全关联 (SA) 协商和密钥分配方法。解释域 (DOI) 收集了所有相关属性。IPsec DOI 是一份定义成功 VPN 隧道协商所需的所有安全参数的文档,本质上是指 SA 和 IKE 协商所需的每个属性。有关详细信息,请参阅 RFC 2407 和 RFC 2408。
要使用 IPsec 安全服务,请在主机之间创建 SA。SA 是一种单工连接,允许两台主机通过 IPsec 安全地相互通信。IPsec 支持两种类型的 SA:手册和动态。
IPsec 支持两种安全模式(传输模式和隧道模式)。
安全性关联
安全关联 (SA) 是 VPN 参与方之间关于通信信道保护所用方法和参数的单向协议。全双向通信需要至少两个 SA,每个方向需要一个。通过 SA,IPsec 隧道可以提供以下安全功能:
-
隐私功能(通过加密实现)
-
内容完整性(通过数据身份验证实现)
-
发件人身份验证和(如果使用证书)不可否认性(通过数据源身份验证)
您采用的安全功能取决于您的需求。如果您只需要验证 IP 数据包源和内容完整性,可以在不采用任何加密方式的情况下对数据包进行身份验证。另一方面,如果您仅关注保留隐私,则可以在不采用任何身份验证机制的情况下对数据包进行加密。当然,您也可以同时对数据包进行加密和身份验证。大多数网络安全设计人员选择对其 VPN 流量进行加密、身份验证和重放保护。
IPsec 隧道由一对单向 SA 组成,隧道的每个方向一个 SA。SA 指定安全参数索引 (SPI)、目标 IP 地址和安全协议,例如认证头 (AH) 或封装安全性有效负载 (ESP)。SA 会对以下用于保护通信的组件进行分组:
-
安全性算法和密钥。
-
协议模式(传输或隧道)。Junos OS 设备始终使用隧道模式。请参阅隧道 模式中的数据包处理。
-
密钥管理方法,手册密钥或 AutoKey IKE。
-
SA 寿命。
对于入站流量,Junos OS 会使用以下三个条件来查找 SA:
-
目标 IP 地址。
-
AH 或 ESP 安全性协议。
-
SPI 值。
对于出站 VPN 流量,策略将调用与 VPN 隧道关联的 SA。
IPsec 密钥管理
密钥的分配和管理对于成功使用 VPN 至关重要。Junos OS 支持使用三种密钥创建机制创建 VPN 隧道的 IPsec 技术:
-
手动密钥
-
通过预共享密钥 (PSK) 或证书的 AutoKey IKE
您可以在第 1 阶段和第 2 阶段提议配置期间选择密钥创建机制(也称为身份验证方法)。请参阅 互联网密钥交换。
本主题包含以下部分:
手动密钥
手册密钥,隧道两端的管理员可以配置所有安全参数。手动密钥是一种可行的技术,适用于密钥分配、维护和跟踪难度不大的小型静态网络。但是,远距离安全分发手册密钥配置会带来安全问题。除了面对面传递密钥外,您无法完全确定未获授权的各方是否在传输过程中破坏了密钥。此外,每当您需要更改密钥时,您都会面临与最初分发密钥时相同的问题。
AutoKey IKE
当您需要创建和管理多个隧道时,您需要一种不会要求您手动配置每个元素的方法。IPsec 支持使用互联网密钥交换 (IKE) 协议自动生成和协商密钥和 SA。Junos OS 将此类自动化隧道协商称为 AutoKey IKE,并支持使用预共享密钥的 AutoKey IKE 和带证书的 AutoKey IKE。
-
AutoKey IKE 与预共享密钥 — 使用带有预共享密钥的 AutoKey IKE 对 IKE 会话中的参与方进行身份验证,双方必须提前配置并安全地交换 PSK。在这方面,安全密钥分配问题与手册密钥相同。但是,与手册密钥不同,自动密钥可以使用 IKE 协议按预先确定的间隔自动更改其密钥。频繁变更密钥可以极大地提高安全性,而使这一过程自动化则大幅降低了密钥管理的工作负担。但是,更改密钥会增加流量开销;因此,过于频繁地更改密钥会降低数据传输效率。
PSK 是用于加密和解密的密钥,发起通信前,通信参与双方都必须拥有该密钥。
-
带证书的 AutoKey IKE — 在 AutoKey IKE 协商期间使用证书对参与方进行身份验证时,每一方都会生成一个公钥对并获取证书。只要双方都信任颁发证书颁发机构(证书颁发机构),参与方就可以检索对等方的公钥并验证对等方的签名。您无需跟踪密钥和 SA;IKE 会自动执行此操作。
Diffie-Hellman 交换
Diffie-hellman (DH) 交换允许参与方产生一个共享的密钥值。该技术的优势在于,它允许参与方通过不安全的介质创建密钥值,而不必通过有线网络传递密钥值。每个群组的计算中使用的素数模数大小不同,如下表所示。设备在软件或硬件中执行 DH 交换操作。下 表 1 列出了不同的 Diffie Hellman (DH) 组,并指定对该组执行的操作是在硬件中还是在软件中执行。
| Diffie-Hellman (DH) 组 |
Prime 模块尺寸 |
|---|---|
| DH 组 1 |
768 位 |
| DH 组 2 |
102 位 |
| DH 组 5 |
1536 位 |
| DH 组 14 |
2048 位 |
| DH 组 15 |
3072 位 |
| DH 组 16 |
4096 位 |
| DH 组 19 |
256 位椭圆曲线 |
| DH 组 20 |
384 位椭圆曲线 |
| DH 组 21 |
521 位椭圆曲线 |
| DH 组 24 |
2048 位与 256 位素序子组 |
我们不建议使用第 1 组、第 2 组和第 5 组 DH。
由于每个 DH 组的模数大小不同,参与方必须同意使用相同的组。
IPsec 安全性协议
IPsec 使用两种协议来保护 IP 层的通信:
-
认证头 (AH) — 一种用于确定 IP 数据包来源并验证其内容完整性的安全协议
-
封装安全性有效负载 (ESP) — 一种用于对整个 IP 数据包进行加密并对其内容进行验证的安全协议
您可以在第 2 阶段提议配置期间选择安全协议(也称为 authentication and encryption algorithms)。请参阅 互联网密钥交换。
对于每个 VPN 隧道,AH 和 ESP 隧道会话会安装在服务处理单元 (SPU) 和控制平面上。协商完成后,设备将使用协商后的协议更新隧道会话。 show security flow session 和 show security flow cp-session 操作模式命令可显示 ESP 和 AH 隧道会话的详细信息。
本主题包含以下部分:
IPsec 身份验证算法(AH 协议)
认证头 (AH) 协议可提供验证数据包内容和数据源真实性和完整性的方法。您可使用密钥以及 MD5 或 SHA 散列函数通过散列消息验证代码(HMAC) 计算出的校验和来验证数据包。
-
消息摘要 5 (MD5) — 一种从任意长度的消息和 16 字节密钥生成 128 位散列(也称为 数字签名 或 消息摘要)的算法。生成的散列与输入的指纹一样,用于验证内容和数据源的真实性和完整性。
-
安全散列算法 (SHA) — 一种从任意长度的消息和一个 20 字节密钥生成 160 位散列的算法。SHA 比 MD5 更安全,因为它产生的散列更大。由于 ASIC 负责进行计算处理,因此性能成本可以忽略。
有关 MD5 散列算法的详细信息,请参阅 RFC 1321 和 RFC 2403。有关 SHA 散列算法的详细信息,请参阅 RFC 2404。有关 HMAC 的详细信息,请参阅 RFC 2104。
IPsec 加密算法(ESP 协议)
ESP 协议提供了一种确保隐私(加密)和源身份验证以及内容完整性(身份验证)的方法。隧道模式中的 ESP 可对整个 IP 数据包(报头和有效负载)进行封装,然后将新 IP 报头追加到当前加密的数据包。此新 IP 报头包含通过网络路由受保护数据所需的目的地址。请参阅隧道 模式中的数据包处理。
通过 ESP,您可以进行加密和验证、仅加密或仅进行验证。如果进行加密,您可以选择以下一种加密算法:
-
数据加密标准 (DES) — 具有 56 位密钥的加密块算法。
-
三重 DES (3DES) - 更强大的 DES 版本,其中原始 DES 算法使用 168 位密钥应用三轮。DES 可提供显著的性能节约,但许多分类或敏感的材料传输都会将其视为不可接受。
-
高级加密标准 (AES) — 一种可实现与其他设备进行更强的互操作性的加密标准。Junos OS 支持带有 128 位、192 位和 256 位密钥的 AES。
-
ChaCha20-Poly1305 Authenticated Encryption with Associated Data—ChaCha20 流密码,支持使用 Poly1305 验证器的 Authenticated Encryption with Associated Data (AEAD)。
进行身份验证时,您可以使用 MD5 或 SHA 算法。
即使可以选择使用 NULL 进行加密,但研究表明,在这种情况下,IPsec 可能容易受到攻击。因此,我们建议您选择一种可以实现最大安全性的加密算法。
IPsec 隧道协商
以下两种不同模式决定了 VPN 交换流量的方式。
-
隧道模式 — 通过将原始 IP 数据包封装在 VPN 隧道中的另一个数据包中来保护流量。此模式使用带有 IKE 的预共享密钥来对对等方进行身份验证,或使用数字证书与 IKE 对对等方进行身份验证。当单独专用网络中的主机希望通过公共网络进行通信时,最常使用隧道模式。VPN 客户端和 VPN 网关都使用隧道模式来保护来自或传入非 IPsec 系统的通信。
-
传输模式 — 通过在已建立 IPsec 隧道的两台主机之间直接发送数据包来保护流量。也就是说,当通信端点和加密端点相同时。在此模式下,加密机制可以保护 IP 数据包的数据部分,但 IP 报头保持未加密状态。为受保护主机提供加密和解密服务的 VPN 网关不能将传输模式用于受保护的 VPN 通信。如果数据包被拦截,可以修改源或目标的 IP 地址。由于其构造,只有当通信端点和加密端点相同时,才能使用传输模式。
支持的 IPsec 和 IKE 标准
在配备一个或多个 MS-MPC、MS-MIC 或 DPC 的路由器上,加拿大和美国版 Junos OS 均可充分支持以下 RFC,这些 RFC 可定义 IP 安全性 (IPsec) 和互联网密钥交换 (IKE) 标准。
-
RFC 2085, 带防重放功能的 HMAC-MD5 IP 验证
-
RFC 2401, 互联网协议的安全性架构 (因 RFC 4301 被淘汰)
-
RFC 2402,IP 认证头 (因 RFC 4302 被淘汰)
-
RFC 2403,HMAC-MD5-96 在 ESP 和 AH 中的用法
-
RFC 2404,HMAC-SHA-1-96 在 ESP 和 AH 中的用法 (因 RFC 4305 被淘汰)
-
RFC 2405, 带有显式 IV 的 ESP DES-CBC 密码算法
-
RFC 2406,IP 封装安全性有效负载 (ESP)( 因 RFC 4303 和 RFC 4305 被淘汰)
-
RFC 2407,ISAKMP 的互联网 IP 安全性解释域 (因 RFC 4306 被淘汰)
-
RFC 2408, 互联网安全性关联和密钥管理协议 (ISAKMP)( 因 RFC 4306 被淘汰)
-
RFC 2409,互联网 密钥交换 (IKE)( 因 RFC 4306 被淘汰)
-
RFC 2410,NULL 加密算法及其与 IPsec 的配合使用
-
RFC 2451,ESP CBC 模式密码算法
-
RFC 2560,X.509 互联网公钥基础架构在线证书状态协议 - OCSP
-
RFC 3193, 使用 IPsec 保护 L2TP 的安全
-
RFC 3280, 互联网 X.509 公钥基础架构证书和证书撤销列表 (CRL) 配置文件
-
RFC 3602,AES-CBC 密码算法及其与 IPsec 的配合使用
-
RFC 3948,IPsec ESP 数据包的 UDP 封装
-
RFC 4106,在 IPsec 封装安全性有效负载 (ESP) 中使用 Galois/计数器模式 (GCM)
-
RFC 4210, 互联网 X.509 公钥基础架构证书管理协议 (CMP)
-
RFC 4211, 互联网 X.509 公钥基础架构证书请求消息格式 (CRMF)
-
RFC 4301, 互联网协议的安全性架构
-
RFC 4302,IP 认证头
-
RFC 4303,IP 封装安全性有效负载 (ESP)
-
RFC 4305,封 装安全性有效负载 (ESP) 和认证头 (AH) 的密码算法实现要求
-
RFC 4306, 互联网密钥交换 (IKEv2) 协议
-
RFC 4307, 互联网密钥交换第 2 版 (IKEv2) 中使用的密码算法
-
RFC 4308,IPsec 密码套件
Junos OS 中仅支持套件 VPN-A。
-
RFC 4754, 使用椭圆曲线数字签名算法 (ECDSA) 的 IKE 和 IKEv2 验证
-
RFC 4835,封 装安全性有效负载 (ESP) 和认证头 (AH) 的密码算法实现要求
-
RFC 5996, 互联网密钥交换协议第 2 版 (IKEv2)( 因 RFC 7296 被淘汰)
-
RFC 7296, 互联网密钥交换协议第 2 版 (IKEv2)
-
RFC 7427, 互联网密钥交换第 2 版 (IKEv2) 中的签名验证
-
RFC 7634、 ChaCha20、Poly1305 及其在互联网密钥交换协议 (IKE) 和 IPsec 中的使用
-
RFC 8200, 互联网协议版本 6 (IPv6) 规格
Junos OS 部分支持以下用于 IPsec 和 IKE 的 RFC:
-
RFC 3526,互联网 密钥交换 (IKE) 的莫尔模块指数 (MODP) Diffie-Hellman 群组
-
RFC 5114, 用于支持 IETF 标准的附加 Diffie-Hellman 群组
-
RFC 5903, 用于 IKE 和 IKEv2 的素数模椭圆曲线群组 (ECP 群组)
以下 RFC 和互联网草案不定义标准,而是提供有关 IPsec、IKE 和相关技术的信息。IETF 将其归类为“信息性”。
-
RFC 2104,HMAC :用于消息认证的密钥散列
-
RFC 2412,OAKLEY 密钥确定协议
-
RFC 3706, 一种基于流量的不工作互联网密钥交换 (IKE) 对等方检测方法
-
互联网草案draft-eastlake-sha2-02.txt, 美国安全散列算法(SHA 和 HMAC-SHA)( 2006 年 7 月到期)
也可以看看
特定于平台的 IPsec 隧道行为
使用 功能资源管理器 确认平台和版本对特定功能的支持。
使用下表查看平台的特定于平台的行为。
| 平台 |
差异 |
|---|---|
| SRX 系列 |
|
其他平台信息
使用 功能资源管理器 确认平台和版本对特定功能的支持。可能支持其他平台。
| 功能 |
SRX300 SRX320 SRX340 SRX345SRX380SRX550HM |
SRX1500 SRX1600 |
SRX2300 SRX4120 SRX4100 SRX4200SRX4300 SRX4600SRX4700 |
SRX5400 、SRX5600 、SRX5800 |
vSRX 虚拟防火墙 |
|---|---|---|---|---|---|
| 支持第 15 组、第 16 组和第 21 组 DH |
否 |
是 |
是 |
是 |
是,适用于带软件包的 |
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能资源管理器 确定您的平台是否支持某个功能。