VPN
VPN VPN是什么 什么是VPN?VPN解决了什么问题?适用场景是什么?有什么优缺点?
vpn 全程是Virtual private network,它通过公共网络提供了专用网络。使得用户的设备可以像在私有网络一样通过公共网络来发送和接收数据,所以叫做虚拟专用网络。
公共网络存在的问题: 请求内容被泄漏 ,响应被篡改,服务器被攻击等等..
相比公共网络的数据传输来说,VPN安全模型提供:
- 机密性,发送内容做加密,即使网络流量在数据包级别被嗅探,攻击者也只会看到加密的数据
- 发送方身份验证,以防止未经授权的用户访问VPN
- 消息完整性,以检测任何篡改所传输消息的实例
VPN可以帮助远程用户、公司分支机构、商业伙伴及供应商同 公司的内部网建立可信的安全连接,并保证数据的安全传输。相比专线来说,VPN的优势之处还在于它可以很好的利用当前既有的Internet线路资源,不再受地域的限制,而对于用户来讲,VPN的工作方式是完全透明的
VPN 工作原理
VPN中包含的技术大概可以分为三类:
- 隧道技术(tune channel):vpn技术使得两个局域网的终端在复杂的公共网络中打通了一条隧道一样,将两个终端连接在了一起,这条虚拟的线路被称为隧道技术.
- 数据的加解密:由于数据是在公网中传输,所以封包之后的数据会按照一定的加密算法进行加密
- client和server的认证:vpn技术提供了对client端的身份认证
VPN之隧道技术
隧道技术是VPN技术中一个关键的组成部分,通过隧道技术,源数据包被放入另一个数据包中,并将后者通过网络发送出去。且网络和数据包进出网络的入口点和出口点(我们称为隧道接口)都能够理解外部数据包。
VPN的隧道协议主要有三种,PPTP,L2TP和IPSec,其中PPTP和L2TP协议工作在OSI模型的第二层,又称为二层隧道协议;IPSec是第三层隧道协议,也是最常见的协议。L2TP和IPSec配合使用是目前性能最好,应用最广泛的一种。
- 点对点隧道协议PPTP〈Point to Point Tunneling Protocol〉:
PPTP是由包括微软和3Com等公司组成的的PPTP论坛开发的点对点的隧道协议,PPTP使用传输控制协议(TCP)创建控制通道来发送控制命令,以及利用通用路由封装(GRE)通道来封装点对点协议(PPP)数据包以发送数据。
点对点协议(PPP,Point-to-Point Protocol)主要是用来通过拨号或专线方式在两个网络节点之间建立连接、发送数据。PPP是各类型主机、网桥和路由器之间简单连接的一种解决方案
- 第二层隧道协议L2TP〈Layer Two Tunneling Protocol〉: L2TP是一种工业标准的Internet隧道协议,功能大致和PPTP协议类似,比如同样可以对网络数据流进行加密。不过也有不同之处,比如PPTP要求网络为IP网络,L2TP要求面向数据包的点对点连接;PPTP使用单一隧道,L2TP使用多隧道;L2TP提供包头压缩、隧道验证,而PPTP不支持。
- 网络隧道安全协议IPsec〈Internet Protocol Security〉: IPSec全称为Internet Protocol Security,是由Internet Engineering Task Force (IETF) 定义的安全标准框架,IPsec协议不是一个单独的协议,它给出了应用于IP层上网络数据安全的一整套体系结构.
ipsecVpn的处理过程
- 流量触发IPsec,VPN网关检查是否应该使用IPsec传输数据包。这些数据包流量会自行触发安全策略。当发送数据包的系统应用适当的加密时,将完成此操作。主机还会检查传入的数据包是否正确加密。
- 连接管理:
- 2.1. OSAKMP/IKE 阶段一:
阶段一需要要完成三个任务:
- 协商采用何种方式连接
- 通过DH算法共享密钥信息
- 对等体之间进行身份验证 经过阶段一,一个安全的管理连接就建立起来了
说明:连接的管理分为两种模式,该图是主模式,另一种野蛮模式不在这里详细介绍 上述的三个任务是通过6个数据包完成的 前两个数据包用于协商对等体间的管理连接使用何种安全策略; 中间两个数据包通过DH算法产生并交换加密算法和HMAC功能所需的密钥; 最后两个数据包使用预共享密钥等方式执行对等体间的身份验证
- 2.2. ISAKMP/IKE阶段二: SAKMP/IKE阶段2只有一个模式:快速模式.它定义了受保护数据连接是如何在两个IPSEC对等体之间构成的.快速模式有两个主要的功能: a.协商安全参数来保护数据连接。 b.周期性的对数据连接更新密钥信息. 交互的信息包括: 安全协议:AH 协议 ESP协议 连接模式:隧道模式、传输模式 加密方式:对于ESP而言,有DES、3DES、AES-128、AES-192、AES-256或不使用加密算法 验证方式:MD5或SHA1
- 通过新创建的IPsec加密隧道交换数据。主机使用IPsec SA对这些数据包进行加密和解密。
数据封装基于阶段1和阶段2的秘钥和数据安全连接的信息
当主机之间的通信完成或会话超时时,通过丢弃两个主机的密钥来终止IPsec隧道。
- 封装安全负载(ESP)– 它提供数据完整性,加密,身份验证和防重播。它还提供对负载(payload)的身份验证。
- 身份认证的消息头(AH)– 也会提供数据完整性,身份验证和防重播,但是不会做加密。防重放保护可防止未经授权的数据包传输,但是它不保护数据的机密性
网络传输
目前我们接触到了为了保证数据传输所做的一些措施 加签验签:业务逻辑层面,做数据认证,保证数据的完整性 https:单向认证只能由client对服务端做验证,服务端对客户端做认证:ip白名单、appkey等(可能伪造,由业务做预防).双向认证,作用在tcp层之上,做数据认证和加密 vpn:作用在ip层或者传输层,保证数据的完整性,安全性,认证 专线:作用在传输层,保证数据的完整性,安全性,认证
综合来看,我们在网络传输中需要考虑的: client和server的认证 数据的完整性 数据的保密性
\ | client认证 | server认证 | data完整性 | data保密性 | OSI模型层级 |
---|---|---|---|---|---|
https(单向认证) | N | Y | Y | Y | 传输层 (tcp) |
https(双向认证) | N | Y | Y | Y | 传输层 (tcp) |
vpn | Y | Y | Y | Y | 网络层(ip) /数据链路层 |
专线 | Y | Y | Y | Y | 数据链路层 |
加签验签 | Y | Y | Y | N | 应用层 |