IPSec的IKEv1和IKEv2协议

IPSec的IKEv1和IKEv2协议

IKE介绍


IKE是一个复合协议。

因特网密钥交换IKE(Internet Key Exchange)协议建立在Internet安全联盟和密钥管理协议ISAKMP定义的框架上,是基于UDP(User Datagram Protocol)500 端口号,的应用层协议。

IKE负责建立和维护IKE SAs 和 IPSec SAs。功能主要体现在如下几个方面:

  • 对双方进行认证
  • 交换公共密钥,产生密钥资源,管理密钥
  • 协商协议参数(封装、加密、验证…)

IKE的三个组件:

  • SKEME:实现公钥加密认证的机制
  • Oakley:基于到达两个对等体间的加密密钥的机制
  • ISAKMP:在两个实体间进行分组格式及状态转换的消息交换的体系结构。

IKE有两个版本:

  • IKEV1
  • IKEV2-------华为默认

IKE与IPSec的关系

IKE为IPSec提供了自动协商密钥、建立IPSec安全联盟的服务,能够简化IPSec的使用和管理,大大简化IPSec的配置和维护工作。
在这里插入图片描述

图:IKE与IPSec的关系图

IKE与IPSec的关系如上图所示,对等体之间建立一个IKE SA完成身份验证和密钥信息交换后,在IKE SA的保护下,根据配置的AH/ESP安全协议等参数协商出一对IPSec SA。此后,对等体间的数据将在IPSec隧道中加密传输。

IKEv1的三个模式

在这里插入图片描述

IKEv1阶段1的目的是建立IKE SA。IKE SA建立后对等体间的所有ISAKMP消息都将通过加密和验证,这条安全通道可以保证IKEv1阶段2的协商能够安全进行。

注:两个对等体间仅有一个IKE SA,它是一个双向逻辑连接。

IKEv1阶段2的目的就是建立用来传输数据的IPSec SA。IKEv1阶段2通过快速交换模式完成。由于快速交换模式使用IKEv1阶段1中生成的密钥SKEYID_ a对ISAKMP消息的完整性和身份进行验证,使用密钥SKEYID_ e对ISAKMP消息进行加密,故保证了交换的安全性。
在快速交换模式中,对等体两端协商IPSecSA的各项参数,并为数据传输衍生出密钥。

主模式和野蛮模式

在这里插入图片描述

主模式的三个交换步骤
在这里插入图片描述

1.协商对等体之间使用IKE安全提议。

  • 发起方发送ISAKMP消息,携带建立IKE SA所使用的参数(由IKE安全提议定义)。
  • 响应方对发起方的IKE安全提议进行协商。在协商时将从优先级最高的提议开始匹配,协商双方必须至少有一条匹配的IKE安
    全提议才能协商成功。匹配的原则为协商双方具有相同的加密算法、认证算法、认证方法和Diffie-Hellman组标识。
  • 响应方响应ISAKMP消息,携带经协商匹配的安全提议及参数。如果 没有匹配的安全提议,响应方将拒绝发起方的安全提议。

2.使用DH算法交换与密钥相关的信息,并生成密钥

  • 两个对等体通过两条ISAKMP消息(3、4)交换与密钥相关的信息。
  • 由获得的密钥信息推导出4个密钥。其中SKEYID为基础密钥,通过它可以推导出SKEYID_ a,为ISAKMP消息完整性验证密钥;可以推导出SKEYID_ e,为ISAKMP消息加密密钥;可以推导出SKEYID_ d,用于衍生出IPSec报文加密、验证密钥。

3.对等体之间验证彼此身份

  • 两个对等体通过两条ISAKMP消息(5、6)交换身份信息(预共享密钥方式下为IP地址或名称,数字证书方式下还需要传输证书的内容),身份信息通过SKEYID_ e加密,故可以保证身份信息的安全性。
  • 两个对等体使用IKE安全提议中定义的加密算法、验证算法、身份验证方法和SKEYID_ a、SKEYID_ e对IKE消息进行加解密和验证。

野蛮模式IKEv1阶段1协商过程

  • 发起方发送ISAKMP消息,携带建立IKE SA所使用的参数、与密钥生成相关的信息和身份验证信息。
  • 响应方对收到的第一个数据包进行确认,查找并返回匹配的参数、密钥生成信息和身份验证信息。
  • 发起方回应验证结果,并建立IKE SA。
    在这里插入图片描述

野蛮模式与主模式对比

主模式 野蛮模式
包含三次双向交换,用到了六条信息 用到了三条信息,
消息①和②用于策略交换,发起方发送一个或多个IKE安全提议,响应方查找最先匹配的IKE安全提议,并将这个IKE安全提议回应给发起方。
消息③和④用于密钥信息交换,双方交换Diffie-Hellman公共值和nonce值,IKE SA的认证/加密密钥在这个阶段产生。

消息⑤和⑥用于身份和认证信息交换(双方使用生成的密钥发送信息),双方进行身份认证和对整个主模式交换内容的认证。
野蛮模式只用到三条信息,前两条消息①和②用于协商提议,交换bifieHllman公共值<必需的辅助信息以及身份信息,并且消息②中还包括响应方发送身份信息供发起方认证,消息③用于响应方认证发起方。

野蛮模式使用场景

与主模式相比,野蛮模式减少了交换信息的数目,提高了协商的速度,但是没有对身份信息进行加密保护。虽然野蛮模式不提供身份保护,但它可以满足某些特定的网络环境需求。

  • 当IPSec隧道中存 在NAT设备时,需要启用NAT穿越功能,而NAT转换会改变对等体的IP地址,由于野蛮模式不依赖于IP地址标识身份,使得采用预共享密钥验证方法时,NAT穿越只能在野蛮模式中实现。
  • 如果发起方的IP地址不固定或者无法预先知道,而双方都希望采用预共享密钥验证方法来创建IKE SA,则只能采用野蛮模式。
  • 如果发起方已知响应方的策略,或者对响应者的策略有全面的了解,采用野蛮模式能够更快地创建IKE SA。

快速模式

在这里插入图片描述

快速模式共有3条消息完成双方IPSec SA的建立

1.消息1发送本段的安全参数和身份认证信息。

  • 安全参数包括被保护的数据流和IPSec安全提议等需要协商的参数。身份认证信息包括第一阶段计算出的密钥和第二阶段产生的密钥材料等,可以再次认证对等体。

注:密钥的有效时间由配置的安全联盟生存周期决定。安全联盟超时后会重新协商密钥和安全联盟。

2.消息2响应消息1,发送响应方的安全参数和身份认证信息并生成新的密钥。

  • 对等体双方通过交换密钥材料生成新的共享密钥,并最终衍生出IPSec的加密密钥。此时响应者和发送者各有两个SA。
  • IPSecSA数据传输需要的加密、验证密钥由SKEYID_d、SPI、协议等参数衍生得出,以保证每个IPSec SA都有自己独一无二的密钥。
  • 当启用PFS时,要再次应用DH算法计算出一个共享密钥,然后参与上述计算,因此在参数协商时要为PFS协商DH密钥组。

3.消息3响应消息2,确定与响应方可以通信,协商结束。

IKEv2密钥协商和交换

IKEv2正常情况使用2次交换共4条消息就可以完成一对IPSec SA的建立,如果要求建立的IPSec SA大于一对时,每一对IPSec SA只需额外增加1次创建子SA交换,也就是2条消息就可以完成。

IKEv2定义了三种交换:初始交换(Initial Exchanges)、创建子SA交换(Create_Child_SA Exchange)以及通知交换(Informational Exchange)。

在IKEv2中将IKEv1中的主模式和野蛮模式换成了Inital Exchange,将快速模式阶段换成了CRATE_CHILD_SA.

初始交换:

正常情况下,IKEv2通过初始交换就可以完成第一对IPSec SA的协商建立。IKEv2初始交换对应IKEv1的第一阶段,初始交换包含两次交换四条消息。
在这里插入图片描述

图:初始交换过程图

消息①和②属于第一次交换(称为IKE_SA_INIT交换),以明文方式完成IKE SA的参数协商,包括协商加密和验证算法,交换临时随机数和DH交换。IKE_SA_INIT交换后生成一个共享密钥材料,通过这个共享密钥材料可以衍生出IPSec SA的所有密钥。相当于IKEv1的主模式的第1,3个包。

消息③和④属于第二次交换(称为IKE_AUTH交换),以加密方式完成身份认证、对前两条信息的认证和IPSec SA的参数协商。IKEv2支持RSA签名认证、预共享密钥认证以及扩展认证方法EAP(Extensible Authentication Protocol)。EAP认证是作为附加的IKE_AUTH交换在IKE中实现的,发起者通过在消息3中省去认证载荷来表明需要使用EAP认证。

IKE安全机制

身份认证

确认通信双方的身份(对等体的IP地址或名称):

  • 预共享密钥(pre-shared key)认证。

  • 数字证书RSA(rsa-signature)认证

  • 数字信封认证

  • 在预共享密钥认证中,认证字作为一个输入来产生密钥,通信双方采用共享的密钥对报文进行Hash计算,判断双方的计算结果是否相同。如果相同,则认证通过;否则认证失败。

  • 在数字证书认证中,通信双方使用CA证书进行数字证书合法性验证,双方各有自己的公钥(网络上传输)和私钥(自己持有)。发送方对原始报文进行Hash计算,并用自己的私钥对报文计算结果进行加密,生成数字签名。接收方使用发送方的公钥对数字签名进行解密,并对报文进行Hash计算,判断计算结果与解密后的结果是否相同。如果相同,则认证通过;否则认证失败。

  • 在数字信封认证中,发送方首先随机产生一个对称密钥,使用接收方的公钥对此对称密钥进行加密(被公钥加密的对称密钥称为数字信封),发送方用对称密钥加密报文,同时用自己的私钥生成数字签名。接收方用自己的私钥解密数字信封得到对称密钥,再用对称密钥解密报文,同时根据发送方的公钥对数字签名进行解密,验证发送方的数字签名是否正确。如果正确,则认证通过;否则认证失败。

DH(Diffie-Hellman)密钥交换算法

在这里插入图片描述

DH是一种公共密钥交换方法,它用于产生密钥材料,并通过ISAKMP消息在发送和接收设备之间进行密钥材料交换。然后,两端设备各自计算出完全相同的对称密钥。该对称密钥用于计算加密和验证的密钥。在任何时候,通信双方都不交换真正的密钥。DH密钥交换是IKE的精髓所在。

MD5、SHA1、DES、3DES、AES等算法都可以采用DH算法来共享对称密钥。

DH使用密钥组定义自己产生的密钥长度。密钥组长度越长,产生的密钥就越强壮。

IKE的精髓在于它永远不在不安全的网络上传送密钥,而是通过一些数据的交换,通信双方最终计算出共享的密钥,并且即使第三方截获了双方用于计算密钥的所有交换数据,也无法计算出真正的密钥。其中的核心技术就是DH(Diffie Hellman)交换技术。

完善的前向安全性PFS(Perfect Forward Secrecy)

PFS是一种安全特性,指一个密钥被破解,并不影响其他密钥的安全性,因为这些密钥间没有派生关系。IPSec SA的密钥是从IKE SA的密钥导出的,由于一个IKE SA协商生成一对或多对IPSecSA,当IKE的密钥被窃取后,攻击者将可能收集到足够的信息来导出IPSec SA的密钥,PFS通过执行一次额外的DH交换,保证IPSec SA密钥的安全。

猜你喜欢

转载自blog.csdn.net/qq_43710889/article/details/114003777