3

一文读懂互联网协议安全 — IPSec

 2 years ago
source link: https://network.51cto.com/article/713496.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
f529ea8379901be8966232535d324566a82179.jpg

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

IPSec简介

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

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

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

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

图片

ESP协议

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

安全关联(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 协议要求更高。​


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK