VPN技术-SSL VPN 简介(三)

应用场景

总公司和分公司各自的内网要能够互相共享资料,且PC机到服务器的流量需要经过各自的NGFW设备后在Internet上传输,为了保证流量在Internet传输过程中的安全性,希望资料在网络传输中不易被黑客截获破解 窃取,保证资料的安全保密,此时您可以在总公司和分公司的网络设备上建立网关到网关SSL VPN,它即能实现总公司和分公司之间能够直接互相访问资源,也能对数据传输进行加密,保证了数据的安全性 。

SSL VPN原理简介

SSLVPN指的是利用SSL协议封包处理功能,利用公司内部SSLVPN网关,通过网络封包转向的方式,让使用者可以在远程计算机执行应用程序,读取公司内部服务器数据。它采用标准的安全套接层(SSL)对传输中的数据包进行加密,从而在应用层保护了数据的安全性。高质量的SSL VPN解决方案可保证企业进行安全的全局访问。在不断扩展的互联网WEB站点、远程办公室、传统交易大厅和客户端之间,SSLVPN克服了IPSec VPN的不足,用户无需安装客户端,可以轻松实现远程访问,而且配置简单、安全易用,这样就降低了用户的总成本,还能增加远程用户的工作效率。同样在这些地方,配置传统的IPSec VPN非常困难,甚至是不可能的,因为配置IPSec VPN还必须更改网络地址转换(NAT)和防火墙的设置。

HTTP

超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。属于应用层协议,内容采用明文传输。

SSL/TLS

由于早先互联网上使用的HTTP协议是明文的,存在很多缺点——如传输内容会被偷窥(嗅探)、劫持和篡改,因此Netscape开发了SSL协议,就是为了解决这些问题。1999年,SSL因应用广泛,已经成为互联网上的事实标准,IETF在那年把SSL标准化,标准化之后的名称改为TLS(是“Transport Layer Security”的缩写),中文叫做“传输层安全协议”。业界将两者并列称呼(SSL/TLS),因为这两者可以视作同一个东西的不同阶段。

SSL叫做“安全套接层”(Secure Sockets Layer)处于应用层和传输层之间,为应用层提供完善的安全保护(机密性、完整性、源认证、不可否认性)

HTTPS

HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,安全的保障需依靠SSL/TLS来实现。
可以把 HTTPS 简单的理解为——“HTTP over SSL”或“HTTP over TLS” (https://www.ssllabs.com全球知名的在线HTTPS网站检测工具-SSL Labs,检查网站SSL/TLS的安全性)


我们可以这样去理解HTTPS:
HTTPs = SSL/TLS + HTTP

那么SSL VPN也可以非常类似的去理解:
SSL VPN = SSL/TLS + TCP and UDP


最初就是为了使HTTP传输更安全,HTTP变成了HTTPs。而随着技术发展,SSL/TLS不仅能为HTTP提供安全保障,也能为其他应用层协议提供保障例如mail,DNS,FTP等,这就是SSL VPN。

所以SSL/TLS是一个安全协议,它能在不安全的网络上创建安全的连接,提供安全的数据交换,防止数据受到窃听及篡改。

从上面可以看出最核心最关键的部分是 SSL/TLS,它为HTTS/SSL VPN的安全提供了基础。

我们从各式各样的文章中得知,SSL/TLS可以用于保密的传输,这样我们与Web/VPN server之间传输的消息便是“安全的”。那么这种“安全”究竟是怎么实现的,最终又能实现多大程度的保密呢?

SSL/TLS 的各个版本

SSL(Secure Sockets Layer)是网景公司(Netscape)设计的主要用于Web的安全传输协议,这种协议在Web上获得了广泛的应用。

SSL 1.0 1.0版本从未公开过,因为存在严重的安全漏洞。
SSL 2.0 2.0版本在1995年2月发布,但因为存在数个严重的安全漏洞而被3.0版本替代[7]。
SSL 3.0 3.0版本在1996年发布,是由网景工程师Paul Kocher、Phil Karlton和Alan Freier完全重新设计的。
较新版本的SSL/TLS基于SSL 3.0。SSL 3.0作为历史文献IETF通过 RFC 6101 发表。

TLS 1.0 IETF将SSL标准化,即 RFC 2246 ,并将其称为TLS(Transport Layer Security)。从技术上讲,TLS 1.0与SSL 3.0的差异非常微小。
TLS 1.1 TLS 1.1在 RFC 4346 中定义,于2006年4月发表,它是TLS 1.0的更新。(添加对CBC攻击的保护)
TLS 1.2 TLS 1.2在 RFC 5246 中定义,于2008年8月发表。它基于更早的TLS 1.1规范。
TLS 1.3 草案中Draft

维基百科:
https://en.wikipedia.org/wiki/Transport_Layer_Security

SSL是一个介于HTTP协议与TCP之间的一个可选层,其位置大致如下:
如果利用SSL协议来访问网页,其步骤如下:

用户:在浏览器的地址栏里输入https://www.fortinet.com
HTTP层:将用户需求翻译成HTTP请求,如 GET /index.htm HTTP/1.1 Host www.fortinet.com
SSL层: 借助下层协议的的信道安全的协商出一份加密密钥,并用此密钥来加密HTTP请求。
TCP层:与web server的443端口建立连接,传递SSL处理后的数据。 接收端与此过程相反。 SSL在TCP之上建立了一个加密通道,通过这一层的数据经过了加密,因此达到保密的效果。
SSL协议分为两部分:Handshake Protocol和Record Protocol,。其中Handshake Protocol用来协商密钥,协议的大部分内容就是通信双方如何利用它来安全的协商出一份安全的密钥。 Record Protocol则定义了传输的格式,使用协商出来的密钥加密传输的数据。

SSL/TLS

SSL/TLS协议的基本思路是采用公钥加密法,也就是说,客户端先向服务器端索要公钥,然后用公钥加密信息,服务器收到密文后,用自己的私钥解密。
这里存在两个问题:
如何保证公钥不被篡改?
解决方法:将公钥放在数字证书中。只要证书是可信的,公钥就是可信的。

公钥加密计算量太大,如何减少耗用的时间?

解决方法:每一次对话(session),客户端和服务器端都生成一个"对话密钥"(session key),用它来加密信息。由于"对话密钥"是对称加密,所以运算速度非常快,而服务器公钥只用于加密"对话密钥"本身,这样就减少了加密运算的消耗时间。

SSL/TLS包含三个基本阶段:

  1. 对等协商支持的密钥算法(TLS_RSA_WITH_AES_128_CBC_SHA/TLS_ECDHE_RSA_WITH_AES_128_SHA_256)
    密钥交换和密钥协商算法:TLS-RSA、TLS-DH
    加密密码算法:AES、DES、RC4、RC2
    数据完整性算法:HMAC-MD5、HMAC-SHA1、HMAC-SHA256

  2. 基于PKI证书的身份认证、基于非对称密钥的信息传输加密和身份认证。(双方协商生成"对话密钥")
    TLS_RSA:客户端先向服务器端索要公钥,然后用公钥加密一个随机数(Per_Master_Key),服务器收到密文后,用自己的私钥解密得到这个随机数(Per_Master_Key)。
    TLS_DH :通过双方交换公钥,并运行DH算法,等到一个相同的密钥K(Per_Master_Key)。
    通过非对称密钥算法(RSA或DH),最终双方安全的拥有相同加密Session-Key/验证HMAC-Key,后续传递的数据都是用这同一个Session-Key/HMAC-Key进行加解密数据和完整性校验。

  3. 基于对称密钥的数据传输保密 (双方采用“Session-Key”进行加解密通信)
    image.png

SSL VPN有两种种工作模式:

  1. web模式,也叫做代理Web页面,它将来自远端浏览器的页面请求(采用HTTPS协议)转发给Web服务器,然后将服务器的响应回传给终端用户。
    image.png
  2. Tunnel模式,需要下载运行的客户端支持。客户端和NGFW防火墙设备建立SSL隧道后,NGFW防火墙为客户端分配IP. 客户端通过建立的虚接口直接通过SSL隧道连接到内部网络。
    image.png
# encryption  vpn 

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×