首页 > 其他分享 >HTTPS双向认证

HTTPS双向认证

时间:2023-02-14 10:14:24浏览次数:40  
标签:公钥 服务器端 证书 发送给 认证 HTTPS 双向 服务端 客户端

双向认证,顾名思义,客户端和服务器端都需要验证对方的身份,在建立HTTPS连接的过程中,握手的流程比单向认证多了几步。单向认证的过程,客户端从服务器端下载服务器端公钥证书进行验证,然后建立安全通信通道。双向通信流程,客户端除了需要从服务器端下载服务器的公钥证书进行验证外,还需要把客户端的公钥证书上传到服务器端给服务器端进行验证,等双方都认证通过了,才开始建立安全通信通道进行数据传输。

 

1. 原理

1.1 单向认证流程(无加密方案选择过程)

 

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

 

 

  1. 客户端发起建立HTTPS连接请求,将SSL协议版本的信息发送给服务器端;

  2. 服务器端将本机的公钥证书(server.crt)发送给客户端;

  3. 客户端读取公钥证书(server.crt),取出了服务端公钥;

  4. 客户端生成一个随机数(密钥R),用刚才得到的服务器公钥去加密这个随机数形成密文,发送给服务端;

  5. 服务端用自己的私钥(server.key)去解密这个密文,得到了密钥R

  6. 服务端和客户端在后续通讯过程中就使用这个密钥R进行通信了。

 

1.2 双向认证流程(有加密方案选择过程)

 

 

  1. 客户端发起建立HTTPS连接请求,将SSL协议版本的信息发送给服务端;

  2. 服务器端将本机的公钥证书(server.crt)发送给客户端;

  3. 客户端读取公钥证书(server.crt),取出了服务端公钥;

  4. 客户端将客户端公钥证书(client.crt)发送给服务器端;

  5. 服务器端使用根证书(root.crt)解密客户端公钥证书,拿到客户端公钥;

  6. 客户端发送自己支持的加密方案给服务器端;

  7. 服务器端根据自己和客户端的能力,选择一个双方都能接受的加密方案,使用客户端的公钥加密后发送给客户端;

  8. 客户端使用自己的私钥解密加密方案,生成一个随机数R,使用服务器公钥加密后传给服务器端;

  9. 服务端用自己的私钥去解密这个密文,得到了密钥R

  10. 服务端和客户端在后续通讯过程中就使用这个密钥R进行通信了。

标签:公钥,服务器端,证书,发送给,认证,HTTPS,双向,服务端,客户端
From: https://www.cnblogs.com/gongxianjin/p/17118741.html

相关文章

  • 认证类
    1drf-jwt源码执行流程(了解)1.1签发(登录)#登录接口,路由匹配成功,执行objain_jwt_token---》post请求---》ObtainJSONWebToken的post方法 path('login/',obtain_jwt_to......
  • http和https的区别
    HTTPHTTP协议以明文方式发送内容,不提供任何方式的数据加密。HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。端口80HTTPSHTTPS在HTTP的基础上加入了SSL......
  • 断点调试/认证/权限/频率-源码分析/基于APIView编写分页/异常处理
    内容概要断点调试认证/权限/频率-源码分析基于APIView编写分页异常处理断点调试#程序以debug模式运行,可以在任意位置停下,查看当前情况下变量数据的变化情况#p......
  • 真正“搞”懂HTTPS协议15之安全的定义
    前面我们花了很大的篇幅来讲HTTP在性能上的改进,从1.0到1.1,再到2.0、3.0,HTTP通过替换底层协议,解决了一直阻塞性能提升的队头阻塞问题,在性能上达到了极致。那么,接下......
  • 婴儿监视器美国亚马逊认证ASTM F2951标准要求?
    婴儿监视器,又称婴儿监听器、婴儿监护器,英文名为(babymonitor其主要用于用于居家和婴儿的监听和护理。欧美市场上广泛使用,已经存在30年历史的BabyMonitor是采用现代无线......
  • 推荐一个程序员接单平台,认证就白嫖50块,写个功能就能技术入股
    一直以为自己出身寒门呀,原来寒门是指势力较低的世家。我不是寒门,再怎么也得是个庶民吧!鬼知道这个庶民是指有房有钱的人。古代没有房叫做氓,没有钱叫做流,简称就是流氓。不服......
  • 推荐一个程序员接单平台,认证就白嫖50块,写个功能就能技术入股
    一直以为自己出身寒门呀,原来寒门是指势力较低的世家。我不是寒门,再怎么也得是个庶民吧!鬼知道这个庶民是指有房有钱的人。古代没有房叫做氓,没有钱叫做流,简称就是流氓。不......
  • HTTPS基础原理和配置 - 1
    近期又碰到了SSL相关的事情,就心血来潮开个新专题-《HTTPS基础原理和配置》本文是第一篇文章,主要介绍SSLTLS加密协议的相关内容。加密协议历史概要SSLTLS加密协......
  • 11 Auth认证模块
    Auth认证模块Auth模块是什么Auth模块是Django自带的用户认证模块:在开发一个网站的时候,无可避免的需要设计实现网站的用户系统。此时需要实现包括用户注册、登录、认证、......
  • https//mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/linux-64'
    CondaHTTPError:HTTP000CONNECTIONFAILEDforurl<https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/linux-64/current_repodata.json> Elap......