IPsec 的工作原理、组件和用途
什么是 IPsec?
IPsec 是一套用于保护 Internet 通信安全的协议——实际上,该名称本身就是Internet Protocol Security的缩写。
IPsec 于 20 世纪 90 年代首次编纂,受到需要保护互联网流量的曙光的启发:早期互联网主要连接安全的政府和大学建筑,以及定义在线通信工作方式的互联网协议 (IP) 发送信息围绕不安全和未加密。
IPsec 旨在创建互联网安全的通用标准,并启用了一些第一个真正安全的互联网连接。IPsec 不是您今天将使用的最常见的 Internet 安全协议,但它在保护 Internet 通信方面仍然发挥着至关重要的作用。
IPsec 有什么用?
如果您今天使用 IPsec,它可能是在虚拟专用网络或VPN 的环境中。顾名思义,VPN 在公共 Internet 上的两台机器之间创建网络连接,与专用内部网络中的连接一样安全(或几乎一样安全):可能 VPN 最著名的用例是允许远程员工访问公司防火墙后面的安全文件,就像他们在办公室工作一样。
在安全套件的协议是技术,主要种的安全VPN一个所谓的IPsec的VPN ,自然。在本文的大部分内容中,当我们说 VPN 时,我们指的是 IPsec VPN,在接下来的几个部分中,我们将解释它们的工作原理。
关于IPsec 端口的注意事项:如果您希望设置防火墙以允许 IPsec VPN 连接,请确保打开 UDP 端口 500 以及 IP 端口 50 和 51。
IPsec层
在我们深入了解 IPsec VPN 的工作原理之前,我们需要了解是什么赋予了它们在网络世界中的特殊地位,为此我们需要讨论OSI 网络模型。OSI 模型定义了七层——基本上是不断增加的抽象层——在这些层上进行网络通信。堆栈的顶部是第 7 层,即应用程序层,即您的 Web 浏览器所在的层;底部是第 1 层,即物理层,电脉冲在此通过电线传输。
该模型的核心是传输层(第 4 层)和网络层(第 3 层)。为管理传输层而编写的代码在单独的计算机上运行,并负责协调终端系统和主机之间的数据传输:要发送多少数据、以什么速率发送以及去向何处。一旦这一切都设置好了,传输层就会将数据交给网络层,网络层主要由运行在路由器和构成网络的其他组件上的代码控制。这些路由器决定单个网络数据包到达目的地的路由,但通信链两端的传输层代码不需要知道这些细节。
位于 Internet 核心的 TCP/IP 协议套件跨越这两层——TCP(或传输控制协议)用于传输,而 IP 用于网络。就其本身而言,IP 没有任何内置安全性,正如我们所指出的,这就是开发 IPsec 的原因。但是 IPsec 紧随其后的是SSL/TLS——TLS代表传输层安全,它涉及在该层加密通信。
如今,TLS 已内置于几乎所有浏览器和其他互联网连接应用程序中,并且对于日常互联网使用来说已经绰绰有余。但这并不完美,如果攻击者能够破解或以其他方式绕过您的 TLS 加密,他们就可以访问您通过 Internet 发送的单个网络数据包中的数据。这就是 IPsec VPN 可以添加另一层保护的原因:它涉及保护数据包本身。
IPsec 的工作原理
IPsec VPN 连接始于在两台正在通信的计算机或主机之间建立安全关联(SA) 。通常,这涉及交换加密密钥,这将允许各方对其通信进行加密和解密。(有关密码学一般工作原理的更多信息,请查看CSO 的密码学解释器。)所使用的确切加密类型是在两台主机之间自动协商的,并将取决于它们在CIA 三元组中的安全目标;例如,您可以加密消息以确保消息完整性(即,确保数据未被更改)而不是机密性。但在大多数情况下,您也会尝试对数据保密。
关于 SA 的信息被传递到在每个通信主机上运行的 IPsec 模块,每个主机的 IPsec 模块使用该信息来修改发送到另一台主机的每个 IP 数据包,并处理收到的类似修改后的数据包。这些修改会影响数据包的标头——数据包开头的元数据,解释数据包的去向、来源、长度和其他信息——以及它的有效载荷,即正在发送的实际数据。
IPsec 组件
有三种主要的 IPsec 协议决定 IPsec 如何修改 IP 数据包:
- Internet 密钥交换 (IKE)在通信主机之间建立 SA,协商将在会话过程中使用的加密密钥和算法。
- 身份验证标头 (AH)向正在发送的数据包添加一个标头字段,其中包含数据包内容的加密散列。接收数据包的主机可以使用此散列来确保有效负载在传输过程中未被修改。
- 封装安全负载 (ESP)对负载进行加密。它还在数据包头中添加一个序列号,以便接收主机可以确保它不会收到重复的数据包。
请注意,可以同时使用 AH 和 ESP,尽管较新版本的 ESP 协议包含了 AH 的大部分功能。无论如何,这两种协议都内置于 IP 实现中。
IPsec加密
IKE 和 ESP 建立的加密完成了我们期望从 IPsec VPN 中完成的大部分工作。您会注意到,我们对这里的加密工作方式有些含糊;这是因为 IKE 和 IPsec 允许使用广泛的加密套件和技术,这就是 IPsec 在该领域取得超过 20 年进步的原因。IPsec VPN 将公钥基础设施(PKI) 用于加密目的是相当普遍的,但这绝不是必需的,还有其他选项可用。
IPsec 模式:IPsec 隧道与 IPsec 传输
IPsec 有两种不同的运行方式,称为模式:隧道模式和传输模式。两者之间的区别与 IPsec 如何处理数据包头有关。在传输模式下,IPsec 仅加密(或验证,如果仅使用 AH)数据包的有效载荷,但或多或少地保留现有数据包头数据。在隧道模式下,IPsec 创建一个带有新标头的全新数据包,加密(或验证)包括其标头在内的整个原始数据包,并使用修改后的原始数据包作为新数据包的有效载荷。
你什么时候会使用不同的模式?如果网络数据包已从专用网络上的主机发送或发往专用网络上的主机,则该数据包的标头包含有关这些网络的路由数据——黑客可以分析该信息并将其用于恶意目的。保护该信息的隧道模式通常用于位于企业专用网络外边缘的网关之间的连接。一个数据包在离开一个网络时被加密,并放入一个新的数据包中,该数据包的目的地是目标网络的网关。一旦它到达网关,它就会被解密并从封装数据包中删除,并沿其发送到内部网络上的目标主机。因此,当数据包穿越公共互联网时,有关专用网络拓扑的标头数据永远不会公开。
另一方面,传输模式通常用于工作站到网关和主机到主机的直接连接。例如,使用 Windows 远程桌面帮助诊断用户计算机上的问题的服务技术将使用传输模式连接。
IPsec VPN 与 SSL VPN
如上所述,IPsec VPN 并不是城里唯一的游戏。还有SSL VPN,顾名思义,它受 TLS 协议而非 IPsec 保护。SSL VPN 通过网络浏览器运行,通常用于访问有防火墙的内联网网站。因为它们内置于每个人都熟悉的浏览器软件中,所以 SSL VPN 使用起来要简单得多;IPsec VPN 通常需要安装和配置专门的软件。SSL VPN 还可以提供对专用网络的更细粒度的限制访问。
另一方面,由于它使用 TLS,因此 SSL VPN 在传输层而非网络层受到保护,因此这可能会影响您对它在多大程度上增强连接安全性的看法。
IPsec教程
哪里可以了解更多:
- NetworkLessons 对IPsec 进行了深入的研究,引导您了解我们在此处浏览的技术细节。
- IBM 还提供了一系列很好的快速指南,解释了如何配置各种 IPsec 连接的拓扑结构。
- Netgate 将引导您完成一个站点到站点 IPsec VPN 连接的示例,该示例应该很有启发性
