SSLVPN 是指基于安全套接层协议,建立远程安全访问通道的 VPN 技术。
基本信息:
SSL 协议主要由 SSL 记录协议和握手协议组成,共同为应用访问连接提供认证、加密和防篡改功能。
SSL 握手协议相对于 IPSEC 协议体系中的 IKE (互联网密钥交换协议)协议,主要用于服务器和用户之间的相互认证,协商加密算法和 MAC(Message Authentication Code)算法,用于生成在 SSL 记录协议中使用的加密和认证密钥。SSL 记录协议是为了各种应用协议提供基本的安全服务,类似于 IPSEC 的传输模式,应用程序消息参照MTU被分割成可治理的数据块(可进行数据压缩处理),并产生一个 MAC 信息,加密后插入新的报头,最后在 TCP 中加以传输,接收端将收到的数据解密,做一个身份验证(MAC 认证)、解压缩、重组数据报然后交给应用层协议进行处理。
协议优势:
SSL VPN 客户端程序直接使用浏览器,并不需要再次安装。
SSL VPN 可以在 NAT 代理装置上以透明模式工作。
SSL VPN 不会受到防火墙等设备的影响。
SSL VPN 部署和支持费用低
但 SSL VPN 性能不如 IPSec VPN
协议版本
- SSL 1.0 从未公开,因为其存在严重的安全漏洞
- SSL 2.0 1995.2 发布,但因为存在数个严重安全漏洞被 SSL 3.0 代替
- SSL 3.0 1996 发布,完全重新设计,较新的 SSL/TLS 基于 SSL 3.0。
工作方式:
- 发送一个「ClientHello」消息,内容包括:支持的协议版本,比如TLS1.0版,一个客户端生成的随机数(稍后用于生成“会话密钥”),支持的加密算法(如RSA公钥加密)和支持的压缩算法。
- 然后收到一个「ServerHello」消息,内容包括:确认使用的加密通信协议版本,比如TLS 1.0版本(如果浏览器与服务器支持的版本不一致,服务器关闭加密通信),一个服务器生成的随机数(稍后用于生成“对话密钥”),确认使用的加密方法(如RSA公钥加密),服务器证书。
- 当双方知道了连接参数,客户端与服务器交换证书(依靠被选择的公钥系统)。这些证书通常基于X.509,不过已有草案支持以OpenPGP为基础的证书。
- 服务器请求客户端公钥。客户端有证书即双向身份认证,没证书时随机生成公钥。
- 客户端与服务器通过公钥保密协商共同的主私钥(双方随机协商),这通过精心谨慎设计的伪随机数功能实现。结果可能使用Diffie-Hellman交换,或简化的公钥加密,双方各自用私钥解密。所有其他关键数据的加密均使用这个「主密钥」。数据传输中记录层(Record layer)用于封装更高层的HTTP等协议。记录层数据可以被随意压缩、加密,与消息验证码压缩在一起。每个记录层包都有一个Content-Type段用以记录更上层用的协议。
工作模式:
- Clientless Mode
- 无客户端模式
- 提供安全的Web资源访问和基于 Web 的内容访问
- 使用 CIFS 提供远程文件共享
- 主要支持 HTTP 和 CIFS 运用
- 无客户端模式
- Thin Client Mode
- 瘦客户端模式,也称为端口转发
- 提供客户端 TCP 服务的远程访问 (EX : POP3 SMTP IMAP Telnet SSH)
- 瘦客户端在 SSL VPN 会话建立后通过 Java 程序方式动态下载
- 增强网页浏览器的加密功能
- 瘦客户端模式,也称为端口转发
- Thick Client Mode
- 厚客户端,也叫做 Tunnel Mode or Full Tunnel Client
- 提供应用程序支持
- 客户端软件在 VPN 服务器上动态下载
- 支持所有 IP 协议
- 厚客户端,也叫做 Tunnel Mode or Full Tunnel Client