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)
  • 缺点:密钥的安全交换以及管理是个问题
  • 对称加密算法一般用来进行数据流的加密(业务型数据)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/56565.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Oracle 使用位图索引 Cost降低200倍! 探讨位图索引的利与弊

一.简介 位图索引(Bitmap Index) 是 Oracle 数据库中一种特殊类型的索引,适用于低基数(Low Cardinality)列,即那些列中可选值相对较少的情况下使用。它与常规的 B-tree 索引不同,位图索引通过位…

003:无人机概述

摘要:本文介绍无人机的定义和分类、无人机系统定义、民用无人机驾驶员分类和应用领域。 一、无人机的定义和分类 1.无人机定义 无人机是一种能够在无人驾驶的条件下完成复杂空中飞行任务和各种负载任务的飞行器,可以被视为“空中机器人”。它利用先进的…

(48)MATLAB使用firls函数设计均衡器

文章目录 前言一、频域均衡器的设计二、MATLAB源代码1.firls函数与freqz函数2.MATLAB仿真源代码3.代码说明 三、仿真结果画图 前言 利用MATLAB的firls函数,根据所要求的频率向量和频响幅度向量,设计出所需的均衡器,使得包括滤波器在内的系统…

qt 构建、执行qmake、运行、重新构建、清除

qt右键功能有 构建、执行qmake、运行、重新构建、清除,下面简单介绍一下各个模块的作用。 1. 执行qmake qmake是一个工具, 它根据pro文件生成makefile文件,而makefile文件中则定义编译与连接的规则。pro文件中定义了头文件,源文件…

Spring Cache Caffeine 高性能缓存库

​ Caffeine 背景 Caffeine是一个高性能的Java缓存库,它基于Guava Cache进行了增强,提供了更加出色的缓存体验。Caffeine的主要特点包括: 高性能:Caffeine使用了Java 8最新的StampedLock乐观锁技术,极大地提高了缓存…

k8s部署使用有状态服务statefulset部署eureka集群,需登录认证

一、构建eureka集群镜像 1、编写dockerfile文件,此处基础镜像为arm版本,eureka目录中文件内容:application-dev.yml、Dockerfile、eureka-server-1.0-SNAPSHOT.jar(添加登录认证模块,文章最后附上下载连接) FROM mdsol/java8-j…

Go使用exec.Command() 执行脚本时出现:file or directory not found

使用 Go 提供的 exec.Command() 执行脚本时出现了未找到脚本的 bug,三个排查思路 : exec.Command(execName, args…) 脚本名字不允许相对路径 exec.Command(execName, args…) execName 只能有脚本名,不允许出现参数 如果你是使用 Windows …

为什么要使用网络IO内存数据库?

1.摘要 学习Redis的时候,我有个疑问:Redis缓存是内存数据库,但是它部署在独立的一个服务器上,那么应用服务器访问redis不是要通过网络吗,那么是不是还不如从本地服务器读取数据库的效率 ?结论是&#xff1a…

[图像处理] 基于CleanVision库清洗图像数据集

CleanVision是一个开源的Python库,旨在帮助用户自动检测图像数据集中可能影响机器学习项目的常见问题。该库被设计为计算机视觉项目的初步工具,以便在应用机器学习之前发现并解决数据集中的问题。CleanVision的核心功能包括检测完全重复、近似重复、模糊…

ML 系列:机器学习和深度学习的深层次总结(17)从样本空间到概率规则概率

一、说明 概率是支撑大部分统计分析的基本概念。从本质上讲,概率提供了一个框架,用于量化不确定性并对未来事件做出明智的预测。无论您是在掷骰子、预测天气还是评估金融市场的风险,概率都是帮助您驾驭不确定性的工具。本篇将讲授概率的原理和…

论文阅读:Guided Linear Upsampling

今天介绍一篇有趣的文章,Guided Linear Upsampling,基于引导的线性上采样,这是发表在 ACM transaction on Graphic 的一篇工作。 Abstract 引导上采样是加速高分辨率图像处理的一种有效方法。在本文中,文章作者提出了一种简单而…

博客搭建之路:hexo搜索引擎收录

文章目录 hexo搜索引擎收录以百度为例 hexo搜索引擎收录 hexo版本5.0.2 npm版本6.14.7 next版本7.8.0 写博客的目的肯定不是就只有自己能看到,想让更多的人看到就需要可以让搜索引擎来收录对应的文章。hexo支持生成站点地图sitemap 在hexo下的_config.yml中配置站点…

问:MySQL表过大,你有哪些优化实践?

当MySQL单表记录数过大时,数据库的CRUD(创建、读取、更新、删除)性能会明显下降。为了提升性能,我们需要采取一些优化措施。本文将详细介绍几种常见的优化方案。 1. 限定数据的范围 描述 务必禁止不带任何限制数据范围条件的查…

优先算法——移动零(双指针)

目录 1. 题目解析 2. 算法原理 3.代码实现 题目: 力扣题目链接:移动零 1. 题目解析 题目截图如下: 不过要注意,这个移动题目要求是在原数组中原地操作,不能新额外开辟一个数组来修改。 2. 算法原理 这个原理可以称之为数…

node和npm

背景(js) 1、为什么js能操作DOM和BOM? 原因:每个浏览器都内置了DOM、BOM这样的API函数 2、浏览器中的js运行环境? v8引擎:负责解析和执行js代码 内置API:由运行环境提供的特殊接口,只能在所…

Python | Leetcode Python题解之第507题完美数

题目&#xff1a; 题解&#xff1a; class Solution:def checkPerfectNumber(self, num: int) -> bool:if num 1:return Falsesum 1d 2while d * d < num:if num % d 0:sum dif d * d < num:sum num / dd 1return sum num

使用预训练的BERT进行金融领域问答

获取更多完整项目代码数据集&#xff0c;点此加入免费社区群 &#xff1a; 首页-置顶必看 1. 项目简介 本项目旨在开发并优化一个基于预训练BERT模型的问答系统&#xff0c;专注于金融领域的应用。随着金融市场信息复杂性和规模的增加&#xff0c;传统的信息检索方法难以高效…

Python 爬虫项目实战:爬取某云热歌榜歌曲

一、网络爬虫的定义 网络爬虫&#xff08;Web Crawler&#xff09;&#xff0c;也成为网页蜘蛛或者网页机器人&#xff0c;是一种按照既定规则自动浏览网络并提取信息的程序。爬虫的主要用途包括数据采集、网络索以及内容抓取等。 二、爬虫基本原理 1、种子URL&#xff1a;爬…

01 springboot-整合日志(logback-config.xml)

logback-config.xml 是一个用于配置 Logback 日志框架的 XML 文件&#xff0c;通常位于项目的 classpath 下的根目录或者 src/main/resources 目录下。 Logback 提供了丰富的配置选项&#xff0c;可以满足各种不同的日志需求。需要根据具体情况进行配置。 项目创建&#xff0…

CCF-BDCI大数据与计算智能大赛TOP4-京东生鲜

2023 CCF 大数据与计算智能大赛《线上线下全场景生鲜超市库存履约一体化决策》top4南山论剑 摘要1 数据预处理1.1 数据整合1.2 数据划分 2 特征工程2.1 静态特征2.2 动态特征 3 方案设计3.1 数据构造3.2 模型训练3.3 模型融合3.4库存分配3.5 方案对比 链接: CCFBDCI-线上线下全…