1 引言
1.1 加密技术概述
对称加密:
秘钥:加密与解密使用相同的秘钥。
缺点:秘钥是通信双方协商生成的,生成过程时明文通信,导致秘钥容易泄露。
常用算法:DES、3DES、AES。
非对称加密算法:
使用公私钥加密数据。
公私钥承兑生成、互为加解密关系。
公私钥不能互相推算。
双方交换公钥。
使用对方公钥加密以实现机密性、使用自己的私钥进行签名以实现身份验证。
常见算法:RSA、DH。
完整性算法/hash值算法:MD5、SHA。
为了防止信息泄露,可以在总部和分支机构之间搭建一条物理专网连接,但其费用会非常昂贵,此时可以考虑采用VPN的方案进行解决。
采用隧道技术:隧道两端封装、解封装,用以建立数据通道
隧道技术:隧道两端封装、解封装,用以建立数据通道
身份认证:保证接入VPN的操作人员的合法性、有效性
数据认证:数据在网络传输过程中不被非法篡改
加解密技术:保证数据在网络中传输时不被非法获取
密钥管理技术:在不安全的网络中安全地传递密钥
VPN的基本原理是利用隧道(Tunnel)技术,对传输报文进行封装,利用VPN骨干网建立专用数据传输通道,实现报文的安全传输。
隧道技术使用一种协议封装另外一种协议报文(通常是IP报文),而封装后的报文也可以再次被其他封装协议所封装。
在上图中展示的网络中,如果存在VPN隧道,则数据传输如下图所示。当分支机构员工访问总部服务器时,报文封装过程如下:
二、按VPN的协议分类:
VPN的隧道协议主要有三种,PPTP、L2TP和IPSec,其中PPTP和L2TP协议工作在OSI模型的第二层,又称为二层隧道协议;IPSec是第三层隧道协议。
(1)两端相互访问较频繁,传输的数据为机密数据,且任何用户都能访问对端内网,无需认证时,可采用IPSec方式。
(2)只有一端访问另一端,且访问的用户必须通过用户认证时,可采用L2TP方式
。如果只有一端访问另一端,传输数据为机密数据,且访问的用户必须通过用户认证,可采用L2TP over IPSec方式,安全性更高
(3)GRE over IPSec隧道和IPSec over GRE隧道都可以用来安全的传输数据,两者的区别在于对数据的封装顺序不同。GRE over IPSec在报文封装时,是先GRE封装然后再IPSec封装;IPSec over GRE在报文封装时,是先IPSec封装再GRE封装。
2、按VPN的应用分类:
(1)Access VPN(远程接入VPN):客户端到网关,使用公网作为骨干网在设备之间传输VPN数据流量;
(2)Intranet VPN(内联网VPN):网关到网关,通过公司的网络架构连接来自同公司的资源;
(3)Extranet VPN(外联网VPN):与合作伙伴企业网构成Extranet,将一个公司与另一个公司的资源进行连接。
当前比较流行的VPN技术:SSL VPN、IPSec VPN、GRE+IPSec VPN
PPTP(点对点协议)
PPTP属于点对点应用,比较适合远程的企业用户拨号到企业进行办公等应用,工作在OSI模型的第二层,只适合windows系统。
L2TP(第2等隧道协议)
第2等隧道协议(L2TP)是IETF基于L2F开发的PPTP的后续版本,工作在OSI模型的第二层。
IPSec(三层隧道协议)
第三层隧道协议,也是最常见的协议。当隧道模式使用IPSEC时,其只为通讯提供封装。使用IPSec隧道模式主要是为了与其他不支持IPSec上的L2TP或者PPTP VPN隧道技术的路由器、网关或终端系统之间的互相操作。
SSL VPN
SSL协议提供了数据私密性、端点验证、信息完整性等特性。SSL协议由许多子协议组成,其中两个主要的子协议是握手协议和记录协议(对称加密和非对称加密向结合的方式进行数据的交换)。
典型的SSL VPN应用:Open VPN,这是一个比较好的开源软件。Open VPN允许参与建立VPN的单点使用预设的私钥,第三方证书,或者用户名/密码来进行身份验证。它大量使用了OpenSSL加密库,以及SSLv3/TLSv1协议。OpenVPN能在Linux、xBSD、MacOS上运行。它并不是一个基于Web的VPN软件,也不能与IPSec及其他VPN软件包兼容。
二、IPsecVPN技术
一组协议的集合
◎是一组基于网络层的应用密码学的安全通信协议簇,是一个开放的协议簇,也考虑长远
性的要求(支持ipv4 和ipv6)
◎保护的是网络层及上层流量,主要保护tcp,udp,idmp等隧道的ip
数据包
◎属于点到点VPN ,可以在2家企业之间建立VPN隧道。
◎定义:指采用IPSec协议来实现远程接入的一种VPN技术,IPSec全称为Internet Protocol Security,在公网上为两个私有网络提供安全通信通道,通过加密通道保证连接的安全——在两个公共网关间提供私密数据封包服务。
(2)IPsecVPN优点:
可以提供安全的访问服务
◎机密性、完整性、数据源鉴别、不可否认性、抵御重放攻击
什么是重放攻击?
重放攻击,web漏洞中称会话重放漏洞,又称重播攻击、回放攻击,是指攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程,破坏认证的正确性。重放攻击可以由发起者,也可以由拦截并重发该数据的敌方进行。攻击者利用网络监听或者其他方式盗取认证凭据,之后再把它重新发给认证服务器
(3)ipsec架构/协议簇
◎传输模式
◎隧道模式
◎AH:只支持鉴别算法(完整性校验)
◎ESP:支持加密和鉴别算法
3.密钥交换管理协议(IKE):SA(安全联盟)
◎阶段一:主模式,野蛮模式(又称快速模式)
◎阶段二:配置感兴趣流
(4)传输模式
◎应用场景:用于主机之间端到端通信的数据保护
◎封装方式:不会改变原始IP包头,在原始包头后插入IPSec包头
◎AH协议
1.完整性校验(通过哈希函数(MD5、SHA1)产生的校验来保证)
2.不管是传输模式还是隧道模式都会验证整个数据报
◎ESP协议
1.加解密(使用对称加密算法DES、3DES、AES)
2.完整性校验(通过哈希函数(MD5、SHA1)产生的校验来保证)
3.ESP在传输模式下,只对数据进行加密和完整性校验
4.ESP在隧道模式下,是对整个原始报文进行加密和校验
AH在不同模式下的封装:
在传输模式下:
ESP在不同模式下的封装:
传输模式:
(5)隧道模式
◎应用场景:用于私网和私网之间通过公网进行通信,简历VPN通道
AH在不同模式下的封装
在隧道模式下封装:
ESP在不同模式下的封装
在隧道模式下封装:
(6)AH和ESP对比
区别与联系 |
AH协议 |
ESP协议 |
名字 |
验证头部协议 |
封装安全载荷协议 |
IP协议封装的协议 |
是 |
是 |
IP协议号 |
51 |
50 |
数据完整性校验 |
√全部 |
支持但不验证头 |
SPI |
32比特,用于标识有相同IP地址和相同安全协议的不同SA。由SA的创建者定义,只有逻辑意义 |
ESP头部,32位,语义与AH一致 |
序列号 |
32比特,一个单项递增的计数器,用于防止重放攻击,SA建立之初初始化为0,序列号不允许重复 |
ESP头部,32位,语义与AH一致 |
认证数据 |
摘要或者指纹,用于认证,由SA初始化时指定的算法来计算,长度=整数倍32位比特,变长(通信双方必须采用相同的HMAC算法和密钥,认证数据是HMAC算法结果,被称为数据报的完整性校验值ICV,) |
ESP验证数据,可选,选择ESP验证服务时使用,语义和AH一致(但具体验证区域不同) |
报文格式 |
AH头部+AH载荷 |
ESP头部+ESP净荷+ESP尾部(填充、填充长度和下一个头字段)+ESP验证数据(可选) |
传输模式 |
保护IP载荷 |
保护IP载荷 |
传输模式验证区域 |
IP头部+AH头部+TCP/UDP头部+数据(可变字段除外) |
ESP头部+ TCP/UDP头部+数据+ESP尾部 |
传输模式加密区域 |
无 |
ESP净荷+ESP尾部 |
隧道模式 |
保护整个IP包 |
保护整个IP包 |
隧道模式验证区域 |
新IP头部+AH头部+ IP头部+ TCP/UDP头部+数据(可变字段除外) |
ESP头部+IP头部+TCP/UDP头部+数据+ESP尾部 |
隧道模式加密区域 |
无 |
ESP净荷+ESP尾部 |
算法 |
验证 |
验证、加密(至少有一种) |
服务 |
无连接的数据完整性:通过哈希函数产生的校验来保证 |
除了AH已有的三种服务之外(可选),还提供数据包加密和数据流加密 |
与NAT的联系 |
NAT会对IP头进行修改导致AH协议下的IPsec不能穿越NAT |
如果是NAT对IP头进行修改,ESP能适用于NAT。但如果NAT为IP地址映射+端口映射(端口改变),则ESP协议下的IPSec都不能适用NAT(考虑 |