当前位置: 首页 > article >正文

握手协议是如何在SSL VPN中发挥作用的?

SSL握手协议:客户端和服务器通过握手协议建立一个会话。会话包含一组参数,主要有会话ID、对方的证书、加密算法列表(包括密钥交换算法、数据加密算法和MAC算法)、压缩算法以及主密钥。SSL会话可以被多个连接共享,以减少会话协商开销。

握手第一阶段:

建立起安全能力属性,客户端发送一个ClientHello消息,包括以下参数:

版本:消息中协议版本是两个byte长度分别表示主次版本。目前SSL拥有的版本有SSLv1、SSLv2、SSLv3以及TSLv1(即SSLv3.1)。

随机数:32位时间戳+28字节随机序列,用于在后面计算所有消息的摘要或计算主密钥。

会话ID:SSL会话ID标识一次会话用,可以重用。

客户端支持的密码算法列表(CipherSuite):密钥套件列表,列表中包含了Client端支持的所有密钥套件。

客户端支持的压缩方法列表:客户端支持的压缩算法列表,填0表示空。

当服务器收到包含以上信息的ClientHello消息后,服务器发送ServerHello消息,并包括以下参数:

版本:服务器拿出ClientHello消息中的版本号,再看看自己支持的版本列表,选择两者都支持的最高版本号定为这次协商出来的SSL协议使用的版本。

服务器产生的随机数:此处产生的随机数与ClientHello消息中的类似。

会话ID:服务器端检测到传过来的Session ID是空或者检索Session列表没有发现传过来的Session ID就会新建一个。

服务器从客户端建议的密码算法中挑出一套(CipherSuite)密码算法。

服务器从客户端建议的压缩方法中挑出一个压缩算法。

第二阶段:

Certificate消息(可选)

一般情况下,除了会话恢复时不需要发送该消息,在SSL握手的全流程中,都需要包含该消息。消息包含一个X.509证书,证书中包含公钥,发给客户端用来验证签名或在密钥交换的时候给消息加密。

Server Key Exchange(可选)

根据之前在ClientHello消息中包含的CipherSuite信息,决定了密钥交换方式(例如RSA或者DH),因此在Server Key Exchange消息中便会包含完成密钥交换所需的一系列参数。

Certificate Request(可选)

服务器端发出Certificate Request消息,要求客户端发他自己的证书过来进行验证。该消息中包含服务器端支持的证书类型(RSA、DSA、ECDSA等)和服务器端所信任的所有证书发行机构的CA列表,客户端会用这些信息来筛选证书。

ServerHello Done

该消息表示服务器已经将所有信息发送完毕,接下来等待客户端的消息。

第三阶段:

Certificate(可选)

如果在第二阶段服务器端要求发送客户端证书,客户端便会在该阶段将自己的证书发送过去。服务器端在之前发送的Certificate Request消息中包含了服务器端所支持的证书类型和CA列表,因此客户端会在自己的证书中选择满足这两个条件的第一个证书发送过去。若客户端没有证书,则发送一个no_certificate警告。

Client Key exchange

根据之前从服务器端收到的随机数,按照不同的密钥交换算法,算出一个pre-master,发送给服务器,服务器端收到pre-master算出main master。而客户端当然也能自己通过pre-master算出main master。如此以来双方就算出了对称密钥。

Certificate verify(可选)

只有在客户端发送了自己证书到服务器端,这个消息才需要发送。其中包含一个签名,对从第一条消息以来的所有握手消息的HMAC值(用master_secret)进行签名。

第四阶段:

建立起一个安全的连接,客户端发送一个Change Cipher Spec消息,并且把协商得到的CipherSuite拷贝到当前连接的状态之中。然后,客户端用新的算法、密钥参数发送一个Finished消息,这条消息可以检查密钥交换和认证过程是否已经成功。其中包括一个校验值,对客户端整个握手过程的消息进行校验。服务器同样发送Change Cipher Spec消息和Finished消息。握手过程完成,客户端和服务器可以交换应用层数据进行通信。

SSL VPN通过虚拟网关来进行身份认证和角色授权.主要业务:WEB代理、文件共享、端口转发、网络扩展、用户认证

身份认证:本地认证、服务器认证、证书认证

角色授权:本地授权、服务器授权

SSL VPN服务器通常部署在企业出口防火墙的内部,而华为多款USG系列产品可以直接作为SSL VPN服务器。上海腾科教育专注于提供专业的华为认证培训指导,并在此基础上进一步拓展资源,为学员提供大厂内部推荐岗位的机会;不仅深入细致地帮助学员熟练掌握网络安全领域的各项先进技术,还构建了一套全面的就业指导体系,为学员的职业发展保驾护航。

了解更多大厂就业知识,跟上海腾科教育一起实现梦想。


http://www.kler.cn/a/394950.html

相关文章:

  • kubernetes简单入门实战
  • 【PowerHarmony】电鸿蒙学习记录-编写helloworld!
  • 实现 MVC 模式
  • Electron 项目启动外部可执行文件的几种方式
  • C/C++精品项目之图床共享云存储(3):网络缓冲区类和main
  • Web安全之SQL注入---基础
  • torch.nn.**和torch.nn.functional.**的区别
  • 同局域网ssh连接wsl2
  • 鸿蒙NEXT开发案例:光强仪
  • 【数学二】线性代数-二次型
  • 基于STM32设计的矿山环境监测系统(NBIOT)_262
  • 机器学习——30种常见机器学习算法简要汇总
  • Ue5 umg学习(一)
  • 修改数据库和表的字符集
  • Swift 宏(Macro)入门趣谈(一)
  • 在Oracle数据中更新整个对象和更新对象的某几个字段时,他们的锁是相同的吗
  • bash file_name 和 ./file_name 之间的区别
  • 【深度学习】环境下载地址汇总
  • spring组件介绍
  • STM32WB55RG开发(2)----STM32CubeProgrammer烧录
  • C#与C++交互开发系列(二十二):跨进程通信之使用基于HTTP协议的REST风格的API
  • 若依前后端分离版部署(超详细)
  • C++内存池实现
  • 51c大模型~合集44
  • Jdbc学习笔记(四)--PreparedStatement对象、sql攻击(安全问题)
  • 采样率22050,那么CHUNK_SIZE 一次传输的音频数据大小设置多少合适?unity接收后出现卡顿的问题的思路