IPsec协议过程

2023-10-27

版权声明:如有需要,可供转载,但请注明出处:https://blog.csdn.net/City_of_skey/article/details/86618784

目录

1、ipsec协议简介

2、IPSec工作模式

2.1、传输模式

2.2、隧道模式

3、ipsec通信协议

3.1、AH

3.2 ESP

4、IPSec建立过程

4.1、安全联盟SA

4.2、IKE

4.2、SAD

4.3、SPD

4.4、IKE协商过程

5、IPSEC阶段建立

5.1、第一阶段

5.1.1、主模式

5.1.2、野蛮模式

5.2、第二阶段


1、ipsec协议简介

IPSec是在网络层构建的安全虚拟专有网络,通过在数据包中插入一些预定义的头部,实现对网络层以上的协议数据安全。不同于ssl应用层的加密。IPSec内核加密支持的库是xfrm。

ipsec安全体系

 

ipsec支持的协议主要有ESP、AH,通过IKE协商建立隧道对数据包进行加密。

ipsec协议族

从ipsec协议族图可以概况ipsec的整个过程。

ipsec数据流程图

当数据包到达网络层就会在SPD安全策略数据库中匹配,是否需要进行ipsec加密,如果需要就进行ipsec加密,如果不需要就走正常的数据包发送流程。

 

2、IPSec工作模式

2.1、传输模式

传输模式是两个主机之间建立IPSec虚拟安全通道,传输模式没有改变原IP,只是在原IP和数据之间插入了一个IPSec头部,然后对后面的数据部分进行加密。

传输模式

 

2.2、隧道模式

隧道模式是包原始的整个数据包封装加密保护,添加一个新的IP头部,IP信息也没有暴露,这样使数据传输更加安全。隧道模式一般用在站点和站点之间建立连接安全通道,两个站点下面的私有IP可以利用安全隧道通信。

隧道模式数据结构图

隧道模式比传输模式更加安全,因为两端的通信IP没有暴露。

隧道模式网络拓扑图

3、ipsec通信协议

IPsec通信协议由两个不同的协议组成,分为是AH(Authentication Header)和ESP(Encapsulated Security Payload),两个图通的协议负责不同的功能,AH协议的功能是”完整性验证”,ESP协议的功能时”完整性验证与加密”

3.1、AH

AH协议(Authentication Header,认证包头) AH提供的安全服务: (1)数据完整性:通过哈希(如MD5,SHA1)产生的校验来保证; (2)数据源认证:通过在计算机验证时加入一个共享秘钥来实现; (3)抗重放服务:AH报头中的序列号可以防止重放。 AH不提供任何保密性服务:它不加密所保护的数据包。 AH提供对数据包的保护时,它保护的是整个IP数据包(易变的字段除外,如IP头中的 TTL和TOS字段)

传输模式AH数据结构

3.2 ESP

ESP(Encapsulating Security Payload,封装安全有效载荷)提供加密和完整性验证两项功能。 ESP通常使用DES,3DES,AES等加密算法来实现数据加密,使用MD5或SHA1来实现 数据完整性验证。

传输模式ESP数据结构

ESP协议和AH协议比较:

ESP和AH比较
安全性 AH ESP
协议号 50 51
数据完整性校验 支持 支持(不验证IP头)
数据源验证 支持 支持
数据加解密 不支持 支持
抗重服务 支持 支持
NAT-T(nat穿透) 不支持 支持

4、IPSec建立过程

4.1、安全联盟SA

SA(Security Assocition)是通信对等体间对某些要素的约定,通信的双方符合SA约定的内容,就可建立SA。SA由三元组唯一标示,包括:安全参数索引,目的IP地址,安全协议号。

4.2、IKE

为了解决固定秘钥模式中VPN不安全的问题,就有了Ineternt Key Exchange(因特网秘钥交互协议)简称IKE,在IKE架构中只要设置加密算法和验证算法,IKE会定时生成加密秘钥,以上两部分加起来就是Security Assocition(安全联盟)简称SA。

IKE有三个协议组成:

ISAKMP:定义了信息交互的体系结构,也就是消息格式

SKEME:实现公钥加密认证机制

Oakey:实现两个Ipsec对等体间达成加密秘钥的基本模式机制

ISAKMP是基于UDP协议端口是500。

4.2、SAD

Security Assocition(安全联盟)SA:

SA是通信对等体对某件事情的约定,通信双方符合约定就建立了SA。SA决定了数据包保护的IPsec协议、加密秘钥、认证秘钥、秘钥时间等。SA是单项的两台主机A、B之间用IPsec加密传输会建立两个SA,一条是A->B,还有一条是B->A。会建立一个SAD数据库,SAD数据库中有的参数:SPI值、目的IP、AH/ESP协议、认证算法、加密算法、传输模式。

SAD数据库
SPI 目的IP 协议 AH认证算法 AH加密秘钥 工作模式
0x1000 192.168.100.100 AH hmac-sha1 1111 Transport

如上SAD数据库定义了目的IP是192.168.100.100,SPI是0x1000的用AH协议封装认证算法是hmac-sh1,AH加密秘钥是1111、工作模式是传输模式来加密封装数据包。

4.3、SPD

SPD的内容是用来存放IPsec的规则,这些规则定义了哪些数据流需要使用IPsec。这个数据库的内容有目的端IP、来源端IP、目的端端口、来源端端口、协议AH/ESP

                                                                                          SPD数据库 

来源端IP 目的端IP 执行协议 来源端口 目的端端口 工作模式
192.168.0.1 192.168.2.1 AH Any 110 Transport

如上表所示,源地址是192.168.0.1,源端口是任意,目的地址是192.168.2.1,目的端口是110的数据流用Transport模式AH协议封装加密。

4.4、IKE协商过程

IKE为IPsec协商建立密钥,供AH/ESP加密和验证使用。在IPsec通信双方之间,动态的建立安全联盟(SA),对SA进行管理和维护,IKE经过两个阶段为IPsec进行密钥协商并建立安全联盟

5、IPSEC阶段建立

5.1、第一阶段

第一阶段交换:通信各方彼此间建立了一个已通过身份验证和安全保护的通道,此阶段的交换建立了一个ISAKMP安全联盟,即ISAKMP SA,也可称为IKE SA。 第一阶段有两种协议模式:主模式协商、野蛮模式协商。

第一阶段流程图

 

5.1.1、主模式

主模式数据交互过程

消息1:

第一个消息由隧道的发起者发起,携带的参数如:机密机制-DES,散列机制-MD5-HAMC,Diffie-Hellman组-2(即DH-2),认证机制-预共享。 消息2:第二个消息是应答方对发送方信息的应答,当应答方查找SPD查找到发送方相关的策略后,将自己的信息同样发送给对端,当然,应答方在发送传输集时将会生成自己的cookie并添加到数据包中。

消息3:

当完成第一步骤双方的策略协商后,则开始第二步骤DH公共值互换,随数据发送的还包含辅助随机数,用户生成双方的加密秘钥。

消息4:

应答方同样将本端的DH公共值和Nonce随机数发送给对端,通过消息4传输。

消息5:

第五个消息由发起者向响应者发送,主要是为了验证对端就是自己想要与之通信的对端。这可以通过预共享、数字签名、加密临时值来实现。 双方交换DH公共值后,结合随机数生成一系列的加密密钥,用于双方加密、校验,同时生成了密钥后,将公共密钥和本端身份信息等进行hash,hash值传输给对端进行验证设备身份。

消息6:

由响应者向发起者发送,主要目的和第5条一样。 IKE阶段1有三次交换过程,一共6个消息交互,前4个明文,后2个密文

5.1.2、野蛮模式

野蛮模式同样包含三个步骤,但仅通过三个包进行传输,标示为aggressive 野蛮模式的三个包交换:

(1)第1个交互包发起方建议SA,发起DH交换

(2)第2个交互包接收方接收SA

(3)第3个交互包发起方认证接收方 野蛮模式前两个报文是明文,第三个报文是密文

野蛮模式交互过程

5.2、第二阶段

ISAKMP/IKE阶段2只有一种信息交换模式——快速模式,它定义了受保护数据连接是如何在两个IPSEC对等体之间构成的。 快速模式有两个主要的功能:

1.协商安全参数来保护数据连接。

2.周期性的对数据连接更新密钥信息。

第二阶段的效果为协商出IPSec 单向SA,为保护IPsec数据流而创建。第二阶段整个协商过程受第一阶段ISAKMP/IKE SA保护

消息1:

发起者会在第一个消息中发送 IPSEC SA的转换属性,包括HASH、IPSEC策略提议、Nonce的可选的DH以及身份ID

第二阶段

消息2 :

响应者向发送者发送的发送第二条消息,确认第一个跳信息的中的属性,同时也起到确认对端信息的作用

消息3 :

第三条消息,确认接收方的信息并证明发送方处于Active状态

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

IPsec协议过程 的相关文章

  • 如何使用内网穿透实现iStoreOS软路由公网远程访问局域网电脑桌面

    文章目录 简介 一 配置远程桌面公网地址 二 家中使用永久固定地址 访问公司电脑 具体操作方法是 简介 软路由 是PC的硬件加上路由系统来实现路由器
  • 成为一个黑客,就按照这个路线来!

    前几天一个同学在聊天中提到毕业后想要从事网络安全方向的工作 虽然他本身也是学计算机的 但是又怕心有余而力不足 因为 从事网络安全方面的工作向来起点都比较高 大学里少有开设这类课程的 在学校能够学到的知识比较有限 网上的关于这方面课程的质量又
  • 适用于任何公司的网络安全架构

    1 第一等级 基础级 优势 可防范基本有针对性的攻击 使攻击者难以在网络上推进 将生产环境与企业环境进行基本隔离 劣势 默认的企业网络应被视为潜在受损 普通员工的工作站以及管理员的工作站可能受到潜在威胁 因为它们在生产网络中具有基本和管理员
  • 网络空间安全女生就业,怎么学?

    我实验室的学长们基本都是以红队和复现为主 如果学校好点可能还有更多的选择 如果想在这个方向深入下去 推荐流程是先打两年CTF 把大概的技术方向摸一摸 大一的话 如果学校还不错 那就优先建议打好基础 包括C语言 Python一类 建议把CTF
  • The Planets:Venus

    靶场下载 The Planets Venus VulnHub 信息收集 arp scan l Interface eth0 type EN10MB MAC 00 0c 29 43 7c b1 IPv4 192 168 1 60 Starti
  • 5个步骤,教你瞬间明白线程和线程安全

    记得今年3月份刚来杭州面试的时候 有一家公司的技术总监问了我这样一个问题 你来说说有哪些线程安全的类 我心里一想 这我早都背好了 稀里哗啦说了一大堆 他又接着问 那你再来说说什么是线程安全 然后我就GG了 说真的 我们整天说线程安全 但是对
  • WEB前端常见受攻击方式及解决办法总结

    一个网址建立后 如果不注意安全问题 就很容易被人攻击 下面讨论一下集中漏洞情况和放置攻击的方法 一 SQL注入 所谓的SQL注入 就是通过把SQL命令插入到web表单提交或输入域名或页面请求的查询字符串 最终达到欺骗服务器执行恶意的SQL命
  • WEB前端常见受攻击方式及解决办法总结

    一个网址建立后 如果不注意安全问题 就很容易被人攻击 下面讨论一下集中漏洞情况和放置攻击的方法 一 SQL注入 所谓的SQL注入 就是通过把SQL命令插入到web表单提交或输入域名或页面请求的查询字符串 最终达到欺骗服务器执行恶意的SQL命
  • Python爬虫实战:IP代理池助你突破限制,高效采集数据

    当今互联网环境中 为了应对反爬虫 匿名访问或绕过某些地域限制等需求 IP代理池成为了一种常用的解决方案 IP代理池是一个包含多个可用代理IP地址的集合 可以通过该代理池随机选择可用IP地址来进行网络请求 IP代理池是一组可用的代理IP地址
  • 通俗易懂,十分钟读懂DES,详解DES加密算法原理,DES攻击手段以及3DES原理

    文章目录 1 什么是DES 2 DES的基本概念 3 DES的加密流程 4 DES算法步骤详解 4 1 初始置换 Initial Permutation IP置换 4 2 加密轮次 4 3 F轮函数 4 3 1 拓展R到48位 4 3 2
  • 【网安神器篇】——WPScan漏洞扫描工具

    目录 一 Wordpress简介 二 WPScan介绍 三 安装 四 获取token 1 注册账号 2 拿到token 五 使用教程 1 常用选项 2 组合命令 1 模糊扫描 2 指定扫描用户 3 插件漏洞扫描 4 主题漏洞扫描 5 Tim
  • HPE Aruba Networking:五大网络现代化策略助力实现校园数字化转型

    作者 Aruba中国区技术销售总监 俞世丹 全球数字化进程日益加深 科技已成为加速教育行业发展的重要驱动力 人工智能 大数据 云计算 物联网 虚拟现实等新兴技术的快速发展 正在深刻改变着教育的形态和模式 为了更好地满足学校师生个性化教育教学
  • 基于java的物业管理系统设计与实现

    基于java的物业管理系统设计与实现 I 引言 A 研究背景和动机 物业管理系统是指对物业进行管理和服务的系统 该系统需要具备对物业信息 人员信息 财务信息等进行管理的能力 基于Java的物业管理系统设计与实现的研究背景和动机主要体现在以下
  • 网络安全(黑客)自学启蒙

    一 什么是网络安全 网络安全是一种综合性的概念 涵盖了保护计算机系统 网络基础设施和数据免受未经授权的访问 攻击 损害或盗窃的一系列措施和技术 经常听到的 红队 渗透测试 等就是研究攻击技术 而 蓝队 安全运营 安全运维 则研究防御技术 作
  • 数据加密保障数据安全

    一 目标 1 1 预研需求 数据加密是安全领域中常用的安全措施 它们的主要作用是保护数据的机密性和完整性 以防止未经授权的访问 窃取 篡改或泄漏敏感信息 数据传输加密 保护敏感数据在传输过程中的安全 当数据通过网络传输时 它们可能会经过多个
  • 短信系统搭建主要因素|网页短信平台开发源码

    短信系统搭建主要因素 网页短信平台开发源码 随着移动互联网的快速发展 短信系统已成为企业和个人进行信息传递的重要工具 建立一个高效可靠的短信系统对于企业来说非常重要 下面我们将介绍一些影响短信系统搭建的主要因素 1 平台选择 在搭建短信系统
  • 全网最全(黑客)网络安全自学路线!熬夜两周整理(巨详细)

    学网络安全有什么好处 1 可以学习计算机方面的知识 在正式学习网络安全之前是一定要学习计算机基础知识的 只要把网络安全认真的学透了 那么计算机基础知识是没有任何问题的 操作系统 网络架构 网站容器 数据库 前端后端等等 可以说不想成为计算机
  • 【安全】mybatis中#{}和${}导致sql注入问题及解决办法

    0 问题 使用mybatis的时候遇到了 和 可能导致sql注入的问题 1 预先了解 1 底层通过prepareStatement对当前传入的sql进行了预编译 一个 被解析为一个参数占位符 解析之后会将String类型的数据自动加上引号
  • 【安全】Java幂等性校验解决重复点击(6种实现方式)

    目录 一 简介 1 1 什么是幂等 1 2 为什么需要幂等性 1 3 接口超时 应该如何处理 1 4 幂等性对系统的影响 二 Restful API 接口的幂等性 三 实现方式 3 1 数据库层面 主键 唯一索引冲突 3 2 数据库层面 乐
  • 2023下半年软考「单独划线」合格标准公布

    中国计算机技术职业资格网发布了 关于2023年度下半年计算机软件资格考试单独划线地区合格标准的通告 2023下半年软考单独划线地区合格标准各科目均为42分 01 官方通告 关于2023年度下半年计算机软件资格考试单独划线地区合格标准的通告

随机推荐

  • JavaScript 实现数组中的字符串按长度排序,长度一样按字母顺序排序

    以下的newar数组里的val键值排序要求 字串按长度排序 长度一样按字母顺序排序 js实现数组中的字符串按长度排序 长度一样按字母顺序排序 function sortByLenByazAZVal array array sort a b
  • MYSQL之ON DUPLICATE KEY UPDATE使用

    创建表 DROP TABLE IF EXISTS user CREATE TABLE user id int 32 NOT NULL AUTO INCREMENT COMMENT 主键id userName varchar 32 NOT N
  • 【单片机毕业设计】【mcuclub-dz-055】基于单片机的智能手环控制系统设计

    最近设计了一个项目基于单片机的智能智能手环控制系统设计 与大家分享一下 一 基本介绍 项目名 智能手环 项目编号 mcuclub dz 055 单片机类型 STM32F103C8T6 具体功能 1 通过MAX30102测量心率 血氧 2 通
  • PFQ,适用于多核处理器系统中的网络监控框架

    PFQ 是一个支持多语言的网络框架 主要用于 Linux 操作系统下进行高效的包捕获和传输 适用于多核处理器系统中的网络监控框架 PFQ 专门为多核处理器而优化 包括对多个硬件队列的网络设备优化 支持任意网络设备驱动 并提供一个脚本用来加速
  • 动态内存与静态内存的区别

    1 静态内存 静态内存是指在程序开始运行时由编译器分配的内存 它的分配是在程序开始编译时完成的 不占用CPU资源 程序中的各种变量 在编译时系统已经为其分配了所需的内存空间 当该变量在作用域内使用完毕时 系统会 自动释放所占用的内存空间 变
  • Dropout层的个人理解和具体使用

    一 Dropout层的作用 dropout 能够避免过拟合 我们往往会在全连接层这类参数比较多的层中使用dropout 在训练包含dropout层的神经网络中 每个批次的训练数据都是随机选择 实质是训练了多个子神经网络 因为在不同的子网络中
  • 解决Google CoLab使用外部文件的问题

    有时 用Google CoLab时需要用到外部的数据集 这时 可以通过代码把文件上传到CoLab上 代码如下 from google colab import files uploaded files upload for fn in up
  • 2年python从业者整理的学习经验,手把手教你如何系统有效学习python

    我是从19年开始学python的 学了近半年 从业2年时间 看网课自己练 摸爬滚打后终于找到了一套不错的学习方法 以我个人经验给零基础入门的朋友讲下应该怎么系统有效学习python 首先 python不是洪湖猛兽 普通人只要认真学肯定是能学
  • python 尝试有道翻译

    一只小白的爬虫 写了一个简单 有道翻译 记录一下 如果大家有更好的方式 方法记得分享一下哦 coding utf 8 import urllib urllib2 json url http fanyi youdao com translat
  • iview引用自定义的图标

    iview引用自定义的图标 护花使者 博客园
  • C++图书管理系统(基于结构体数组)

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 需求分析 二 代码实现 总结 前言 问题描述 要求以图书馆管理业务为背景 设计并实现一个 图书馆管理信息系统 软件 使用该系统可以方便查询图书的信息 借阅
  • 线程池为什么能维持线程不释放,随时运行各种任务?

    版权声明 本文为博主原创文章 未经博主允许不得转载 技术交流可邮 cjh94520 outlook com https blog csdn net cjh94520 article details 70545202 线程池 之前一直有这个疑
  • kd树搜索与线性搜索对比

    在做毕业设计的时候 遇到这样一个需求 给定一万五千个点 再给定一个目标点 要求离目标点的最近点 说白了就是求 最近邻 问题 传统的方式 就是从第一个点开始算距离 把一万五千个点都算完 再取最小值 但是这样的方式比较慢 所以利用了knn算法中
  • python期末复习

    python语言的特点 1 Python 是一种面向对象的解释型计算机程序设计语言 2 Python的语法十分简洁 大大地提高了开发效率 更容易维护 3 Python是一门开源的跨平台语言 拥有丰富的第三方库 标识符命名规则 1 只能包含字
  • 数字化转型之数字化和业务化论证

    引言 数据业务化的本质是数据的产品化 商业化与价值化 主要强调产品化 新业务和专业化运作 也就是以数据为主要内容和生产原料 打造数据产品 按照产品定义 研发 定价 包装和推广的套路进行商业化运作 把数据产品打造成能为企业创收的新兴业务 数字
  • Java八股文 v2.0

    一 Java基础 1 Java有哪些基本数据类型 byte short int long float double char boolean 2 Java类型转换 从小类型到大类型 直接转 从大类型到小类型 需要在强制类型转换的变量前面加上
  • 服务器系统手册,服务器安全使用手册

    系统安全 1 保存好系统密码并定期进行修改 2 开启系统自动更新功能 3 开启杀毒软件 经常更新病毒库 定期扫描病毒 4 做好网站的注入漏洞检查 做好网站目录访问权限控制 5 慎重安装硬件驱动 以免损坏操作系统 6 不要安装路由和远程访问服
  • 傅里叶分析之掐死教程

    作者 韩昊 知乎 Heinrich 微博 花生油工人 知乎专栏 与时间无关的故事 谨以此文献给大连海事大学的吴楠老师 柳晓鸣老师 王新年老师以及张晶泊老师 转载的同学请保留上面这句话 谢谢 如果还能保留文章来源就更感激不尽了 更新于 201
  • python创建虚拟环境报错_centos8使用python3自带的venv创建虚拟环境报错问题

    一 背景 damon localhost python3 m venv pdf env Error Command home damon pdf env bin python3 Im ensurepip upgrade default pi
  • IPsec协议过程

    版权声明 如有需要 可供转载 但请注明出处 https blog csdn net City of skey article details 86618784 目录 1 ipsec协议简介 2 IPSec工作模式 2 1 传输模式 2 2