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

HTTPS的单向认证和双向认证是什么?有什么区别?

目录标题

  • 单向认证流程
  • 双向认证流程
  • 区别

单向认证流程

HTTPS单向认证‌是指只有服务器向客户端证明其身份。在这种认证方式中,服务器会向客户端发送一个由可信证书颁发机构(CA)签发的SSL证书,客户端会验证这个证书以确保服务器的真实性和信任度。一旦客户端验证了服务器的证书并确认其可信,就会与服务器建立加密的通信连接。这种认证方法常用于大多数客户端-服务器通信。

单向认证流程中,服务器端保存着公钥证书和私钥两个文件,整个握手过程如下:

在这里插入图片描述

具体流程如下:

  1. 客户端发起建立HTTPS连接请求,将SSL协议版本的信息发送给服务器端。
  2. 服务器端将本机的公钥证书(server.crt)发送给客户端。
  3. 客户端读取公钥证书(server.crt),取出了服务端公钥。
  4. 客户端生成一个随机数(密钥R),用刚才得到的服务器公钥去加密这个随机数形成密文,发送给服务端。
  5. 服务端用自己的私钥(server.key)去解密这个密文,得到了密钥R。
  6. 服务端和客户端在后续通讯过程中就使用这个密钥R进行通信了。

客户端发送请求到服务器。
服务器发送自己的SSL证书给客户端。
客户端验证服务器的证书,确认其合法性和有效性。
双方使用对称密钥进行加密通信‌

双向认证流程

‌HTTPS双向认证‌不仅要求服务器向客户端证明其身份,还要求客户端向服务器证明其身份。在这种认证方式中,服务器和客户端都需要提供证书。服务器会验证客户端的证书,确认其身份,同时客户端也会验证服务器的证书。这种认证方式通常用于需要高安全性的场景,如银行和其他金融服务‌。

在这里插入图片描述

  1. 客户端发起建立HTTPS连接请求,将SSL协议版本的信息发送给服务端。
  2. 服务器端将本机的公钥证书(server.crt)发送给客户端。
  3. 客户端读取公钥证书(server.crt),取出了服务端公钥。
  4. 客户端将客户端公钥证书(client.crt)发送给服务器端。
  5. 服务器端使用根证书(root.crt)解密客户端公钥证书,拿到客户端公钥。
  6. 客户端发送自己支持的加密方案给服务器端。
  7. 服务器端根据自己和客户端的能力,选择一个双方都能接受的加密方案,使用客户端的公钥加密后发送给客户端。
  8. 客户端使用自己的私钥解密加密方案,生成一个随机数R,使用服务器公钥加密后传给服务器端。
  9. 服务端用自己的私钥去解密这个密文,得到了密钥R。
  10. 服务端和客户端在后续通讯过程中就使用这个密钥R进行通信了。

客户端发送请求到服务器。
服务器发送自己的SSL证书给客户端。
客户端验证服务器的证书。
客户端发送自己的证书给服务器。
服务器验证客户端的证书。
双方协商加密算法和生成对称密钥进行通信‌

区别

单向认证和双向认证的主要区别在于认证的方向和参与方。单向认证只需要客户端验证服务器的身份,而双向认证则需要双方都验证对方的身份。根据不同的安全需求选择合适的认证方式是非常重要的。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们处理,核实后本网站将在24小时内删除侵权内容。

在这里插入图片描述


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

相关文章:

  • 实时数据开发 | checkpoints监控和调优
  • 【ComfyUI】前景分割ComfyUI-BiRefNet-Hugo (无法选定分割的主体,背景鉴别由模型数据,也叫二分分割,显著性分割)
  • Python基础学习-11函数参数
  • 【通俗理解】神经网络中步长缩小的奥秘:优化算法与卷积操作的影响
  • Windows下安装FreeSurfer教程
  • 鱼眼相机模型-MEI
  • Flink 中 JDBC Connector 使用详解
  • WPF ItemsControl控件
  • 【深度学习|目标跟踪】StrongSort 详解(以及StrongSort++)
  • 浏览器缓存与协商缓存
  • 深入理解HTML基本结构:构建现代网页的基石
  • CSDN设置成黑色背景(谷歌 Edge)
  • 手机实时提取SIM卡打电话的信令声音-智能拨号器的双SIM卡切换方案
  • JS-对象-05-DOM
  • vue页面成绩案例(for渲染表格/删除/添加/统计总分/平均分/不及格显红色/输入内容去首尾空格trim/输入内容转数字number)
  • <<WTF-Solidity>>学习笔记(part 9-12)
  • 减速电机的减速比是什么意思?
  • 软件测试丨Pytest 第三方插件与 Hook 函数
  • ffmpeg 预设的值 加速
  • git源码安装
  • 集合卡尔曼滤波(EnKF)的三维滤波(模拟平面定位)例程,带逐行注释
  • Docker容器运行CentOS镜像,执行yum命令提示“Failed to set locale, defaulting to C.UTF-8”
  • mysql window安装(学习使用)
  • 数据库编程(sqlite3)
  • 深度神经网络模型压缩学习笔记二:离线量化算法和工具、实现原理和细节
  • QT入门详解,创建QT应用