IPSec之数据封装协议

专为 IP 层通信设计的安全算法称为“IPSec”。它是一个协议套件,旨在提供通过 IP 网络(例如互联网)进行安全通信。它在 IP 层提供安全服务,使其能够保护所有基于 IP 的协议,包括 TCP、UDP 和 ICMP。

图片

IPSec 组件

IPSec 由三个主要协议组成:认证头(AH:Authentication Header)、封装安全有效载荷(ESP:Encapsulating Security Payload)和互联网密钥交换(IKE:Internet Key Exchange)。AH 为 IP 数据包提供身份验证和完整性保护,而 ESP 为 IP 数据包提供保密性保护。IKE 用于在两方之间建立共享私密密钥。

从技术上讲,AH和ESP是为IPSec设计的算法,而IKE是一种密钥交换协议,用于交换将用于AH/ESP算法的密钥。因此,AH/ESP和IKE的功能略有不同。下面分别介绍这三种协议。

IPsec-AH

AH 代表“Authentication Header”。它是 IPSec 协议的一个组件,可以提供源认证和数据完整性保护。然而,AH 不进行任何数据加密。AH(Authentication Header)是 IPSec 中用于提供 IP 数据包认证和完整性保护的协议。

AH 为 IP 数据包提供了强级别的认证和完整性保护,帮助防止各种攻击,如数据包嗅探、篡改和重放攻击。然而,它不提供保密性保护,因此通常与 ESP 一起使用,后者提供加密以及认证和完整性保护。

AH的两种模式:传输模式和隧道模式

AH可以在传输模式或隧道模式下使用。

  • 在传输模式下(transport mode),AH头被插入到IP头和传输层头(例如TCP、UDP)之间,仅为传输层协议提供保护。

  • 在隧道模式下(tunnel mode),整个原始IP数据包被封装在一个新的IP数据包内,AH头插入在新IP头和原始IP头之间,为整个IP数据包提供保护。

图片

图片

以下是 AH 头中每个字段的描述:

  • Next Header:该字段标识紧随 AH 头之后的数据包协议(例如 TCP、UDP)。

  • AH Len:该字段指定 AH 头及其保护的负载的长度。

  • Reserved:该字段保留用于未来使用,必须设置为零。

  • **Security Parameters Index (SPI)**:该字段标识用于保护数据包的安全关联(SA)。

  • Sequence Number:该字段通过为每个数据包提供唯一标识符,用于防止重放攻击。

  • Authentication Data:该可变长度字段包含用于验证数据包的消息认证码(MAC:message authentication code)。该字段的长度取决于使用的认证算法。

IPSec - ESP

ESP 代表“Encapsulating Security Payload”。与 AH 一样,ESP 也是 IPSec 算法的一个组件。它提供了 AH 所有的安全功能,并且还提供数据保密性,通过执行数据加密来保护数据。在这种情况下,即使你使用嗅探器或 Wireshark 捕获了传输的数据包,你也无法确定数据包的实际内容,因为实际内容是加密的。ESP 是用于 IPSec(互联网协议安全)的一个协议,提供在 IP 网络上传输数据的保密性、完整性和认证。ESP 在 IP 层工作,通过一个新的头部封装原始 IP 数据包,从而提供安全服务。

ESP 的两种模式

如以下所示,实施 ESP 有两种不同的方式。一种是传输模式,另一种是隧道模式。在传输模式下,原始数据包只有一个 IP 头部用于 ESP 数据包,并且只有传输层头部和负载(数据)被加密。在隧道模式下,完全使用一个新的 IP 头部用于 ESP 数据包,原始 IP 头部被视为加密数据的一部分。在隧道模式下,原始数据和 ESP 数据包可以使用不同版本的 IP 头部。例如,可以对原始数据使用 IPv6,对 ESP 数据包使用 IPv4。

  • 在传输模式下(transport mode),原始 IP 头部保持不变,只有负载(IP 数据包的数据部分)被加密并由 ESP 保护。在原始 IP 头部和负载之间添加 ESP 头,包含安全参数,如安全参数索引(SPI)和序列号。ESP 尾部也添加到数据包的末尾,包含完整性检查值(ICV:Integrity Check Value),为数据包提供完整性和认证。

    传输模式通常用于在两个主机或端系统之间加密流量,其中原始 IP 头部需要保留用于路由目的。

  • 在隧道模式下(tunnel mode),一个新 IP 头部被添加到数据包中,并且新头部和原始 IP 头部都由 ESP 保护。原始 IP 数据包成为新 IP 数据包的负载,并由 ESP 加密和保护。ESP 头和尾部分别添加在新 IP 头和原始 IP 数据包之后。

    隧道模式通常用于在两个网络或主机与网络之间加密流量,其中原始 IP 头部需要为了安全或路由目的而隐藏或修改。

图片

由于我们在隧道模式下使用两个不同的 IP 头部,我们经常为原始 IP 和 ESP 数据包 IP 使用不同的名称,如下所示。

图片

以下是 ESP 数据包的整体结构。

图片

< 基于 RFC 4303 图 1. ESP 数据包的顶层格式 >

图片

< 基于 RFC 4303 图 2. 负载数据的子结构 >

以下显示了传输模式和隧道模式对比,ESP 数据包结构的更多详细信息。

以下是 ESP 数据包各字段的描述:

  • Security Parameters Index(SPI): 用于标识用于保护数据包的安全关联 (SA)。

  • Sequence Number: 提供反重放保护,确保数据包按正确顺序接收,并且没有被重复或重放。

  • Payload Data: 原始 IP 数据包的加密负载。

  • Padding: 可选的填充,添加到数据包中以满足加密要求。

  • Next Header: 一个 1 字节的字段,指定 ESP 数据包后面下一个报头的协议。

  • ICV(认证数据): 消息认证码 (MAC:message authentication code),用于提供数据包的完整性和认证。

  • Padding: 可选的填充,添加到数据包中以满足加密要求。

传输模式示例

以下是传输模式 ESP 的一个示例,展示了 Wireshark 日志与 ESP 数据包之间的关联。如您所见,Wireshark 中显示的一些参数与 ESP 数据包结构并不完全一致。例如,一些字段(例如认证数据)位于数据包的末尾,但在解码时却显示在前面部分。(我知道……这确实是一个非常令人困惑和混乱的图示,但我认为至少用手指或铅笔逐一追踪一下还是值得的)。

隧道模式示例

以下是隧道模式 ESP 的一个示例,展示了 Wireshark 日志与 ESP 数据包之间的关联。如您所见,Wireshark 中显示的一些参数与 ESP 数据包结构并不完全一致。例如,一些字段(例如认证数据)位于数据包的末尾,但在解码时却显示在前面部分。(我知道……这确实是一个非常令人困惑和混乱的图示,但我认为至少用手指或铅笔逐一追踪一下还是值得的)。

ESP 是否加密 TCP/UDP 端口号?

是的,TCP 和 UDP 端口号与 IP 数据包的其余负载一起被加密。这意味着,即使攻击者截获了一个 ESP 加密的数据包,他们也无法确定正在使用的 TCP 或 UDP 端口号。

这是因为 ESP 加密了整个 IP 数据包负载,包括传输层协议头(如 TCP 或 UDP),以及任何正在传输的应用层数据。数据包中唯一未被加密的部分是 IP 头字段,例如源 IP 地址和目标 IP 地址。

虽然 ESP 提供了 IP 数据包负载的机密性,但它可能使某些网络功能(如流量过滤)变得困难,因为这些功能通常依赖于 TCP 和 UDP 端口号。为了解决这个问题,一些网络安全设备可以被配置为检查 ESP 加密的数据包,并提取端口号用于过滤。然而,这需要额外的处理,并且可能会消耗大量资源。

注意:一些网络安全设备如何检查 ESP 加密的数据包并提取端口号?

这些安全设备可以使用一种称为解密卸载(decryption offloading)的技术。

在解密卸载中,加密的数据包首先由能够解密 ESP 加密数据包的设备(如防火墙或入侵防御系统(IPS))拦截。然后,该设备解密数据包并检查传输层头部,传输层头部包含 TCP 或 UDP 端口号,以及用于过滤或分析的其他信息。

一旦设备检查了数据包,它可以根据配置的安全策略决定是允许数据包继续传输到目的地,还是将其阻止。

实现解密卸载的一种常见方法是使用专用设备或硬件模块,这些设备专门设计用于高性能的数据包处理和解密。该设备通常使用专用的硬件和软件,快速有效地解密数据包,而不会引入显著的延迟或性能下降。

另一种实现解密卸载的方法是使用运行在服务器或虚拟机上的软件解决方案。在这种情况下,服务器或虚拟机必须具有足够的处理能力和内存,以处理解密和数据包处理所需的额外开销。

注意:我们是否需要提供 IPsec 密钥给这样的设备以解码加密的数据包?

是的,要解密 Encapsulating Security Payload (ESP) 加密的数据包,网络安全设备需要访问用于加密数据包的 IPsec 密钥。这个密钥在 IPsec 隧道的端点之间共享,用于加密和解密数据包。

为了使网络安全设备能够解密 ESP 加密的数据包,必须将 IPsec 密钥共享给该设备。根据 IPsec 隧道的具体实现和安全策略,这可以通过以下几种方式完成:

  • 预共享密钥(PSK:Pre-shared key ):在 PSK 配置中,IPsec 隧道的两个端点使用相同的共享秘密密钥来加密和解密数据包。这个密钥可以在两个端点和网络安全设备上手动配置,以允许数据包的解密。

  • 公钥基础设施(PKI:Public key infrastructure):在 PKI 配置中,IPsec 隧道的每个端点都有自己的公钥和私钥对。公钥由可信的第三方(如证书颁发机构(CA))进行交换和信任。网络安全设备可以被配置为使用这些可信的公钥来解密数据包。

  • 密钥管理协议(Key management protocol):一些 IPsec 实现使用密钥管理协议,如互联网密钥交换(IKE:Internet Key Exchange),在端点之间自动交换和管理 IPsec 密钥。在这种情况下,网络安全设备可以被配置为参与密钥交换,并获得解密所需的密钥。

ESP 与 AH 对比

ESP(Encapsulating Security Payload,封装安全负载)和 AH(Authentication Header,认证头)是用于 IPSec(互联网协议安全)的两种协议,用于为 IP 数据包提供安全服务。虽然这两种协议都提供了对 IP 数据包的机密性(注,AH不提供机密性)、完整性和认证,但它们在实现这些目标的方式和提供的保护级别上有所不同。

ESP 和 AH 之间的主要区别如下:

  • 机密性:ESP 通过加密 IP 数据包的有效负载来提供机密性,而 AH 不提供加密,因此不提供机密性。

  • 认证:ESP 和 AH 都提供认证,但使用的方法不同。ESP 使用数字签名来认证数据包,而 AH 使用消息认证码(MAC:message authentication code )。

  • 完整性:ESP 和 AH 都通过确保数据包在传输过程中未被修改来提供完整性保护。然而,ESP 提供对 IP 头部和有效负载的完整性保护,而 AH 仅对 IP 头部提供完整性保护。

  • 协议兼容性:AH 与 NAT(网络地址转换,Network Address Translation)不兼容,而 ESP 兼容 NAT。

简而言之,ESP 是 IPSec 中使用更为广泛的协议,因为它为 IP 数据包提供了机密性和完整性保护,并且与 NAT 兼容。AH 主要用于那些不需要机密性,但需要认证和完整性保护的情况。

Security - IKE

后面单独介绍该部分内容。

Source

https://www.sharetechnote.com/html/IP_Network_Security_IPSec.html

在进行IPSec协议数据的分析时,可以采取以下步骤: 1. 捕获IPSec数据包:使用网络抓包工具(如Wireshark)在网络中捕获IPSec数据包。确保捕获到的数据包包含IPSec的相关协议头部和有效负载。 2. 解析IPSec头部:对捕获到的数据包进行解析,查看IPSec协议头部的字段和值。IPSec头部通常由AH(认证头)和ESP(封装安全负载)组成,可以根据协议头部的类型和标志位确定是否使用了加密和认证机制。 3. 检查加密算法:根据解析出的IPSec头部信息,查看加密算法字段,确定通信双方所采用的具体加密算法。常见的加密算法有AES、3DES等。 4. 检查认证算法:同样根据解析出的IPSec头部信息,查看认证算法字段,确定通信双方所采用的具体认证算法。常见的认证算法有HMAC-MD5、HMAC-SHA1等。 5. 分析密钥交换:如果IPSec使用了密钥交换协议(如IKE),需要进一步分析密钥交换过程,包括协商阶段、密钥交换方式等。 6. 解密和验证:如果IPSec数据包进行了加密和认证,可以根据协议头部中的字段和密钥信息对数据包进行解密和验证操作,以还原明文数据和验证数据的完整性。 通过以上步骤,可以对IPSec协议数据进行分析,了解通信双方所采用的加密和认证算法,以及密钥交换过程等关键信息。这有助于评估IPSec协议的安全性和性能,并进行故障排除和网络优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值