Ipsec phase1 and phase2

2023-11-17

终于明白是怎么回事了,困扰我好多天了。网上的资料鱼龙混杂,直到这位大虾的出现。

第一阶段
有主模式和积极模式2
只有remote vpn和Easy vpn是积极模式的,其他都是用主模式来协商的
让IKE对等体彼此验证对方并确定会话密钥,这个阶段永DH进行密钥交换,创建完IKE SA后,所有后续的协商都将通过加密合完整性检查来保护
phase 1帮助在对等体之间创建了一条安全通道,使后面的phase 2过程协商受到安全保护



第二阶段
快速模式
协商IPSECSA使用的安全参数,创建IPSEC SA,使用AH或ESP来加密IP数据流





第一阶段详细过程主模式协商
IKE phase 1
在IPSEC对等体间交换6条消息,这些消息的具体格式取决于使用的对等体认证方法

一,使用预共享密钥进行验证的主模式(6条)
协商过程使用ISAKMP消息格式来传递(UDP 500)
第一阶段
准备工作
在前2条消息发送以前,发送者和接受者必须先计算出各自的cookie(可以防重放和DOS攻击),这些cookie用于标识每个单独的协商交换消息
cookie ---RFC建议将源目IP,源目端口,本地生成的随机数,日期和时间进行散列操作.cookie成为留在IKE协商中交换信息的唯一标识,实际上cookie是用来防止DOS攻击的,它把和其他设备建立IPSEC所需要的连接信息不是以缓存的形式保存在路由器里,而是把这些信息HASH成个 cookie值

1&2消息
消息1---发送方向对等体发送一条包含一组或多组策略提议,在策略提议中包括5元组(加密算法,散列算法,DH,认证方法,IKE SA寿命)
1.策略协商,在这一步中,就四个强制性参数值进行协商:

1)加密算法:选择DES或3DES

2)hash算法:选择MD5或SHA

3)认证方法:选择证书认证、预置共享密钥认证或Kerberos v5认证

4)Diffie-Hellman组的选择
消息2---接受方查看IKE策略消息,并尝试在本地寻找与之匹配的策略,找到后,则有一条消息去回应
注意!!!发起者会将它的所有策略发送给接受者,接受者则在自己的策略中寻找与之匹配的策略(对比顺序从优先级号小的到大的)(默认策略实际就是个模版没作用,如果认证只配置预共享的话,其他参数就会copy默认策略里的)

在1&2消息中报错可能出现的原因
1,peer路由不通
2,crypto iskmp key没有设置
3,一阶段的策略不匹配

3&4消息
这2条消息,用于交换DH的公开信息和随机数
两个对等体根据DH的公开信息都算出了双方相等的密植后,两个nonce连通预共享密钥生成第一个skeyID
随后便根据SKEY__ID来推算出其他几个skeyID
skeyID_d---用来协商出后续IPSEC SA加密使用的密钥的
skeyID_a---为后续的IKE消息协商以及IPSECSA协商进行完整性检查(HMAC中的密钥)
skeyID_e---为后续的IKE消息协商以及IPSECSA协商进行加密

5&6消息
这2条消息用于双方彼此验证,这个过程是受skeyID_e加密保护的
为了正确生成密钥,每一个对等体必须找到与对方相对应的预共享密钥,当有许多对等体连接时,每一对对等体两端都需要配置预共享密钥,每一对等体都必须使用ISAKMP分组的源IP来查找与其对等体对应的预共享密钥(此时由于ID还没到,彼此先用HASH来彼此验证对方)
HASH认证成分---SKEYID_a,cookieA,cookieB,preshare_key,SA paload,转换集,策略

在5&6消息中报错可能出现的原因
1,crypto iskmp key设置错了


接受者处理过程
1,
用skeyID_e对消息进行加密 2,用ID(源IP)查找出与共享密钥3,skeyID_a和preshare-key等一堆东西一起来计算HASH 4,和收到的HASH做比较


第二阶段(3条)
phase 2的目标是协商IPSEC SA,而且只有一种模式,快速模式,快速模式的协商是受IKESA保护的

·使用哪种IPSec协议:AH或ESP

·使用哪种hash算法:MD5或SHA

使用什么模式: 隧道还是传输

·是否要求加密,若是,选择加密算法:3DES或DES在上述三方面达成一致后,将建立起两个SA,分别用于入站和出站通信。

1&2消息
消息1---发送方发送一条报文,其中包含HASH,IPSEC策略提议,NONCE和可选的DH,身份ID
HASH:是用于给接受方作完整性检查的,用于再次认证对等体(必须)HASH的成分和5-6阶段一样
IPSEC策略提议:其中包括了安全协议,SPI,散列算法,隧道模式,IPSEC SA生命周期(必须)
NONCE:用于防重放攻击,还被用作密码生成的材料,仅当启用PFS时用到
ID:描述IPSEC SA是为哪些地址,协议和端口建立的
PFS (利用DH交换,可选):用了PFS后就会在第二阶段重新DH出个数据加密KEY,这个KEY和以前IKE协商出来的KEY没有任何关系,然后由这个新 KEY来加密数据,只有到这个IPSEC SA的生命周期后,会再次DH出新的KEY,这样,安全性就提高了(普通等ipecSA过期或密钥超时时,重新生成的数据加密密钥还是根据以阶段DH出来的skeyID_d衍生出来的)(PFS启用后,数据加密部分使用的密钥就没有了衍生的过程)
DH:重新协商IPSEC SA实使用的密钥(正常情况下IPSEC阶段使用的密钥都是由skeyID_d衍生而来,密钥之间都有一定的关系,就算IPSECSA超时,新的KEY还是和skeyID_d有一定的关系)

在1&2消息中报错可能出现的原因
1,ipsec trasport不匹配
2,感兴趣流不对称

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ipsec phase1 and phase2 的相关文章

  • python3 通过 pybind11 使用Eigen加速

    python是很容易上手的编程语言 但是有些时候使用python编写的程序并不能保证其运行速度 例如 while 和 for 这个时候我们就需要借助c 等为我们的代码提速 下面是我使用pybind11调用c 的Eigen库的简单介绍 第一步
  • 实现页面失去焦点十秒后强制执行js

    页面失去焦点后开始倒计时 时间到了执行指定js 适用于 检测页面无操作退出登录 在线答题防止切换页面搜索答案 浏览页面多久后获取奖励等场景
  • 概率论与数理统计--排列组合(一)

    排列 从n个不同元素中 任取m m n m与n均为自然数 下同 个元素按照一定的顺序排成一列 叫做从n个不同元素中取出m个元素的一个排列 从n个不同元素中取出m m n 个元素的所有排列的个数 叫做从n个不同元素中取出m个元素的排列数 用符
  • 118.杨辉三角

    一 题目 118 杨辉三角 力扣 LeetCode 二 代码 class Solution public vector
  • 开关电源环路稳定性分析(2)-从开环到闭环

    大家好 这里是大话硬件 在上一节中 基于欧姆定律 基尔霍夫定律 伏秒平衡这些已知的知识点 可以推导出Buck变换器的输入输出关系 今天这一节 我们还是从全局的概念来解析开关电源 1 运放和开关电源 如果一上来就分析开关电源的环路稳定性 我估
  • Spring Boot中集成Redis

    14 1 简介 redis是一款高性能的NOSQL系列的非关系型数据库 14 1 1 非关系型数据库的优势 1 性能NOSQL是基于键值对的 可以想象成表中的主键和值的对应关系 而且不需要经过SQL层的解析 所以性能非常高 2 可扩展性同样
  • 华为三层交换机STP配置

    学习目的 掌握启用和关闭STP的方法 了解不同的STP模式的差异 掌握修改网桥优先级影响根网桥选举的方法 掌握修改端口优先级影响根端口与指定端口选举的方法 掌握配置边缘的方法 拓扑图 场景 你是公司的网络管理员 公司的网络使用了两层网络结构
  • Redis基础--认识redis和对比同类型产品

    一 redis定义与应用 Nosql定义 NoSQL是不同于传统的关系数据库的数据库管理系统的统称 其两者最重要的区别是NoSQL不使用SQL作为查询语言 MySQL定义 MySQL是一种关系型数据库 关系型数据库的一个常见用法是存储长期的
  • 如何大批量压缩图片

    一 ImageMagick ImageMagick 是一个功能强大的命令行图像处理工具 可以用于批量处理图片 它支持各种图像格式和操作 包括压缩和优化 二 使用 ImageMagick 进行大批量压缩指定路径的图片 你可以通过以下步骤实现
  • JavaScript中的内存回收机制

    JS的内存回收 在js中 垃圾回收器每隔一段时间就会找出那些不再使用的数据 并释放其所占用的内存空间 以全局变量和局部变量来说 函数中的局部变量在函数执行结束后这些变量已经不再被需要 所以垃圾回收器会识别并释放它们 而对于全局变量 垃圾回收
  • 宝塔中 nodejs项目 nginx 网站基础/代理设置

    上面是一些基础配置就不写了 吧请求全部代理到 nodejs 项目 location 如果使用pm2等启动node项目 需要加header头 防止读取不到客户端IP proxy set header Host proxy host proxy
  • 生态伙伴

    提到时间管理 想必大多数人的第一反应就是 番茄工作法 番茄工作法是意大利人弗朗西斯科 西里洛于1992年创立的 他和我们大多数人一样 是一个重度拖延症患者 在他大学生活的前几年 曾一度苦于学习效率低下 于是他做了个简单的实验 他找来形状像番
  • JMeter下载及使用

    前言 我是个前端 只是一次偶然的机会被安排用了一次JMeter 做了下步骤记录 所以内容比较基础 想深入研究的兄弟可以再多找找哈 一 下载 官网地址 Apache JMeter Download Apache JMeter 下载zip包 应
  • 计算机网络的软件系统包括哪几部分,系统软件由哪几部分组成?

    系统软件用于实现计算机系统的管理 调度 监视和服务等功能 其目的是方便用户 提高计算机使用效率 扩充系统的功能 通常将系统软件分为以下六类 1 操作系统操作系统是控制和管理计算机各种资源 自动调度用户作业程序 处理各种中断的软件 操作系统的
  • 邮件发送接收原理

    概述 电子邮件是因特网上使用得非常多的一种应用 它可以非常方便的使相隔很远的人进行通信 它主要的特点就是操作简单 快捷 当你发送一封邮件的时候 它首先会发送到收件人的邮件服务器上 并放入收件人的信箱中 如果你在某一个邮件服务器提供商那里申请
  • 建站系列(二)--- 域名、IP地址、URL、端口详解

    目录 相关系列文章 前言 一 IP地址 二 域名与IP地址 三 域名与URL 四 IP地址与端口号 相关系列文章 建站系列 一 网站基本常识 建站系列 二 域名 IP地址 URL 端口详解 建站系列 三 网络协议 建站系列 四 Web服务器
  • Altium Designer 9 学习笔记(二)制作完整的原理图并在此基础上导出PCB版图

    首先 先说下本次练习对象 简单的光敏小夜灯 1 制作原理图 按制图流程 1 1 新建工程及原理图 F N J B 一套连招创建PCB工程 然后右键为新建的工程添加原理图文件 完成后如下图所示 1 2 加载元器件并生成序号 1 2 1 加入电
  • excel转换pdf方法 (aspose.cells亲测有效)

    AsposeUtils java package com lmp test utils import com aspose cells License import com aspose cells PdfSaveOptions impor
  • 北航学长:DCIC 2021的算法方案讲解

    作者 阿水 北京航空航天大学 Datawhale成员 DCIC 作为每年具有重要影响力的政府赛事 除了高认可 高奖金 最重要的是开放了政府和企业的真实数据 具有研究和落地价值 但对于刚参加赛事的同学 还是有难度的 希望通过分享让更初学者也能
  • 网管员牢记10种较为常见服务器管理错误

    网络管理阶层的工作就是保证网络的正常工作 从而使得职工们的工作不被打断 可问题在于事物并非总是按照理想状况发展 事实上经常会出现平地起风波的状况 其间有许多原因 这里我们只讨论10种较为常见的网管错误 1 UPS 不间断电源 的使用问题 某

随机推荐

  • Python+Requests-2-接口自动化脚本实现(虫师-Django接口测试实例)

    编写脚本前分析项目架构 需求 python脚本实现 添加发布会信息 的接口测试 以邮件形式发送测试报告 1 新建一个case目录 存放测试用例 2 新建一个config目录 存放配置信息和读取配置信息 3 新建一个db fixture目录
  • vue项目打包部署到服务器

    目录 一 打包项目 二 修改Nginx的配置 三 部署 四 开放端口号 一 打包项目 1 在 vue config js 文件中找到并修改 主要是publicPath 与outputDir 两项配置 若项目中有baseUrl 替换为publ
  • 【嵌入式学习-C语言篇】 char & short & int 的使用

    嵌入式学习 C语言篇 char short int 的使用 三种数据类型常用场景 智能家居 网关协议中mac地址上报 网关 网关 Gateway 又称网间连接器 协议转换器 网关在传输层以上实现网络互连 是最复杂的网络互连设备 仅用于两个高
  • STM32 进阶教程 7 -  C与C++混合编程

    前言 在嵌入式开发过程中经常会用到第三个芯片 设备 这些第三方的芯片提供的DEMO程序或驱动程序有时候是C 如果先前的系统用C语言写的就会出现点问题 往往需先将C 的驱动程序自已手动改成C语言再用 本节给大家介给一下如何在KEL MDK环境
  • html cgi改变字体颜色,在CGI文件中导致错误的HTML变量

    我在从我的cgi文件中打印特定变量时出现问题 我收到这个变量 从我的网页中调用totalCost 然后尝试打印它 但没有任何反应 所有其他变量可以从网页成功接收 并通过我的cgi文件打印到另一个网页上 除了这一个 我检查过大小写敏感但是没有
  • jQuery 入门教程(14): 添加HTML元素

    使用jQuery可以方便的添加新的HTML元素 下面的方法用于添加HTML元素 append 在指定的元素的尾部添加一个新内容 prepend 在指定的元素里前部添加新内容 after 在指定元素后添加新内容 before 在指定元素的前面
  • Vue3 -- teleport传送门

    目录 teleport传送门 例 蒙层特效 目标效果 代码演示 页面效果 未使用teleport存在的问题 使用teleport实现目标效果 完整代码 总结 teleport传送门 Teleport 是一种能够移动 DOM到Vue根节点之外
  • 自学区块链:原理、技术及应用——什么是区块链(笔记)

    Bitcoin和区块链有很深的渊源 但Bitcoin与区块链两者不能等同 区块链是Bitcoin的底层技术 除了Bitcoin 还有很多其他的区块链技术应用 什么是 区块链 时间戳服务器对以区块 Block 形式存在的一组数据实施随机散列
  • 华为云计算HCIE之oceanstor仿真器的使用操作

    华为云计算HCIE之oceanstor仿真器的使用操作 一 登录检查oceanstor的状态 二 配置存储资源 1 创建硬盘域 2 创建存储池 3 创建LUN 4 创建LUN组 5 创建主机 6 创建主机组 7 创建映射关系 三 配置存储H
  • idea 连接云mysql_IntelliJ IDEA 连接数据库 详细过程

    连接到MySQL数据库 调出Database面板 IDEA配置Database数据源需要我们在IDEA的主界面中找到View gt ToolWindows gt Database 如下图所示 1 选择数据源 在IDEA中新建一个Java工程
  • T系接口源数据格式

    item apiStack name esi value endpoint mode android osVersion 9 26 0 protocolVersion 3 0 ultronage true data dinamic TB d
  • Unity + Jenkins自动打包 (二)构建Jenkins项目以及编写Python、Unity脚本

    1 新建Jenkens项目 在上一篇中 完成了Jenkins的安装和初始化 以及权限设置 查看上一篇 Jenkins安装 点此 现在打开浏览器 输入http localhost 8081 当然 需要改成你自己设置的Jenkins端口号 然后
  • lua c++中的一种回调解决方法

    见很多人发问cocos2dx 3 版本 lua 函数回调问题 我在项目中是这样解决的 因为我是使用了cocos 带有的 lua 绑定脚本 python写的 cocos2d x tools tolua genbindings py 在生成绑定
  • mac .ssh文件位置

    1 Finder gt 前往文件夹 gt 输入 ssh 2 打开终端 输入cd ssh cd ssh
  • vue组件库的开发流程

    欢迎点击领取 前端面试题进阶指南 前端登顶之巅 最全面的前端知识点梳理总结 开发流程 1 创建项目 vue cli 公司现有架构 2 调整项目静态目录结构 3 使用webpack相关库模式打包编译 4 使用npm或者公司源地址发布到你需要的
  • 向List Control中添加ACCESS数据内容

    转 给List Control 添加变量tt 加入引入ADO使用智能指针 import c program files common files system ado msado15 dll no namespace rename EOF
  • MySQL - 索引的隐藏和删除

    隐藏索引 MySQL 8开始支持隐藏索引 隐藏索引提供了更人性化的数据库操作 隐藏索引 顾名思义 让索引暂时不可见 不会被优化器使用 默认情况下索引是可见的 隐藏索引可以用来测试索引的性能 验证索引的必要性时不需要删除索引 可以先将索引隐藏
  • 【qt应用软件Focus Note++】

    本专栏介绍了使用Qt开发的一些小型桌面软件 其中包括软件功能介绍 软件截图 主要代码等内容 此外 本专栏还提供完整的软件源码和安装包供有需要的同学下载 我的目标是开发一些简洁美观且实用的客户端小软件 如果能够为大家提供有用的软件或对学习有益
  • 赶紧来修炼内功~字符串函数详解大全(一)

    目录 1 strlen 重点 模拟实现 法一 法二 法三 2 strcpy 重点 模拟实现 3 strcat 重点 模拟实现 4 strcmp 重点 模拟实现 1 strlen strlen函数是用来计算字符串长度的 重点 字符串以 0 作
  • Ipsec phase1 and phase2

    终于明白是怎么回事了 困扰我好多天了 网上的资料鱼龙混杂 直到这位大虾的出现 第一阶段 有主模式和积极模式2种 只有remote vpn和Easy vpn是积极模式的 其他都是用主模式来协商的 让IKE对等体彼此验证对方并确定会话密钥 这个