关于HTTPS的TSL握手

 更新时间:2023年04月18日 11:00:58   作者:一路向东_  
这篇文章主要介绍了关于HTTPS的TSL握手,HTTP一般基于TCP协议,而HTTPS就是在这之间加了SSL/TLS协议,那么在TCP三次握手建立TCP连接后,就需要TLS握手建立SSL/TLS连接,需要的朋友可以参考下

HTTP一般基于TCP协议,而HTTPS就是在这之间加了SSL/TLS协议,那么在TCP三次握手建立TCP连接后,就需要TLS握手建立SSL/TLS连接。

TLS握手-流程

基于RSA算法

(1)首先,客户端向服务器发起加密通信请求-ClientHello请求,该请求包括 

    ① 生成随机数(用于后续会话密钥);

    ② 客户端支持的密码套件列表,如RSA加密算法。

    ③ 客户端支持的TLS协议版本;

(2)服务器收到后,作出响应-ServerHello,响应包括 

    ① 生成随机数(用于后续会话密钥)

    ② 确认密码套件列表;

     ③ 确认TLS协议版本;

同时发送Certificate信息,携带服务器的数字证书。

(3)客户端收到响应后,先通过浏览器或OS中的CA公钥确认数字证书真实合法,再出数字证书中服务器的公钥,使用其加密报文,发送往服务器:

    ① 一个随机数

    ② 传递后续通信都以【会话密钥】加密通信的信息;

    ③ 客户端握手结束通知;

    ④ 把之前所有发送数据做个摘要,并用【会话密钥】加密,以保证可用和信息未被篡改过。

综上的三个随机数,通过前面双方协商的加密算法,客户端生成本次通信的【会话密钥】

(4)服务器收到后,也会计算出本次通信的【会话密钥】,然后向客户端发送信息:

    ① 传递后续通信都以【会话密钥】加密通信的信息;

    ② 服务器握手结束通知

    ③ 把之前所有发送数据做个摘要,并用【会话密钥】加密,以保证可用和信息未被篡改过。

到这里TLS握手结束!

不,内容还没。

RSA比较传统的密钥交换算法不具前向安全的性质目前使用较少
ECDHE前向安全目前广泛使用

Extra Summary

RSA 和 ECDHE 算法区别

(1)ECDHE支持前向保密

(2)使用ECDHE可不需等最后一次TLS握手,就可以提前发送加密的HTTP数据,节省一个消息时间

(3)ECDHE在第2次握手,会出现服务器发出Server Key Exchange信息

以上RSA都达不到该效果。

Extra Question

第三次握手生成的【会话密钥】是对称的还是非对称的?

考虑非对称加密计算耗时量大,在HTTPS后续通信中使用的会话密钥是对称加密的。

前向保密是啥?

要求一个密钥仅可访问它所保护的数据;用来产生密钥的元素一次一换,不能再产生其他密钥;一个密钥被破解,并不影响其他密钥的安全性。

RSA为什么没有前向保密性?

因为RSA每次对称加密传递信息,都是基于公钥加密,私钥解密的,若干服务器私钥被截取了,那么通信数据将轻而易举地被解密。

ECDHE怎么做到前向保密?

关键在于客户端服务端都生成一对公私钥,且密钥是实时生成的。客户端服务器均为生成随机数作为私钥,据特殊公式算出各自的公钥,然后双方据持有的数据算出一个一样随机数用于后续对称加密的密钥。

到此这篇关于关于HTTPS的TSL握手的文章就介绍到这了,更多相关HTTPS的TSL握手内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • hadoop二次排序的原理和实现方法

    hadoop二次排序的原理和实现方法

    这篇文章主要介绍了hadoop二次排序的原理和实现,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-06-06
  • 简单介绍HTTP请求方式中8种请求方法

    简单介绍HTTP请求方式中8种请求方法

    这篇文章主要介绍了HTTP请求方式中8种请求方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2019-09-09
  • WebStorm 11.0.4安装图文教程

    WebStorm 11.0.4安装图文教程

    这篇文章主要为大家详细介绍了WebStorm 11.0.4安装图文教程,文中安装步骤介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-09-09
  • 关于程序员生活的一份调查,看看你属于哪一个群体吧

    关于程序员生活的一份调查,看看你属于哪一个群体吧

    这篇文章主要介绍了关于程序员生活的一份调查,看看你属于哪一个群体吧,需要的朋友可以参考下
    2014-09-09
  • Jenkins部署war包和部署jar包的详细步骤

    Jenkins部署war包和部署jar包的详细步骤

    这篇文章主要介绍了Jenkins部署war包和部署jar包的详细步骤,本恩分步骤通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • git版本库创建拓展添加文件到版本库教程

    git版本库创建拓展添加文件到版本库教程

    这篇文章主要为大家介绍了git版本库创建拓展添加文件到版本库教程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-04-04
  • Github创建个人访问Tokens令牌

    Github创建个人访问Tokens令牌

    这篇文章介绍了Github创建个人访问Tokens令牌的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • 8种类型极品程序员,不知你属于哪一种?

    8种类型极品程序员,不知你属于哪一种?

    这篇文章主要介绍了8种类型极品程序员,不知你属于哪一种?本文总结归纳了8种程类型的程序员,总结的非常精辟,来看看你是属于哪一种吧~
    2014-09-09
  • Burp Suite Pro安装和配置使用教程详解

    Burp Suite Pro安装和配置使用教程详解

    本文给大家分享的是Burp Suite Pro1.7.36安装配置使用教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-09-09
  • Git基础之git在项目中的协作模式

    Git基础之git在项目中的协作模式

    这篇文章主要为大家介绍了Git基础之git在项目中的协作模式,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-04-04

最新评论