IPsec 9个包分析(主模式+快速模式)
第一阶段:ISAKMP协商阶段
1.1 第一包
- 包1:发起端协商SA,使用的是UDP协议,端口号是500,上层协议是ISAKMP,该协议提供的是一个框架,里面的负载Next payload类似模块,可以自由使用。可以看到发起端提供了自己的cookie值,以及SA的加密套件,加密套件主要是加密算法,哈希算法,认证算法,生存时间等。

- Initiator cookie:817622ea01367ec9
发起者的cookie值,告知响应端主机要使用IPSEC的哪一把密钥来加密这个封包。
- Responder cookie:0000000000000000
响应者的cookie值,第一个包只有发起者没有响应者所以响应者的cookie为空
- Version:1.0
IKE版本号,1.0表示使用IKE v1建立连接
- Exchange type:Identity Protection (Main Mode) (2)
IKE协商模式为主模式
- Life-Type (11): Seconds (1)
生存期时间的单位为秒
- Life-Duration (12): Duration-Value (86400)
密钥周期86400,密钥周期超过86400后会重新协商IKE
- Encryption-Algorithm (1): AES-CBC (7)
IKE使用DES-CBC加密算法加密数据
- Hash-Algorithm (2): SHA (2)
IKE使用SHA算法校验数据完整性
- Authentication-Method (3): RSA-SIG (3)
RSA方式进行认证,除此之外还有与共享秘钥(Pre-shared key)
- Group-Description (4): Alternate 1024-bit MODP group (2)
Diffie-Hellman (DH) 组在密钥交换进程中使用的1024 bit的密钥的强度
- Key-Length (14): Key-Length (128)
秘钥长度128位
1.2第二包
包2:响应端收到发送端发送的加密套件后,对比自己是否有相对应的加密套件,如果有就使用和发送端相同的加密套件加密数据,把自己的cookie值和选择好的加密套件发送给发送端;如果没有相同加密套件则IKE建立失败响应。

- Initiator cookie:817622ea01367ec9
发起者的cookie值,告知响应端主机要使用IPSEC的哪一把密钥来加密这个封包。
- Responder cookie: 58E452AA5DC6679B
响应者的cookie值,告知发起端主机要使用IPSEC的哪一把密钥来加密这个封包
- Version:1.0
IKE版本号,1.0表示使用IKE v1建立连接
- Exchange type:Identity Protection (Main Mode) (2)
IKE协商模式为主模式
- Life-Type (11): Seconds (1)
生存期时间的单位为秒
- Life-Duration (12): Duration-Value (86400)
密钥周期86400,密钥周期超过86400后会重新协商IKE
- Encryption-Algorithm (1): AES-CBC (7)
IKE使用DES-CBC加密算法加密数据
- Hash-Algorithm (2): SHA (2)
IKE使用SHA算法校验数据完整性
- Authentication-Method (3): RSA-SIG (3)
RSA方式进行认证,除此之外还有与共享秘钥(Pre-shared key)
- Group-Description (4): Alternate 1024-bit MODP group (2)
Diffie-Hellman (DH) 组在密钥交换进程中使用的1024 bit的密钥的强度
- Key-Length (14): Key-Length (128)
秘钥长度128位
1.3第三包
包3:发送端生成随机数和DH公共值,包3的主要目的是向响应端发送自己的DH公共值和Nonce随机数。用于生成加密时所需要的KEY值。(生成三把钥匙)

cookie:817622ea01367ec9
发起者的cookie值,告知响应端主机要使用IPSEC的哪一把密钥来加密这个封包。
- Responder cookie: 58E452AA5DC6679B
响应者的cookie值,告知发起端主机要使用IPSEC的哪一把密钥来加密这个封包
- Version:1.0
IKE版本号,1.0表示使用ikev1建立连接
- Exchange type:Identity Protection (Main Mode) (2)
IKE协商模式为主模式
- Key Exchange Data: 6bdd2d265808783f234725716b99323d7501818e939a640fcb8fd0d3be2ad3dfceed7efefaad3e52c371d90fcfd92bf75f0b663c7f06dbcd6139daaee3c9872f808302328cacd4f26a0063d50ade8e3af764b5467728ec1146d5e71d6bd0a53acfc5adc81719971e0f5ed77d0b628d6ec1a59e24208e59364e8e16ab71499e79
DH公共值,DH公共值通过Diffie-Hellman算法计算出来;在包1和包2中所协商的算法,它们必须需要一个相同的KEY(即,共享密钥中设置的密码),但同时这个KEY不能在链路中传递。所以,该过程的目的是分别在两个对等体间独立地生成一个DH公共值,然后在报文中发送给对端,对端通过公式计算出相同的KEY值。
1.4第四包
包4:响应端收到包3后,自己生成一个随机数,然后通过Diffie-Hellman算法计算出DH公共值,把随机数和DH公共值传输给发送端。(生成三把钥匙)
- Initiator coo
kie:817622ea01367ec9
发起者的cookie值,告知响应端主机要使用IPSEC的哪一把密钥来加密这个封包。
- Responder cookie: 58E452AA5DC6679B
响应者的cookie值,告知发起端主机要使用IPSEC的哪一把密钥来加密这个封包
- Version:1.0
IKE版本号,1.0表示使用ikev1建立连接
- Exchange type:Identity Protection (Main Mode) (2)
IKE协商模式为主模式
- Key Exchange Data: 9e2652cf76c9a0a40e9f04a10046b8e6a3f3ed653c5792c58dee602f050a127067df9e9f9b7d90a1830369bc3054dedc7429e62cc0d7e0b559e0cb412cb508aaaa7d6d2fc24b843b444cf95ba1fbd6302a3cab1c1440e1d1e7f2f21697839171ef62f33dff54b51d841cedda71fccdab1f4072a58b88d7604464dab150246e84
DH公共值,DH公共值通过Diffie-Hellman算法计算出来。
1.5第五包
- 包5:发起方发起身份验证,报文中带有认证的数据(预共享密钥或者数字签名)。由于包1和包2已经协商好了加密算法,包3和包4协商好了加密的KEY值,所以包5的消息被加密了。(使用第一把钥匙)

- Initiator cookie:817622ea01367ec9
发起者的cookie值,告知响应端主机要使用IPSEC的哪一把密钥来加密这个封包。
- Responder cookie: 58E452AA5DC6679B
响应者的cookie值,告知发起端主机要使用IPSEC的哪一把密钥来加密这个封包
- Version:1.0
IKE版本号,1.0表示使用ikev1建立连接
- Exchange type:Identity Protection (Main Mode) (2)
IKE协商模式为主模式
- Encrypted payload (304 bytes)
加密后的数据
1.6第六包
- 包6:响应端回应报文,同样发送认证的数据(预共享密钥或者数字签名),验证对方身份信息。包6的数据同样使用包1、包2协商的算法和包3、包4协商的key值加密数据,所以包6的认证数据是加密的。双方身份验证通过后,IKE协商结束。

- Initiator cookie:817622ea01367ec9
发起者的cookie值,告知响应端主机要使用IPSEC的哪一把密钥来加密这个封包。
- Responder cookie: 58E452AA5DC6679B
响应者的cookie值,告知发起端主机要使用IPSEC的哪一把密钥来加密这个封包
- Version:1.0
IKE版本号,1.0表示使用ikev1建立连接
- Exchange type:Identity Protection (Main Mode) (2)
IKE协商模式为主模式
- Encrypted payload (304 bytes)
加密后的数据
第二阶段:IPSec SA协商阶段
2.1第七包
- 包7:发起方主要是进行IPSEC SA的协商,建立安全联盟,报文内容主要是协商用的封装方式以及后面的加密算法以及生存时间和感兴趣流等等。由于数据加密所以无法查看。

- Initiator cookie: 817622EA01367EC9
发起者的cookie值是由上阶段IKE协商时已经确定的,所以IPSec协商依然使用上阶段的cookie
- Responder cookie: 58E452AA5DC6679B
响应者的cookie值是由上阶段IKE协商时已经确定的,所以IPSec协商依然使用上阶段的cookie
- Next payload: Hash (8)
- Version:1.0
IKE版本号,1.0表示使用ikev1建立连接
- Exchange type:Quick Mode(32)
交换类型使用快速模式,IPSec协商时只有快速模式
- Encrypted payload (128 bytes)
被加密的数据,主要为感兴趣流、加密策略协商。(这里使用第二把钥匙进行加密)
2.2第八包
- 包8:响应方回包,同意包7发送的封装方式、加密算法、生存时间、感兴趣流等等,同时,也能起到确认收到对端消息的作用。由于数据加密所以无法查看。

- Initiator cookie: 817622EA01367EC9
发起者的cookie值是由上阶段IKE协商时已经确定的,所以IPSec协商依然使用上阶段的cookie
- Responder cookie: 58E452AA5DC6679B
响应者的cookie值是由上阶段IKE协商时已经确定的,所以IPSec协商依然使用上阶段的cookie
- Next payload: Hash (8)
- Version:1.0
IKE版本号,1.0表示使用ikev1建立连接
- Exchange type:Quick Mode(32)
交换类型使用快速模式,IPSec协商时只有快速模式
- Encrypted payload (128 bytes)
被加密的数据,主要为感兴趣流、加密策略协商。(这里使用第二把钥匙进行加密)
2.3第九包
- 包9:发送确认报文。其中包含一个HASH,其作用是确认接收方的消息以及证明发送方处于主动状态(表示发送方的第一条消息不是伪造的)。由于数据加密所以无法查看。

- Initiator cookie: 817622EA01367EC9
发起者的cookie值是由上阶段IKE协商时已经确定的,所以IPSec协商依然使用上阶段的cookie
- Responder cookie: 58E452AA5DC6679B
响应者的cookie值是由上阶段IKE协商时已经确定的,所以IPSec协商依然使用上阶段的cookie
- Next payload: Hash (8)
- Version:1.0
IKE版本号,1.0表示使用ikev1建立连接
- Exchange type:Quick Mode(32)
交换类型使用快速模式,IPSec协商时只有快速模式
- Encrypted payload (128 bytes)
被加密的数据,主要为感兴趣流、加密策略协商。(这里使用第二把钥匙进行加密)
IPsec 9个包分析(主模式+快速模式)的更多相关文章
- LVS 负载均衡器理论基础及抓包分析
LVS 是 Linux Virtual Server 的简写,即 Linux 虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一.(百 ...
- Libreswan软件的密钥协商协议IKEv1主模式实现分析
Libreswan软件的密钥协商协议IKEv1主模式实现分析 1 协商过程 IKEv1(互联网密钥交换协议第一版)是IPsec VPN隧道协商使用的标准密钥协商协议,其协商过程如下图所示. 总共来回交 ...
- wireshark 抓包分析 TCPIP协议的握手
wireshark 抓包分析 TCPIP协议的握手 原网址:http://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html 之前写过一篇 ...
- Wireshark数据包分析(一)——使用入门
Wireshark简介: Wireshark是一款最流行和强大的开源数据包抓包与分析工具,没有之一.在SecTools安全社区里颇受欢迎,曾一度超越Metasploit.Nessus.Aircrack ...
- 网络数据包分析 网卡Offload
http://blog.nsfocus.net/network-packets-analysis-nic-offload/ 对于网络安全来说,网络传输数据包的捕获和分析是个基础工作,绿盟科技研 ...
- SSL/TLS捕包分析
一.基本概念 SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层.SSL通过互相认证.使用数字签名确保完整性.使用加密确保私密 ...
- Wireshark数据包分析入门
Wireshark数据包分析(一)——使用入门 Wireshark简介: Wireshark是一款最流行和强大的开源数据包抓包与分析工具,没有之一.在SecTools安全社区里颇受欢迎,曾一度超越 ...
- Security基础(二):SELinux安全防护、加密与解密应用、扫描与抓包分析
一.SELinux安全防护 目标: 本案例要求熟悉SELinux防护机制的开关及策略配置,完成以下任务: 将Linux服务器的SELinux设为enforcing强制模式 在SELinux启用状态下, ...
- MQTT抓包分析
1. 概述 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(Publish/Subscribe)模式的轻量级通讯协议,该 ...
随机推荐
- ORACLE ORA-00933: SQL 命令未正确结束,
这个错误害我花了一天时间排查,最后原来是因为结束符,这种语句不能是分号,将分号即可执行成功. MERGE INTO MO_TRADE_COUNT_DAY A USING ( SELECT MAX(fl ...
- python+pycharm+selenium+谷歌浏览器驱动 自动化环境部署(一)
准备工作: 第一步:安装python.打开网址https://www.python.org/downloads/windows/ 现在最新版本3.7,本人使用的是3.6. 第二步:安装pych ...
- 双非本科Android开发,如何逆袭拿到大厂 Offer?
从2020年3月18日投出第一份暑期实习简历至今,已经过去400多天.我也尘埃落定,即将去CVTE做Android开发. 休息了很长时间,如今已经能够很平静地回首这段历程,写下这篇文,致敬曾经走过的漫 ...
- 我,Android开发5年,32岁失业,现实给我狠狠上了一课!
如今的职场,风险是越来越高,不管你是应届生或者你是否中年,遇到好点的企业,红火那么做个三五年,运气不好,半年甚至2.3个月也就玩完了. 所以,即使你希望工作能稳定,但也会让你大失所望,职场寿命就那么几 ...
- Goland 这些技巧,学会开发效率翻倍!
hi, 大家好,我是 hhf. <Goland 这些实操技巧,你可能还不会!>介绍了日常开发中一些比较好用的技巧.本篇文章继续介绍一些其他比较好用的技巧. 自定义结构 tag Goland ...
- SpringMVC学习02(我的第一个SpringMVC程序)
2.Hello,SpringMVC 2.1 配置版 1.新建一个Moudle , springmvc-02-hello , 添加web的支持! 2.确定导入了SpringMVC 的依赖! 3.配置we ...
- tomcat 配置http跳转https
web.xml增加配置 <security-constraint> <web-resource-collection > <web-resource-name >S ...
- NOIP 模拟 $15\; \text{夜莺与玫瑰}$
题解 一道很妙的题,让求对于一个矩阵中,两点相连成线,有多少条直线,他们的交集是有限集. 转化一下题目,发现水平和竖直的只有 \(n+m\) 条,而左斜和右斜的条数是相同的,所以我们只需求出左或右中的 ...
- 题解 Medium Counting
传送门 又是神仙DP 发现如果只有两个串就很好做了 于是这个神仙DP定义就从这里下手:令 $dp[p][c][l][r] 表示在 \([s_l, s_r]\) 这段字符串中,考虑从第 \(p\) 个位 ...
- redis如何实现分布式锁?
1.使用redis中的自增来实现 2.使用setnx + del # 如果不存在set(返回1),如果存在则失败(返回0) 为了避免死锁会加上一个过期时间 自增方式 boolean isSelf = ...