1. IKEv2

1.1 IKEv2简介

IKEv2(Internet Key Exchange Version 2,互联网密钥交换协议第 2 版)是第 1 版本的 IKE 协议(本文简称 IKEv1)的增强版本。 IKEv2 与 IKEv1 相同,具有一套自保护机制,可以在不安全的网络上安全地进行身份认证、密钥分发、建立 IPsec SA。相对于 IKEv1, IKEv2 具有抗攻击能力和密钥交换能力更强以及报文交互数量较少等特点。

1.2 IKEv2的协商过程

要建立一对 IPsec SA, IKEv1 需要经历两个阶段,至少需要交换 6 条消息。在正常情况下, IKEv2只需要进行两次交互,使用 4 条消息就可以完成一个 IKEv2 SA 和一对 IPsec SA 的协商建立,如果要求建立的 IPsec SA 的数目大于一对,则每增加一对 IPsec SA 只需要额外增加一次交互,也就是两条消息就可以完成,这相比于 IKEv1 简化了设备的处理过程,提高了协商效率。

IKEv2 定义了三种交互:初始交换创建子 SA 交换以及通知交换。下面简单介绍一下 IKEv2 协商过程中的初始交换过程。

如上图所示,IKEv2的初始交换过程中包含两个交换:IKE_SA_INIT交换(两条消息)和 IKE_AUTH交换(两条消息)。

  • IKE_SA_INIT 交换:完成 IKEv2 SA 参数的协商以及密钥交换;
  • IKE_AUTH 交换:完成通信对等体的身份认证以及 IPsec SA 的创建。这两个交换过程顺序完成后,可以建立一个 IKEv2 SA 和一对 IPsec SA。

创建子 SA 交换:当一个 IKE SA 需要创建多个 IPsec SA 时,使用创建子 SA 交换来协商多于一个的 SA,另外还可用于进行 IKE SA 的重协商功能。

通知交换:用于传递控制信息,例如错误信息或通告信息。

1.3 IKEv2 引入的新特性

1.3.1 IKEv2 支持DH猜想

在 IKE_SA_INIT 交换阶段,发起方采用“猜”的办法,猜一个响应方最可能使用的 DH 组携带在第一条消息中发送。响应方根据发起方“猜”的 DH 组来响应发起方。如果发起方猜测成功,则这样通过两条消息就可以完成 IKE_SA_INIT 交换。如果发起方猜测错误,则响应方会回应一个INVALID_KE_PAYLOAD 消息,并在该消息中指明将要使用的 DH 组。之后,发起方采用响应方指定的 DH 组重新发起协商。这种 DH 猜想机制,使得发起方的 DH 组配置更为灵活,可适应不同的响应方。

1.3.2 IKEv2 支持cookie-challenge机制

在 IKE_SA_INIT 交换中消息是明文传输的,响应方接收到第一个消息后无法确认该消息是否来自一个仿冒的地址。如果此时一个网络攻击者伪造大量地址向响应方发送 IKE_SA_INIT 请求,根据IKEv1 协议,响应方需要维护这些半开的 IKE 会话信息,从而耗费大量响应方的系统资源,造成对响应方的 DoS 攻击。IKEv2 使用 cookie-challenge 机制来解决这类 DoS 攻击问题。当响应方发现存在的半开 IKE SA 超过指定的数目时,就启用cookie-challenge机制。响应方收到IKE_SA_INIT请求后,构造一个Cookie通知载荷并响应发起方,若发起方能够正确携带收到的 Cookie 通知载荷向响应方重新发起IKE_SA_INIT 请求,则可以继续后续的协商过程。半开状态的 IKEv2 SA 是指那些正在协商过程中的 IKEv2 SA。 若半开状态的 IKEv2 SA 数目减少到阈值以下,则 cookie-challenge 功能将会停止工作

1.3.3 IKEv2 SA重协商

为了保证安全, IKE SA 和 IPsec SA 都有一个生存时间,超过生存时间的 SA 需要重新协商,即 SA
的重协商。与 IKEv1 不同的是, IKEv2 SA 的生存时间不需要协商,由各自的配置决定,重协商总
是由生存时间较小的一方发起,可尽量避免两端同时发起重协商造成冗余 SA 的生成,导致两端 SA
状态不一致。

1.3.4 IKEv2 报文确认重传机制

与 IKEv1 不同,IKEv2 中所有消息都是以“请求–响应”对的形式出现, IKEv2 通过消息头中的一
个 Message ID 字段来标识一个“请求–响应”对。发起方发送的每一条消息都需要响应方给予确认,
例如建立一个 IKE SA 一般需要两个“请求-响应”对。如果发起方在规定时间内没有接收到确认报
文,则需要对该请求消息进行重传。 IKEv2 消息的重传只能由发起方发起,且重传消息的 Message
ID 必须与原始消息的 Message ID 一致。

3.4 协议规范

与 IKEv2 相关的协议规范有:
• RFC 2408: Internet Security Association and Key Management Protocol (ISAKMP)
• RFC 4306: Internet Key Exchange (IKEv2) Protocol • RFC 4718: IKEv2 Clarifications and Implementation Guidelines
• RFC 2412: The OAKLEY Key Determination Protocol
• RFC 5996: Internet Key Exchange Protocol Version 2 (IKEv2)

密钥交换协议之IKEv2的更多相关文章

  1. DH密钥交换协议

    密钥交换 密钥交换简单点来说就是允许两名用户在公开媒体上交换信息以生成"一致"的.可以共享的密钥.也就是由甲方产出一对密钥(公钥.私钥),乙方依照甲方公钥产生乙方密钥对(公钥.私钥 ...

  2. 网络密钥交换协议——Diffie-Hellman

    Diffie-Hellman算法是一种交换密钥的算法. 它是眼下比較经常使用的密钥交换算法. 这样的算法的优点是能让两台计算机在不安全的网络环境中完毕密钥的交换. 下面是整个算法的过程.当中红色字体表 ...

  3. 加密解密(9)Diffie-Hellman密钥交换协议

    过程如下 : 1,小李把KeyX经过加密变化,生成MsgA传给老王. 2,老王得到MsgA,保存在本地. 3,老王把KeyY经过加密变化,生成MsgB传给小李, 4,小李得到MsgB保存在本地, 5, ...

  4. 安全协议系列(五)---- IKE 与 IPSec(中)

    在上一篇中,搭建好了实验环境.完整运行一次 IKE/IPSec 协议,收集相关的输出及抓包,就可以进行协议分析.分析过程中,我们将使用 IKE 进程的屏幕输出和 Wireshark 抓包,结合相关 R ...

  5. 安全协议系列(五)---- IKE 与 IPSec(上)

    IKE/IPSec 属于网络层安全协议,保护 IP 及上层的协议安全.自上个世纪末面世以来,关于这两个协议的研究.应用,已经非常成熟.协议本身,也在不断地进化.仅以 IKE 为例,其对应的 RFC 编 ...

  6. strongSwan IKEv2服务器配置

    strongSwan IKEv2服务器配置 资料来源 https://www.cl.cam.ac.uk/~mas90/resources/strongswan/ 经过大量的反复试验,我配置了一个str ...

  7. OPENSSL 制作 Ikev2证书

    OPENSSL 制作 Ikev2证书 在一个 VPS 上配置 IKEV2 VPN 服务器时,用 OPENSSL 制作了所需的数字证书,奇怪的怎么弄都无法连接服务器,一直提示 "IKE_SA ...

  8. IPsec协议簇简析

    简介 IPsec协议簇是应用在网络层上的,来保护IP数据报的一组网络传输协议的集合.它是IETF(Internet Engineering Task Force)制定的一系列协议,它为IP数据报提供了 ...

  9. 安全协议系列(四)----SSL与TLS

    当今社会,电子商务大行其道,作为网络安全 infrastructure 之一的 -- SSL/TLS 协议的重要性已不用多说.OpenSSL 则是基于该协议的目前应用最广泛的开源实现,其影响之大,以至 ...

随机推荐

  1. Java基础(一):I/O多路复用模型及Linux中的应用

    IO多路复用模型广泛的应用于各种高并发的中间件中,那么区别于其他模式他的优势是什么.其核心设计思想又是什么.其在Linux中是如何实现的? I/O模型 I/O模型主要有以下五种: 同步阻塞I/O:I/ ...

  2. Docker部署ELK之部署kibana7.6.0(2)

    1. 拉取kibana镜像 sudo docker pull kibana:7.6.0 2. 输入命令构建kibana容器,关于挂载kibana配置文件的问题,也可以先构建一个容器,然后把配置文件co ...

  3. USB 3.0 开发要点

    最近在公司里安排了我一个新的任务,那就是USB3.0的研发.对于我之前都是做ARM+LINUX和单片机软件研发的来说,虽然之前都是做驱动程序和应用程序,但是没有做与USB 相关的开发,毕竟这是第一次. ...

  4. Vue-cli4 唤醒摄像头扫描二维码

    <template> <div class="scan"> <div id="bcid"> <div id=" ...

  5. Longhorn 企业级云原生容器存储解决方案-部署篇

    内容来源于官方 Longhorn 1.1.2 英文技术手册. 系列 Longhorn 是什么? Longhorn 云原生分布式块存储解决方案设计架构和概念 安装 Longhorn 可以通过多种方式安装 ...

  6. JavaWeb——CSS总结

    CSS 记得大一下学期那会参加基地后就开始跟师兄师姐接触前端了,利用业余时间在站看各种视频.由于初次认知并且时间也能不固定集中,也存在跳跃式学习等等原因,这就导致了好多知识点要么漏掉要么没记全,只能懂 ...

  7. Linux文件系统只读 解决方案:

    Linux系统Read-only file system,文件系统只读排查解决方案:文件系统只读机制:当文件系统自身的校验机制发现文件系统存在问题时,为避免文件系统受到进一步的损坏,系统会把文件系统设 ...

  8. [1.6W字] 浏览器跨域请求限制的详细原理分析&寻找一种最简单的方式实现XHR跨域(9种方法, 附大招可以纯前端实现跨域!)

    Title/ 浏览器跨域(CrossOrigin)请求的原理, 以及解决方案详细指南 #flight.Archives011 序: 最近看到又有一波新的创作活动了, 官方给出的话题中有一个" ...

  9. idea中Jrebe热部署l的安装和激活

    安装上这个插件,就不需要再改代码后重复启动服务了,还是很方便的!!! 一.在Idea中,打开File-------->Settings-------->Plugins里面的MarketPl ...

  10. VMware + LInux + Xshell 连接环境设置

    一.安装好Centos后,打开设置: 网络连接四中模式桥接模式.NAT模式.仅主机和自定义模式: 1).桥接模式:更公司的局域网连接,等于另一台连接进公司的新电脑 2).NAT模式:与虚拟机使用的计算 ...