IPsec中IKE与ISAKMP过程分析(主模式-消息3)

news2025/1/11 20:40:24

        IPsec中IKE与ISAKMP过程分析(主模式-消息1)_搞搞搞高傲的博客-CSDN博客

        IPsec中IKE与ISAKMP过程分析(主模式-消息2)_搞搞搞高傲的博客-CSDN博客

阶段目标过程消息
IKE第一阶段建立一个ISAKMP SA实现通信双发的身份鉴别和密钥交换,得到工作密钥

(1)HDR,SA

(2)HDR,SA,Cert_sig_r,Cert_enc_r

(3)HDR,XCHi,SIGi

(4)HDR,XCHr.SIGr

(5)HDR*,HASHi

(6)HDR*,HASHr

IKE第二阶段协商IPsec SA实现通信双方IPsec SA,得到ipsec安全策略和会话密钥

(1)HDR*,HASH(1),SA,Ni

(2)HDR*,HASH(2),SA,Nr

(3)HDR*,HASH(3)

        IKE第一阶段消息3由发起方发出,此时发起方具备对方公钥证书,就可以使用数字信封加密传递密钥交换参数了,同时发送本方公钥证书并附上签名以供身份鉴别使用。XCHi具体包括:Cert_enc_r加密的SKi(生产的临时密钥),SKi加密的参数Ni,SKi加密的IDi,Cert_sig_i和Cert_enc_i(发起方签名证书和加密证书,明文就可以了)。SIGi是发起方使用本方签名私钥对SKi、Ni、IDi、Cert_enc_i的签名,进行完整性和真实性保护。目前发起方具备对方公钥证书和本方生成的随机临时对称密钥,所以可以加密运算了。但还没有任何协商得到工作密钥,所以消息3还是明文传输的,只是部分内容加密。

        消息3报文结构如下,HDR头后面紧跟DE结构的XCHi并包含发起方的签名证书和加密证书(X.509证书结构),最后是SIGi签名。

      

        消息3的抓包数据,HDR不再赘述。Payload-Private use(128)是使用对方公钥加密的Ski。消息1和消息2之前协商对称加密算法为SM4,所以这里SKi应该是16字节。经过SM2公钥加密后长度应16+96=112字节,这里是117-4=113字节,相差一个字节,问题出在哪里?

        Payload-Nonce(10)是使用Ski对Ni对称加密,使用SM4算法,分组长度16字节,密钥16字节,Ni经过SM4算法加密后长度为32字节,是16字节的整数倍。Nonce随机数的长度一般为8-256字节之间。

        Payload-Identification(5)是使用SKi对IDi对称加密,使用SM4算法,IDi用户确认通信双方的身份。IDi加密后长度为44字节,长度不是16的倍数,问题出在哪里?ID type和Protocol ID取值都不符合GMT0022标准,看来这里的ipsec的国密标准实现的确有些问题。

         Payload-Ceitificate(6)是具体的数字证书,证书编码按标准应为4(签名证书)或者5(加密证书)。

         Payload-Signature(9)是对之前信息的签名,采用SM2算法,使用本方签名私钥,签名长度应为64字节,但抓包显示长度为71字节,为什么呢? 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/477859.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java笔试强训 15】

🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🤺🤺🤺 目录 一、选择题 二、编程题 🔥查找输入…

Vue中 引入使用 patch-package 为依赖打补丁 (以修改 vue-pdf 打包后 [hash].worker.js 路径问题为例)

1. patch-package 简介 patch-package npm地址 patch-package github文档 npm i patch-package如果不需要在生产中运行 npm (如:正在制作 web 前端,则可使用 --save dev) 1.2 使用方法 制作修补程序 首先更改 node_modules 文件夹中特定包…

大数据之Spark集群角色

文章目录 前言一、Spark集群角色介绍(一)Spark集群简介(二)集群角色介绍 总结 前言 #博学谷IT学习技术支持# 上篇文章主要介绍了Spark的运行流程,可以通过链接复习以加深印象:Spark运行流程,本…

redis面试重点------源于黑马

缓存问题三兄弟 是因为不同的原因让请求全部打到了数据库而造成的问题 什么是缓存穿透? 缓存穿透是指查询一个数据,在redis和MySQL中都不存在。也就是查询一个数据不存在的数据,导致每次请求都会到达数据库,给数据造成很大的压力…

如何选择最适合你的商城小程序开发公司

随着电子商务的快速发展,越来越多的企业开始认识到商城小程序的重要性。作为一个准备开发商城小程序的企业,你一定会面临一个重要的问题:商城小程序开发哪家好?如何选择最适合你的商城小程序开发公司? 在选择商城小程…

【Java笔试强训 17】

🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🤺🤺🤺 目录 一、选择题 二、编程题 🔥杨辉三角…

趣说数据结构 —— 3.线性表中的循环链表与双向链表

本节介绍线性表中的循环链表与双向链表,主要包括基本结构,主要特点以及适用场景三部分内容。 3.1 循环链表与双向链表 循环链表(Circular Linked List) 是另一种形式的链式存储结构。其特点是表中 最后一个结点的指针域指向头结…

sklearn.metrics 中的f1-score介绍

1 f1_score,averagebinary, macro, micro, weighted F1得分可以解释为精确度和召回率的调和平均值,其中F1得分达到其最佳值为1,最差得分为0。精确度和召回率对F1得分的相对贡献相等。F1得分的公式为: 在多类别和多标签的情况下,这…

4.30学习周报

文章目录 前言文献阅读摘要简介数据源和预处理理论基础与模型构建结果和讨论结论和未来工作 时间序列预测总结 前言 本周阅读文献《Water Quality Prediction Based on LSTM and Attention Mechanism: A Case Study of the Burnett River, Australia》,文献主要提出…

SOLIDWORKS培训|弧长如何标注

大家在使用SolidWorks软件时,如果想对不同形状的弧长度进行标注,可以试试以下方法。 ◉ 标注圆弧 点四下鼠标,需要点击弧线和两个端点。 我们先使用圆心起点圆弧工具绘制一个圆弧。 然后点击智能尺寸,点击圆弧,没错…

【Python_Opencv图像处理框架】信用卡数字识别项目

写在前面 本篇文章是opencv学习的第六篇文章,前面主要讲解了对图像的一些基本操作,这篇文章我们就开始大展身手,将前面所学的基础操作活学活用。既能复习基础操作,又能学到一些新的知识。作为初学者,我尽己所能&#…

Change Buffer详解

change Buffer基本概念 Change Buffer:写缓冲区,是针对二级索引(辅助索引) 页的更新优化措施 作用: 在进行DML(写)操作(insert/update/delete)时,如果请求的是 辅助索引(非唯一键索引)没有在缓冲池 中时,并不会立刻将…

多态

一、多态性概述 1、静态多态实现的两种方式:模板和函数重载 2、动态多态(一般上所说的多态都是指动态多态) 示例: 若执行pa->f(pa),则由动态编联找到派生类,而pa静态类型为A*,所以输出3若执行…

notepad++安装HexEditor插件查看二进制文件

文章目录 前言一、下载 HexEditor 插件二、解压文件三、将插件放置到 plugins 目录下四、重启软件测试 前言 有时候我们需要分析二进制文件,但是分析二进制文件直接用编辑器查看会出现乱码的情况,本文在 notepad 软件上安装一个 HexEditor 插件&#xf…

【Java笔试强训 19】

🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🤺🤺🤺 目录 一、选择题 二、编程题 🔥汽水瓶 …

各大“排序”特性及稳定性总结

一、各个排序特性 二、各个排序的稳定性分析及例子 稳定性如何定义:排序算法的稳定性并不是指它在对数组进行排序的时候的时间复杂度是否变化,而是对于相同数值的数据进行排序了之后它们的相对位置是否发生了变化,比如说在考试的时候…

【Java笔试强训 18】

🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🤺🤺🤺 目录 一、选择题 二、编程题 🔥统计每…

【Java笔试强训 16】

🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🤺🤺🤺 目录 一、选择题 二、判断题 🔥完全数计…

JAVA入坑之JAVADOC(Java API 文档生成器)与快速生成

目录 一、JAVADOC(Java API 文档生成器) 1.1概述 1.2Javadoc标签 1.3Javadoc命令 1.4用idea自带工具生成API帮助文档 二、IDEA如何生成get和set方法 三、常见快捷方式 3.1快速生成main函数 3.2快速生成println()语句 3.3快速生成for循环 3.4“…

【Python】序列类型①-列表

文章目录 1. 前言2. 列表的定义3. 列表的下标访问3.1 嵌套列表的下标 4. 列表的切片操作5. 列表的遍历5.1 使用for循环进行遍历5.2 while循环进行遍历 6.添加列表元素6.1 使用append方法添加元素6.2 使用insert方法添加元素 7. 列表的拼接7.1 使用 进行拼接7.2 使用extend 进行…