最简单的HTTPS加密过程简介
HTTPS协议其实就是HTTP over TSL,TSL(Transport Layer Security) 传输层安全协议是https协议的核心。
TSL可以理解为SSL (Secure Socket Layer)安全套接字层的后续版本。目前应用的最广泛的 TLS 是 1.2,而之前的协议(TLS1.1/1.0、SSLv3/v2)都已经被认为是不安全的了
TLS握手过程
由于HTTPS的实质是在TLS握手后建立的安全通道上进行的HTTP请求,因此本文只介绍TLS握手过程的几个关键步骤:
1.客户端向服务端发起请求,将一个随机数、自己的TLS版本号、Cipher Suite加密算法列表(告知服务器自己支持哪些加密算法)等发给服务端。
2.服务端将自己的证书、一个随机数、TLS版本、从Cipher Suite加密算法列表中选择使用的加密算法等发给客户端。
3.服务端继续将交换算法(ECDHE)公钥发送给客户端,一般只在服务端选择使用DHE 和DH_anon等加密算法组合时才会由服务器发出。
4.客户端验证证书(验证过程后文介绍),如果验证通过后,客户端将自己的交换算法(ECDHE)公钥发给服务端,一般只在服务端选择使用DHE 和DH_anon等加密算法组合时才会由服务器发出。
5.客户端随后用两个随机数+服务端交换算法(ECDHE)公钥配合自己的交换算法(ECDHE)私钥生成一个加密密钥key1,并且用key1加密一条消息发给服务端。
6.服务端收到消息后用两个随机数+客户端交换算法(ECDHE)公钥配合自己的交换算法(ECDHE)私钥生成一个加密密钥key2,并且用key2加密一条消息发给客户端,由于交换算法(ECDHE)可以保证key2等于key1,所以双方就有了一样的对称加密key进行加解密是,而且key1和key2并没有进行传输,所以第三方无法获取。
注意:以上步骤3、4是服务端在选择了DHE 和DH_anon等加密算法组合时才有,如果选择了其他非对称加密算法,则直接跳到5,并且在步骤5、6中的没有key1和key2,而是如下:
5.客户端生成一个key,然后用证书里得到的服务端公钥加密这个key,然后发给服务端,接着用这个key加密一条消息发给服务端。
6.服务端用自己的私钥解密得到key,并且用key加密一条消息发给客户端。
7.至此,TLS握手完成,后续HTTP请求的内容都用key1和key2(或者key)进行加密通信。
如果使用固定的公私钥算法有一定的安全风险,如:私钥泄露,因此交换算法(ECDHE)是一种更安全的加密方式。
如图所示基于交换算法(ECDHE)的TLS握手过程:
客户端如何验证证书的可靠性?
数字签名和数字证书
数字签名:
数字签名就是用HASH算法将一段内容生成固定长度的hash值,相同的内容一定生成相同的hash值,然后用CA私钥将hash值h1加密得到数字签名,所以数字签名就是用来保证内容没有被篡改的。
数字证书:
数字证书就是某个权威机构颁发的包含了有效期、服务端公钥信息和它加密算法、颁发者、用CA私钥加密的证书的数字签名等信息的证书。
一般权威机构的证书都会内置在系统或者浏览器里,浏览器在收到服务端的证书后,根据证书颁发者信息就去找内置的证书,找到后用内置证书的CA公钥解密数字证书得到证书hash值h1,然后用内置证书对应的hash算法对收到的证书内容进行hash计算,得到hash值h2,如果h1等于h2就证明收到的证书安全可靠。
这里注意内置证书的CA公钥和证书里的服务端公钥的区别,内置CA公钥用来解密数字签名,服务端公钥用来协商私钥。
参考资料:
HTTP与HTTPS的区别,详细介绍_张花生的博客-CSDN博客_http和https的区别
HTTPS协议、TLS协议、证书认证过程解析 - snowater - 博客园
最简单的HTTPS加密过程简介相关推荐
- HTTPS加密过程和TLS证书验证
HTTPS加密过程和TLS证书验证 HTTPS 是在 HTTP 和 TCP 之间建立了一个安全层,HTTP 与 TCP 通信的时候,必须先进过一个安全层,对数据包进行加密,然后将加密后的数据包传送给 ...
- HTTPS 加密过程详解
HTTPS 加密过程详解 HTTPS 中的概念 对比 HTTP 与 HTTPS 网络分层结构 对称加密 非对称加密 HTTPS 中的概念 明文:可以直接看到原始数据的文本: 密文:看不见原始数据的文本 ...
- HTTPS加密过程详解
HTTPS加密过程详解 一.前言 二.HTTPS的混合加密 1.摘要算法 2.混合加密和数字证书 三.补充 四.参考资料 一.前言 http是为了解决http存在的问题而在http基础上加入了SSL/ ...
- http、https加密过程
http: 超文本传输协议,是一个基于请求与响应,无状态无连接的,应用层的协议,常基于TCP/IP协议传输数据 <协议>://<域名>:<端口>/<路径> ...
- https加密过程(详细)
握手.协商加密算法.获取公钥证书(含公钥一起发送至客户端).验证公钥证书(判断证书是否是第三方机构信任证书,创建对称密钥,每次传输一次对话随机创建一个对称密钥,客户端用服务器发送的公钥 ...
- HTTPS 的加密过程
HTTPS 的加密过程 引言 理解加密解密 SSL 的握手过程 场景一 场景二 场景三 中间人攻击 场景四 总结 引言 HTTPS:Hyper Text Transfer Protocol over ...
- (非)对称加密算法在https中的应用(加密过程以及CA颁发、验证)
文章目录 一.(非)对称加密 对称加密 非对称加密 二.http与https 1. HTTP 1.1 HTTP与TCP 1.2 短/长连接(HTTP如何使用TCP) 2. HTTPS = HTTP+S ...
- HTTPS加密数据传输过程
HTTPS加密过程 HTTPS采用对称加密和非对称加密的混合加密方式 1.加密方式 2.混合加密 3.HTTPS的数据传输的优缺点 HTTPS采用对称加密和非对称加密的混合加密方式 1.加密方式 数据 ...
- SSL证书验证原理和https加密
1.首先了解一下数字证书: 它有点像身份证,是由权威的CA机构颁发的,证书的主要内容有:公钥(Public Key).ISSUER(证书的发布机构).Subject(证书持有者).证书有效期.签名算法 ...
最新文章
- 长沙网络推广浅析影响网站快照更新时间的因素是什么?
- 用perl访问Oracle
- 2013年1月第4个周末
- 访问tomcat html,访问云服务器tomcat里html界面
- IHttpModule的那些事
- 【Angular 4】数据绑定
- 保罗兰德作品赏析_保罗兰德——理想化的设计师人生
- 物联那点事儿之自制网络温湿度计(arduino+点灯科技篇)
- Apeaksoft iOS Toolkit for Mac(iOS设备数据恢复软件)
- 共探数字化安全新未来,CSA SDP2.0标准发布暨零信任技术研讨会召开
- 将一个CSV格式的文件分割成两个CSV文件
- 机器学习笔记(一)-局部加权回归(Locally weighted regression)LWR
- 电容降压主要是用在直流稳压电源电路里
- Xcode直接安装ipa
- 微信小程序获取用户位置信息
- 使用CSS去除 去掉超链接的下划线方法
- python3 cookbook中常遇问题的解答记录
- 日益趋增的Linux勒索软件
- 第一章:Django入门篇
- 《海底捞你学不会》学什么
热门文章
- 关于计算机有用英语作文带翻译,关于健康的英语作文带翻译
- Win10 SQL Server 2012 企业版 安装教程
- 妥妥的去面试之Android基础(六)
- 前端插件库之vue3使用vue-codemirror插件
- 一文彻底搞懂执行上下文、VO、AO、Scope、[[scope]]、作用域链、闭包
- 聚乙二醇表面修饰氧化锌量子点/FA-PEG-CdTe/CdS量子点荧光探针特异性标记Hep-2的制备
- Java项目:进销存管理系统(前后端分离+java+vue+Springboot+ssm+mysql+maven+redis)
- Python学习 10 - 基本数据类型小练习
- 图文并茂使用CocosBuilder制作Cocos2D游戏 分享0
- 人工智能等新技术将会给人们的生产、生活方式带来革命性的变化