博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HTTPS的安全通信机制
阅读量:5944 次
发布时间:2019-06-19

本文共 1109 字,大约阅读时间需要 3 分钟。

今天给大家分享一下https的通信交互机制,如果不了解https的请查看,话不多说看下图就一目了然

步骤1 :客户端通过发送ClientHello报文开始SSL通信。报文中包含客户端支持的SSL的指定版本、加密组件列表(所使用的加密算法及密钥长度)。

步骤2:服务器进行SSL通信时,会以ServerHello 报文作为应答。和客户端一样,在报文中含有SSL的版本以及加密组件

步骤3: 之后服务器会发送 数字证书机构签名的数字证书(Cretificate,服务器公开钥匙+证书)。报文中包含公开密钥证书。

步骤4: 最后服务器发送Server Hello Done 报文通知客户端,最初阶段的SSL握手协议结束。

步骤5: SSL第一次握手结束之后,客户端以 Client key Exchange 报文作为回应。报文中包含通信加密中使用的一种称为Pre-master  secret的随机密码串。该报文已被步骤3中的公开密钥进行加密。

步骤6:接着客户端继续发送Change Cipher Spec报文。该报文会提示服务器,次报文之后的通信会采用Per-master secret(共享)密钥加密

步骤7:客户端发送Finished报文。该报文包含连接至今全部报文的整体校验值。这次握手协商是否成功,要以服务器是否能够正确解密(共享密钥解密)该报文作为判断标准。

步骤8:服务器同样发送 Change Cipher Spec报文,该报文提示客户端,次报文之后的通信会采用Per-master secret(共享)密钥加密

步骤9:服务器同样发送Finished报文,该报文包含连接至今全部报文的整体校验。这次握手协商是否成功,要以客户端是否能够正确解密(共享密钥解密)改报文作为判断标准。

步骤10: 服务器和客户端的Finished报文交换之后,ssl连接算是建立完成。当然,通信会受到SSL的保护。从此开始进行应用层协议的通信,即发送http请求

步骤11:应用层协议通信,即发送http响应。

步骤12:最后由客户端断开连接。断开时,发送close_notify报文。上图做了一些省略,这部之后在发送TCP FIN 报文来关闭与TCP的通信

在以上流程中,应用层发送数据时会附加一种叫做MAC(masess authentication code)的报文摘要。MAC能够查知报文是否遭到篡改,从而保护报文的完整性。

下面是对整个流程的图解。途中说明了从使用服务器的公开密钥证书建立https通信的整个过程。

转载于:https://juejin.im/post/5c2091116fb9a049e063586f

你可能感兴趣的文章
大照片背景在网页设计中应用的精美作品范例(下篇)
查看>>
Realtek 8192cu win8 驱动
查看>>
property 中的strong 与weak
查看>>
使用HDFS java api 创建文件出错。
查看>>
支持多个文档类型的文档视结构程序
查看>>
【原创】FIFO的基础和时序分析学习
查看>>
Nginx学习之十一-Nginx启动框架处理流程
查看>>
[置顶] 吃论扯谈---吃货和Office 365订阅的关系
查看>>
蓝桥杯 基础练习 十六进制转十进制(水题,进制转换)
查看>>
php有些系统会报错或提示 Cannot modify header information - headers already sent by
查看>>
从零開始开发Android版2048 (五) 撤销的实现
查看>>
OpenGL 4 : 一个漂亮的心 For you, My Love
查看>>
2007年硕士研究生面试时的英文自我介绍
查看>>
POJ1789:Truck History(Prim算法)
查看>>
SD卡
查看>>
使用servletAPI三种方式简单示例
查看>>
单片机不同晶振怎么计算延迟时间?
查看>>
视频会议十大开源项目排行
查看>>
SQL Server Management Studio 简单使用说明
查看>>
【前端】javascript判断undefined、null、NaN;字符串包含等
查看>>