IPsec 是一组网络协议,用于在公共共享网络中设置安全加密连接,例如 VPN。
阅读本文后,您将能够:
复制文章链接
IPsec是一组用于保障设备间连接的协议。 IPsec 有助于保持通过公共网络发送的数据安全。它通常用于建立 VPN,其工作原理是对 IP 数据包进行加密,同时验证数据包的来源。
在术语“IPsec”中,“IP”代表“互联网协议”,“sec”代表“安全”。互联网协议是互联网上使用的主要路由协议;它使用 IP 地址指定数据的去向。IPsec 是安全的,因为它在此过程中添加了加密*和身份验证。
*加密是通过数学方式改变数据以使其看起来随机的信息隐藏过程。简单来说,加密是使用只有授权方才能解释的“密码”。
像 IPsec 这样的安全协议是必要的,因为网络方法默认是不加密的。
当通过邮政服务发送邮件时,一个人通常不会在信封外面写上他们的信息。相反,他们把自己的信息封装在信封里,这样,处理寄件人和收件人之间邮件的人就无法阅读他们的信息。然而,像 TCP/IP 这样的网络协议套件只关注连接和交付,发送的信息并不隐蔽。中间的任何人都可以读到它们。 IPsec和其他加密数据的协议,本质上是在数据穿越网络时为其套上一个信封,以保证其安全。
虚拟专用网络 (VPN) 是两台或多台计算机之间的加密连接。VPN 连接发生在公共网络上,但通过 VPN 交换的数据仍然是私有的,因为它是加密的。
VPN 使通过共享网络基础设施(例如公共互联网)安全地访问和交换机密数据成为可能。例如,当员工远程工作而不是在办公室工作时,他们经常使用 VPN 访问公司文件和应用。
许多 VPN 使用 IPsec 协议套件来建立和运行这些加密的连接。然而,并非所有的 VPN 都使用 IPsec。另一个用于 VPN 的协议是 SSL/TLS ,它在 OSI 模型中不同于 IPsec 的层中运作。(OSI 模型是对使互联网运作的进程的抽象表示)。
用户可以通过登录 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 数据包通过防火墙。
解密:在通信的另一端,数据包被解密,应用(例如浏览器)现在可以使用传递的数据。
在网络中,协议是格式化数据的指定方式,以便任何联网的计算机都可以解释数据。IPsec 不是一个协议,而是一套协议。以下协议构成 IPsec 套件:
身份验证标头 (AH):AH 协议确保数据包来自受信任的来源,且数据没有被篡改,就像消费产品上的防篡改封条一样。这些标头不提供任何加密;它们对于向攻击者隐藏数据没有帮助。
封装安全协议 (ESP):ESP 加密每个数据包的 IP 标头和有效负载——除非使用传输模式,在这种情况下它只加密有效负载。ESP 向每个数据包添加自己的标头和尾部。
安全关联 (SA):SA 是指用于协商加密密钥和算法的一些协议。最常见的 SA 协议之一是互联网密钥交换 (IKE)。
最后,虽然互联网协议 (IP) 不是 IPsec 套件的一部分,但 IPsec 直接在 IP 之上运行。
IPsec 隧道模式用于两个专用路由器之间,每个路由器充当通过公共网络的虚拟“隧道”的一端。在 IPsec 隧道模式下,除了数据包有效负载之外,包含数据包最终目的地的原始 IP 标头也被加密。为了告诉中间路由器将数据包转发到哪里,IPsec 添加了一个新的 IP 标头。在隧道的每一端,路由器解密 IP 标头以将数据包传递到它们的目的地。
在传输模式下,每个数据包的有效负载都被加密,但原始 IP 标头不会加密。因此,中间路由器能够查看每个数据包的最终目的地——除非使用单独的隧道协议(如 GRE)。
网络端口是数据进入计算机的虚拟位置。端口是计算机跟踪不同进程和连接的方式;如果数据进入某个端口,计算机的操作系统就知道它属于哪个进程。IPsec 通常使用端口 500。
MSS 和 MTU 是数据包大小的两个度量。数据包只能达到一定的大小(以字节为单位),否则计算机、路由器和交换机将无法处理它们。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 作为我们的安全访问服务边缘 (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 的更多信息。