1.1 背景
广域网存在各种安全隐患
网上传输的数据有被窃听的风险
网上传输的数据有被篡改的危险
通信双方有被冒充的风险
1.2 VPN概述
1.2.1 Vpn定义
- virtual private network虚拟专用网
- 在两个网络实体之间建立的一种受保护的链接
通过使用加密技术防止数据被窃取
通过数据完整性验证防止数据被破坏、篡改
通过认证机制实现通信方身份确认,来防止通信数据被截获和回放
1.2.2 Vpn的模式
- 传输模式Transport mode
传输速率快。
源端到目的端数据使用原有的ip地址。
传输的实际数据被封装在vpn报文中
虽然无法破解数据内容,但却可以知道通信双方的地址信息
- 隧道模式tunnel mode
整个三层数据报文封装在vpn数据内
最后封装后的数据报文添加新的IP包头
无法破解内容,也无法知道双方的通信地址
1.2.3 VPN的类型
- 站点到站点vpn
通常指局域网之间(L2L)的通信流量
- 远程访问vpn
Vpn连接的一端为移动pc(IP地址经常变换),另一端为站点。
1.3 Vpn技术
- Vpn采用四项技术来保证安全
隧道技术tunneling
加解密技术
密钥管理技术 key manage-ment
使用者与设备身份认证技术authentication
1.3.1 隧道技术
- 隧道技术定义
是一种利用公共网络的基础设施在网络之间传递数据的方式
被封装的数据包在公共互联网络上传递时所经过的逻辑路径称为隧道
使用隧道传递的数据可以是使用不同协议封装的数据包
隧道技术是vpn的基本技术
- 通过隧道的建立,可实现:
将 数据流强制送到特定的地址
隐藏私有的 网络地址
在IP网上传递非IP 数据包
提供 数据安全支持
- 二层隧道协议
第二层隧道协议是先把各种网络协议封装到ppp中,再把整个数据包装入隧道协议中。
这种双层封装方法形成的数据包靠第二层协议进行传输。
第2层隧道协议对应于OSI模型的 数据链路层,使用帧作为数据交换单位
L2TP:layer 2 tunnel protocol 第二层隧道协议
L2TP结合了PPTP和L2F协议
允许用户从 客户端或访问服务器端建立VPN连接。L2TP是把 链路层的PPP帧装入公用网络设施,如IP、ATM、 帧中继中进行隧道传输的 封装协议。
PPTP:point to point tunnel protocol 点到点隧道协议
PPTP是PPP协议的一种扩展
提供PPTP客户机和PPTP服务器之间的加密通信
PPTP把建立隧道的主动权交给了用户,但用户需要在其PC机上配置PPTP,这样做既增加了用户的工作量,又会给网络带来隐患。另外,PPTP只支持IP作为传输协议。
L2F:layer 2 forwarding 第二层转发协议
由Cisco公司提出的可以在多种介质,如ATM、帧中继、IP网上建立多协议的安全虚拟专用网的通信
- 三层隧道协议
第3层隧道协议对应于OSI模型的 网络层,使用包作为数据交换单位
GRE:Generic Routing Encapsulation 通用路由封装协议
它规定了怎样用一种网络层协议去封装另一种网络层协议的方法。
GRE的隧道由两端的源IP地址和目的IP地址来定义,它允许用户使用IP封装IP、IPX、AppleTalk,并支持全部的路由协议,如RIP、OSPF、IGRP、EIGRP。
GRE只提供了数据包的 封装,它没有防止网络侦听和攻击的加密功能。
IPSec:ip security IP安全协议
实际上是一套协议包而不是一个独立的协议
当以隧道模式使用 IPSec 时,其只为 IP 通讯提供封装。使用 IPSec 隧道模式主要是为了与其他不支持 IPSec 上的 L2TP 或 PPTP VPN隧道技术的路由器、网关或终端系统之间的相互操作。
1.3.2 加密技术
1.3.2.1 对称加密
- 使用同一种密钥对信息提供安全的保护
- 适用于简单大规模数据加密传输
- 加密算法
DES算法:IBM的研发产品
密钥长度为64位
其中8位用于奇偶校验
实际有效长度为56位
3DES算法:是DES算法的增强版
使用了三个阶段的DES
有效密钥长度是168位
AES算法:支持128、192和256位密钥长度
更安全
1.3.2.2 非对称加密
- 使用两个不同的密钥—公钥和私钥—进行加密和解密
双方互相传输公钥,私钥不会在公网上传输
- 复杂的算法,一般用于密钥加密传输。不适合大规模数据。
- 不能从一个密钥推导出另一个密钥、安全性高
- 过程:
通信双方交换公钥----发送方的VPN网关通过公钥将明文数据加密-----接收方通过自己的私钥将受到的密文解开
- DH算法(diffie-hellman 迪非-赫尔曼):
一般被用来实现IPsec中的Internet密钥交换(IKE)协议
会用自己的密钥和对方的公钥通过DH算法计算一个共享密钥,通过这个密钥来加密传输数据。
- DH组:思科路由器支持1、2和5
1的密钥长度768
2的密钥长度1024
5的密钥长度1536
防火墙支持2、5和7
1.3.3 密钥交换
- 带外共享:通过一张磁盘、一张纸或打一个电话等方式共享密钥
缺陷:实施过程话费时间较长
- 带内共享:通过telnet、ssh等连接方式通过网络传输密钥
提高共享密钥的效率
在带内共享传输密钥时,有个前提是必须保证传输密钥的通道绝对安全,那这个通道有是如何保证的呢?
那如何解决这个问题呢?
可以通过非对称加密算法加密对称加密算法的密钥,在用对称加密算法加密实际要传输的数据。
1.3.4 数据报文验证
包括两方面内容:数据来源验证(身份验证)和报文完整性验证
- HMAC功能(散列消息验证码)
专门处理数据及数据包相关的验证问题和实现身份验证
使用一个共享的对称密钥来产生固定的输出结果—数字签名(不可逆,加密后数据不可还原)
HMAC属于单向散列算法(Hash算法)的一个子集
- MD5、SHA
是HMAC的两种常用的算法
MD5(信息-摘要算法):128位的签名、速度快、安全性相对于SHA稍差一点
SHA(安全散列算法):NST公司开发 168位的签名
SHA-1、SHA-256和SHA-512