https的相关知识
1介绍 HTTPS 握手过程
2tgtg
3132
46786
1.介绍 HTTPS 握手过程
步骤 1: 客户端通过发送 Client Hello 报文开始 SSL 通信。报文中包 含客户端支持的 SSL 的指定版本、加密组件(Cipher Suite)列表(所 使用的加密算法及密钥长度等)。
步骤 2: 服务器可进行 SSL 通信时,会以 Server Hello 报文作为应答。和客户端一样,在报文中包含 SSL 版本以及加密组件。服务器的 加密组件内容是从接收到的客户端加密组件内筛选出来的。
步骤 3: 之后服务器发送 Certificate 报文。报文中包含公开密钥证书。
步骤 4: 最后服务器发送 Server Hello Done 报文通知客户端,最初阶 段的 SSL 握手协商部分结束。
步骤 5: SSL 第一次握手结束之后,客户端以 Client Key Exchange 报 文作为回应。报文中包含通信加密中使用的一种被称为 Pre-master secret 的随机密码串。该报文已用步骤 3 中的公开密钥进行加密。
步骤 6: 接着客户端继续发送 Change Cipher Spec 报文。该报文会提 示服务器,在此报文之后的通信会采用 Pre-master secret 密钥加密。( SSL支持的四种内容类型是:application—data、alert、handshake和changeciperspec)
步骤 7: 客户端发送 Finished 报文。该报文包含连接至今全部报文的 整体校验值。这次握手协商是否能够成功,要以服务器是否能够正确 解密该报文作为判定标准。
步骤 8: 服务器同样发送 Change Cipher Spec 报文。
步骤 9: 服务器同样发送 Finished 报文。
步骤 10: 服务器和客户端的 Finished 报文交换完毕之后,SSL 连接 就算建立完成。当然,通信会受到 SSL 的保护。从此处开始进行应用 层协议的通信,即发送 HTTP 请求。
步骤 11: 应用层协议通信,即发送 HTTP 响应。
步骤 12: 最后由客户端断开连接。断开连接时,发送 close_notify 报 文。上图做了一些省略,这步之后再发送 TCP FIN 报文来关闭与 TCP 的通信。
在以上流程中,应用层发送数据时会附加一种叫做 MAC(Message Authentication Code)的报文摘要。MAC 能够查知报文是否遭到篡改,从而保护报文的完整性。
下面是对整个流程的图解。图中说明了从仅使用服务器端的公开密钥 证书(服务器证书)建立 HTTPS 通信的整个过程。
2tgtg
3132
46786
https的相关知识相关推荐
- https ssl证书的工作原理及使用相关知识收集
https ssl证书的工作原理及使用相关知识收集 SSL 与 数字证书 的基本概念和工作原理 前言 SSL是让人头大的东西,看起来很复杂,我学过信息安全课,但是对SSL仍然是模糊一片.对于数字证书也 ...
- JS作用域相关知识(#精)
在学习<你不知道的JS>一书中,特将作用域相关知识在此分享一下: #说到作用域,就不得不提到LHS查询和RHS查询: 1)如果查询目的是对变量进行赋值,则使用LHS查询 2)如果查询目的是 ...
- shell的相关知识(变量、脚本定义)
一.shell的相关知识: 1.对于shell编程语言大体分为:机器语言.汇编语言.高级语言 2.shell变量类型:事先确定数据的存储格式和长度 shell变量分为:字符型.数值型 数值型又分为:整 ...
- js基础--数据类型检测的相关知识
欢迎访问我的个人博客:www.xiaolongwu.cn 前言 最近工作有点忙,好几天都没更新技术博客了. 周末起床打开有道云笔记,发现自己的博客todolist里躺了一堆只有名字的文件. 话不多说, ...
- 转载:关于错排的相关知识
转载:关于错排的相关知识 杭电2048相关知识充电 转自:错排公式 分类: 数论 关于程序2012-06-08 19:07 335人阅读 评论(0) 收藏 举报 n2 错排问题 错排问题 就是一种递推 ...
- 学习Ruby你需要了解的相关知识(rvm, gem, bundle, rake, rails等)
这篇文章主要介绍了学习Ruby你需要了解的相关知识(rvm, gem, bundle, rake, rails等),需要的朋友可以参考下 Ruby 这个就不用多说了 RVM 用于帮你安装Ruby环境, ...
- 汇编实验2.2 查找匹配字符串(附有详细注释和源代码和相关知识)
实验2.2 查找匹配字符串 实验要求: 程序接收用户键入的一个关键字以及一个句子.如果句子中不包含关键字则显示'No match!';如果句子中包含关键字则显示'Match',且把该字在句子中的位置用 ...
- Next.js踩坑入门系列(七) —— 其他相关知识
Next.js踩坑入门系列 (一) Hello Next.js (二) 添加Antd && CSS (三) 目录重构&&再谈路由 (四) Next.js中期填坑 (五) ...
- 【提高系列】webpack相关知识
这次我们主要研究的是webpack框架的相关知识,webpack是一个打包构建的前端框架,用于解决前端开发的模块化问题. 应用场景和纵向比较 说到webpack,肯定你还会想到gulp和grunt这些 ...
最新文章
- 调试 后台 ajax post 对应的php的方法
- 如何用CMD递归查看Windows中文件夹结构 也叫做树形结构!
- 使apk具有system权限
- 华为员工实力炫富,工作六年一套房一辆豪车,存款六十万
- DARPA发布产业振兴计划,继承摩尔智慧
- Spring Boot+Vue从零开始搭建系统(一):项目前端_Vuejs环境搭建
- android 8 续航 评测,iPhone8续航能力测试 明显超过许多安卓手机
- Repeater嵌套绑定Repeater[转]
- mapper.xml报异常The content of elhe content of element type mapper
- 【数据竞赛】从0梳理1场CV缺陷检测赛事!
- MQTT.fx连接aliyun阿里云的方法
- python图形用户界面pyside_PySide——Python图形化界面入门教程(一)
- 汇编语言(十一)之统计非数字字符个数
- 二层和三层工业交换机的主要参数说明
- leetcode520. py解字符串真是太残暴了
- 各层作用_OSI模型中各层在通信中的作用
- 深入理解计算机系统第六章家庭作业之6.35 6.36
- 中国IT行业薪资:与销售相比,程序员真得很“穷”
- 闭环计算机控制系统的例子,自动控制的举例_自动控制的例子_开环和闭环自动控制系统举例...
- 【实习之T100开发】T100 单档程序开发,java工程师面试突击中华石杉
热门文章
- 合肥十中高考2021成绩查询,2019合肥十中录取分数线及2019高考成绩喜报
- Dubbo 与 Feign 的区别
- 只要一步就让WorkNC导出应用至UG等不同CAM数控软件的残留毛坯
- php怎么判断是个几数组,php如何判断数组是几维
- HAT-Overcoming Catastrophic Forgetting with Hard Attention to the Task翻译
- 前景理论-风险决策分析的思维模型
- CSDN插入公式的方法
- SpringCloud-Netflix-Eureka
- Java制作简单的单选和多选测试题
- networkx igraph graph-tool等之间的效率