关于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握手内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 鸿蒙NEXT元服务之如何利用App Linking实现无缝跳转与二维码拉起

    鸿蒙NEXT元服务之如何利用App Linking实现无缝跳转与二维码拉起

    本文介绍了如何使用AppLinking技术实现元服务之间的无缝跳转,并通过生成二维码的方式快速拉起元服务,从而简化用户操作流程,增强应用的互动性和推广效率,感兴趣的朋友跟随小编一起看看吧
    2024-11-11
  • 2020史上最全IDEA插件总结(推荐收藏)

    2020史上最全IDEA插件总结(推荐收藏)

    这篇文章主要介绍了2020史上最全IDEA插件总结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2020-06-06
  • 不同的编程语言输出 “Hello World” 代码

    不同的编程语言输出 “Hello World” 代码

    对很多人来说,每当学习一门新的编程语言,写下的第一行代码可能都是“Hello,World!“。因此,”Hello,World!" 已经成为一段经典程序。在成长中,程序员通常会使用多种编程语言,大部分程序员甚至实现过十几种”Hello,World!”版本。
    2022-12-12
  • 软件测试学到什么程度,可以开始找工作

    软件测试学到什么程度,可以开始找工作

    其实学习软件测试没有大家想象中的那么难,就算是零基础也不用害怕,学习就是一个从不熟悉到熟悉的过程,那么软件测试学到什么程度,可以开始找工作?下面就来介绍一下
    2007-02-02
  • WebStorm 2019.2安装配置方法图文教程

    WebStorm 2019.2安装配置方法图文教程

    这篇文章主要为大家详细介绍了WebStorm 2019.2安装配置方法图文教程,文中安装步骤介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-09-09
  • WebStorm打开多个项目的三种方法总结

    WebStorm打开多个项目的三种方法总结

    WebStorm支持多项目管理,本文介绍了三种方法:使用项目导航面板、窗口分割和多个WebStorm实例,项目导航面板可以在同一窗口内管理多个项目,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-09-09
  • 分享下GET和POST的真正区别

    分享下GET和POST的真正区别

    如果有人问你,GET和POST,有什么区别?你会如何回答
    2013-02-02
  • kali-linux 202202 安装w3af命令行版的详细过程

    kali-linux 202202 安装w3af命令行版的详细过程

    这篇文章主要介绍了kali-linux 202202 安装w3af命令行版,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • OpenManus安装与部署中的常见问题解决方案与避坑指南

    OpenManus安装与部署中的常见问题解决方案与避坑指南

    本文主要分享一下OpenManus使用过程中的宝贵解决方案,从环境配置、模型选择到功能优化,全方位提供避坑指南,助你少走弯路,充分发挥这个强大平台的潜力
    2025-03-03
  • XMind 2021激活码及安装步骤

    XMind 2021激活码及安装步骤

    XMind 是一款非常实用的商业思维导图,应用Eclipse RCP 开发架构,打造易用、高效的可视化思维,强调该功能的可扩展、跨平台、稳定性和性能,致力于帮助用户提高生产率。本文给大家带来了XMind 2021激活码,需要的朋友可以参考下
    2021-12-12

最新评论