浅析HTTPS的通信机制
什么是HTTPS?
HTTPS 是在HTTP(Hyper Text Transfer Protocol)的基础上加入SSL(Secure Sockets Layer),在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 。依此避免HTTP的明文传输容易被窃听、不验证身份容易被伪装、无法验证报文完整性容易被篡改等问题。除了被广泛用于互联网上安全敏感的通讯,大部分网站也正在广泛采用 。
HTTPS的通信机制
HTTPS不仅仅是把http://换成https://看上去那么简单,HTTPS的通信机制要比HTTP的复杂一些。
第一步,客户端向服务端发送Client Hello报文。在报文中描述了客户端支持的SSL版本,还有客户端支持的加密算法及密钥长度。
第二步,服务端向客户端发送Server Hello报文作为应答。在报文中描述了服务端和客户端可以共同使用的SSL版本、加密算法及密钥长度,以此作为后续报文传输的加密方式。
第三步,服务端向客户端发送Certificate报文。在报文中包含由数字证书认证机构(Certificate Authority,CA)和其相关机构颁发的公共密钥证书。
第四步,服务端向客户端发送Server Hello Done报文,通知客户端SSL握手协商部分结束。
第五步,当客户端收到服务端SSL握手结束的报文后,客户端首先验证证书的合法性和可靠性,然后向服务端发送Client Key Exchange报文。在报文中包含了使用证书中公开密钥加密的随机密钥。
第六步,客户端向服务端发送Change Cipher Spec报文。这个报文是为了提示服务端之后的通信都使用那个随机密钥进行对称加密。
第七步,客户端向服务端发送Finished报文。这个报文包含从开始连接到现在全部报文的整体校验值。服务端,握手协商成功。
第八步,当服务端能够正确解密并验证客户端的校验值时,同样向客户端发送Change Cipher Spec报文。
第九步,服务端向客户端同样发送Finished报文。
第十步,服务端和客户端的Finished报文交换完毕之后,SSL连接就建立完成了。当通信会受到 SSL 的保护后,开始发送 HTTP 请求和相应。
尾声
目前越来越多的核心技术被“卡脖子”,之前也传出一些开源软件禁止我国的使用。我有一个担心,万一CA也别被“卡脖子”,甚至被“征用”,那么我国的网络安全会受到极大的威胁。
竟然已经看到这里了,你我定是有缘人,留下你的点赞和关注,他日必成大器。
微信公众号:万猫学社
微信扫描二维码
关注后回复「电子书」
获取12本Java必读技术书籍

浅析HTTPS的通信机制的更多相关文章
- get与post区别,https协议的通信机制
get与post区别 幂等的的意思就是一个操作不会修改状态信息,并且每次操作的时候都返回同样的结果.即:做多次提交和做一次的对服务器效果是一样 的. 方法 用法 是否能修改服务器数据 幂等 安全 入参 ...
- RChain节点通信机制(上)
在介绍RChain的通信机制之前,先简单介绍一些以太坊的通信机制,它包括以下几个方面,如下详细了解以太坊的通信机制,可以查看https://github.com/ethereum/devp2p/blo ...
- 我所理解的Android组件化之通信机制
之前写过一篇关于Android组件化的文章,<Android组件化框架设计与实践>,之前没看过的小伙伴可以先点击阅读.那篇文章是从实战中进行总结得来,是公司的一个真实项目进行组件化架构改造 ...
- [转]Shared——探究react-native通信机制
原文:https://www.cnblogs.com/android-blogs/p/5623481.html 探究react-native通信机制 通信方式 我们所说的[通信],指的是RN中Java ...
- Java网络编程和NIO详解1:JAVA 中原生的 socket 通信机制
Java网络编程和NIO详解1:JAVA 中原生的 socket 通信机制 JAVA 中原生的 socket 通信机制 摘要:本文属于原创,欢迎转载,转载请保留出处:https://github.co ...
- flux沉思录:面向store和通信机制的前端框架
一.综述 Flux 被用来描述“单向”的数据流,且包含某些特殊的事件和监听器. 响应式编程是一种面向数据流和变化传播的编程范式 flux是响应式编程的一种? Flux 在本质上采用了模型-视图-控制器 ...
- [源码解析] TensorFlow 分布式环境(8) --- 通信机制
[源码解析] TensorFlow 分布式环境(8) --- 通信机制 目录 [源码解析] TensorFlow 分布式环境(8) --- 通信机制 1. 机制 1.1 消息标识符 1.1.1 定义 ...
- .Net中Remoting通信机制简单实例
.Net中Remoting通信机制 前言: 本程序例子实现一个简单的Remoting通信案例 本程序采用语言:c# 编译工具:vs2013工程文件 编译环境:.net 4.0 程序模块: Test测试 ...
- .Net中Remoting通信机制
Remoting通信机制 Remoting介绍 主要元素 通道类型 激活方式 对象定义 Remoting介绍 什么是Remoting,简而言之,我们可以将其看作是一种分布式处理方式. 从微软的产品角度 ...
- 【单页应用之通信机制】view之间应该如何通信
前言 在单页应用中,view与view之间的通信机制一直是一个重点,因为单页应用的所有操作以及状态管理全部发生在一个页面上 没有很好的组织的话很容易就乱了,就算表面上看起来没有问题,事实上会有各种隐忧 ...
随机推荐
- 从零开始学Java系列之Java是什么?它到底是个啥?
全文大约[5000]字,不说废话,只讲可以让你学到技术.明白原理的纯干货!文章带有丰富案例及配图,只为让你更好的理解和运用文中的技术概念,给你带来具有足够的思想启迪...... ----------- ...
- 有关驱动与应用层数据交互的小例子( 以及驱动 epoll 实现的实现方式 )
介绍 演示了一个驱动对应多个设备,以及各个设备的存取 演示了应用与驱动,mmap 的映射实现与访问 演示了应用层通过 select, poll, epoll 方式读写设备数据 netlink 的方式待 ...
- salesforce零基础学习(一百一十四)Dynamic related list
本篇参考: https://help.salesforce.com/s/articleView?id=release-notes.rn_forcecom_lab_dynamic_related_lis ...
- 最新版本 Stable Diffusion 开源AI绘画工具之部署篇
目录 AI绘画 本地环境要求 下载 Stable Diffusion 运行启动 AI绘画 关于 AI 绘画最近有多火,既然你有缘能看到这篇文章,那么相信也不需要我过多赘述了吧? 随着 AI 绘画技术的 ...
- noopener, noreferrer 及 nofollow 的用法
<a> 标签通常会配合着使用 noopener, noreferrer 及 nofollow 这些属性, 它们的作用及用法如下. noopener 当给链接加上 target=" ...
- PyQt5学习 (1)--对象的基本操作、QObject
参考视频:[Python-GUI编程-PyQt5 (少)] https://www.bilibili.com/video/BV17J41177ro/?share_source=copy_web& ...
- kubernetes核心实战(四)--- Deployments
6.Deployments(重点) 一个 Deployment 控制器为 Pods和 ReplicaSets提供描述性的更新方式. 描述 Deployment 中的 desired state,并且 ...
- Java设计模式 —— 享元模式
14 享元模式 14.1 享元模式概述 Flyweight Pattern: 运用共享技术有效地支持大量细粒度对象的复用. 当系统中存在大量相同或相似的对象时,它通过共享技术实现相同或相似的细粒度对象 ...
- 用Abp实现两步验证(Two-Factor Authentication,2FA)登录(二):Vue网页端开发
@ 目录 发送验证码 登录 退出登录 界面控件 获取用户信息功能 项目地址 前端代码的框架采用vue.js + elementUI 这套较为简单的方式实现,以及typescript语法更方便阅读. 首 ...
- vue条件判断循环
条件判断 v-if <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...