HTTPS 通过非对称加密算法可以使得我们传的明文信息,无法通过逆推得出明文 。接下来我们来看看在具体的工作流程是怎么样的?
工作原理:HTTPS 的建立过程
文章插图
文章插图
这里把 HTTPS 建立到断开分为 6 个阶段,12 过程 。下面将对 12 个过程一一做解释:
1、客户端 — Hello:客户端通过发送 Client Hello 报文开始 SSL 通信 。报文中包含客户端支持的 SSL 的指定版本、加密组件(Cipher Suite)列表(所使用的加密算法及密匙长度等);
2、服务器 — Hello:服务器可进行 SSL 通信时,会以 Server Hello 报文作为应答 。和客户端一样,在报文中包含 SSL 版本以及加密组件 。服务器的加密组件内容是从接收到的客户端加密组件内筛选出来的;
3、服务器 — 发证书:服务器发送证书报文 。报文中包含公开密匙证书;
4、服务器 — 我说完了:最后服务器发送 Server Hello Done 报文通知客户端,最初阶段的 SSL 握手协商部分结束;
5、客户端 — 发送秘钥:SSL 第一次握手结束之后,客户端以 Client Key Exchange 报文作为回应 。报文包含通信加密中使用的一种被称为 Pre-master secret 的随机密码串 。该报文已用步骤 3 中的公开密匙进行加密;
6、客户端 — 就用这个秘钥了:该报文会提示服务器,在此报文之后的通信会采用 Pre-master secret 密匙加密;
7、客户端 — 我说完了:该报文包含连接至今全部报文的整体校验值 。这次握手协商是否能够成功,要以服务器是否能够正确解密该报文作为判定标准;
8、服务器 — 发送 c Change Cipher Spec 报文(我正在接收秘钥);
9、服务器 — 发送 d Finished 报文(我收完秘钥了);
10、客户端 — 开始发送正文:服务器端发送 HTTP 请求,发送相关内容;
11、服务器 — 开始接收正文:客户端接收 HTTP 请求,并处理相关内容;
12、客户端 — 断开链接:最后由客户端断开连接 。断开连接时,发送 close_notify 报文 。上图做了一些省略,这步之后再发送 TCP FIN 报文来关闭与 TCP 的通信;
另外,在以上流程图中,应用层发送数据时会附加一种叫做 MAC(MessageAuthentication Code)的报文摘要 。MAC 能够查知报文是否遭到篡改,从而保证报文的完整性;
下面再用图解来形象的说明一下,此图比上面数字证书的图更加的详细一些(图片来源于《图解 HTTP》)
文章插图
文章插图
在上面说明了 HTTPS 的建立以及通信中的过程 。既然实际工作流程是这个样子的,是怎样的算法能实现这样的功能,是怎样的方式能做到非对称加密?在数学角度是如何计算的?那么对应的理论基础是什么?是什么支撑的 HTTPS 使得他能进行加密传输?
文章插图
文章插图
HTTPS 的理论原理HTTPS 采用了一些加解密,数字证书,数字签名的技术来实现 。下面先介绍一下这些技术的基本概念 。
为了保证消息的保密性,就需要用到加密和解密 。加解密算法目前主流的分为对称加密和非对称加密 。
对称加密(共享密匙加密)客户端和服务器公用一个密匙用来对消息加解密,这种方式称为对称加密 。客户端和服务器约定好一个加密的密匙 。客户端在发消息前用该密匙对消息加密,发送给服务器后,服务器再用该密匙进行解密拿到消息 。
经验总结扩展阅读
- 代理记账协议签订注意事项 委托代理记账协议
- 个税赡养老人分摊协议 兄妹赡养老人分摊协议
- 转租房合同样板 转租房子合同协议范本
- 手机的文件传输助手怎么用 手机的文件传输助手使用方法
- 食堂承包合同协议书 餐饮公司承包学校食堂合同
- href
- 工程合作协议书 工程项目合作协议范本
- 微信大文件怎么传输给别人 微信大文件传输步骤
- 运输协议和运输合同有区别吗 渣土运输协议
- 52岁“胖嫂”三度离婚!小21岁老公直播晒分居协议,三段皆姐弟恋