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的相关知识相关推荐

  1. https ssl证书的工作原理及使用相关知识收集

    https ssl证书的工作原理及使用相关知识收集 SSL 与 数字证书 的基本概念和工作原理 前言 SSL是让人头大的东西,看起来很复杂,我学过信息安全课,但是对SSL仍然是模糊一片.对于数字证书也 ...

  2. JS作用域相关知识(#精)

    在学习<你不知道的JS>一书中,特将作用域相关知识在此分享一下: #说到作用域,就不得不提到LHS查询和RHS查询: 1)如果查询目的是对变量进行赋值,则使用LHS查询 2)如果查询目的是 ...

  3. shell的相关知识(变量、脚本定义)

    一.shell的相关知识: 1.对于shell编程语言大体分为:机器语言.汇编语言.高级语言 2.shell变量类型:事先确定数据的存储格式和长度 shell变量分为:字符型.数值型 数值型又分为:整 ...

  4. js基础--数据类型检测的相关知识

    欢迎访问我的个人博客:www.xiaolongwu.cn 前言 最近工作有点忙,好几天都没更新技术博客了. 周末起床打开有道云笔记,发现自己的博客todolist里躺了一堆只有名字的文件. 话不多说, ...

  5. 转载:关于错排的相关知识

    转载:关于错排的相关知识 杭电2048相关知识充电 转自:错排公式 分类: 数论 关于程序2012-06-08 19:07 335人阅读 评论(0) 收藏 举报 n2 错排问题 错排问题 就是一种递推 ...

  6. 学习Ruby你需要了解的相关知识(rvm, gem, bundle, rake, rails等)

    这篇文章主要介绍了学习Ruby你需要了解的相关知识(rvm, gem, bundle, rake, rails等),需要的朋友可以参考下 Ruby 这个就不用多说了 RVM 用于帮你安装Ruby环境, ...

  7. 汇编实验2.2 查找匹配字符串(附有详细注释和源代码和相关知识)

    实验2.2 查找匹配字符串 实验要求: 程序接收用户键入的一个关键字以及一个句子.如果句子中不包含关键字则显示'No match!';如果句子中包含关键字则显示'Match',且把该字在句子中的位置用 ...

  8. Next.js踩坑入门系列(七) —— 其他相关知识

    Next.js踩坑入门系列 (一) Hello Next.js (二) 添加Antd && CSS (三) 目录重构&&再谈路由 (四) Next.js中期填坑 (五) ...

  9. 【提高系列】webpack相关知识

    这次我们主要研究的是webpack框架的相关知识,webpack是一个打包构建的前端框架,用于解决前端开发的模块化问题. 应用场景和纵向比较 说到webpack,肯定你还会想到gulp和grunt这些 ...

最新文章

  1. 调试 后台 ajax post 对应的php的方法
  2. 如何用CMD递归查看Windows中文件夹结构 也叫做树形结构!
  3. 使apk具有system权限
  4. 华为员工实力炫富,工作六年一套房一辆豪车,存款六十万
  5. DARPA发布产业振兴计划,继承摩尔智慧
  6. Spring Boot+Vue从零开始搭建系统(一):项目前端_Vuejs环境搭建
  7. android 8 续航 评测,iPhone8续航能力测试 明显超过许多安卓手机
  8. Repeater嵌套绑定Repeater[转]
  9. mapper.xml报异常The content of elhe content of element type mapper
  10. 【数据竞赛】从0梳理1场CV缺陷检测赛事!
  11. MQTT.fx连接aliyun阿里云的方法
  12. python图形用户界面pyside_PySide——Python图形化界面入门教程(一)
  13. 汇编语言(十一)之统计非数字字符个数
  14. 二层和三层工业交换机的主要参数说明
  15. leetcode520. py解字符串真是太残暴了
  16. 各层作用_OSI模型中各层在通信中的作用
  17. 深入理解计算机系统第六章家庭作业之6.35 6.36
  18. 中国IT行业薪资:与销售相比,程序员真得很“穷”
  19. 闭环计算机控制系统的例子,自动控制的举例_自动控制的例子_开环和闭环自动控制系统举例...
  20. 【实习之T100开发】T100 单档程序开发,java工程师面试突击中华石杉

热门文章

  1. 合肥十中高考2021成绩查询,2019合肥十中录取分数线及2019高考成绩喜报
  2. Dubbo 与 Feign 的区别
  3. 只要一步就让WorkNC导出应用至UG等不同CAM数控软件的残留毛坯
  4. php怎么判断是个几数组,php如何判断数组是几维
  5. HAT-Overcoming Catastrophic Forgetting with Hard Attention to the Task翻译
  6. 前景理论-风险决策分析的思维模型
  7. CSDN插入公式的方法
  8. SpringCloud-Netflix-Eureka
  9. Java制作简单的单选和多选测试题
  10. networkx igraph graph-tool等之间的效率