SSL工作过程
SSL(Secure Sockets Layer,安全套接层)是一种常用的加密协议
-
客户端发起连接请求:客户端向服务器发送连接请求,请求建立一个安全的SSL连接。
-
服务器响应:服务器接收到客户端的连接请求后,如果支持SSL协议,就会返回一个数字证书。数字证书包含了服务器的公钥以及其他相关信息,用于证明服务器的身份。
-
客户端验证服务器的证书:客户端会验证服务器返回的证书的有效性和合法性。验证过程包括检查证书的签名是否可信、证书是否过期、域名是否匹配等。如果验证失败,客户端会中止连接,或者提示用户关于证书不受信任的信息。
-
客户端生成随机数和密钥:客户端会生成一个随机数作为对称加密算法的密钥,并使用服务器的公钥对该密钥进行加密。
-
服务器解密密钥:服务器使用自己的私钥来解密客户端发来的密钥。
-
确立加密算法和参数:客户端和服务器根据各自支持的加密算法列表,选择一个适用的对称加密算法和参数,用于之后的数据加密。之后,客户端和服务器都知道使用同一个对称密钥进行通信。
-
建立SSL连接:客户端通过对称密钥加密算法加密一条消息,并发送给服务器。服务器收到消息后,使用对称密钥解密,确认连接建立成功。此后,客户端和服务器之间的通信将使用对称密钥进行加密和解密。
-
安全通信:客户端和服务器使用对称密钥进行加密和解密,保证通信的机密性和完整性。加密数据在传输过程中,即使被截获,也无法理解其中的内容。
SSL中的预主密钥
SSL协商过程中生成的一个随机数,它在SSL连接建立过程中起着重要的作用。下面是预主密钥的几个作用:
-
密钥交换:预主密钥用于安全地交换会话密钥(session key)。在SSL握手阶段,客户端和服务器会使用各自的长期私钥和对方的公钥来生成预主密钥,并通过安全通道进行传输。预主密钥能够保证在无安全通道的情况下,仍能安全地交换会话密钥,从而保证后续通信的机密性。
-
密钥派生:预主密钥是派生生成会话密钥的基础。在握手阶段,客户端和服务器都使用预主密钥作为输入,通过复杂的密钥派生函数(key derivation function)生成会话密钥。会话密钥是对称密钥,用于加密和解密实际的通信数据。
-
完美前向保密性(Perfect Forward Secrecy,PFS):预主密钥的使用还能够实现完美前向保密性。如果攻击者获取了之前的会话数据或长期私钥,他们也无法还原预主密钥。这是因为预主密钥是每个会话都通过随机数生成的,不会长期存储。即使之前的会话密钥被破解,后续会话的安全仍然得到保护。
SSL实现 虚拟网关
SSL实现 web代理
SSL实现文件共享
实现原理:
协议转换技术:无需客户端,直接通过浏览器安全访问转换为内网文件共享的相应协议格式。使用
activeX控件。
支持协议:
- ·SMB (windows)
- ·NFS (linux)
SSL实现端口转发
实现原理: 安装activeX控件,本质是NAT过程
提供内网TCP资源的访问,C/S资源
提供丰富的静态端口的TCP应用
单端口单服务:telent、SSH、MS RDP VNC
单端口多服务:notes
多端口多服务:outlook
动态端口TCP应用 动态端口:FTP
提供端口级访问控制
自动安装运行一个 ActiveX控件,获取到管理端配置的端口转发资源列表(目的服务器IP、端口)。控件 将客户端发起的TCP报文与资源列表进行比对,当发现报文的目的IP/Port与资源列表中的表项匹配,则 截获报文,开启侦听端口(目的端口经过特定算法得出),并将目的地址改写为回环地址,转发到侦听 端口。对该报文加密封装,添加私有报文头,将目的地址设为USG的IP地址,经由侦听端口发往USG。 USG收到报文进行解密,发往真实的目的服务器端口。USG收到服务器的响应后,再加密封装回传给用 户终端的侦听端口。
网络扩展
SSL VPN要求的终端安全
终端安全是在请求内网主机上部署一个软件,通过该软件检查终端的安全性包括:主机检查,缓存清 除。
主机检查:
- 杀毒软件检查
- 防火墙设置检查
- 注册表检查
- 端口检查
- 进程检查
- 操作系统检查
缓存清除:
- internet临时文件
- 浏览器自动保存密码
- cookie记录
- 浏览器访问历史记录
- 回收站和最近打开的文件
- 指定文件或者文件夹
认证授权
- vpndb认证授权
- 第三方服务认证授权
- 数字证书的认证
- 短信辅助认证
在实现SSL VPN时,防火墙需要放行以下几类流量:
-
SSL/TLS流量:防火墙需要允许SSL/TLS协议的流量通过,以确保SSL VPN连接能够建立和正常运行。这包括标准的SSL端口(例如443端口)和其他配置的SSL VPN使用的端口。
-
VPN协议流量:根据所选择的SSL VPN解决方案,防火墙需要放行相应的VPN协议流量。常见的SSL VPN协议有OpenVPN、IPsec、L2TP等。
-
认证流量:SSL VPN通常涉及用户身份验证,防火墙需要放行与认证相关的流量。这可能包括基于用户名和密码的身份验证流量或其他类型的身份验证流量(如证书、令牌等)。
-
内部资源访问流量:一旦SSL VPN连接建立成功,防火墙需要允许SSL VPN客户端通过SSL VPN隧道访问内部受限资源的流量。这可能涉及到内部服务器、数据库、文件共享等的流量。
-
DNS流量:SSL VPN通常需要进行域名解析,以便将主机名转换为IP地址。防火墙需要允许出站的DNS流量,以确保SSL VPN客户端能够正确解析域名。
注意:具体需要放行哪些流量取决于使用的SSL VPN解决方案和网络架构。此外,在配置防火墙规则时,也要确保仅放行必要的流量以减少潜在的安全风险。