1、客户端首先发送client hello消息到服务端,服务端收到客户端的消息后,再发送sever hello消息到客户端(用来协商),其中所发的hello包中包含所支持的版本号,加密套件列表,压缩算法列表,客户端、服务端随机数还有会话id 。
值得做注意的是:
随机数是32位的时间戳+28字节随机序列,他是用于计算摘要信息和预主密钥或主密钥的参数。
会话id:一次性会话id,防止重放攻击
2、服务端会向客户端发一个认证证书(包含服务端公钥的证书,用于客户端给服务端发送信息时加密。)、服务器端密钥的附加信息(server key exchange服务端密钥交换:决定密钥交换的方式,比如DH,RSA,会包含密钥交换所需的一 系列参数。),通知对方服务器握手消息发完。服务器端进入serverhellodone状态。
3、客户端会产生预主密钥(这里使用到了对称加密算法,数据是被加密的),然后通知对方本端开始启用加密参数,发送自己计算握手过程验证报文。
client key exchange客户端密钥交换:根据服务端随机数算出一个pre-master,发给服务器,服务器收 到后根据pre-master密钥生成一个main-matser。
4、服务器端也会通知对方本端开始启用加密参数,同时发送自己计算的握手过程验证报文;紧接着双发会进行传送应用层数据。
通过该过程产生的客户端随机数与服务器端随机数以及预主密钥,他们组合计算得出主密钥,然后会通过主密钥分别生成共享密钥、Hmac认证密钥以及初始化向量。
这个过程,就多了一条服务器向客户端索要证书的过程。
通过该过程产生的客户端随机数与服务器端随机数以及预主密钥,他们组合计算得出主密钥,然后会通过主密钥分别生成共享密钥(对称加密的密钥)、Hmac认证密钥(认证)以及初始化向量。
SSL VPN 适用于 client to LAN 的场景。
因为SSL 不用担心客户端问题,有浏览器的设备就可以使用,对比IPSec VPN成本小了很多,而且不会 存在nat问题;在实际工程中一般会采用IPSec 和ssl VPN,要是实现私网互通可以使用mpls 。
SSL VPN每个虚拟网关可以独立管理,可以配置各自的资源,用户、认证方式,访问控制以及管理员。 并且相互隔离。
实现方式: web-link:使用activeX控件方式,对页面进行请求 web改写:将所请求页面上链接进行改写,其他内容不变。
实现结果:实现对内网web资源的安全访问 内网web资源只有私网地址,在不做NAT的情况下,可以通过SSL VPN实现对其的代理安全访问。 内网web资源只有私网地址,在做NAT的情况下,公网用户可以实现对其访问,但是web资源没有 使用安全传输协议,SSL VPN可以实现对其https安全访问。
实现原理:
协议转换技术:无需客户端,直接通过浏览器安全访问转换为内网文件共享的相应协议格式。使用 activeX控件。
支持协议:
SMB windows
NFS linux
实现原理:安装activeX控件,本质是NAT过程
提供内网TCP资源的访问,C/S资源
提供丰富的静态端口的TCP应用
单端口单服务:telent、SSH、MS RDP VNC 单端口多服务:notes
多端口多服务:outlook
动态端口TCP应用 动态端口:FTP 提供端口级访问控制
访问模式 三种流量:去对方内网流量,去互联网流量,去本地局域网流量
终端安全是在请求内网主机上部署一个软件,通过该软件检查终端的安全性包括:主机检查,缓存清除。
1、杀毒软件检查2、 防火墙设置检查 3、注册表检查 4、端口检查 5、进程检查 6、操作系统检查