什么是 IPsec?| IPsec VPN 如何运作

IPsec 是一组网络协议,用于在公共共享网络中设置安全加密连接,例如 VPN。

学习目标

阅读本文后,您将能够:

  • 了解 IPsec 协议套件
  • 了解 IPsec VPN 的运作方式
  • 比较 IPsec 隧道模式和 IPsec 传输模式

相关内容


想要继续学习吗?

订阅 TheNET,这是 Cloudflare 每月对互联网上最流行见解的总结!

参阅 Cloudflare 的隐私政策,了解我们如何收集和处理您的个人数据。

复制文章链接

什么是 IPsec?

IPsec是一组用于保障设备间连接的协议。 IPsec有助于保持通过公共网络发送的数据安全。 它通常用于建立 VPN,其工作原理是对 IP 数据包进行加密,同时验证数据包的来源。

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

*加密是通过数学方式改变数据以使其看起来随机的信息隐藏过程。简单来说,加密是使用只有授权方才能解释的“密码”。

白皮书
如何摆脱网络硬件的束缚
指南
保护应用程序访问的 Zero Trust 指南

为什么IPsec很重要?

像IPsec这样的安全协议是必要的,因为网络方法默认是不加密的。

当通过邮政服务发送邮件时,一个人通常不会在信封外面写上他们的信息。 相反,他们把自己的信息封装在信封里,这样,处理寄件人和收件人之间邮件的人就无法阅读他们的信息。 然而,像TCP/IP这样的网络协议套件只关注连接和交付,发送的信息并不隐蔽。 中间的任何人都可以读到它们。 IPsec和其他加密数据的协议,本质上是在数据穿越网络时为其套上一个信封,以保证其安全。

什么是 VPN?什么是 IPsec VPN?

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

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

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

用户如何连接到 IPsec VPN?

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

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

注册
任何 Cloudflare 计划均可提供安全性和速度

IPsec 如何运作?

IPsec 连接包括以下步骤:

密钥交换:密钥是加密所必需的;密钥是一串随机字符,可用于“锁定”(加密)和“解锁”(解密)消息。IPsec 会设置密钥,在连接的设备之间进行密钥交换,这样每个设备都可以对另一个设备的消息进行解密。

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

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

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

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

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

IPsec 中使用了哪些协议?

网络中,协议是格式化数据的指定方式,以便任何联网的计算机都可以解释数据。IPsec 不是一个协议,而是一套协议。以下协议构成 IPsec 套件:

身份验证标头 (AH):AH 协议确保数据包来自受信任的来源,且数据没有被篡改,就像消费产品上的防篡改封条一样。这些标头不提供任何加密;它们对于向攻击者隐藏数据没有帮助。

封装安全协议 (ESP):ESP 加密每个数据包的 IP 标头和有效负载——除非使用传输模式,在这种情况下它只加密有效负载。ESP 向每个数据包添加自己的标头和尾部。

安全关联 (SA):SA 是指用于协商加密密钥和算法的一些协议。最常见的 SA 协议之一是互联网密钥交换 (IKE)。

最后,虽然互联网协议 (IP) 不是 IPsec 套件的一部分,但 IPsec 直接在 IP 之上运行。

IPsec 隧道模式和 IPsec 传输模式之间有什么区别?

IPsec 隧道模式用于两个专用路由器之间,每个路由器充当通过公共网络的虚拟“隧道”的一端。在 IPsec 隧道模式下,除了数据包有效负载之外,包含数据包最终目的地的原始 IP 标头也被加密。为了告诉中间路由器将数据包转发到哪里,IPsec 添加了一个新的 IP 标头。在隧道的每一端,路由器解密 IP 标头以将数据包传递到它们的目的地。

在传输模式下,每个数据包的有效负载都被加密,但原始 IP 标头不会加密。因此,中间路由器能够查看每个数据包的最终目的地——除非使用单独的隧道协议(如 GRE)。

IPsec 使用什么端口?

网络端口是数据进入计算机的虚拟位置。端口是计算机跟踪不同进程和连接的方式;如果数据进入某个端口,计算机的操作系统就知道它属于哪个进程。IPsec 通常使用端口 500。

IPsec 对 MSS 和 MTU 有何影响?

MSSMTU 是数据包大小的两个度量。数据包只能达到一定的大小(以字节为单位),否则计算机、路由器和交换机将无法处理它们。MSS 衡量每个数据包有效负载的大小,而 MTU 衡量整个数据包,包括标头。超过网络 MTU 的数据包可能会被分段(即被分解成更小的数据包),然后重新组合。超过 MSS 的数据包将被简单地丢弃。

IPsec 协议向数据包添加了多个标头和尾部,所有这些都占用几个字节。对于使用 IPsec 的网络,必须相应调整 MSS 和 MTU,否则数据包将被分段并略有延迟。通常,网络的 MTU 为 1,500 字节。一个普通的 IP 标头是 20 字节长,而 TCP 标头也是 20 字节长,这意味着每个数据包可以包含 1,460 字节的有效负载。但是,IPsec 添加了身份验证标头、ESP 标头和关联的尾部。这些为一个数据包增加了 50-60 个字节,或者更多。

阅读“什么是 MTU?”,了解有关 MTU 和 MSS 的更多信息

Cloudflare 是否支持 IPsec?

Cloudflare 支持将 IPsec 作为我们的安全访问服务边缘 (SASE) 解决方案的 Cloudflare One 的入口。

为了保护流量,IPsec 需要在两点之间建立一个 SA,为流量创建一条隧道。根据实施模型,这可能会带来一些挑战。例如,在网格模型中,所有节点(或位置)都通过专用隧道相互连接。但是,这需要创建和管理多个 IPsec 隧道,这很难扩展。

然而,Cloudflare 使用 Anycast IPsec 模型。(Anycast 网络是一种将传入请求路由到各种节点的网络。)使用 Anycast IPsec,用户只需设置一个到 Cloudflare 的 IPsec 隧道即可连接到我们全球网络中的 250 多个位置。

为了使 Anycast IPsec 成为可能,Cloudflare 在 Cloudflare 边缘网络中的服务器之间复制和分发 SA。这意味着整个 Cloudflare 网络充当通往您网络的单个 IPsec 隧道。

了解有关 Anycast IPsec 和 Cloudflare One 的更多信息。