风雨同行 发表于 2022-10-27 10:47:25

IPSEC原理和模式详解

IPSEC
之前我们讲到TLS,是工作在传输层的安全协议
https://img2022.cnblogs.com/blog/2862884/202210/2862884-20221026212048911-729799285.png
现在接触的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工作的过程的抽象表示。)
https://img2022.cnblogs.com/blog/2862884/202210/2862884-20221026212038635-1188864524.png
用户可以通过登录 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提供的所有服务,加上有效载荷机密性。
https://img2022.cnblogs.com/blog/2862884/202210/2862884-20221026212034987-2134598593.png
两种模式

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

[*]传输模式(左):保护数据包有效负载; 数据包端到端传输。
[*]隧道模式(右):保护整个数据包; 数据包通过隧道传输。
https://img2022.cnblogs.com/blog/2862884/202210/2862884-20221026212033714-1300146048.png
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架构

https://img2022.cnblogs.com/blog/2862884/202210/2862884-20221026212032584-396535643.png
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 RuleActionAddressProtocolSequence NumberBYPASSPermitPublic addressApplicable protocolNDenyTunnel internal addressApplicable protocolN + 1PROTECTDenyPublic addressApplicable protocolNPermitTunnel internal addressApplicable protocolN + 1DISCARDDenyPublic addressApplicable protocolNDenyTunnel internal addressApplicable protocolN + 1SAD(Security Association Database)

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

https://img2022.cnblogs.com/blog/2862884/202210/2862884-20221026212031435-2111165842.png
入站流量处理过程

https://img2022.cnblogs.com/blog/2862884/202210/2862884-20221026212030239-1165039156.png
AH和ESP报文

IPv4包裹

https://img2022.cnblogs.com/blog/2862884/202210/2862884-20221026212028833-2086514939.png
使用AH

https://img2022.cnblogs.com/blog/2862884/202210/2862884-20221026212027006-1987870095.png
https://img2022.cnblogs.com/blog/2862884/202210/2862884-20221026212025919-1475596621.png
报文结构

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

https://img2022.cnblogs.com/blog/2862884/202210/2862884-20221026212021016-2093280023.png
https://img2022.cnblogs.com/blog/2862884/202210/2862884-20221026212017318-1689762906.png
Encapsulating Security Payload (ESP) 协议提供了Authentication Header的所有功能(认证、数据完整性和防重放保护)。这里的区别在于封装安全有效负载 (ESP) 提供了最关键的安全功能,即数据机密性。下面列出了使用封装安全负载 (ESP) 的好处。

[*]通过加密实现数据报的机密性。

[*]使用安全网关的流量机密性。
[*]使用数字证书验证数据来源。
[*]使用序列号机制的反重放服务。
https://img2022.cnblogs.com/blog/2862884/202210/2862884-20221026211959945-1635395757.png
AH和ESP的区别

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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: IPSEC原理和模式详解