IPSec的三个协议和两种模式详解

一、IPSec简介

IPSec (IP Security) 是IETF定义的一组协议,用于增强IP网络的安全性。IPSec 协议集
提供了下面的安全服务。

  • 数据完整性(Data Integrity). 保持数据的一致性, 防止未授权地生成、修改或删除
    数据。
  • 认证(Authentication)。 保证接收的数据与发送的相同,保证实际发送者就是声称的
    发送者。
  • 保密性(Confidentiality)。 传输的数据是经过加密的,只有预定的接收者知道发送的
    内容。
  • 应用透明的安全性(Application-transparent Security)。IPSec的安全头插入在标准的IP
    头和上层协议(例如TCP)之间,任何网络服务和网络应用都可以不经修改地从标准
    IP转向IPSec,同时,IPSec 通信也可以透明地通过现有的IP路由器。

二、IPSec的三个重要协议

IPSec的功能可以划分为下面3类。

  • 认证头(Authentication Header, AH) :用于数据完整性认证和数据源认证。
  • 封装安全负荷( Encapsulating Security Payload, ESP) :提供数据保密性和数据完整
    性认证,ESP 也包括了防止重放攻击的顺序号。
  • Internet密钥交换协议( Internet Key Exchange, IKE) :用于生成和分发在ESP和AH .
    中使用的密钥,IKE也对远程系统进行初始认证。

2.1、AH协议

AH协议概念

IPSec认证头提供了数据完整性和数据源认证,即用来保证传输的IP报文的来源可信和数据不被篡改,但它并不提供加密功能。AH协议在每个数据包的标准IP报文头后面添加一个AH报文头,AH协议对报文的完整性校验的范围是整个IP报文。AH包含了对称密钥的散列函数,使得第三方无法修改传输中的数据。IPSec支持以下两个认证方法:

  • HMAC-SHA1:128比特密钥
  • HMAC-MD5:160比特密钥

AH头部格式

AH协议是被IP协议封装的协议之一,如果IP协议头部的“下一个头”字段是51,则IP包的载荷就是AH协议,在IP包头后面跟的就是AH协议头部。(图片来源:https://blog.csdn.net/lyg920/article/details/51658295)
AH头部格式
(1)下一个头(8位):表示紧跟在AH头部后面的协议类型。在传输模式下,该字段是处于保护中的传输层协议的值,如6(TCP),17(UDP)或50(ESP)。在隧道模式下,AH保护整个IP包,该值是4,表示是IP-in-IP协议。
(2)有效载荷长度(8位):其值是以32位(4字节)为单位的整个AH数据(包括头部和变长验证数据)的长度再减2。
(3)保留(16位):准备将来对AH协议扩展时使用,目前协议规定这个字段应该被置为0。
(4)安全参数索引SPI(32位):值为[256,2^32-1]。实际上它是用来标识发送方在处理IP数据包时使用了哪些安全策略,当接收方看到这个字段后就知道如何处理收到的IPsec包。
(5)序列号(32位):一个单调递增的计数器,为每个AH包赋予一个序号。当通信双方建立SA时,初始化为0。SA是单向的,每发送/接收一个包,外出/进入SA的计数器增1。该字段可用于抗重放攻击。
(6)验证数据:可变长,取决于采用何种消息验证算法。包含完整性验证码,也就是HMAC算法的结果,称为ICV,它的生成算法由SA指定。

2.2、ESP协议

ESP概念

IPSec封装安全负荷提供了数据加密功能。ESP利用对称密钥对IP数据(例如TCP包)进
行加密,支持的加密算法如下。

  • DES-CBC (Data Encryption Standard Cipher Block Chaining Mode): 56 位密钥。
  • 3DES-CBC (三重DES CBC): 56位密钥。.
  • AES128-CBC ( Advanced Encryption Standard CBC): 128 位密钥。
    在传输模式,IP 头没有加密,只对IP数据进行了加密。

ESP头部格式

ESP协议是被IP协议封装的协议之一。如果IP协议头部的“下一个头”字段是50,IP包的载荷就是ESP协议,在IP包头后面跟的就是ESP协议头部。ESP报文头部如3.5.3所示,其中ESP头部包含SPI和序列号字段,ESP尾部包含填充项,填充长度和下一个头字段。
ESP头部格式
(1)安全参数索引SPI(32位):值为[256,2^32-1]。
(2)序列号(32位):一个单调递增的计数器,为每个AH包赋予一个序号。当通信双方建立SA时,初始化为0。SA是单向的,每发送/接收一个包,外出/进入SA的计数器增1。该字段可用于抗重放攻击。
(3)报文有效载荷:是变长的字段,如果SA采用加密,该部分是加密后的密文;如果没有加密,该部分就是明文。
(4)填充项:是可选的字段,为了对齐待加密数据而根据需要将其填充到4字节边界。
(5)填充长度:以字节为单位指示填充项长度,范围为[0,255]。保证加密数据的长度适应分组加密算法的长度,也可以用以掩饰载荷的真实长度对抗流量分析。
(6)下一个头:表示紧跟在ESP头部后面的协议,其中值为6表示后面封装的是TCP。
(7)验证数据:是变长字段,只有选择了验证服务时才需要有该字段。

AH和ESP的区别

  • AH不提供加密服务
  • 验证的范围不同:AH验证IP头(传输模式验证原IP头,隧道模式验证新的IP头和原IP头),ESP只验证部分IP头(传输模式验证IP头,隧道模式只验证原IP头,新的IP头不验证)

2.3、IKE协议

2.3.1 IKE简介

IKE协议是一种基于UDP的应用层协议,它主要用于SA协商和密钥管理。IKE协议属于一种混合型协议,它综合了ISAKMP(Internet Security Association and Key Management Protocol)、Oakley协议和SKEME协议这三个协议。其中,ISAKMP定义了IKE SA的建立过程,Oakley和SKEME协议的核心是DH(Diffie-Hellman)算法,主要用于在Internet上安全地分发密钥、验证身份,以保证数据传输的安全性。IKE SA和IPSec SA需要的加密密钥和验证密钥都是通过DH算法生成的,它还支持密钥动态刷新。IKE协议分IKEv1和IKEv2两个版本,IKEv2与IKEv1相比,修复了多处公认的密码学方面的安全漏洞,提高了安全性能,同时简化了安全联盟的协商过程,提高了协商效率。

2.3.2 IKE的用途:

  1. 为IPSec协商生成密钥,供AH/ESP加解密和验证使用
  2. 在IPSec通信双方之间,动态地建立安全关联(SA),对SA进行管理和维护

2.3.5 IKE的安全机制

IKE具有一套自保护机制,可以在不安全的网络上安全地认证身份、分发密钥、建立IPsec SA

  1. 身份认证
    身份认证确认通信双方的身份(对等体的IP地址或名称),包括预共享密钥PSK(pre-shared key)认证、数字证书RSA(rsa-signature)认证和数字信封认证
  • 预共享密钥认证中,认证字作为一个输入来产生密钥,通信双方采用共享的密钥对报文进行Hash计算,判断双方的计算结果是否相同。如果相同,则认证通过;否则认证失败。
  • 数字证书认证中,通信双方使用CA证书进行数字证书合法性验证,双方各有自己的公钥(网络上传输)和私钥(自己持有)。发送方对原始报文进行Hash计算,并用自己的私钥对报文计算结果进行加密,生成数字签名。接收方使用发送方的公钥对数字签名进行解密,并对报文进行Hash计算,判断计算结果与解密后的结果是否相同。如果相同,则认证通过;否则认证失败。
  • 数字信封认证中,发送方首先随机产生一个对称密钥,使用接收方的公钥对此对称密钥进行加密(被公钥加密的对称密钥称为数字信封),发送方用对称密钥加密报文,同时用自己的私钥生成数字签名。接收方用自己的私钥解密数字信封得到对称密钥,再用对称密钥解密报文,同时根据发送方的公钥对数字签名进行解密,验证发送方的数字签名是否正确。如果正确,则认证通过;否则认证失败。
  1. DH
    DH是一种公共密钥交换方法,它用于产生密钥材料,并通过ISAKMP消息在发送和接收设备之间进行密钥材料交换。然后,两端设备各自计算出完全相同的对称密钥。该对称密钥用于计算加密和验证的密钥。在任何时候,通信双方都不交换真正的密钥。DH密钥交换是IKE的精髓所在。
    MD5、SHA1、DES、3DES、AES等算法都可以采用DH算法来共享对称密钥。DH使用密钥组定义自己产生的密钥长度。密钥组长度越长,产生的密钥就越强壮。
  2. PFS
  • 短暂的一次性密钥系统称为“完善的前向保密“PFS(Perfect Forward Secrecy)
  • 如果加密系统中有个密钥是所有对称密钥的衍生者(始祖),便不能认为那是一个“完美向前保密”的系统。在这种情况下、一旦破解了跟密钥,便能拿到其他衍生的所有密钥,收那些密钥保护的全部数据都会曝光。
  • 在IPsec 里,PFS是通过在IPSec SA协商阶段重新进行一个DH交换来实现的。
  • 完善的前向安全性PFS(Perfect Forward Secrecy)是一种安全特性,指一个密钥被破解,并不影响其他密钥的安全性,因为这些密钥间没有派生关系。IPSec SA的密钥是从IKE SA的密钥导出的,由于一个IKE SA协商生成一对或多对IPSec SA,当IKE的密钥被窃取后,攻击者将可能收集到足够的信息来导出IPSec SA的密钥,PFS通过执行一次额外的DH交换,保证IPSec SA密钥的安全。

2.3.4 IKE协商两种SA

安全联盟SA介绍(Security Association)

SA由三元组来确定:安全参数索引、目的IP地址、安全协议号

安全联盟是IPSec的基础,也是IPSec的本质。SA是通信对等体间对某些要素的约定,例如,使用哪种安全协议、协议的操作模式(传输模式和隧道模式)、加密算法(DES和3DES)、特定流中保护数据的共享密钥以及密钥的生存周期等。安全联盟是单向的,在两个对等体之间的双向通信,最少需要两个安全联盟来分别对两个方向的数据流进行安全保护。入站数据流和出站数据流分别由入站SA和出站SA进行处理。同时,如果希望同时使用AH和ESP来保护对等体间的数据流,则分别需要两个SA,一个用于AH,另一个用于ESP。

IKE使用了两个阶段为IPSec进行密钥协商并建立安全联盟:
第一阶段,通信各方彼此间建立了一个已通过身份验证和安全保护的隧道,即
IKE SA。协商模式包括主模式、野蛮模式。认证方式包括预共享密钥、数字签名
方式、公钥加密

第二阶段,用在第一阶段建立的安全隧道为IPSec协商安全服务, 建立IPSec SA。
IPSec SA用于最终的IP数据安全传送。协商模式为快速模式

注意区别IKE SA 和 IPSec SA
在这里插入图片描述

建立IPSec SA

有两种方式可以建立IPSec SA 有两种方式建立IPSec安全联盟:手工方式和IKE自动协商方式。二者的主要区别为:

  • 密钥生成方式不同
    手工方式下,建立SA所需的全部参数,包括加密、验证密钥,都需要用户手工配置,也只能手工刷新,在中大型网络中,这种方式的密钥管理成本很高;IKE方式下,建立SA需要的加密、验证密钥是通过DH算法生成的,可以动态刷新,因而密钥管理成本低,且安全性较高。
  • 生存周期不同
    手工方式建立的SA,一经建立永久存在;IKE方式建立的SA,其生存周期由双方配置的生存周期参数控制。
  • IKE(ISAKMP) SA (阶段一)
  • IPSEC SA(阶段二)
IKEv1阶段一协商过程:

IKEv1的主模式协商:包含了三次双向交换,用到了六条ISAKMP信息。
主模式
IKEv1的野蛮模式协商:包含三次单项交换,用到了三条ISAKMP信息。
在这里插入图片描述
主模式与野蛮模式对比
在这里插入图片描述

IKEv1阶段二协商过程

在这里插入图片描述

三、 IPSec的两种模式

3.1 传输模式

传输模式下只对IP负载进行保护,可能是TCP/UDP/ICMP协议,也可能是AH/ESP协议。传输模式只为上层协议提供安全保护,在此种模式下,参与通信的双方主机都必须安装IPSec协议,而且它不能隐藏主机的IP地址。启用IPSec传输模式后,IPSec会在传输层包的前面增加AH/ESP头部或同时增加两种头部,构成一个AH/ESP数据包,然后添加IP头部组成IP包。在接收方,首先处理的是IP,然后再做IPSec处理,最后再将载荷数据交给上层协议。
传输模式保护原始 IP 头部后面的数据,在原始 IP 头和载荷间插入 IPSec 头部(ESP 或 AH)。典型应用为端到端的会话,并且要求原始 IP 头部全局可路由。

3.1.1传输模式下的5种场景

传输模式下的五种场景

3.2 隧道模式

隧道模式(Tunnel Mode)使用在两台网关之间,站点到站点(Site-to-Site)的通信。参与通信的两个网关实际是为了两个以其为边界的网络中的计算机提供安全通信的服务。
隧道模式为整个IP包提供保护,为IP协议本身而不只是上层协议提供安全保护。通常情况下只要使用IPSec的双方有一方是安全网关,就必须使用隧道模式,隧道模式的一个优点是可以隐藏内部主机和服务器的IP地址。大部分VPN都使用隧道模式,因为它不仅对整个原始报文加密,还对通信的源地址和目的地址进行部分和全部加密,只需要在安全网关,而不需要在内部主机上安装VPN软件,期间所有加密和
解密以及协商操作均由前者负责完成。
启用IPSec隧道模式后,IPSec将原始IP看作一个整体作为要保护的内容,前面加上AH/ESP头部,再加上新IP头部组成新IP包。隧道模式的数据包有两个IP头,内部头由路由器背后的主机创建,是通信终点;外部头由提供IPSec的设备(如路由器)创建,是IPSec的终点。事实上,IPSec的传输模式和隧道模式分别类似于其他隧道协议(如L2TP)的自愿隧道和强制隧道,即一个是由用户实施,另一个由网络设备实施。

3.2.2 隧道模式下的5种场景

隧道模式下的五种场景
注:验证时,某些可以在传输过程中合法更改的标头字段,例如生存时间 (TTL) 字段不在验证范围**

参考文章:

  1. IPSec之IKEv1协议详解
  2. IPSEC 的IKE协商过程,主模式和野蛮模式,AH和ESP
  3. VPN概述
  4. IBM文档
  • 34
    点赞
  • 241
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值