当前位置: 首页 > news >正文

IPsec简单介绍

VPN相关介绍

VPN:虚拟私有网络

  • 例如:像这种不加密的

    • PPTP
    • L2TP
      ------- 一般用在windows server 服务端(但是大多数企业不用这个)
  • 假如总公司内部的PC1要去访问分公司内部的PC2(一般用在公司服务器有内网的服务)
    image.png

    • 目的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

image.png

  • 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)

IPSec VPN理解重点

IPSec VPN技术是由两种技术共同组成,因此该技术的实施过程分成两个步骤来完成,第一是要配置VPN,第二是要配置IPSec

VPN的建立即为一个网络的建立,而网络的建立除去实际链路的连接以外就是路由的建立过程,因此配置VPN就是配置路由的过程.这里的路由指的是站点的内网路由

IPsec的配置就是利用已经存在的安全协议组来协商如何安全的交互数据;

数据传输如何才能安全

  • 私密性(加密数据包,防止非法用户截取并且获取数据包内容)
  • 完整性(确保数据包在传输过程中不会被非法用户篡改)
  • 源认证(确保数据包发送者的真实身份,是否为合法用户)
  • 不可否认性(发送者不可否认曾经发送过该数据)

网络攻击的主要手段

窃听攻击 Eavesdrop ping

  • 数据交互过程中,攻击者通过一些协议分析工具获取到数据信息,因为常见的数据交互都是通过明文方式完成的,比如常见的协议或应用:Telnet,FTP,HTTP等等
  • 解决方法:对原始的明文数据进行加密(Encryption)
  • 如下实验,当R1 telnet R2,输入username cisco password cisco时,所有信息都是明文显示,因此容易被攻击者截获并且获知
  • image.png
    • SW配置:
      • monitor session 1 source interface Et0/0
      • monitor session 1 destination interface Et0/2
    • 然后用R1telnet到R1,用wireshark抓包SW的e0/2端口
      • image.png | 1000

欺骗攻击 Spoofing

  • 攻击者通过伪装,假冒成正常用户于对端进行通信

  • 解决方法:身份认证(Authentication Identify)

  • 理解重点:数据加密与身份认证的关系

  • 数据包即便在传输过程中进行了加密处理,但是仍然需要在接受方发送方进行身份认证

  • 在IPSec实际使用过程中,接受方会先解密,在认证,保护认证信息的安全

  • 例如: image.png

  • R1去往R2的数据信息加密了,PC抓取到的信息就看不到里面的数据了,但是还是要攻击你

    • PC抓取R1去往R2的数据包,并且复制一份发给R2,让R2以为PC就是R1,之后回包就回给PC

中间人攻击 Man-in-the-Middle Attack

  • 攻击者针对通信双方,分别假冒对端身份,与通信双方分别建立数据通信,从而让用户认为通信是在合法的用户之间进行的

  • 因为有加密与身份认证过程的错在,因此要想实现中间人攻击,首先就要破坏加密和身份认证过程

  • 最典型的一种方法为重放攻击(Relay Attack),攻击者发送一个目的主机已经收到过的数据包,从而完成欺骗

  • 解决方法:通过加入序列号或者是一次性随机数(random)来防止重放攻击,从而阻止中间人攻击:例如:TCP连接,PPP CHAP认证

  • tcp连接防范机制

    • 正常发数据,数据都会有一个sequence序列号
    • image.png
    • R1给R2发送数据,序列号假如为30,PC抓取到这个序列号为30的数据,再发送数据给R2序列号也为30,但有可能R1给R2通信的数据不是30号的数据或者应用层处理数据没有处理到这个层面,会导致失败
    • 所以sequence序列号不止运用再tcp重传,也能够防范中间人攻击
  • 中间人攻击典型案例
    黑客攻击PC,让PC来攻击server

    • 黑客pingPC:
      image.png
      • 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
      • 解决方法:
        • 在ISP连接黑客的接口上打上一条:ip verify unicast reverse-path
        • 开启单播逆向路径转发(URPF Unicast Reverse Path Forwarding)
          • 它是基于cdf表的查询
            • show ip cef 查看思科快速转发表
            • 它会记录每一个接口对应的网段,会有一个校验
  • PPP的random防止重放攻击
    image.png

    1. R2给R1发送一个拨号的请求
    2. R1收到拨号请求之后会给R2回复三个信息
      1. 主机名(username):R1
      2. id号(每发出一次就有一个id号,比如第一次id是1,第二次就是2):1
      3. random:A
    3. R2收到回复消息之后,会把对方的random:A提取出来,然后找到自己的密码B,把两者合在一起做一个hash
      hash
      A+B
      C
    4. R2收到回复消息后,还会给R1回复三个信息
      1. 主机名(username):R2(这个不是电脑名,而是办宽带给你的账户名)
      2. id号:1
      3. random:C
    5. R1收到之后会查看主机名是谁(R2),然后查看自己的数据库,看R2对应的密码是谁,把自己之前的随机数(A)和R2对应的密码(B)结合做一个hash
      hash
      B+A
      D
      查看D和C的hash值是否一样

如何具体实现私密性

  • 为了实现数据传输的私密性,需要对数据启用加密,而加密则需要以来加密学来完成
  • 加密学由两部分构成:算法与密钥
  • 古典加密学主要研究算法,现代加密学主要研究密钥
  • 算法是公开的,密钥是不公开的(密钥是基于不同的密钥,最终加密的方式是不同的)

移位式(Transposition Cipher)

  • 将字母重新排列的方法来加密
  • 数据明文:thinkmo is a good place
  • 加密密钥:5(五个字母为一分,之后再竖从上往下看)
  • image.png
  • 加密密文:tmgl hooa iioc nsde kap

替代式(Subsititution Cipher)

  • 将一组字母换成其他字母或符号
  • 数据明文:thinkmo is a good place 加密密钥:2
  • 加密算法:用每个字母之后的第N个字母替换
  • 加密密文:vjkpmq ku c iqqf rnceg

维吉尼亚算法

image.png | 500
明文和密钥的x,y轴对应来看

  • 数据明文:thinkmoisagoodplace
  • 加密密钥:goodgoodgoodgoodgo
  • 加密算法:密码表
  • 加密密文:zvwqqaclyowrurdzdis

理解重点

  • 针对现代加密学中的算法与密钥,算法式可以公开的,但是密钥必须是私密的
  • 加密需要key,解密同样需要key
  • 一个算法是否可靠,取决于算法的先进性,同时也取决于key的长度

加密算法的分类

对称加密算法

image.png

  • 代表算法: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 的基本原理,特别是其倒排…...

Python爬虫实战:研究MechanicalSoup库相关技术

一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?

在建筑行业&#xff0c;项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升&#xff0c;传统的管理模式已经难以满足现代工程的需求。过去&#xff0c;许多企业依赖手工记录、口头沟通和分散的信息管理&#xff0c;导致效率低下、成本失控、风险频发。例如&#…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好&#xff0c;总是藏在那些你咬牙坚持的日子里。 硬件&#xff1a;OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写&#xff0c;"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

破解路内监管盲区:免布线低位视频桩重塑停车管理新标准

城市路内停车管理常因行道树遮挡、高位设备盲区等问题&#xff0c;导致车牌识别率低、逃费率高&#xff0c;传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法&#xff0c;正成为破局关键。该设备安装于车位侧方0.5-0.7米高度&#xff0c;直接规避树枝遮…...

DAY 45 超大力王爱学Python

来自超大力王的友情提示&#xff1a;在用tensordoard的时候一定一定要用绝对位置&#xff0c;例如&#xff1a;tensorboard --logdir"D:\代码\archive (1)\runs\cifar10_mlp_experiment_2" 不然读取不了数据 知识点回顾&#xff1a; tensorboard的发展历史和原理tens…...

js 设置3秒后执行

如何在JavaScript中延迟3秒执行操作 在JavaScript中&#xff0c;要设置一个操作在指定延迟后&#xff08;例如3秒&#xff09;执行&#xff0c;可以使用 setTimeout 函数。setTimeout 是JavaScript的核心计时器方法&#xff0c;它接受两个参数&#xff1a; 要执行的函数&…...

验证redis数据结构

一、功能验证 1.验证redis的数据结构&#xff08;如字符串、列表、哈希、集合、有序集合等&#xff09;是否按照预期工作。 2、常见的数据结构验证方法&#xff1a; ①字符串&#xff08;string&#xff09; 测试基本操作 set、get、incr、decr 验证字符串的长度和内容是否正…...