IPsec简单介绍
VPN相关介绍
VPN:虚拟私有网络
-
例如:像这种不加密的
- PPTP
- L2TP
------- 一般用在windows server 服务端(但是大多数企业不用这个)
-
假如总公司内部的PC1要去访问分公司内部的PC2(一般用在公司服务器有内网的服务)
- 目的ip:172.16.1.1
- 目的ip:192.168.1.1
- 路由器传递分两种数据:
- 管理型数据:路由表,标签,LSA,hello包等为了通信而传递的数据
- 业务型数据:ERP,OA,ftp,http等真实传输的数据
- 要确保两边的内网的数据要像局域网一样能够通信(向运营商申请专线)
- 早期专线业务:FR(帧中继)专线,带宽只有1.544M,一根线一根线的拉,总部牵一根线直接到分部,主要是安全性和保密性好(现在已经没有了)
- 现在专线业务:MPLS专线(用于大型的跨国企业,异地化企业等),并不是物理线路实现专线,而是通过逻辑上的标签(路由是给这个MPLS打底层的);最近很火的专线是SDN(把路由器变成智能的,通过一个控制器来控制流量的分发)
- 跨越式的VPN(企业自己弄,不申请专线的情况下)
- 此时PC1去PC2目的ip和源ip都是内网的,我们可以在这个外面再打一个公网ip,运营商接受到我们这个数据,他看到的就是公网这一层帮我们转发(对于运营商来说那边是察觉不到的,对于我们只是给地址打上了一个双报头)
IPSec相关介绍
跨越式VPN和IPSec两者有什么关系?
- VPN是VPN,IPsec是IPSec
- IPSec是基于ip层的一个加密,也就是说基于VPN的基础上,把这个数据给加密了
- IPSec不是一个算法,也不是一个加密方式,它是一个协议组(协议组里面有很多协议)
什么是IPSec VPN
IPSec早期是针对ipv6设计的,后来针对ipv4做了一个IPSec的拓展版本(IPSec VPN)
- IPSec:Internet Protocol Security 基于IP协议的安全
- VPN:Virtual Private Network 虚拟专用网络
- IPSec VPN:IPSec协议组实现IP数据包传输安全的一种VPN技术
- VPN建立成功后,因为用户的数据包传输实际仍需要经过公共网络,因此存在极大的安全隐患,所以需要利用IPSec技术来保证数据包传输的安全,IPSecVPN 技术要求再VPN中传输数据的同时确保数据包传输的安全性
- 从建立模型来看,IPSec VPN是一种Overlay VPN
MPLS VPN和IPSec VPN的简要区别
-
MPLS VPN
- 基于标签的转发
- 数据是没有被加密的
- 安全(数据被截取到了会不会被爆破):
- 私密(数据会不会被截取到):从某种意义上来说基于物理转发
- MPLS一般只能保障私密性和转发速度,安全性是不能保障的,因为数据是没有被加密的
-
IPSec VPN
- 既针对于数据安全性,又针对于数据私密性,它都是有一个控制机制的(算法)
传统的数据通信
一般我们都使用NAT
- R1的内网访问R2的内网,为什么访问不过去
- 目的ip:172.16.1.1
- 源ip:192.168.1.1
- R1内部数据出来的时候经过R1,转化的是源ip地址到达运营商,目标地址还是内网的,还是没办法转发
- R1的内网访问R2的内网,有没有一种方式能够访问过去(不做专线,也不做VPN,还要经过SP)
- 用NAT就可以
- NAT有一个outside功能,可以转换目的地址,把目的ip转换成对方的公网地址,运营商此时就可以转发,当数据到达R2之后,R2会针对过来的数据转发到内部
- NAT是非常耗费资源内存的
- 每条NAT耗费内存(64k)
- 设备内的存储器
- RAM(内存)
- flash(相当于C盘,系统盘)
- ROM(存放bootstrap)
- nvram(存config)
- 用NAT就可以
IPSec VPN理解重点
IPSec VPN技术是由两种技术共同组成,因此该技术的实施过程分成两个步骤来完成,第一是要配置VPN,第二是要配置IPSec
VPN的建立即为一个网络的建立,而网络的建立除去实际链路的连接以外就是路由的建立过程,因此配置VPN就是配置路由的过程.这里的路由指的是站点的内网路由
IPsec的配置就是利用已经存在的安全协议组来协商如何安全的交互数据;
数据传输如何才能安全
- 私密性(加密数据包,防止非法用户截取并且获取数据包内容)
- 完整性(确保数据包在传输过程中不会被非法用户篡改)
- 源认证(确保数据包发送者的真实身份,是否为合法用户)
- 不可否认性(发送者不可否认曾经发送过该数据)
网络攻击的主要手段
窃听攻击 Eavesdrop ping
- 数据交互过程中,攻击者通过一些协议分析工具获取到数据信息,因为常见的数据交互都是通过明文方式完成的,比如常见的协议或应用:Telnet,FTP,HTTP等等
- 解决方法:对原始的明文数据进行加密(Encryption)
- 如下实验,当R1 telnet R2,输入username cisco password cisco时,所有信息都是明文显示,因此容易被攻击者截获并且获知
-
- SW配置:
- monitor session 1 source interface Et0/0
- monitor session 1 destination interface Et0/2
- 然后用R1telnet到R1,用wireshark抓包SW的e0/2端口
- SW配置:
欺骗攻击 Spoofing
-
攻击者通过伪装,假冒成正常用户于对端进行通信
-
解决方法:身份认证(Authentication Identify)
-
理解重点:数据加密与身份认证的关系
-
数据包即便在传输过程中进行了加密处理,但是仍然需要在接受方发送方进行身份认证
-
在IPSec实际使用过程中,接受方会先解密,在认证,保护认证信息的安全
-
例如:
-
R1去往R2的数据信息加密了,PC抓取到的信息就看不到里面的数据了,但是还是要攻击你
- PC抓取R1去往R2的数据包,并且复制一份发给R2,让R2以为PC就是R1,之后回包就回给PC
中间人攻击 Man-in-the-Middle Attack
-
攻击者针对通信双方,分别假冒对端身份,与通信双方分别建立数据通信,从而让用户认为通信是在合法的用户之间进行的
-
因为有加密与身份认证过程的错在,因此要想实现中间人攻击,首先就要破坏加密和身份认证过程
-
最典型的一种方法为重放攻击(Relay Attack),攻击者发送一个目的主机已经收到过的数据包,从而完成欺骗
-
解决方法:通过加入序列号或者是一次性随机数(random)来防止重放攻击,从而阻止中间人攻击:例如:TCP连接,PPP CHAP认证
-
tcp连接防范机制
- 正常发数据,数据都会有一个sequence序列号
- R1给R2发送数据,序列号假如为30,PC抓取到这个序列号为30的数据,再发送数据给R2序列号也为30,但有可能R1给R2通信的数据不是30号的数据或者应用层处理数据没有处理到这个层面,会导致失败
- 所以sequence序列号不止运用再tcp重传,也能够防范中间人攻击
-
中间人攻击典型案例
黑客攻击PC,让PC来攻击server- 黑客pingPC:
- ping 30.1.1.2 source 20.1.1.2
- 目的ip:30.1.1.2
- 源ip:~
10.1.1.2~ 20.1.1.2(伪装源ip,把自己伪装成PC) - PC收到包之后,回包就会回给server
- 黑客的配置:
- int lo 0
- ip add 20.1.1.2 255.255.255.0
- int lo 0
- 解决方法:
- 在ISP连接黑客的接口上打上一条:ip verify unicast reverse-path
- 开启单播逆向路径转发(URPF Unicast Reverse Path Forwarding)
- 它是基于cdf表的查询
- show ip cef 查看思科快速转发表
- 它会记录每一个接口对应的网段,会有一个校验
- 它是基于cdf表的查询
- 黑客pingPC:
-
PPP的random防止重放攻击
- R2给R1发送一个拨号的请求
- R1收到拨号请求之后会给R2回复三个信息
- 主机名(username):R1
- id号(每发出一次就有一个id号,比如第一次id是1,第二次就是2):1
- random:A
- R2收到回复消息之后,会把对方的random:A提取出来,然后找到自己的密码B,把两者合在一起做一个hash
- R2收到回复消息后,还会给R1回复三个信息
- 主机名(username):R2(这个不是电脑名,而是办宽带给你的账户名)
- id号:1
- random:C
- R1收到之后会查看主机名是谁(R2),然后查看自己的数据库,看R2对应的密码是谁,把自己之前的随机数(A)和R2对应的密码(B)结合做一个hash
如何具体实现私密性
- 为了实现数据传输的私密性,需要对数据启用加密,而加密则需要以来加密学来完成
- 加密学由两部分构成:算法与密钥
- 古典加密学主要研究算法,现代加密学主要研究密钥
- 算法是公开的,密钥是不公开的(密钥是基于不同的密钥,最终加密的方式是不同的)
移位式(Transposition Cipher)
- 将字母重新排列的方法来加密
- 数据明文:thinkmo is a good place
- 加密密钥:5(五个字母为一分,之后再竖从上往下看)
- 加密密文:tmgl hooa iioc nsde kap
替代式(Subsititution Cipher)
- 将一组字母换成其他字母或符号
- 数据明文:thinkmo is a good place 加密密钥:2
- 加密算法:用每个字母之后的第N个字母替换
- 加密密文:vjkpmq ku c iqqf rnceg
维吉尼亚算法
明文和密钥的x,y轴对应来看
- 数据明文:thinkmoisagoodplace
- 加密密钥:goodgoodgoodgoodgo
- 加密算法:密码表
- 加密密文:zvwqqaclyowrurdzdis
理解重点
- 针对现代加密学中的算法与密钥,算法式可以公开的,但是密钥必须是私密的
- 加密需要key,解密同样需要key
- 一个算法是否可靠,取决于算法的先进性,同时也取决于key的长度
加密算法的分类
对称加密算法
- 代表算法:DES(淘汰),3DES,AES,RC4(主要用于SSL VPN)
- 特点:加密和解密使用相同的密钥
- 优点:速度快,安全,紧凑(加密后对原始数据长度几乎不改变,例如加密前为100k,加密后也是100k)
- 缺点:密钥的安全交换以及管理是个问题
- 对称加密算法一般用来进行数据流的加密(业务型数据)
相关文章:
IPsec简单介绍
VPN相关介绍 VPN:虚拟私有网络 例如:像这种不加密的 PPTPL2TP ------- 一般用在windows server 服务端(但是大多数企业不用这个) 假如总公司内部的PC1要去访问分公司内部的PC2(一般用在公司服务器有内网的服务&#…...
颠覆级AI:10秒生成超清视频
颠覆级AI:10秒生成超清视频 Pyramid-Flow 是一款开源 AI 视频生成神器💻,只需文字或图片即可极速生成高清视频🎥!高效、高清、资源需求低,适合创作广告、教学视频等多种用途🚀,快来…...
《西安科技大学学报》
《西安科技大学学报》主要刊载安全科学与工程、矿业工程、建筑与土木工程、地质与环境工程、测绘工程、材料科学与工程、化学与化工、机械工程、电气工程及自动化、通信与信息工程、计算机科学与工程、矿业经济管理等专业领域内具有创新性的学术论文和科研成果。 来稿必须符合以…...
redis详细教程(2.List教程)
List是一种可以存储多个有序字符串的数据类型,其中的元素按照顺序排列(可以重复出现),可以通过数字索引来访问列表中的元素,索引可以从左到右或者从右到左。 Redis 列表可以通过两种方式实现:压缩列表&…...
电子电气架构 --- 电气系统工程
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…...
15-4连续子串和的整除问题
问题描述 小M是一个五年级的小学生,今天他学习了整除的知识,想通过一些练习来巩固自己的理解。他写下了一个长度为 n 的正整数序列 a_0, a_1, ..., a_{n-1},然后想知道有多少个连续子序列的和能够被一个给定的正整数 b 整除。你能帮小M解决这…...
Spring源码:Bean创建、Bean获取
Bean是怎么被创建,如何获取Bean,基于Spring 5.3.24版本,Spring Boot 可用 2.7.6 结论: 创建:非懒加载的单实例bean在容器创建的时候创建,通过beanFactory的doGetBean方法,利用反射进行创建&…...
MetaArena推出《Final Glory》:引领Web3游戏技术新风向
随着区块链技术的日益成熟,Web3游戏成为了游戏产业探索的新方向,将去中心化经济与虚拟世界结合在一起,形成了一个全新的生态体系。然而,尽管Web3游戏展示了令人兴奋的可能性,但其背后的技术障碍依旧严峻,特…...
玩转Shodan:深度挖掘特定漏洞与脆弱资产的实战技巧
内容预览 ≧∀≦ゞ Shodan进阶使用之发现并解锁隐藏的脆弱资产声明导语VNC未授权访问查询被黑的网站查询思科未授权设备查询MongoDB未授权访问搜索后台管理页面结语 Shodan进阶使用之发现并解锁隐藏的脆弱资产 声明 笔记内容参考了B站UP主泷羽sec的学习视频,如有侵…...
Java程序设计:spring boot(8)——API ⽂档构建⼯具 - Swagger2
目录 1 环境整合配置 2 Swagger2 常⽤注解说明 2.1 Api 2.2 ApiOperation 2.3 ApiImplicitParams 2.4 ApiResponses 2.5 ApiModel 3 用户模块注解配置 3.1 Controller 使用注解 3.2 JavaBean 使用注解 4 Swagger2 接⼝⽂档访问 由于 Spring Boot 能够快速开发、便捷…...
【Python】if选择判断结构详解:逻辑分支与条件判断
目录 🍔 if选择判断结构作用 1.1 if选择判断结构的基本语法 1.2 if选择结构案例 1.3 if...else...结构 1.4 if...elif...else多条件判断结构 1.5 if嵌套结构 🍔 综合案例:石头剪刀布 2.1 需求分析 2.2 代码实现 2.3 随机出拳 &…...
邮件系统SSL加密传输,保护你的电子邮件免受网络威胁
在互联网的浪潮中,企业数字化转型的步伐不断加快。企业邮箱作为数字化应用的重要组成部分,已成为员工沟通、协同工作和企业管理的关键工具。但是在公共网络安全性普遍较弱的背景下,黑客容易侵入企业网络,监控流量,截获…...
Redis_写时复制(cow)
Redis会根据配置,每隔一段时间中对Redis服务中当下的数据集进行快照。配置自动生成rdb文件,后台使用的是bgsave方式。 save 60 1000 //关闭RDB只需要将所有的save保存策略注释掉即可Redis借助操作系统提供的写时复制技术(Copy-On-Write, COW…...
【mysql进阶】4-5. InnoDB 内存结构
InnoDB 内存结构 1 InnoDB存储引擎中内存结构的主要组成部分有哪些? 🔍 分析过程 从官⽹给出的InnoDB架构图中可以找到答案 InnoDB存储引擎架构链接:https://dev.mysql.com/doc/refman/8.0/en/innodb-architecture.html ✅ 解答问题 InnoD…...
从零入门扣子Bot开发
从零入门扣子Bot开发 工作流简单介绍问题思考工作流实例 图像流简单介绍瘦脸图像流的设计创建图像流设计流程 总结参考链接 工作流简单介绍 工作流起源于生产组织和办公自动化领域,是指在计算机应用环境下,对业务过程的部分或整体进行自动化处理。它通过…...
中药是怎么计价的 复制药方文本划价系统操作教程
一、概述 【软件资源文件下载可以点文章最后卡片】 通过复制药方文本,快速划价并计算出总金额。 可以保存记录,如日期,客户名称,药方名称,金额等,便于查询统计或导出表格。 中药划价系统怎么收费 中药是…...
怎么做网站?
现代网站建设涵盖了多个方面,远不仅仅是简单的网站制作。如果您有兴趣创建网站或者想了解如何建立一个成功的网站,那么您需要了解众多与之相关的关键要素。本文将为您详细介绍这些要素。 选域名:域名是您网站的标识,因此选择一个…...
Centos Stream 9部署Zabbix7.0LTS
目录 1. 系统环境1.1 编辑配置文件/etc/yum.repos.d/epel.repo1.2 安装Zabbix存储库1.3 安装Zabbix server,Web前端,agent 2. MySQL/MariaDB 数据库2.1安装和配置 MySQL/MariaDB 数据库2.2 创建初始数据库2.3 导入初始架构和数据,系统将提示您…...
深入理解Allan方差:用体重数据分析误差的时间尺度与稳定性
文章目录 1. 什么是Allan方差?Allan方差的特点 2. Allan方差与传统方差的区别3. 用体重数据举例分析波动性场景A:体重变化较平稳场景B:体重变化波动较大 4. Allan方差的计算公式与详细步骤5. 不同时间块长度下的Allan方差计算场景A的Allan方差…...
Elasticsearch 解析:倒排索引机制/字段类型/语法/常见问题
Elasticsearch 是一个分布式的开源搜索引擎,广泛用于全文搜索、分析和数据存储。它基于 Apache Lucene 构建,支持 RESTful 风格的 API,使得开发者能够高效地存储和检索数据。本文将详细讲解 Elasticsearch 的基本原理,特别是其倒排…...
数字后端零基础入门系列 | Innovus零基础LAB学习Day5
###Module 12 RC参数提取和时序分析 数字后端零基础入门系列 | Innovus零基础LAB学习Day4 数字后端零基础入门系列 | Innovus零基础LAB学习Day3 数字后端零基础入门系列 | Innovus零基础LAB学习Day2 数字后端零基础入门系列 | Innovus零基础LAB学习Day1 ###LAB12-1 这个章节…...
Redis 内存回收策略小结
Redis 内存回收策略 及时回收内存中不需要的数据,能有效地保持性能和防止内存溢出。Redis内存回收主要有两种场景 删除过期的键值对内存使用达到maxmemory时触发回收策略 删除过期的键值对 惰性删除: 在查询时如果发现 该键值对已经过期则执行删除操作…...
React常用前端框架合集
React 是 Facebook 开发的一款用于构建用户界面的 JavaScript 库。由于其高效、灵活的特性,React 成为了目前最流行的前端框架之一。为了帮助开发者更好地利用 React 构建应用,市场上涌现了许多优秀的辅助工具和框架。本文将详细介绍几个常用的 React 前…...
python对文件的读写操作
任务:读取文件夹下的批量txt数据,并将其写入到对应的word文档中。 txt文件中包含:编号、报告内容和表格数据。写入到word当中:编号、报告内容、表格数据、人格雷达图以及对应的详细说明(详细说明是根据表格中的标识那一列中的加号…...
Redis工具类(解决缓存穿透、缓存击穿)
文章目录 前言IBloomFilterObjectMapUtilsCacheClient使用示例具体业务的布隆过滤器控制层服务层 前言 该工具类包含以下功能: 1.将任意对象存储在 hash 类型的 key 中,并可以设置 TTL 2.将任意对象存储在 hash 类型的 key 中,并且可以设置…...
Air780E量产binpkg文件的获取方法
Air780E量产binpkg文件如何获取呢?操作方法如下。 一、背景 最近luatos开发客户增多,客户在量产烧录的时候需要binpkg文件,但是有些客户不知道binpkg文件是什么,在哪里获取,是否可以用soc文件提取出来,使…...
C++STL之stack
1.stack的使用 函数说明 接口说明 stack() 构造空的栈 empty() 检测 stack 是否为空 size() 返回 stack 中元素的个数 top() 返回栈顶元素的引用 push() 将元素 val 压入 stack 中 pop() 将 stack 中尾部的元素弹出 2.stack的模拟实现 #include<vector> namespace abc { …...
git的学习之远程进行操作
1.代码托管GitHub:充当中央服务器仓库的角色 2.git远程进行操作 3.配置本地服务器的公钥 4.推送 5.git远程操作 pull .gitignore 6.给命令配置别名 git config --global alias.st status 7.标签管理 git tag -a [name] -m "XXX" [commit_id] 操作标签…...
蓝桥杯普及题
[蓝桥杯 2024 省 B] 好数 题目描述 一个整数如果按从低位到高位的顺序,奇数位(个位、百位、万位……)上的数字是奇数,偶数位(十位、千位、十万位……)上的数字是偶数,我们就称之为“好数”。 给定一个正整数 N N N,请计算从 1 1...
Spreadsheet导出excel
记录下常用的方法 数字转字符:Coordinate::stringFromColumnIndex(27); 输出 AA字符转数字:Coordinate::columnIndexFromString(AA); 输出27设置单元格式 eg:(设置为保留两位小数点) $sheet->getStyle($columnLetter)->getNumberFormat()->set…...
wordpress 喜欢插件/国内电商平台有哪些
一、前言 本文承接上一节:Spring_总结_03_装配Bean(二)之Java配置 上一节说到,当需要显示配置时,首选类型安全并且比XML更强大Java配置。 那什么时候使用XML配置呢? (1)维护已有XML配置 (2&…...
做亚马逊网站需要租办公室吗/网站排名查询工具有哪些
点击下面链接查看 方法1(和2结合) 方法二 终极解决方案,最后也是用这个方案给搞好的:点击查看...
用vs2012做网站案例/电商网络销售是做什么
递归遍历|非递归遍历前言一、对称二叉树二、递归与迭代1、递归回溯2、栈与迭代总结参考文献前言 二叉树的结构为root,左子树,右子树,左右子树也同时具备root,左子树和右子树,所以二叉树是一个典型的递归结构。保持递归…...
网站开发专业毕业设计/seo服务加盟
1. 前言原文发布在语雀:Mac 一键切换中英输入法方案 语雀www.yuque.com一般 mac 自带有:ABC 输入法简体拼音但是简体拼音并不足够好用,因此很多人会再加一个第三方输入法:搜狗、百度等等。从使用经验上来讲,第三方输…...
wordpress的开发者/自己建网站要多少钱
一.为什么学习节点操作 获取元素通常使用两种方式: 1.利用DOM提供的方法获取元素 document.getElementByld()document.getElementsByTagName()document.querySelector等逻辑性不强、繁琐 2.利用节点层级关系获取元素 利用父子兄节点关系获…...
wordpress url改错了/seo优化一般包括哪些
1.首先检查 有没有安装ssh rpm-qa | grep ssh 如果没有安装 yum install ssh 2.在每一台机器上执行 ssh-keygen -t rsa 会在root/.ssh/生成两个文件。(此时用的root帐户,不同的帐户是否生成的位置不一样。没有试过!)将每一台机器上…...