互联网协议 — IPSec 安全隧道协议

目录

IPSec 协议族

IPSec(Internet Protocol Security,互联网协议安全)是一个网络协议族,是一系列通过加密和认证为 IP 协议报文提供安全性的协议集合。

IPSec 通过加密与认证等方式,从以下几个方面来保障 IP 网络的安全:

  • 数据来源身份认证(Data Authentication):接收方验证发送方身份是否合法。
  • 数据机密性(Confidentiality):发送方对数据进行加密,以密文的形式在 IP 网络上传送,接收方对接收的加密数据进行解密后处理或直接转发。
  • 数据完整性(Data Integrity):接收方对接收的数据进行校验,以判定报文是否被篡改。
  • 防重放(Anti-Replay):接收方拒绝旧的或重复的数据包,防止恶意用户通过重复发送捕获到的数据包所进行的攻击。

IPsec 协议族主要由以下协议组成:

  1. 安全认证协议(Authentication Header,AH)
  2. 安全封装协议(Encapsulating Security Payload,ESP)
  3. 安全偶联协议(Security Association,SA)
  4. 安全密钥交换协议(Internet Key Exchange,IKE)

IPSec 的框架

在这里插入图片描述

IPSec 框架包含了:

  • 加密算法
    • 对称加密算法:AES、DES、3DES 等。
    • 非对称加密算法:RSA、DH(Diffie-Hellman,交换及密钥分发)等。
  • 验证算法:MD5、SHA-1、SHA-2 等 HASH 算法。
  • 封装协议:ESP、AH 等协议。
  • 封装模式
    • 传输模式(Transport):不改变 IP Header。
    • 隧道模式(Tunnel):生成新的 IP Header。
  • 秘钥有效期 等等。

封装协议

Authentication Header

安全认证协议(Authentication Header,AH):是一种封装协议,用来保证数据报文的完整性、可靠性以及不受重放攻击。当 AH 使用非对称数字签名算法时,如:RSA,可以提供不可否认性。

AH 协议基于 IP 协议的传输层协议,会试图保护 IP 数据报文的所有字段,包括:IP Header 和 Playload。AH 支持数据源认证和数据完整性验证,但不支持加密 。AH 对数据包和认证密钥进行 HASH 计算,接收方收到带有计算结果的数据包后,执行同样的 HASH 计算并与原计算结果比较,传输过程中对数据的任何更改将使计算结果无效,这样就提供了数据来源认证和数据完整性校验。

在这里插入图片描述

  • 下一个头:标识被传送数据所属的协议。
  • 载荷长度:认证头包的大小。
  • 保留:为将来的应用保留,目前都置为 0。
  • 安全参数索引:与 IP 地址一同用来标识安全参数。
  • 串行号:单调递增的数值,用来防止重放攻击。
  • 认证数据:包含了认证当前包所必须的数据。

Encapsulating Security Payload

安全封装协议(Encapsulating Security Payload,ESP):也是一种封装协议。ESP 的工作原理是在每一个 IP Header 后面添加一个 ESP Header,并在数据报文末尾追加一个 ESP 尾(ESP Tail 和 ESP Auth data)。与 AH 不同的是,ESP 将数据中的 Payload 进行加密后再封装到数据包中,以保证数据的机密性,但 ESP 没有专门对 IP Header 的内容进行保护。

在这里插入图片描述

  • 安全参数索引:与 IP 地址一同用来标识安全参数。
  • 串行号:单调递增的数值,用来防止重放攻击。
  • 载荷数据:实际要传输的数据。
  • 填充:某些块加密算法用此将数据填充至块的长度。
  • 填充长度:以位为单位的填充数据的长度。
  • 下一个头:标识被传送数据所属的协议。
  • 认证数据:包含了认证当前包所必须的数据。

AH v.s. ESP

在这里插入图片描述

封装模式

传输模式

传输模式(Transport):不改变 IP Header。

在这里插入图片描述

隧道模式

隧道模式(Tunnel):生成新的 IP Header。

在这里插入图片描述

Transport v.s. Tunnel

  • 从安全性来讲,隧道模式优于传输模式。它可以完全地对原始 IP 数据报进行验证和加密。隧道模式下可以隐藏内部 IP 地址,协议类型和端口。
  • 从性能来讲,隧道模式因为有一个额外的 IP 头,所以它将比传输模式占用更多带宽。

在这里插入图片描述

安全偶联协商

Security Association

IPSec 隧道需要在两端建立 Security Association(偶联),也称为安全隧道,通过 SA 的流程来提供并保存两端约定好的加密协议、对称秘钥、对端 IP 地址等 AH、ESP 操作所需要的参数信息。SA 建立成功之后,就需要对原始的网络包进行认证和加密。其中,对称秘钥要通过 IKE 协议来进行互换,然后通过在原始网络包外层添加 AH 或 ESP Header 来实现加密。

SA 由一个三元组来唯一标识,包括:

  1. SPI(Security Parameter Index,安全参数索引)
  2. 目的 IP 地址
  3. 安全协议号(AH 或 ESP)

SA 中的 SPI 是用于唯一标识一个 SA 的 32bit 数值,它在 AH 或 ESP Header 中传输。手工(Manual)配置 SA 时,需要手工指定 SPI 的取值;使用 IKE 自动协商(ISAKMP)SA 时,SPI 将随机生成。

另外,手工方式建立的 SA 永不老化;而通过 IKE 协商建立的 SA 具有生存周期,IKE 协商建立的 SA 的生存周期有两种定义方式:

  1. 基于时间的生存周期,定义了一个 SA 从建立到失效的时间;
  2. 基于流量的生存周期,定义了一个 SA 允许处理的最大流量。

生存周期到达指定的时间或指定的流量,SA 就会失效。SA 失效前,IKE 将为 IPsec 协商建立新的 SA,这样,在旧的 SA 失效前新的 SA 就已经准备好。在新的 SA 开始协商而没有协商好之前,继续使用旧的 SA 保护通信。在新的 SA 协商好之后,则立即采用新的 SA 保护通信。

Internet Key Exchange

安全密钥交换协议(Internet Key Exchange,IKE) 是一套自保护机制,可以在不安全的网络上安全地认证身份、分发密钥、建立 IPsec SA。IKE 协议建立在由 ISAKMP(Internet Security Association and Key Management Protocol,互联网安全联盟和密钥管理协议)定义的框架上。IKE 为 IPsec 提供了自动协商交换密钥、建立 SA 的服务,能够减少了密钥协商的开销。通过 IKE 建立和维护 SA 的服务,还可以简化了 IPsec 的使用和管理。

注意,IKE 不是在网络上直接传输密钥,而是通过一系列数据的交换,最终计算出双方共享的密钥,并且即使第三者截获了双方用于计算密钥的所有交换数据,也不足以计算出真正的密钥。

IKE 在 IPSec 中的作用:

  • 因为有了 IKE,IPsec 很多参数(如:密钥)都可以自动建立,降低了手工配置的复杂度。
  • IKE 协议中的 DH 交换过程,每次的计算和产生的结果都是不相关的。每次 SA 的建立都运行 DH 交换过程,保证了每个 SA 所使用的密钥互不相关。
  • IPsec 使用 AH 或 ESP 报文头中的序列号实现防重放。此序列号是一个 32bit 的值,此数溢出后,为实现防重放,SA 需要重新建立,这个过程需要 IKE 协议的配合。
  • 对安全通信的各方身份的认证和管理,将影响到 IPSec 的部署。IPSec 的大规模使用,必须有 CA(Certificate Authority,认证中心)或其他集中管理身份数据的机构的参与。
  • IKE 提供端与端之间动态认证。

在这里插入图片描述

IKE 的交换过程

IKE 使用了两个阶段为 IPsec 进行密钥协商并建立 SA:

  1. 通信各方彼此间建立了一个已通过身份认证和安全保护的通道,即:建立一个 ISAKMP SA。第一阶段有主模式(Main Mode)和野蛮模式(Aggressive Mode)两种 IKE 交换方法。
  2. 用在第一阶段建立的安全隧道为 IPSec 协商安全服务,即:为 IPsec 协商具体的 SA,建立用于最终的 IP 数据安全传输的 IPsec SA。

在这里插入图片描述

第一阶段主模式的 IKE 协商过程中包含三对消息:

  1. 第一对叫 SA 交换,是协商确认有关安全策略的过程;
  2. 第二对消息叫密钥交换,交换 Diffie-Hellman 公共值和辅助数据(如:随机数),密钥材料在这个阶段产生;
  3. 最后一对消息是 ID 信息和认证数据交换,进行身份认证和对整个第一阶段交换内容的认证。

野蛮模式交换与主模式交换的主要差别在于,野蛮模式不提供身份保护,只交换 3 条消息。在对身份保护要求不高的场合,使用交换报文较少的野蛮模式可以提高协商的速度;在对身份保护要求较高的场合,则应该使用主模式。

IPSec Virtual Private Network

IPSec 隧道常被作为 Virtual Private Network,用于打通两个 VPC,或者用于打通公有云和私有云。

在这里插入图片描述

GRE over IPSec

GRE over IPSec,首先通过 GRE 对报文进行封装,然后再由 IPSec 对封装后的报文进行加密和传输。协议栈结构如下:

在这里插入图片描述

这种做法实现了两个 Peer 之间安全,底层怎么路由,封装 IPsec 都不管。常见的 L2TP,譬如 IP over IP 等等,其实也都是属于这个范畴的。这种做法的缺点是两端需要单独再起一个服务来实现这些封装。

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付 49.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值