VPN的概述

VPN的概述

VPN --- 虚拟专用网 --- 一般指依靠ISP或者其他NSP,也可以是企业自身,提供的一条虚拟网络专线。这个虚拟的专线是逻辑上的,而不是物理上的,所以称为虚拟专用网 。---- 即使用IP机制仿真出一个私有的广域网

虚拟:用户不在需要拥有实际的长途数据线缆,而是使用公共网络资源建立自己的专用网络。

专用:可以定制最符合自身需求的网络。

核心技术:封装技术

注意:vpn不一定需要依靠运营商来搭建;vpn不一定必须要跨越公网

总结:

VPN诞生的原因 :

  1. 物理网络不适用,成本太高,并且如果位置不固定,则无法构建物理专线;

  2. 公网安全无法保证。

由于VPN的诞生,导致网络部署的灵活性大大提升。

VPN的分类

根据建设的单位不同分类
  • 企业自建的VPN专线:GRE,IPSEC,SSL VPN,L2TP --- 这种VPN构建成本较低,因为不需要支付专线的费用,仅需要承担购买VPN设备的费用。并且,在网络控制方面,也拥有更多的主动性。

  • 直接租用运营商的VPN专线:MPLS VPN。这种方式需要企业支付专线的租用费用,但是,控制,安全以及网速方面的问题都将由运营商来承担。MPLS VPN的优势在于,专线的租用成本低。

根据组网方式不同分类
  • Client to LAN(ACCESS VPN)

  • LAN to LAN

    • Intranet --- 内联网 --- 企业内部虚拟专网;Extranet --- 外联网 --- 拓展的企业内部虚拟专网。相较而言,外联网一般连接合作单位,而内联网一般连接分公司,所以,外联网的权限赋予会比较低,并且,安全把控方面会比较严格。
根据VPN技术实现的层次来进行分类

此图是基于TCP/IP模型来进行划分的。

为什么GRE工作在三层网络层??

因为GRE在原来的数据上封装了新的IP头部和协议隧道头部,而这个过程是在三层进行的,所以工作位置在网络层。

VPN的核心技术

vpn的核心技术 --- 隧道技术,而隧道技术 --- 封装技术

IPX三次网络技术。数据通过在数据其数据头部添加IP头部可以使得数据在共有网络中传输,到达目标之后重新解封装,从而获得原始数据。

VPN通过封装本身就是对数据的一种保护,而工作在不同层次的VPN,其实质就是保护其所在层次即以上的数据。注意L2TP不会保护网络接口层的数据,因为如果网络接口层数据被加密了之后,数据就无法在网络中传输,最基本的MAC地址就识别不出来,就无法传输。当然,这种保护在没有加密的情况下,并不代表安全。我们一般网络封装协议都是由三部分组成的 --- 乘客协议,封装协议,运输协议。通常可以查看乘客协议在那一层,就可以得出这个VPN技术就工作在哪一层。

VPN其他常用技术

  • 身份认证技术:身份认证是VPN技术的前提。

    • GRE VPN --- 本身不支持身份认证的。(GRE里面有个"关键字"机制。类似于ospf的认证,商量一个口令,在GRE中该措施仅是用来区分通道的)

    • L2TP VPN--- 因为他后面的乘客协议是PPP协议,所以,L2TP可以依赖PPP提供的认证,比如PAP,CHAP。

    • IPSEC VPN和SSL VPN --- 都支持身份认证

  • 加解密技术:以此来抵抗网络中的一些被动攻击。

    • 注意:加解密技术使用的实质是一个双向函数,即一个可逆的过程。和HASH算法有本质的区别加密技术也是安全通道的保障。

    • GRE VPN和L2TP VPN不支持加解密技术。通常可以结合IPSEC技术来实现加解密。

    • IPSEC VPN和SSL VPN都是支持加解密技术的。

  • 数据认证技术 --- 验货 --- 保证数据的完整性。

    • HASH --- 计算摘要值,之后,通过比对摘要值来保障完整性。

    • GRE VPN --- 可以加入校验和。但是,GRE的这种功能是可选的,两边开启之后,才会激活数据认证功能。

    • L2TP VPN --- 不支持数据认证。

    • IPSEC VPN,SSL VPN都是支持数据认证的。

  • 密钥管理技术

加密技术

  1. 古典加密技术

    • 算法保密原则

    • 凯撒密码

  2. 近、现代加密技术

    • 算法公开,密钥保密

    • 对称加密算法和非对称加密算法

对称加密算法

概念:加密和解密的过程中使用的是同一把密钥。所以,对称加密所使用的算法一定是一种双向函数,是可逆的。即包含异或运算,相同为零,不同为一(运算法则相当于不带进位的二进制加法)。

流加密

一个简单的流加密法需要一个"随机"的二进制位流作为密钥,将明文与此密钥流进行异或逻辑运算,就可生成密文,密文再与密钥进行异或逻辑运算,就可还原成明文。

主要是基于明文流(数据流)进行加密,在流加密中,我们需要使用的密钥是和明文流相同长度的一串密钥流。

常见流加密算法 --- RC4

分组加密(块加密算法)

块加密法每次作用于固定大小的位块,它对每个块执行相同的变换,从而生成相等个数的密文块。

举例子

一串数据,分成八个二级制位一组。并且规定好密钥和初始向量。假设规定11位的密钥,初始向量为110。给数据的第一组加上初始向量构成11位,然后与密钥进行异或逻辑运算,并且再结果中找出后三位与下一组构成11位,再与密钥异或逻辑运算,从而完成加密。

常见的对称加密算法

目前比较常用的对称加密算法 --- DES/3DES,AES(高级加密标准)

对称加密算法的缺点
  1. 密钥共享

    • 带外传输 --- 不方便

    • 带内传输 --- 不安全

  2. 密钥管理 --- N * N

    • 密钥太多,管理困难

非对称加密算法

非对称加密算法和对称加密算法的主要区别在于,对称加密算法加解密仅使用同一把密钥,而非对称加密算法,加密和解密使用的是不同的密钥。一把叫做公钥,另一把叫做私钥。这两把钥匙,任意一把钥匙都可以进行加密的操作,然后,需要通过另外一把钥匙来进行解密。

非对称加密算法加密过程

非对称加密算法使用的算法一定是不可逆的,取模运算(求余)

常见的非对称加密算法

常用的非对称加密算法 --- RSA

国密算法

对称加密算法和非对称加密算法对比

对称加密算法 非对称加密算法
安全性 较低 较高
速度 较慢
密钥数量 n * n n

结论:我们一般采用的做法是,在数据传输的时候,我们会选择使用对称加密算法进行加密,为了保证效率。但是,对称加密算法最主要的问题是密钥传递可能存在安全风险,所以,我们在传递密钥的时候,可以通过非对称加密算法进行加密,保证密钥传递的安全性。实现二者的互补,达到安全传输的目的加密过程.

DH算法

也可以使用DH算法(Diffie-Hellman密钥交换协议)用来分发对称密钥,但是注意DH算法不是非对称加密算法

用颜色来表示过程更清楚

身份认证以及数据认证技术

对数据经行完整性校验,我们会针对原始数据进行HASH运算,得到摘要值,之后,发送到对端,也进行相同的运算,比对摘要值。如果摘要值相同,则数据完整;如果不同,则数据不完整。而身份认证则是通过数字证书来进行认证的(或者共享密钥Pre-Shared Key,简称PSK)。

HASH算法,又叫散列函数。他的特点是

  1. 不可逆;

  2. 相同输入,相同输出;

  3. 雪崩效应;

    • 原始数据中即使存在细微的区别,也会在结果中呈现出比较明显的变化,方便,我们看出数据是否被篡改。
  4. 等长输出。

    • 不管原始数据多长,运算之后的摘要值长度是固定。(MD5可以将任意长度的输入,转换成128位的输出。)

常见HASH算法

我们可以使用私钥对摘要值进行加密,之后传递,这就形成了数字签名

经过Alice的私钥加密摘要值形成数字签名传给Bob,Bob再用同样的Hash算法对数据经行运算,得出的摘要值。然后Bob通过Alice的公钥对数字签名经行解密,得到Alice生成的摘要值与Bob生成的摘要值经行对比,从而完成数据完整性校验

这个过程只能保证公私钥配对,验证不了对方身份

注意:这整个过程只能表示Bob收到的数据,的确是他拥有公钥的这个人发送的数据,但是,你拥有公钥有没有被别人恶意篡改或者替换,这种方法是无法识别出来的,所以,这仅能实现一种数据源的检测,不能进行身份认证。同时,可以完成完整性校验。

数字证书

CA可信机构,用来提供身份信息认证的第三方机构。

通信双方需要完全信任这个第三方机构,之后,让CA为公钥作证。因为双方都信任该CA机构,所以,实现拥有这个CA机构的公钥信息。CA机构会使用自己的私钥对A的公钥和一些其他信息一起进行加密,生成数字证书。

PKI体系

PKI的组成

CA中心

即证书授予中心,或者认证授权机构,作为电子商务交易中受信任的第三方。

CA中心的作用

数据传输安全案例

  1. 原始信息HASH算法得到摘要值 ---- 为了做完整性校验。为了保证我们的摘要值在传递的过程中,不会被篡改,所以,需要使用私钥进行加密。形成数字签名。

  2. 针对原始信息,数字签名,数字证书(是用户提前向CA机构申请,获取到的通过CA机构私钥加密后的证书。里面主要包含了Alice的公钥。主要是做身份认证使用)进行加密。使用的是对称加密算法。对称机密算法需要使用对应的密钥来进行加密。

  3. 将对称加密算法的密钥通过Bob的公钥进行加密,形成密钥信封。(这里是通过非对称加密算法的方式,来传输对称密钥的。也可以使用DH算法,使双方获得对称密钥。)

  4. 将加密信息和密钥信封通过公网传递到对端Bob处。

  5. Bob首先对密钥信封进行解密。因为这个密钥信封是通过Bob的公钥进行加密的,所以,使用Bob自己的私钥就可以进行解密。解密后,将得到对称密钥。

  6. 使用对称密钥去解密加密信息。 ---- 原始数据,数字签名,数字证书

  7. 使用CA机构的公钥来解开数字证书。因为数字证书是由CA机构的私钥进行加密的,并且,Bob本身也信任CA机构,所以,自身设备上是拥有CA机构的公钥的。

  8. 解开数字证书后将得到Alice的公钥,根据Alice的公钥可以解开数字签名。因为数字签名是由Alice自己的私钥来进行加密的,所以,如果可以顺利的使用ALICE的公钥进行解密,则完成了身份认证和数据源鉴别工作。

  9. Bob自身需要对原始信息进行HASH运算,并且,数字签名解开后,里面也包含ALice发送时对原始信息进行HASH运算的摘要值,比对两次摘要值,则可完成完整性校验。

相关推荐
独行soc1 分钟前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍08-基于时间延迟的SQL注入(Time-Based SQL Injection)
数据库·sql·安全·渗透测试·漏洞挖掘
fantasy_arch8 分钟前
CPU性能优化-磁盘空间和解析时间
网络·性能优化
White_Mountain20 分钟前
在Ubuntu中配置mysql,并允许外部访问数据库
数据库·mysql·ubuntu
Code apprenticeship20 分钟前
怎么利用Redis实现延时队列?
数据库·redis·缓存
百度智能云技术站24 分钟前
广告投放系统成本降低 70%+,基于 Redis 容量型数据库 PegaDB 的方案设计和业务实践
数据库·redis·oracle
装不满的克莱因瓶26 分钟前
【Redis经典面试题六】Redis的持久化机制是怎样的?
java·数据库·redis·持久化·aof·rdb
是Dream呀2 小时前
Python从0到100(七十八):神经网络--从0开始搭建全连接网络和CNN网络
网络·python·神经网络
梦想平凡2 小时前
PHP 微信棋牌开发全解析:高级教程
android·数据库·oracle
TianyaOAO2 小时前
mysql的事务控制和数据库的备份和恢复
数据库·mysql
Ewen Seong2 小时前
mysql系列5—Innodb的缓存
数据库·mysql·缓存