前言:对于IPSec来说需要安装客户端,对于非专业人士来说不太适合。IPSec也只能提供网络层的连通性,哪个IP能通则能访问所有的服务,不可以对服务的类型或者范围进行限制
SSL就可以解决上述的问题。由于所有的浏览器都支持SSL协议,所以可以基于浏览器访问,无需安装客户端,解决了非专业人士的后顾之忧。SSL还能针对不同的用户发布不同的服务类型
SSL协议主要通过三个报文来实现:
- SSL握手协议(重点):用于协商相互认证方式、加密算法和密钥
- SSL修改密文协议:为了传输的安全性,每一段时间用来改密加密规范
- SSL警告协议:当某一方发现异常时,用于通知对端
SSL的基本思想:
- 客户端和服务器同时有一对自己的公钥和私钥
- 客户端给服务器发送消息时使用服务器的公钥加密,服务器使用私钥解密
- 服务器给客户端发送消息时使用客户端的公钥加密,客户端使用私钥解密
基于这两点产生的问题:
- 如何保证传递的公钥不被篡改
- 使用私钥解密导致算法过于复杂,计算量过大
解决思路:
- 可以使用数字证书防止公钥被篡改
- 可以引入一个新的密钥会话(对称密钥),将新的密钥使用非对称密钥进行加密传递,在使用对称密钥对数据进行传递
SSL可以将资源分为四大类:
- WEB资源:HTTP、HTTPS、FTP、Mail、Fileshare(共享文件)----------无需安装控件
- TCP资源:所有基于TCP传输协议的应用类型----------需要安装一个小控件
- L3***:所以基于TCP、UDP、ICMP的应用类型-----------需要安装虚拟网卡
- 远程应用:对于一些平板或者收集不支持的应用,可以通过安装EasyConnect,使用远程应用发布的方式,比如说Office
SSL协议通信过程:
如图所示:第一阶段:
- 客户端发送Hello报文,报文中包含版本号、加密套件列表、压缩算法、随机数R1等
- 服务器发送Hello报文,报文中包括版本号、确认的加密套件列表、压缩算法、随机数R2等(此时客户端和服务器都拥有两个随机数,用于后续生成对称密钥)
第二阶段:
- 客户端发送数字证书,使客户端能够使用数字证书中的公钥认证服务器
- 证书请求:求情客户端发送证书用于验证
- 服务器握手完成:第二阶段的结束,第三阶段的开始
第三阶段:
- 客户端发送数字证书:用于对身份的验证
- 客户机密钥交换:将预主密钥发送给服务器,会使用服务器的公钥进行加密
- 证书验证:用于对预备密钥和随机数的验证
第四阶段:
- 密钥交换通知:为了安全,每段时间更改密钥
- 握手结束通知:表示握手阶段已经结束,可以开始对数据的加密