VPN的概述
VPN --- 虚拟专用网 --- 一般指依靠ISP或者其他NSP,也可以是企业自身,提供的一条虚拟网络专线。这个虚拟的专线是逻辑上的,而不是物理上的,所以称为虚拟专用网 。---- 即使用IP机制仿真出一个私有的广域网
虚拟:用户不在需要拥有实际的长途数据线缆,而是使用公共网络资源建立自己的专用网络。
专用:可以定制最符合自身需求的网络。
核心技术:封装技术
注意:vpn不一定需要依靠运营商来搭建;vpn不一定必须要跨越公网
总结:
VPN诞生的原因 :
-
物理网络不适用,成本太高,并且如果位置不固定,则无法构建物理专线;
-
公网安全无法保证。
由于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都是支持数据认证的。
-
- 密钥管理技术
加密技术
-
古典加密技术
-
算法保密原则
-
凯撒密码
-
-
近、现代加密技术
-
算法公开,密钥保密
-
对称加密算法和非对称加密算法
-
对称加密算法
概念:加密和解密的过程中使用的是同一把密钥。所以,对称加密所使用的算法一定是一种双向函数,是可逆的。即包含异或运算,相同为零,不同为一(运算法则相当于不带进位的二进制加法)。
流加密
一个简单的流加密法需要一个"随机"的二进制位流作为密钥,将明文与此密钥流进行异或逻辑运算,就可生成密文,密文再与密钥进行异或逻辑运算,就可还原成明文。
主要是基于明文流(数据流)进行加密,在流加密中,我们需要使用的密钥是和明文流相同长度的一串密钥流。
常见流加密算法 --- RC4
分组加密(块加密算法)
块加密法每次作用于固定大小的位块,它对每个块执行相同的变换,从而生成相等个数的密文块。
举例子
一串数据,分成八个二级制位一组。并且规定好密钥和初始向量。假设规定11位的密钥,初始向量为110。给数据的第一组加上初始向量构成11位,然后与密钥进行异或逻辑运算,并且再结果中找出后三位与下一组构成11位,再与密钥异或逻辑运算,从而完成加密。
常见的对称加密算法
目前比较常用的对称加密算法 --- DES/3DES,AES(高级加密标准)
对称加密算法的缺点
-
密钥共享
-
带外传输 --- 不方便
-
带内传输 --- 不安全
-
-
密钥管理 --- N * N
- 密钥太多,管理困难
非对称加密算法
非对称加密算法和对称加密算法的主要区别在于,对称加密算法加解密仅使用同一把密钥,而非对称加密算法,加密和解密使用的是不同的密钥。一把叫做公钥,另一把叫做私钥。这两把钥匙,任意一把钥匙都可以进行加密的操作,然后,需要通过另外一把钥匙来进行解密。
非对称加密算法加密过程
非对称加密算法使用的算法一定是不可逆的,取模运算(求余)
常见的非对称加密算法
常用的非对称加密算法 --- RSA
国密算法
对称加密算法和非对称加密算法对比
对称加密算法 | 非对称加密算法 | |
---|---|---|
安全性 | 较低 | 较高 |
速度 | 块 | 较慢 |
密钥数量 | n * n | n |
结论:我们一般采用的做法是,在数据传输的时候,我们会选择使用对称加密算法进行加密,为了保证效率。但是,对称加密算法最主要的问题是密钥传递可能存在安全风险,所以,我们在传递密钥的时候,可以通过非对称加密算法进行加密,保证密钥传递的安全性。实现二者的互补,达到安全传输的目的加密过程.
DH算法
也可以使用DH算法(Diffie-Hellman密钥交换协议)用来分发对称密钥,但是注意DH算法不是非对称加密算法。
用颜色来表示过程更清楚
身份认证以及数据认证技术
对数据经行完整性校验,我们会针对原始数据进行HASH运算,得到摘要值,之后,发送到对端,也进行相同的运算,比对摘要值。如果摘要值相同,则数据完整;如果不同,则数据不完整。而身份认证则是通过数字证书来进行认证的(或者共享密钥Pre-Shared Key,简称PSK)。
HASH算法,又叫散列函数。他的特点是
-
不可逆;
-
相同输入,相同输出;
-
雪崩效应;
- 原始数据中即使存在细微的区别,也会在结果中呈现出比较明显的变化,方便,我们看出数据是否被篡改。
-
等长输出。
- 不管原始数据多长,运算之后的摘要值长度是固定。(MD5可以将任意长度的输入,转换成128位的输出。)
常见HASH算法
我们可以使用私钥对摘要值进行加密,之后传递,这就形成了数字签名。
经过Alice的私钥加密摘要值形成数字签名传给Bob,Bob再用同样的Hash算法对数据经行运算,得出的摘要值。然后Bob通过Alice的公钥对数字签名经行解密,得到Alice生成的摘要值与Bob生成的摘要值经行对比,从而完成数据完整性校验
这个过程只能保证公私钥配对,验证不了对方身份
注意:这整个过程只能表示Bob收到的数据,的确是他拥有公钥的这个人发送的数据,但是,你拥有公钥有没有被别人恶意篡改或者替换,这种方法是无法识别出来的,所以,这仅能实现一种数据源的检测,不能进行身份认证。同时,可以完成完整性校验。
数字证书
CA可信机构,用来提供身份信息认证的第三方机构。
通信双方需要完全信任这个第三方机构,之后,让CA为公钥作证。因为双方都信任该CA机构,所以,实现拥有这个CA机构的公钥信息。CA机构会使用自己的私钥对A的公钥和一些其他信息一起进行加密,生成数字证书。
PKI体系
PKI的组成
CA中心
即证书授予中心,或者认证授权机构,作为电子商务交易中受信任的第三方。
CA中心的作用
数据传输安全案例
-
原始信息HASH算法得到摘要值 ---- 为了做完整性校验。为了保证我们的摘要值在传递的过程中,不会被篡改,所以,需要使用私钥进行加密。形成数字签名。
-
针对原始信息,数字签名,数字证书(是用户提前向CA机构申请,获取到的通过CA机构私钥加密后的证书。里面主要包含了Alice的公钥。主要是做身份认证使用)进行加密。使用的是对称加密算法。对称机密算法需要使用对应的密钥来进行加密。
-
将对称加密算法的密钥通过Bob的公钥进行加密,形成密钥信封。(这里是通过非对称加密算法的方式,来传输对称密钥的。也可以使用DH算法,使双方获得对称密钥。)
-
将加密信息和密钥信封通过公网传递到对端Bob处。
-
Bob首先对密钥信封进行解密。因为这个密钥信封是通过Bob的公钥进行加密的,所以,使用Bob自己的私钥就可以进行解密。解密后,将得到对称密钥。
-
使用对称密钥去解密加密信息。 ---- 原始数据,数字签名,数字证书
-
使用CA机构的公钥来解开数字证书。因为数字证书是由CA机构的私钥进行加密的,并且,Bob本身也信任CA机构,所以,自身设备上是拥有CA机构的公钥的。
-
解开数字证书后将得到Alice的公钥,根据Alice的公钥可以解开数字签名。因为数字签名是由Alice自己的私钥来进行加密的,所以,如果可以顺利的使用ALICE的公钥进行解密,则完成了身份认证和数据源鉴别工作。
-
Bob自身需要对原始信息进行HASH运算,并且,数字签名解开后,里面也包含ALice发送时对原始信息进行HASH运算的摘要值,比对两次摘要值,则可完成完整性校验。