IPsec VPN简介
什么是IPsec?
IPsec(Internet Protocol Security)是为IP网络提供安全性的协议和服务的集合,它是VPN(Virtual Private Network,虚拟专用网)中常用的一种技术。其实就是一种协议簇(类似TCP/IP协议簇),IPsec VPN就是基于IPsec协议簇来进行封装的一种VPN技术。VPN的核心就是隧道技术,隧道技术的核心就是封装技术。
通信双方通过IPsec建立一条IPsec隧道,IP数据包通过IPsec隧道进行加密传输,有效保证了数据在不安全的网络环境如Internet中传输的安全性。
IPsec VPN 保护的是点对点之间的通信,通过IPsec VPN可以在主机和主机之间、主机和网络安全网关之间或网络安全网关(如路由器、防火墙)之间建立安全的隧道连接。其协议主要工作在IP层,在IP层对数据包进行加密和验证。
IPsec VPN的工作流程
大致可以分为四个阶段:
1、识别“感兴趣流”。网络设备接收到报文后,通常会将报文的五元组等信息和IPsec策略进行匹配来判断报文是否要通过IPsec隧道传输,需要通过IPsec隧道传输的流量通常被称为“感兴趣流”。
2、协商安全联盟(Security Association)。SA是通信双方对某些协商要素的约定,比如双方使用的安全协议、数据传输采用的封装模式、协议采用的加密和验证算法、用于数据传输的密钥等,通信双方之间只有建立了SA,才能进行安全的数据传输。
识别出感兴趣流后,本端网络设备会向对端网络设备发起SA协商。在这一阶段,通信双方之间通过IKE协议先协商建立IKE SA(用于身份验证和密钥信息交换),然后在IKE SA的基础上协商建立IPsec SA(用于数据安全传输)。
3、数据传输。IPsec SA建立成功后,双方就可以通过IPsec隧道传输数据了。IPsec为了保证数据传输的安全性,在这一阶段需要通过AH或ESP协议对数据进行加密和验证。加密机制保证了数据的机密性,防止数据在传输过程中被窃取;验证机制保证了数据的真实可靠,防止数据在传输过程中被仿冒和篡改。
如下图,IPsec发送方会使用加密算法和加密密钥对报文进行加密,即将原始数据“乔装打扮”封装起来。然后发送方和接收方分别通过相同的验证算法和验证密钥对加密后的报文进行处理得到完整性校验值ICV。如果两端计算的ICV相同则表示该报文在传输过程中没有被篡改,接收方对验证通过的报文进行解密处理;如果ICV不相同则直接丢弃报文。
IPsec VPN中的数据加密流程:
4、隧道拆除。通常情况下,通信双方之间的会话老化(连接断开)即代表通信双方数据交换已经完成,因此为了节省系统资源,通信双方之间的隧道在空闲时间达到一定值后会自动删除。
IKE (互联网密钥交换协议)
主要用来完成IPsec中需要的密钥相关参数的协商工作,可以动态建立IPsec SA 。有两个版本IKE V1、IKE V2
IKE中的三个协议
1、SKEME
2、OAKLEY
3、ISAKMP ISAKMP(互联网安全联盟密钥管理协议)
我们重点了解第三个ISAKMP ISAKMP(互联网安全联盟密钥管理协议)
这就是IKE协议的本体,主要用来完成IPSEC中需要的密钥相关参数的协商工作。可以动态建立IPsec SA UDP500----源、目标端口都必须是500。
SKEME、OAKLEY ---这两个协议可以理解为是IKE协商过程中使用到的资源库(了解即可)
注意:身份认证是建立安全通道的前提。
IKE第一阶段
主要目的是为了获得建立IPSEC SA时使用的密钥,以及进行身份认证。
IKE SA(ISAKMP SA)-----这个SA是双向逻辑的,不区分源和目标。
主模式:默认使用IP地址作为身份标识(也要作为PSK的识别标志),使用6个数据包进行交互,安全性更高

这里我们根据上图中的各个数据包单独进行分析:
第一二个数据包:进行SA交换
1、Cl--- cookie ---这个参数每个数据包中都会携带,在IKEV2中,变成了SPI,在这里作用类似。 2,SA---里面携带的是需要协商的安全参数 ------“五元组"(如下)
加密算法,哈希算法,身份认证,DH组,SA存活期
AES MD5 PSK DH2 84600s(默认值)
注意:手工建立的SA,一经建立,则将永久有效;但是IKE建立的SA,需要配置生存周期,周期时间到了之后,将重新建立SA。时间可以不同,不同的话按照小的来执行。
第二个回包主要确认安全参数,如果安全参数都可以对的上,则将继续完成后面的协商。如果参数没有对上,则将回复一个负载拒绝报文,结束IKESA的建立。
第三四个数据包 ---DH密钥交换 ---对称密钥1,NI,Nr---代表的是随机数 2,X,Y --- DH算法中需要公开的参数这里,为了加强安全性,DH算法会生成四种密钥
种子密钥 --- 剩余三种密钥都需要加入种子密钥运算得出,并且,种子密钥中计算时,会携带预共享密钥。
SKEYID_e---加密密钥 --- g^ir(代表的就是DH算法中计算出来的Z),CKY-I/CKY-R(前面双方携带的cookie值)----用于第一个阶段5,6数据包和第二阶段数据包加密使用。
SKEYID_a ---- 验证密钥 ---用于第二阶段hash时使用的密钥 ---HMAC算法(结合密钥的HASH算法),安全性比不加入密钥的HASH算法更高。
SKEYID_d ---推导密钥 ---用于计算最终密钥(最终加密数据的密钥)的素材
注意:在NAT环境,或是IP地址会变化的场景下,不适合用主模式。
野蛮模式
特点:可以自定义身份标识,速度快,只需要三个数据包就可以完成标识,安全性低

注意:在野蛮模式中,可以自定义身份标识,主要是因为身份信息不需要加密,并且,前两个数据包都无法加密,所以,野蛮模式安全性较低。仅第三个数据包会进行加密。但是,野蛮模式适用于NAT环境以及IP地址不固定的环境。
主模式和野蛮模式的区别

第二阶段
基于已经建立的安全通道,来协商建立IPSEC SA的安全参数,完成后,则标志着IPSEC SA的建立。 快速模式(quick mode) UDP500
需要协商的安全参数
加密算法 ---正式传输数据时使用的加密算法(加密算法协商完成后,会计算密钥第一阶段计算出来的推导密钥会加入到该密钥的计算中)
HASH算法 ---正式传输数据时进行完整性校验的算法
安全协议 ---AH/ESP
封装模式 --- 传输模式/隧道模式
存活时间
可以了解一下这个协议
PFS --- 密钥完美向前保密 --- 正常工作中,第二阶段的最终密钥是通过第一阶段的推导密钥计算出来的,但是,这样做不安全,推导密钥泄露可能导致最终密钥泄露。所以,可以开启这个PFS技术(注意:要开启需要两端设备都开启才行),之后,则将在第二阶段重新进行一次DH交换,计算最终的密钥,从而提高安全性。
数据传输阶段
VPN黑洞:隧道建立之后,如果其中一段的设备异常重启,另一端还在有效期内,则他发送的数据将有去无回,就形成了VPN黑洞。
解决方法
DPD死亡对等体检测。类似于心跳检测机制 ---采用空闲计时器原理 ---两边同时开启一个固定时间的计时器,期间数据值直接发过去,如果计时器超时,则数据发送前,先发送一个DPD检测报文,如果收到对方的DPD应答报文,则将重置计时器。如果没有收到,并且,连续5次都没有收到,则将拆掉安全通道。
最后,在面试过程中常问的一个问题,IPSec SA和IKE SA谁是单向谁是双向?
IKE SA 是双向的,两端只需要构建一条SA就可以共同拥有了;
IPSec SA是单向的,所以就需要创建两条。
相关文章:

IPsec VPN简介
什么是IPsec? IPsec(Internet Protocol Security)是为IP网络提供安全性的协议和服务的集合,它是VPN(Virtual Private Network,虚拟专用网)中常用的一种技术。其实就是一种协议簇(类…...

探索 Canva 的功能以及如何有效使用 Canva
『创意瞬间变现!Canva AI Drawing 让你的文字描绘成艺术』 在数字设计和创意领域,Canva 是创新和用户友好性的灯塔。这个平台不仅简化了图形设计,还引入了 AI Drawing 等强大工具,使其成为专业人士和初学者的首选解决方案。让我们…...
python中匿名函数简单样例
目录 一、匿名函数(也称为 lambda 函数): 二、简单样例: 2.1 filter() 函数: 2.2 map() 函数: 2.3 sorted() 函数: 一、匿名函数(也称为 lambda 函数): 简洁性:匿名函数通常比命…...

【SpringBoot】 什么是springboot(二)?springboot操作mybatisPlus、swagger、thymeleaf模板
文章目录 SpringBoot第三章1、整合mybatsPlus1-234-67-10问题 2、整合pageHelper分页3、MP代码生成器1、编写yml文件2、导入依赖3、创建mp代码生成器4、生成代码5、编写配置类扫描mapper类6、编写控制器类 4、swagger1、什么是swagger2、作用3、发展历程4、一个简单的swagger项…...

【JavaWeb】前后端分离SpringBoot项目快速排错指南
1 发起业务请求 打开浏览器开发者工具,同时显示网络(Internet)和控制台(console) 接着,清空控制台和网络的内容,如下图 然后,点击你的业务按钮,发起请求。 首先看控制台…...
Go语言高级特性
目录 1. 并发编程 1.1 Goroutine轻量级线程 1.2 Channel通信机制 1.3 WaitGroup等待组 1.4 Mutex互斥锁 2. 垃圾回收机制 2.1 内存管理介绍 2.2 垃圾回收原理 2.3 性能调优策略 2.4 常见问题及解决方案 3. 接口与反射 3.1 接口定义与实现 3.2 空接口与类型断言 3…...

边缘计算安全有多重要
德迅云安全研究发现边缘安全是对存储或处理在网络边缘的数据的保护。边缘可以用不同的方式定义,但一般来说,它包括企业直接控制之外的任何设备或位置。这可能包括传感器、连接物联网的设备和移动设备。 边缘计算正在彻底改变商业运作方式。这引发了对边缘…...
Uniapp开发入门:构建跨平台应用的全面指南
引言 什么是Uniapp Uniapp是一款由DCloud公司推出的基于Vue.js的跨平台应用开发框架。它的核心理念是“一套代码,多端运行”,开发者只需编写一份代码,即可生成包括iOS、Android、H5、微信小程序、支付宝小程序、百度小程序等多平台的应用。…...
初级银行从业资格证知识点(十)
中国银保监会近年来启动了银行业保险业清廉金融文化建设活动,旨在通过全覆盖参与、全过程融入、全方位提升,增强金融从业人员清廉从业意识,培育清廉金融理念,通过文化的渗透力和影响力,厚植清廉根基,提升金…...
设计模式-13 - Prototype Design Pattern 原型设计模式
设计模式-13 - Prototype Design Pattern 原型设计模式 1.定义 原型设计模式是一种创建对象的方式,它通过复制一个现有的对象(原型)来创建一个新对象。 2.内涵 优点: 创建对象的高效方式:克隆一个对象比从头开始创建…...

05. 【Java教程】第一个 Java 程序
本节我们将以Windows操作系统为例,编写并执行第一个Java程序。在这之前,请确保你的操作系统上已经安装了JDK 1. 编译程序 大家可能有个疑问,为什么需要编译程序呢?计算机不能直接执行我们编写的源代码吗? 这是由于计…...
网易灵犀办公企业邮箱的IMAP和POP3服务器地址
IMAP 电子邮件地址:saleyouxiang.com 帐户类型:IMAP 接收邮件服务器:imaphz.qiye.163.com 发送邮件服务器:smtphz.qiye.163.com 用户名:saleyouxiang.comPOP3 电子邮件地址:saleyouxiang.com 帐户类型&…...

吴恩达深度学习笔记:优化算法 (Optimization algorithms)2.3-2.5
目录 第二门课: 改善深层神经网络:超参数调试、正 则 化 以 及 优 化 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)第二周:优化算法 (Optimization algorithms)2.3 指数加权平均数(Exponential…...

【正版系统】海外短剧系统功能介绍,前端uniapp+开源。
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一、海外短剧系统功能介绍 二、搭建要求 1.系统要求 总结 前言 短剧作为一种快速、紧凑的娱乐形式,正逐渐受到更多海外观众的喜爱。这种需求增长为…...

位图(c++)
文章目录 1.位图概念2.位图的实现3.应用(解决整形存在或次数问题)3.1存在问题3.2次数问题 5.搜索的方法对比: 1.位图概念 和哈希一样,都是一个表来记录某个元素的个数或者存在与否;不同的是哈希使用的计算机定义的完整…...

音源分离 | Hybrid Spectrogram and Waveform Source Separation
一、摘要 本文提出了基于Demucs架构的的时域频域的分离模型。提出的模型在2021年索尼组织的音乐分离挑战中获胜。该架构还包括其他改进,如压缩残差分支、局部注意力或奇异值正则化。 在MusDB HQ数据集上,所有源的信噪比(SDR)平均提…...

动态el-form表单以及动态禁用
当右侧下拉框选中为 长期有效,那么左侧输入框为禁用状态; <el-form-item label"证明有效期" class"is-required"><div v-for"(item,index) in form.arrayDat" :key"index" style"width: 100%;display: flex;justify-co…...

【Web后端】web后端开发简介_Servlet简介
1.web后端开发简介 Java企业级开发,也就是学习]avaEE(Enterprise Edition)版本,是一种结构和一套标准。在应用中开发的标准就是Servlet、jsp和JavaBean技术。jsp技术现在已基本处于淘汰状态,简单了解即可web后端开发,基于B/S模式的开发体系。…...

Taylor Francis科技期刊数据库文献去哪里获取
一、Taylor & Francis科技期刊数据库简介: Taylor & Francis 科技期刊数据库(T&F ST Library)提供超过520种经专家评审的高质量科学与技术类期刊, 其中超过85%的期刊被Web of Science收录,内容最早至1997年。该科技期…...

C#学习笔记12:Winform网页操作-CefSharp内嵌浏览器
今日学习使用Winform操作网页,先从从窗体内嵌一个浏览器开始吧: 文章提供测试代码讲解、测试效果图、整体测试工程下载 目录 CefSharp介绍与安装: 创建解决方案安装CefSharp: 控件放置: 整体代码贴出: 更改…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...
Java编程之桥接模式
定义 桥接模式(Bridge Pattern)属于结构型设计模式,它的核心意图是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合关系来替代继承关系,从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...
Bean 作用域有哪些?如何答出技术深度?
导语: Spring 面试绕不开 Bean 的作用域问题,这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开,结合典型面试题及实战场景,帮你厘清重点,打破模板式回答,…...

如何应对敏捷转型中的团队阻力
应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中,明确沟通敏捷转型目的尤为关键,团队成员只有清晰理解转型背后的原因和利益,才能降低对变化的…...

协议转换利器,profinet转ethercat网关的两大派系,各有千秋
随着工业以太网的发展,其高效、便捷、协议开放、易于冗余等诸多优点,被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口,具有实时性、开放性,使用TCP/IP和IT标准,符合基于工业以太网的…...