SSL VPN 安全防御机制与内部攻击流量防范
一、SSL 工作过程
SSL(Secure Sockets Layer)是一种用于保护网络通信安全的协议,现多被 TLS(Transport Layer Security)取代,但习惯上仍常称为 SSL。SSL 的工作过程主要涉及握手阶段,确保客户端和服务器之间建立加密通道。
1. SSL 握手协议的第一阶段
客户端首先发送 client hello 消息到服务端,服务端收到 client hello 信息后,再发送 server hello 消息到客户端。
- 随机数:32 位时间戳 + 28 字节随机序列,用于计算摘要信息和预主密钥或主密钥的参数。
- 会话 ID:一次性会话 ID,防止重放攻击。
2. SSL 握手协议的第二阶段
- 服务器的证书:包含服务端公钥的证书,用于客户端给服务端发送信息时加密。
- server key exchange:服务端密钥交换,决定密钥交换的方式,比如 DH、RSA,会包含密钥交换所需的一系列参数。
3. SSL 握手协议的第三阶段
- client key exchange:客户端密钥交换。根据服务端随机数算出一个 pre-master secret,发给服务器。服务器收到后根据 pre-master secret 生成一个 master secret。
4. SSL 握手协议的第四阶段
完成密钥交换后,双方切换至加密模式,发送 change cipher spec 消息,随后开始传输加密的应用数据。
二、SSL 预主密钥有什么作用?
预主密钥(Pre-Master Secret)结合前面发的客户端随机数和服务器端随机数衍生出一个主密钥(Master Secret)。然后主密钥会衍生出三个东西:共享密钥(对称密钥)、完整性的密钥(认证密钥)、初始化向量(IV)。
SSL 预主密钥的作用主要包括以下几个方面:
- 安全性:SSL 预主密钥的生成是在客户端和服务器之间进行的,而不是通过网络明文传输。这样可以确保预主密钥在传输过程中不被窃听或篡改,提高了通信的安全性。
- 密钥协商:SSL 握手过程中,客户端和服务器使用预主密钥来生成会话密钥(Session Key)。会话密钥是用于加密和解密数据的对称密钥。通过使用预主密钥,客户端和服务器可以协商出相同的会话密钥,从而实现安全的通信。
- 前向保密:预主密钥的生成过程中使用了随机数和其他密钥材料,这使得预主密钥具有前向保密性质。前向保密意味着即使在将来主密钥被泄漏,之前的会话仍然是安全的,因为会话密钥的生成是基于预主密钥,预主密钥不会被存储或传输,只在握手时生成。
三、SSL VPN 主要用于哪些场景?
SSL VPN 是以 SSL/TLS 协议为基础,利用标准浏览器都内置支持 SSL/TLS 的优势,对其应用功能进行扩展的新型 VPN。有浏览器的设备就可以使用 SSL,进而使用 SSL VPN,不需要担心客户端问题,所以 SSL VPN 也能称之为无客户端 VPN。SSL VPN 在 client to Lan 场景下特别有优势。
SSL VPN 和 IPsec VPN 区别
- IPSec:是网络层保证 IP 通讯而提供的协议族,以网络层为中心,通常需要安装专用客户端软件。
- SSL:是套接字层保护 HTTP 通讯的协议,以应用层为中心,通常基于浏览器即可访问。
优势
- 易用性:无需安装复杂客户端,通过 Web 浏览器即可接入。
- 穿透性:能够穿越大多数防火墙和 NAT 设备,因为通常使用 TCP 443 端口。
- 细粒度控制:可以针对具体应用(如 Web、文件、端口)进行权限控制。


