IPSec基础知识

文章目录

  • IPSec基础知识
    • IPSec特性
    • IPSec组成部分
      • IPSec对等体
      • IPSec隧道
      • 安全联盟(Security Association)
      • AH安全协议
        • AH包结构
      • ESP安全协议
        • ESP包结构
      • AH和ESP比较
    • 封装模式
      • 传输模式
      • 隧道模式

IPSec基础知识

IPSec (Internet 协议安全)是一个工业标准网络安全协议,为IP 网络通信提供透明的安全服务,保护TCP/IP 通信免遭窃听和篡改,可以有效抵御网络攻击,同时保持易用性。

IPSec通过在IPSec对等体间建立双向安全联盟,形成一个安全互通的IPSec隧道,来实现Internet 上数据的安全传输。

IPSec特性

1.访问控制:通信对等体认证机制,对于通信的对等体进行认证,从而完成访问控制功能。

2.无连接的完整性、数据来源验证:通过报文认证,防止传输过程中数据被篡改,确保发出数据和接收数据的一致性。IPSec利用Hash函数为每个数据包产生–个加密校验和,接收方在打开包前先计算校验和,若包遭篡改导致校验和不相符,数据包即被丢弃。验证数据源,以保证数据来自真实的发送者(IP报文头内的源地址)。

3.防重放:通过AH或者ESP的防重放窗口结合认证,来抵御重放攻击。确保每个IP包的唯一性,保证信息万一被截取复制后,不能再被重新利用、重新传输回目的地址。该特性可以防止攻击者截取破译信息后,再用相同的信息包冒取非法访问权。

4.机密性(加密):通过ESP的加密功能以及ESP协议的报文填充功能来完成。在传输前,对数据进行加密,可以保证在传输过程中,即使数据包遭截取,信息也无法被读出。该特性在IPSec中为可选项,与IPSec策略的具体设置相关。

IPSec组成部分

IPSec包括认证头协议AH(AuthenticationHeader)、封装安全载荷协议ESP(Encapsulating Security Payload)、因特网密钥交换协议IKE (Internet Key Exchange),用于保护主机与主机之间、主机与网关之间、网关与网关之间的一-个或多个数据流。

其中,AH和ESP这两个安全协议用于提供安全服务,IKE协议用于密钥交换。

IPSec对等体

IPSec用于在协商发起方和响应方这两个端点之间提供安全的IP通信,通信的两个端点被称为IPSec对等体。其中,端点可以是网关路由器,也可以是主机。

IPSec隧道

IPSec为对等体间建立IPSec隧道来提供对数据流的安全保护。一对IPSec对等体间可以存在多条IPSec隧道,针对不同的数据流各选择一条隧道对其进行保护,例如有的数据流只需要认证、有的需要认证和加密。

IPSec对数据的加密是以数据包为单位,而不是以整个数据流为单位。发送方对要保护的数据包进行加密封装,在Internet上传输,接收方采用相同的参数对报文认证、解封
装,以得到原始数据。

安全联盟(Security Association)

定义:安全联盟是要建立IPSec隧道的通信双方对隧道参数的约定,包括隧道两端的IP地址、隧道采用的验证方式、验证算法、验证密钥、加密算法、加密密钥、共享密钥以及生存周期等一系列参数。

安全联盟由一个三元组来唯一标识:安全参数索引(SPI, Security Parameter Index) 、目的IP地址、安全协议号(AH或ESP) 。SPI是为唯一标识SA而生成的一个32比特的数值,它在IPSec头中传输。

安全联盟是IPSec的基础,也是IPSec的本质。SA是通信对等体间对某些要素的约定,例如,使用哪种安全协议、协议的操作模式(传输模式和隧道模式)、加密算法(DES和3DES)、特定流中保护数据的共享密钥以及密钥的生存周期等。对等体间需要通过手工配置或IKE协议协商匹配的参数才能建立起安全联盟。

单向性:在两个对等体之间的双向通信,最少需要两个安全联盟来分别对两个方向的数据流进行安全保护。入站数据流和出站数据流分别由入站SA和出站SA进行处理。如果希望同时使用AH和ESP来保护对等体间的数据流,则分别需要两个SA,一个用于AH,另一个用于ESP。

AH安全协议

  • AH是一种基于IP的传输层协议,协议号为51。
  • 只能支持认证 ,不支持加密 。
  • 对整个头部进行认证。

AH对数据包和认证密钥进行Hash计算,接收方收到带有计算结果的数据包后,执行同样的Hash计算并与原计算结果比较,传输过程中对数据的任何更改将使计算结果无效,这样就提供了数据来源认证和数据完整性校验。AH协议的完整性验证范围为整个IP报文。

AH包结构

IPSec基础知识_第1张图片

AH报文头字段含义:

字段 长度 含义
下一头部 8比特 标识AH报文头后面的负载类型。传输模式下,是被保护的上层协议(TCP或UDP)或ESP协议的编号;隧道模式下,是IP协议或ESP协议的编号。注意:当AH与ESP协议同时使用时,AH报文头的下一头部为ESP报文头。
负载长度 8比特 表示以32比特为单位的AH报文头长度减2,缺省为4。
保留字段 16比特 保留将来使用,缺省为0。
SPI 32比特 IPSec安全参数索引,用于标识有相同IP地址和相同安全协议的不同IPSec安全联盟。
序列号 32比特 是一个从1开始的单项递增的计数器,唯一地标识每一个数据包,用于防止重放攻击。
认证数据 一个变长字段,长度为32比特的整数倍,通常为96比特。 该字段包含数据完整性校验值 ICV(Integrity Check Value),用于接收方进行完整性校验。可选择的认证算法有MD5、SHA1、SHA2、SM3。

ESP安全协议

ESP支持加密和认证。

ESP是一种基于IP的传输层协议,协议号为50。其工作原理是在每一个数据包的标准IP报头后面添加一个ESP报文头,并在数据包后面追加一个ESP尾(ESP Tail和ESP Auth data)。与AH不同的是,ESP将数据中的有效载荷进行加密后再封装到数据包中,以保证数据的机密性,但ESP没有对IP头的内容进行保护。

ESP包结构

IPSec基础知识_第2张图片

字段 长度 含义
SPI 32比特 IPSec安全参数索引,用于标识有相同IP地址和相同安全协议的不同IPSec安全联盟。
序列号 32比特 是一个从1开始的单项递增的计数器,唯一地标识每一个数据包,用于防止重放攻击。
负载数据 包含由下一头部字段给出的变长数据。
填充字段 用于增加ESP报文头的位数。填充字段的长度与负载数据的长度和算法有关。当待加密报文的明文长度不是加密算法所要求的块长度时,需要进行填充补齐。
填充长度 8比特 给出前面填充字段的长度,置0时表示没有填充。
下一头部 8比特 标识ESP报文头后面的下一个负载类型。传输模式下,是被保护的上层协议(TCP或UDP)的编号;隧道模式下,是IP协议的编号。
认证数据 一个变长字段,长度为32比特的整数倍,通常为96比特。 该字段包含数据完整性校验值ICV,用于接收方进行完整性校验。可选择的认证算法与AH的相同。ESP的验证功能是可选的,如果启动了数据包验证,会在加密数据的尾部添加一个ICV数值。

AH和ESP比较

安全特性 AH ESP
协议号 51 50
数据完整性校验 支持(验证整个IP报文) 支持(不验证IP头)
数据源验证 支持 支持
数据加密 不支持 支持
防报文重放攻击 支持 支持
IPSec NAT-T(NAT穿越) 不支持 支持

封装模式

传输模式

IPSec基础知识_第3张图片

传输模式只为高层协议提供安全服务。这种模式常应用在需要保护的两台主机之间的端到端连接,而不是多台主机的两个网关之间的数据流。

隧道模式

IPSec基础知识_第4张图片

隧道模式适于转发设备对保护流量进行封装处理的场景,建议应用于两个安全网关之间的通讯。传输模式适于主机到主机、主机到网关对保护流量进行封装处理的场景。

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

  • 从安全性来讲,隧道模式优于传输模式。它可以完全地对原始IP数据报进行验证和加密。隧道模式下可以隐藏内部IP地址,协议类型和端口。
  • 从性能来讲,隧道模式因为有一个额外的IP头,所以它将比传输模式占用更多带宽。

当安全协议同时采用AH和ESP时,AH和ESP协议必须采用相同的封装模式。

你可能感兴趣的