HTTPS-TSL握手

news2024/10/4 15:32:28

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怎么做到前向保密?

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/421788.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Unity快手上手【熟悉unity编辑器,C#脚本控制组件一些属性之类的】

Unity学习参考文档和开发工具 ☺ unity的官网文档:https://docs.unity3d.com/cn/current/Manual/ScriptingSection.html ■ 学习方式: 首先了解unity相关概述,快速认识unity编辑器,然后抓住重点的学:游戏对象、组件|…

【C++】1. 命名空间

文章目录一、命名空间的由来二、命名空间的使用2.1 关键字:namespace2.2 访问命名空间里的标识符2.3 命名空间的特点三、总结一、命名空间的由来 当我们使用c语言编写项目时,可能遇到以下情况: 变量名与某个库函数名重复,导致保…

sscanf和snprintf格式化时间字符串的日期与时间戳相互转换用法

sscanf格式化时间字符串的用法 UTC:Coordinated Universal Time 协调世界时。因为地球自转越来越慢,每年都会比前一年多出零点几秒,每隔几年协调世界时组织都会给世界时1秒,让基于原子钟的世界时和基于天文学(人类感知…

测试技术与信号处理实验报告

目录 金属箔式应变片——单臂电桥性能实验 金属箔式应变片——半桥性能实验 金属箔式应变片——全桥性能实验 差动变压器的性能实验 直流全桥的应用——电子秤实验 交流激励时霍尔式传感器的位移特性实验 电容式传感器的位移实验 磁电式转速传感器测速实验 金属箔式应变…

C++ -- 继承

文章目录1. 继承的概念和定义1.1 概念1.2 定义1.2.1 定义格式1.2.2 继承基类成员访问方式的变化2. 基类和派生类对象赋值转换3. 继承中的作用域4. 派生类的默认成员函数5. 继承与友元6. 继承与静态成员7. 复杂的菱形继承及菱形虚拟继承8. 继承和组合1. 继承的概念和定义 1.1 概…

听歌无线耳机哪个品牌好?2023适合听歌的好音质蓝牙耳机推荐

现如今,不管是听歌、追剧或是玩游戏,不少人喜欢戴蓝牙耳机进行。因为蓝牙耳机的功能更丰富,连接方便,还摆脱了线的束缚,使用起来更方便。那么,听歌无线耳机哪个品牌好?针对这个问题,…

『造轮子』亿级短URL生成器的架构设计及源码分享

📣读完这篇文章里你能收获到 了解博主的短链生成的架构设计思路学习不同的短链技术方案选择学习基于混淆的自增短URL算法了解博主造的轮子SuperShortLink短链开源项目感谢点赞收藏,避免下次找不到~ 文章目录一、需求分析1. 短链生成及访问需求2. 短链应…

Python+requests+unittest+excel接口自动化测试框架

一、框架结构: 工程目录 二、Case文件设计 三、基础包 base 3.1 封装get/post请求(runmethon.py) 1 import requests2 import json3 class RunMethod:4 def post_main(self,url,data,headerNone):5 res None6 if heade…

互联网医院源码|搭建互联网医院系统时运营需要哪些资质?

目前一线城市已经都有完善的医疗系统,人们对于线上问诊系统越来越熟悉,使用的人也越来越多,对于一些偏远的地区来说在线问诊平台有着更广泛的应用和意义,互联网医院开发实现了医疗资源共享的情况,打破了地域限制&#…

文献管理软件Endnote、Mendeley、Zotero比较及选择,Zotero基础使用技巧

引言 大家好,我是比特桃。日常开发的项目分为两种,一种是成熟化的工程项目,只需要与具体的业务紧密结合及应用,难点也比较偏向于软件工程或者互联网高并发的方向。这种项目我们通常不会选择去查文献去寻找问题的解决办法&#xf…

微信小程序开发 | 音乐小程序项目

音乐小程序项目3.1 开发前的准备3.1.1 项目展示3.1.2 项目分析3.1.3 项目初始化3.2 【任务1】标签页切换3.2.1 任务分析3.2.2 前导知识3.2.3 编写页面结构和样式3.2.4 实现标签页切换3.3 【任务2】音乐推荐3.3.1 任务分析3.3.2 前导知识3.3.3 内容区域滚动3.3.4 轮播图3.3.5 功…

15-721 chapter2 内存数据库

Background 随着时代的发展,DRAM可以容纳足够的便宜,容量也变大了。对于数据库来说,数据完全可以fit in memory,但同时面向disk的数据库架构不能很好的发挥这个特性 这张图是disk database的cpu instruction cost 想buffer pool…

使用PyG(PyTorch Geometric)实现基于图卷积神经网络(GCN)的节点分类任务

文章目录基本介绍PyTorch Geometric图卷积神经网络GCN节点分类任务实现Cora数据集搭建GCN模型训练与测试迭代并输出完整代码基本介绍 PyTorch Geometric PyG(PyTorch Geometric)是一个基于PyTorch的库,可以轻松编写和训练图神经网络&#x…

ChatGPT,开启人机交互新篇章

ChatGPT在世界掀起了生成式AI的热潮,2个月实现月活用户过亿,是人类有史以来突破1亿人用户最快的消费端互联网产品,打破了Tiktok9个月破亿用户的纪录。不少专家将其视为第四次工业革命,资本市场也贡献大量涨停。当第一波的热情消退…

Android 7.1 Toast修复之终极篇,进程不奔溃(包含apk和兼容外来dex插件)

修复android 7.1 Toast的篇章: 常规app通过ams lancet 字节编码处理:Android Lancet Aop 字节编码修复7.1系统Toast问题(WindowManager$BadTokenException)多渠道游戏app兼容性处理:Android 7.1 Toast修复之多渠道包动态使用Booster或者Lancet plugin …

在外web浏览器远程访问jupyter notebook服务器【内网穿透】

文章目录前言视频教程1. Python环境安装2. Jupyter 安装3. 启动Jupyter Notebook4. 远程访问4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口转载自远控源码文章:公网远程访问jupyter notebook【cpolar内网穿透】 前言 Jupyter Notebook,它是一个交…

未来城市的微小单元:滴滴即将量产无人车

汽车诞生之后就一直作为除了家庭与公司之外的「第三空间」存在,技术的脚步从未停止过开发汽车的更多可能。尤其无人驾驶技术的出现,进一步解放了驾驶者,也让人们对于这一能够自主移动的第三空间充满了想象。作为未来城市的微小组成单元&#…

( “树” 之 DFS) 226. 翻转二叉树 ——【Leetcode每日一题】

226. 翻转二叉树 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例 1: 输入:root [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1] 示例 2: 输入:root [2,1,3] 输出:[…

ThreadLocal源码分析及内存泄漏

ThreadLocal原理分析及内存泄漏ThreadLocal的使用ThreadLocal原理set方法解析replaceStaleEntry方法解析expungeStaleEntry方法解析cleanSomeSlots方法解析case 1: 向前有脏数据,向后找到可覆盖的Entrycase 2: 向前有脏数据,向后未找到可覆盖的Entrycase…

吴恩达机器学习--线性回归

文章目录前言一、单变量线性回归1.导入必要的库2.读取数据3.绘制散点图4.划分数据5.定义模型函数6.定义损失函数7.求权重向量w7.1 梯度下降函数7.2 最小二乘法8.训练模型9.绘制预测曲线10.试试正则化11.绘制预测曲线12.试试sklearn库二、多变量线性回归1.导入库2.读取数据3.划分…