导读 IPSec 可为通信两端设备提供安全通道,比如用于两个路由器之间以创建点到点 VPN,以及在防火墙和 Windows 主机之间用于远程访问 VPN等。

​IPSec(互联网协议安全)是一个安全网络协议套件,用于保护互联网或公共网络传输的数据。IETF在 1990 年代中期开发了 IPSec 协议,它通过 IP网络数据包的身份验证和加密来提供 IP 层的安全性。

IPSec简介

IPSec 可为通信两端设备提供安全通道,比如用于两个路由器之间以创建点到点 VPN,以及在防火墙和 Windows 主机之间用于远程访问 VPN等。IPSec可以实现以下四项功能:

    数据机密性:IPSec发送方将包加密后再通过网络发送,可以保证在传输过程中,即使数据包遭截取,信息也无法被读取。
    数据完整性:IPSec可以验证IPSec发送方发送过来的数据包,以确保数据传输时没有被改变。若数据包遭篡改导致检查不相符,将会被丢弃。
    数据认证:IPSec接受方能够鉴别IPSec包的发送起源,此服务依赖数据的完整性。
    防重放:确保每个IP包的唯一性,保证信息万一被截取复制后不能再被重新利用,不能重新传输回目的地址。该特性可以防止攻击者截取破译信息后,再用相同的信息包获取非法访问权。

IPSec 不是一个协议,而是一套协议,以下构成了 IPSec 套件:

AH协议

AH(Authentication Header)指一段报文认证代码,确保数据包来自受信任的发送方,且数据没有被篡改,就像日常生活中的外卖封条一样。在发送前,发送方会用一个加密密钥算出AH,接收方用同一或另一密钥对之进行验证。然而,AH并不加密所保护的数据报,无法向攻击者隐藏数据。

ESP协议

ESP(Encapsulating Security Payload)向需要保密的数据包添加自己的标头和尾部,在加密完成后再封装到一个新的IP包中。ESP还向数据报头添加一个序列号,以便接收主机可以确定它没有收到重复的数据包。

SA协议

安全关联(SA)是指用于协商加密密钥和算法的一些协议,提供AH、ESP操作所需的参数。最常见的 SA 协议之一是互联网密钥交换 (IKE),协商将在会话过程中使用的加密密钥和算法。

IPSec 是如何工作的?

IPSec 的工作方式涉及五个关键步骤,如下:

    主机识别:主机识别数据包是否需要保护,使用 IPSec 进行传输时,这些数据包流量会自己触发安全策略。主机还会检查传入的数据包是否正确加密。
    IKE 阶段 1:主机使用 IPSec 协商将用于安全通道的策略集,双方验证完成后,在它们之间建立一个安全通道,用于协商 IPSec 电路加密或验证通过它发送的数据的方式。
    IKE 阶段 2:通过安全通道进行,在该通道中,两台主机协商在会话中使用的加密算法类型,主机还同意并交换双方计划用于进出流量的加密和解密密钥。
    IPSec 传输:通过新创建的 IPSec 加密隧道交换数据,之前设置的 IPSec SA 用于加密和解密数据包。
    IPSec 终止:当主机之间的会话超时或通信完成时,通信双方之间的隧道在空闲时间达到一定值后会自动删除。
IPSec 模式

IPSec 有两种不同的运行方式:隧道模式和传输模式。两者之间的区别在于 IPSec 如何处理数据包报头。 在隧道模式下加密和验证整个 IP数据包(包括 IP 标头和有效负载),并附加一个新的报头,如下图所示。通常,隧道模式应用在两个安全网关之间的通讯。

隧道模式 在传输模式下,IPSec 仅加密(或验证)数据包的有效负载,但或多或少地保留现有的数据报头数据。通常,传输模式应用在两台主机之间的通讯,或一台主机和一个安全网关之间的通讯。

IPSec传输模式和隧道模式的区别在于:

    从安全性来讲,隧道模式优于传输模式。它可以完全对原始IP数据包进行验证和加密。隧道模式下可以隐藏内部IP地址、协议类型和端口。
    从性能来讲,隧道模式因为有一个额外的IP头,所以它将比传输模式占用更多带宽。
    从场景来讲,传输模式主要应用于两台主机或一台主机和一台VPN网关之间通信;隧道模式主要应用于两台VPN网关之间或一台主机与一台VPN网关之间的通信。
IPSec 如何在 VPN 中使用?

VPN本质上是在公共网络上实现的专用网络。VPN 通常用于企业,使员工能够远程访问其公司网络。按照VPN协议分类,常见的VPN种类有:IPSec、SSL、GRE、PPTP和L2TP等。其中IPSec是通用性较强的一种VPN技术,适用于多种网络互访的场景。 IPSec 通常用于保护 VPN的安全。VPN在用户的计算机和VPN服务器之间创建了一个专用网络,而IPSec协议实现了一个安全的网络,保护VPN数据不受外部访问。

通过IPSec VPN可以在主机和主机之间、主机和网络安全网关之间或网络安全网关(如路由器、防火墙)之间建立安全的隧道连接。其协议主要工作在IP层,在IP层对数据包进行加密和验证。可以使用两种 IPSec 模式设置 VPN:隧道模式和传输模式。

IPSec VPN与SSL 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 协议要求更高。​

原文来自:

本文地址://gulass.cn/internet-protocol-security-ipsec.html编辑:KSJXAXOAS,审核员:逄增宝

Linux大全:

Linux系统大全:

红帽认证RHCE考试心得: