IPSEC原理和模式详解

IPSEC

之前我们讲到TLS,是工作在传输层的安全协议

image-20221025233949706

现在接触的IPSEC是关于IP协议中的一些安全问题的保护。

ip存在的安全问题

  • 检查IP数据报内容:数据保密问题

  • 伪造IP地址:来源认证问题

  • 修改 IP 数据报内容:数据完整性问题

  • 重放旧 IP 数据报:序列完整性问题
    用于重放攻击,一种拒绝服务攻击

什么是IPSEC

IPsec 是一组协议,它们一起用于在设备之间建立加密连接。它有助于确保通过公共网络发送的数据安全。IPsec 通常用于设置VPN,它通过加密IP数据包以及验证数据包的来源来工作。

在术语“IPsec”中,“IP”代表“Internet 协议”,“sec”代表“安全”。Internet 协议是 Internet 上使用的主要路由协议;它使用IP 地址指定数据的去向。IPsec 是安全的,因为它在此过程中添加了加密身份验证

什么是VPN,什么是IPSEC VPN

虚拟专用网络 (VPN) 是两台或多台计算机之间的加密连接。VPN 连接发生在公共网络上,但通过VPN交换的数据仍然是私有的,因为它是加密的。

VPN 使通过共享网络基础设施(例如公共互联网)安全地访问和交换机密数据成为可能。例如,当员工在远程而不是在办公室工作时,他们经常使用 VPN 访问公司文件和应用程序。

许多 VPN 使用 IPsec 协议套件来建立和运行这些加密连接。但是,并非所有 VPN 都使用 IPsec。VPN 的另一个协议是SSL / TLS,它在OSI 模型中与 IPsec 不同的层运行。(OSI 模型是使Internet工作的过程的抽象表示。)

image-20221026095553553

用户可以通过登录 VPN 应用程序或“客户端”来访问 IPsec VPN。这通常需要用户在他们的设备上安装应用程序。

VPN 登录通常基于密码。虽然通过 VPN 发送的数据是加密的,但如果用户密码被泄露,攻击者可以登录 VPN 并窃取这些加密数据。使用双重身份验证(2FA) 可以增强 IPsec VPN 的安全性,因为单独窃取密码将不再为攻击者提供访问权限。

IPSEC是如何工作的

密钥交换: 加密需要密钥;密钥是一串随机字符,可用于“锁定”(加密)和“解锁”(解密)消息。IPsec 通过连接设备之间的密钥交换设置密钥,以便每个设备都可以解密其他设备的消息。

包头和包尾:通过网络发送的所有数据都被分解成更小的部分,称为数据包。数据包既包含有效负载,即发送的实际数据,也包含标头或有关该数据的信息,以便接收数据包的计算机知道如何处理它们。IPsec 向包含身份验证和加密信息的数据包添加多个标头。IPsec 还添加了尾部,它在每个数据包的有效负载之后而不是之前。

身份验证: IPsec 为每个数据包提供身份验证,就像收藏品上的真实性印章一样。这可确保数据包来自受信任的来源而不是攻击者。

加密: IPsec 加密每个数据包中的有效负载和每个数据包的 IP 标头(除非使用传输模式而不是隧道模式 - 见下文)。这使通过 IPsec 发送的数据保持安全和私密。

传输:加密的 IPsec 数据包使用传输协议通过一个或多个网络到达目的地。在这个阶段,IPsec 流量与常规 IP 流量的不同之处在于它最常使用UDP作为其传输协议,而不是TCP。TCP(传输控制协议)在设备之间建立专用连接并确保所有数据包都到达。UDP,即用户数据报协议,不设置这些专用连接。IPsec 使用 UDP,因为这允许 IPsec 数据包通过防火墙

解密:在通信的另一端,数据包被解密,应用程序(例如浏览器)现在可以使用传递的数据。

两种协议

AH:Authentication Header

  • 数据来源认证,
  • 消息完整性,以及可选的防重放保护

ESP:Encapsulating Security Payload

  • AH提供的所有服务,加上有效载荷机密性。

image-20221026190451689

两种模式

每个协议 AH/ESP 支持两种使用模式:传输和隧道。

  • 传输模式(左):保护数据包有效负载; 数据包端到端传输。

  • 隧道模式(右):保护整个数据包; 数据包通过隧道传输。

image-20221026190830925

IPSEC 模式 原理 加密设备是否等于通信设备 使用条件 举例
传输模式 在原始IP头部和IP负载之间插入一个ESP头部,并且在最后面加上ESP尾部和ESP验证数据部分 加密设备等于通信设备 相互通信的设备IP地址必须在其间的网络可路由 内部网络的主机要安全的访问内部服务器资源。
隧道模式 把原始IP数据包整个封装到一个新的IP数据包中,在新的IP头部和原始IP头部之间插入ESP头部,并且在最后面加上ESP尾部和ESP验证数据部分 加密设备不等于通信设备 相互通信的设备IP地址在其间的网络是不可路由的 一个内部网络的主机要安全穿越internet访问另一个内部网络的资源。如IPSEC vpn

安全关联(security association)

安全关联 (SA) 是一种单向逻辑连接,为它所承载的流量提供安全服务的发送方和接收方。
为了保护两个节点之间的双向通信,需要两个SA
SA 是特定于协议的,即每个 SA 都与 AH 或 ESP 相关联,但不能同时与两者相关联

SA 由三元组唯一标识:

  • 安全参数索引 (SPI),[一些安全参数的索引]
  • 目的地的 IP 地址(单播、多播、广播)
  • 安全协议标识符(AH 或 ESP)。

安全关联包含以下信息:

  • 用于加密和认证的密钥材料
  • 可以使用的算法
  • 端点的身份
  • 系统使用的其他参数

SA 需要用于身份验证和加密的密钥材料。SA 所需的密钥材料的管理称为密钥管理。Internet 密钥交换 (IKE) 协议自动处理密钥管理。您还可以使用该ipseckey命令手动管理密钥。IPv4 和 IPv6 数据包上的 SA 可以使用自动密钥管理。

IPSEC架构

image-20221026193236286

IKEv2

互联网密钥交换 (RFC 4306),用于协商 ESP 和/或 AH SA

Internet 密钥交换版本 2 (IKEv2) 是一种基于 IPsec 的隧道协议,它允许 VPN 设备之间的安全 VPN 通信。它定义了 IPsec 安全关联 (SA) 的协商和身份验证过程。IKEv2 生成加密密钥以确保您的设备和您连接的 VPN 服务器之间的安全数据流。

IKEv2 比 OpenVPN 好吗?

IKEv2 协议比 OpenVPN 更快、更稳定,它提供了突破性的自动重新连接功能,提高了安全性和易用性。这意味着即使您的设备从一个互联网源切换到另一个互联网源,它也会自动恢复您的 VPN 连接。

对于有技术头脑的人,IKEv2/IPsec 使用 AES-256-GCM 密码进行加密,再加上 SHA2-384 以确保完整性。这与使用 3072 位 Diffie Hellmann 密钥的完美前向保密 ( PFS ) 相结合。

IKEv2/IPSec 是众多协议中的一个,每一个都建立和扩展了前辈的优势。点对点隧道协议 ( PPTP ) 和第 2 层隧道协议 ( L2TP /IPsec) 等其他 VPN 协议难以平衡速度和安全性,而它们的继任者 OpenVPN 在这两个方面都表现出色。

OpenVPN 是目前可用的最好的 VPN 协议之一,这就是它在 NordVPN 应用程序中发挥不可或缺的作用的原因。但是,IKEv2/IPSec 在某些方面甚至超过了 OpenVPN。这在很大程度上要归功于它的三个定义特征:

  • 高速吞吐。
  • 增强稳定性。
  • 自动重新连接
IKEv2/IPSec 的好处
自动重新连接:当您的 VPN 连接中断时,IKEv2/IPsec 提供高效的重新连接功能。
领先的加密算法: IKEv2/IPSec 是一种高级协议,使用高安全性密码进行加密,以提供最大程度的保护。
支持多种设备: IKEv2/IPsec 支持多种设备,包括以前不受支持的智能手机、连接的家居软件和一系列路由器。
稳定性: IKEv2/IPsec 提供增强的稳定性,提供稳定的连接,并允许用户在互联网连接之间切换而不会失去保护。
速度:在许多 VPN 协议难以保持无缝互联网体验的情况下,IKEv2/IPSec 提供高速数据传输,并使使用 VPN 进行浏览成为更快、更愉快的体验。

SPD(Security Policy Database)

将 IP 流量映射到特定策略 [“BYPASS VPN”]

每个 SPD 规则需要两条 ACL 规则,一条定义隧道上的流量,一条定义隧道内的流量。SPD 规则适用的协议对于两个 ACL 规则必须相同,并且与 ACL 规则一起使用的序列号必须是连续的。

SPD Rule Action Address Protocol Sequence Number
BYPASS Permit Public address Applicable protocol N
Deny Tunnel internal address Applicable protocol N + 1
PROTECT Deny Public address Applicable protocol N
Permit Tunnel internal address Applicable protocol N + 1
DISCARD Deny Public address Applicable protocol N
Deny Tunnel internal address Applicable protocol N + 1

SAD(Security Association Database)

将流量映射到特定配置 - 工作模式(隧道/传输)、加密和/或身份验证等

出站流量处理流程

image-20221026200257827

入站流量处理过程

image-20221026200355106

AH和ESP报文

IPv4包裹

image-20221026200553196

使用AH

image-20221026200846150

image-20221026200902803

报文结构

image-20221026201149091

字段 功能
NextHeader 它是一个 8 位字段,用于标识后面内容的类型。该字段的值是从设置为 51 的 IP 头协议字段集合中选择的,而协议字段中的值将进入 AH 下一个头字段。Tunnel: next = IP (value 4); Transport: else
payloadLength 它是一个 8 位长的字段,包含以 32 位字表示的 AH 头的长度,减去 2。它与 IP 数据包的实际有效负载长度无关。假设如果使用默认选项,则值为 4(三个 32 位固定字加上三个 32 位认证数据字减去两个)。
Reserved 它保留供将来使用。它的长度为 16 位,并设置为零。
SPI 长度为 32 位,和SA三元组一同使用
Sequence number 这个 32 位字段是一个单调递增的计数器,用于重放保护。它是一个可选字段。发送方始终包含此字段,接收方可自行决定是否处理它。开始的序列号被初始化为零。使用 SA 传输的第一个数据包的序列号为 1。序列号不允许重复。

使用ESP

image-20221026202404930

image-20221026202420802

Encapsulating Security Payload (ESP) 协议提供了Authentication Header的所有功能(认证、数据完整性和防重放保护)。这里的区别在于封装安全有效负载 (ESP) 提供了最关键的安全功能,即数据机密性。下面列出了使用封装安全负载 (ESP) 的好处。

  1. 通过加密实现数据报的机密性。
  1. 使用安全网关的流量机密性。

  2. 使用数字证书验证数据来源。

  3. 使用序列号机制的反重放服务。

image-20221026202653646

AH和ESP的区别

AH 协议提供了一种仅用于身份验证的机制。AH 提供数据完整性、数据源身份验证和可选的重放保护服务。通过使用由 HMAC-MD5 或 HMAC-SHA 等算法生成的消息摘要来确保数据完整性。通过使用共享密钥创建消息摘要来确保数据源身份验证。重放保护是通过使用带有 AH 标头的序列号字段来提供的。AH 对 IP 标头及其有效负载进行身份验证,但某些可以在传输过程中合法更改的标头字段除外,例如生存时间 (TTL) 字段。

ESP 协议提供数据机密性(加密)和身份验证(数据完整性、数据源身份验证和重放保护)。ESP 可以仅与机密性、仅身份验证或机密性和身份验证一起使用。ESP 提供认证功能时,使用的算法与 AH 相同,但覆盖范围不同。AH 风格的身份验证对整个 IP 数据包进行身份验证,包括外部 IP 标头,而 ESP 身份验证机制仅对 IP 数据包的 IP 数据报部分进行身份验证。

posted @ 2022-10-26 21:24  ivanlee717  阅读(1613)  评论(0编辑  收藏  举报