SSL是什么
SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。如今被广泛使用,如网页,电子邮件,互联网传真,即时消息和语音在IP电话(VoIP)。其中网站是通过使用TLS来保护WEB浏览器与服务器之间的通信安全。
SSL介于应用层和TCP层之间。应用层数据不再直接传递给传输层,而是传递给SSL层,SSL层对从应用层收到的数据进行加密,并增加自己的SSL头。
SSL协议的三个特性
① 保密:在握手协议中定义了会话密钥后,所有的消息都被加密;
② 鉴别:可选的客户端认证,和强制的服务器端认证;
③ 完整性:传送的消息包括消息完整性检查(使用MAC)。
SSL 的工作原理
- 握手协议(Handshake protocol)
- 记录协议(Record protocol)
- 警报协议(Alert protocol)
1.握手协议
握手过程
可以人为的将握手协议分为四个阶段
握手协议的第一个阶段
客户端首先发送 client hello 消息到服务端,服务端收到 client hello 信息后,再发送 server hello 消息到客户端
随机数: 32 位时间戳 +28 字节随机序列,用于计算摘要信息和预主密钥或主密钥的参数。
会话 ID :一次性会话 ID ,防止重放攻击。
握手协议的第二个阶段()
服务器的证书:包含服务端公钥的证书,用于客户端给服务端发送信息时加密。
server key exchange 服务端密钥交换:决定密钥交换的方式,比如 DH,RSA ,会包含密钥交换所需的一系列参数。
握手协议的第三个阶段
client key exchange 客户端密钥交换:根据服务端随机数算出一个 pre-master ,发给服务器,服务器收到后根据pre-master 密钥生成一个 main-matser 。
预主密钥 与主密钥的关系
客户端随机数+服务端随机数---->预主密钥参数---->主密钥----->共享密钥+HMAC认证密钥+初始化向量
初始化向量用法
握手协议的第四个阶段
会话恢复
2.记录协议
记录协议主要用来实现对数据块的分块、加密解密,压缩解压缩,完整性校验,封装。
记录协议在客户机和服务器握手成功后使用,即客户机和服务器鉴别对方和确定安全信息交换使用的算法后,进入SSL记录协议,记录协议向SSL连接提供两个服务:
(1)保密性:使用握手协议定义的秘密密钥实现
(2)完整性:握手协议定义了MAC,用于保证消息完整性
SSL 记录协议包含信息:
- 内容类型
- 协议版本号
- 数据长度
- 数据的有效载荷
- 散列算法的认证代码
记录协议的过程
3.警报协议
客户机和服务器发现错误时,向对方发送一个警报消息。如果是致命错误,则算法立即关闭SSL连接,双方还会先删除相关的会话号,秘密和密钥。每个警报消息共2个字节,第1个字节表示错误类型,如果是警报,则值为1,如果是致命错误,则值为2;第2个字节制定实际错误类型。
以下是一些警告信息:
(1)unexpected_message:接收了不合适的报文。
(2)bad_record_mac:收到了不正确的MAC。
(3)decompression_failure:解压缩函数收到不适当的输入。
(4)illegal_parameter:握手报文中的一个字段超出范围或与其他字段不兼容。
(5)certificate_revoked:证书已经被废弃。
(6)bad_certificate:收到的证书是错误的。
(7)certificate_expired:证书已经过期。
(8)handshake_failer:握手过程失败。
SSL协议的应用---SSL VPN
1.SSL VPN的优势
2.SSL VPN的实现 (★★★★★)
虚拟网关
SSL VPN 每个虚拟网关可以独立管理,可以配置各自的资源,用户、认证方式,访问控制以及管理员。并且相互隔离。
WEB 代理
实现过程
实现方式:
- web-link:使用activeX控件方式,对页面进行请求
- web改写:将所请求页面上链接进行改写,其他内容不变。
实现结果
实现对内网 web 资源的安全访问 内网 web 资源只有私网地址,在不做 NAT 的情况下,可以通过 SSL VPN 实现对其的代理安全访问。
- 内网web资源只有私网地址,在做NAT的情况下,公网用户可以实现对其访问,但是web资源没有
- 使用安全传输协议,SSL VPN可以实现对其https安全访问。
文件共享
实现过程
实现原理
- 协议转换技术:无需客户端,直接通过浏览器安全访问转换为内网文件共享的相应协议格式。使用activeX控件。
支持协议:
端口转发
实现过程
实现原理:安装activeX控件,本质是NAT过程
- 提供内网TCP资源的访问,C/S资源
- 提供丰富的静态端口的TCP应用
- 单端口单服务:telent、SSH、MS RDP VNC
- 单端口多服务:notes
- 多端口多服务:outlook
- 动态端口TCP应用
- 提供端口级访问控制
自动安装运行一个 ActiveX 控件,获取到管理端配置的端口转发资源列表(目的服务器 IP 、端口)。控件将客户端发起的TCP 报文与资源列表进行比对,当发现报文的目的 IP/Port 与资源列表中的表项匹配,则截获报文,开启侦听端口(目的端口经过特定算法得出),并将目的地址改写为回环地址,转发到侦听端口。对该报文加密封装,添加私有报文头,将目的地址设为USG 的 IP 地址,经由侦听端口发往 USG 。USG收到报文进行解密,发往真实的目的服务器端口。 USG 收到服务器的响应后,再加密封装回传给用户终端的侦听端口。
特点
网络扩展
实现过程
访问模式
三种流量:去对方内网流量,去互联网流量,去本地局域网流量
- 全路由模式:三种流量都走隧道,意味本地不能访问互联网,也可以通过隧道访问,也能补访问本地局域网
- 分离模式:对方内网流量走隧道,本地局域网流量走物理网卡,互联网流量不能走。意味着,能访问对方内网,能访问本地局域网,不能访问互联网。
- 手动模式:对方内网流量走隧道,本地局域网络流量和互联网流量走物理网卡。意味着,都能访问,并且互联网走本地。
3.SSL VPN要求的终端安全
终端安全是在请求内网主机上部署一个软件,通过该软件检查终端的安全性包括:主机检查,缓存清除。
主机检查:
- 杀毒软件检查
- 防火墙设置检查
- 注册表检查
- 端口检查
- 进程检查
操作系统检查 缓存清除:
- internet临时文件
- 浏览器自动保存密码
- cookie记录
- 浏览器访问历史记录
- 收回站和最近打开的文件
- 指定文件或者文件夹
认证授权
- db认证授权
- 第三方服务认证授权
- 数字证书的认证
- 短信辅助认证
4.SSL VPN 功能总结