共计 2573 个字符,预计需要花费 7 分钟才能阅读完成。
导读 | IPSec 可为通信两端设备提供安全通道,比如用于两个路由器之间以创建点到点 VPN,以及在防火墙和 Windows 主机之间用于远程访问 VPN 等。 |
IPSec(互联网协议安全)是一个安全网络协议套件,用于保护互联网或公共网络传输的数据。IETF 在 1990 年代中期开发了 IPSec 协议,它通过 IP 网络数据包的身份验证和加密来提供 IP 层的安全性。
IPSec 可为通信两端设备提供安全通道,比如用于两个路由器之间以创建点到点 VPN,以及在防火墙和 Windows 主机之间用于远程访问 VPN 等。IPSec 可以实现以下四项功能:
- 数据机密性:IPSec 发送方将包加密后再通过网络发送,可以保证在传输过程中,即使数据包遭截取,信息也无法被读取。
- 数据完整性:IPSec 可以验证 IPSec 发送方发送过来的数据包,以确保数据传输时没有被改变。若数据包遭篡改导致检查不相符,将会被丢弃。
- 数据认证:IPSec 接受方能够鉴别 IPSec 包的发送起源,此服务依赖数据的完整性。
- 防重放:确保每个 IP 包的唯一性,保证信息万一被截取复制后不能再被重新利用,不能重新传输回目的地址。该特性可以防止攻击者截取破译信息后,再用相同的信息包获取非法访问权。
IPSec 不是一个协议,而是一套协议,以下构成了 IPSec 套件:
AH(Authentication Header) 指一段报文认证代码,确保数据包来自受信任的发送方,且数据没有被篡改,就像日常生活中的外卖封条一样。在发送前,发送方会用一个加密密钥算出 AH,接收方用同一或另一密钥对之进行验证。然而,AH 并不加密所保护的数据报,无法向攻击者隐藏数据。
ESP(Encapsulating Security Payload)向需要保密的数据包添加自己的标头和尾部,在加密完成后再封装到一个新的 IP 包中。ESP 还向数据报头添加一个序列号,以便接收主机可以确定它没有收到重复的数据包。
安全关联(SA)是指用于协商加密密钥和算法的一些协议,提供 AH、ESP 操作所需的参数。最常见的 SA 协议之一是互联网密钥交换 (IKE),协商将在会话过程中使用的加密密钥和算法。
IPSec 的工作方式涉及五个关键步骤,如下:
- 主机识别:主机识别数据包是否需要保护,使用 IPSec 进行传输时,这些数据包流量会自己触发安全策略。主机还会检查传入的数据包是否正确加密。
- IKE 阶段 1:主机使用 IPSec 协商将用于安全通道的策略集,双方验证完成后,在它们之间建立一个安全通道,用于协商 IPSec 电路加密或验证通过它发送的数据的方式。
- IKE 阶段 2:通过安全通道进行,在该通道中,两台主机协商在会话中使用的加密算法类型,主机还同意并交换双方计划用于进出流量的加密和解密密钥。
- IPSec 传输:通过新创建的 IPSec 加密隧道交换数据,之前设置的 IPSec SA 用于加密和解密数据包。
- IPSec 终止:当主机之间的会话超时或通信完成时,通信双方之间的隧道在空闲时间达到一定值后会自动删除。
IPSec 有两种不同的运行方式:隧道模式和传输模式。两者之间的区别在于 IPSec 如何处理数据包报头。在隧道模式下加密和验证整个 IP 数据包(包括 IP 标头和有效负载),并附加一个新的报头,如下图所示。通常,隧道模式应用在两个安全网关之间的通讯。
隧道模式 在传输模式下,IPSec 仅加密(或验证)数据包的有效负载,但或多或少地保留现有的数据报头数据。通常,传输模式应用在两台主机之间的通讯,或一台主机和一个安全网关之间的通讯。
IPSec 传输模式和隧道模式的区别在于:
- 从安全性来讲,隧道模式优于传输模式。它可以完全对原始 IP 数据包进行验证和加密。隧道模式下可以隐藏内部 IP 地址、协议类型和端口。
- 从性能来讲,隧道模式因为有一个额外的 IP 头,所以它将比传输模式占用更多带宽。
- 从场景来讲,传输模式主要应用于两台主机或一台主机和一台 VPN 网关之间通信;隧道模式主要应用于两台 VPN 网关之间或一台主机与一台 VPN 网关之间的通信。
VPN 本质上是在公共网络上实现的专用网络。VPN 通常用于企业,使员工能够远程访问其公司网络。按照 VPN 协议分类,常见的 VPN 种类有:IPSec、SSL、GRE、PPTP 和 L2TP 等。其中 IPSec 是通用性较强的一种 VPN 技术,适用于多种网络互访的场景。IPSec 通常用于保护 VPN 的安全。VPN 在用户的计算机和 VPN 服务器之间创建了一个专用网络,而 IPSec 协议实现了一个安全的网络,保护 VPN 数据不受外部访问。
通过 IPSec VPN 可以在主机和主机之间、主机和网络安全网关之间或网络安全网关(如路由器、防火墙)之间建立安全的隧道连接。其协议主要工作在 IP 层,在 IP 层对数据包进行加密和验证。可以使用两种 IPSec 模式设置 VPN:隧道模式和传输模式。
SSL VPN 是采用 SSL/TLS 协议来实现远程接入的一种轻量级 VPN 技术,包括服务器认证、客户认证、SSL 链路上的数据完整性和 SSL 链路上的数据保密性。SSL VPN 提供安全、可代理连接,只有经认证的用户才能对资源进行访问。SSL VPN 能对加密隧道进行细分,从而使得终端用户能够同时接入 Internet 和访问内部企业网资源,也就是说它具备可控功能。
IPSec VPN 和 SSL VPN 都可以实现企业级安全远程访问,但它们以不同的方式提供。IPSec 工作在网络层,即把原始数据包网络层及以上的内容进行封装;SSL VPN 工作在传输层,封装的是应用信息。
IPSec 和 SSL 的具体区别:
自 1998 年正式颁布以来,IPSec 经过了二十多年的发展,其设计初衷是在网络层建立一套通用的安全机制,保护所有 IP 网络通信的安全。相比位于传输层和应用层的安全协议,IPSec 可以提供较为广泛和通用的安全保护。由于位于网络层,IPSec 对上层协议是透明的,不需要修改上层协议就可以使用。但 IPSec 也存在着一定的限制,在某些情况下,其不可以进行直接的端到端通信 (即传输模式)。另外,IPSec 配置复杂性较高,相比其他 VPN 协议要求更高。