带你读《2022技术人的百宝黑皮书》——HTTPS的原理浅析与本地开发实践(2)

简介: 带你读《2022技术人的百宝黑皮书》——HTTPS的原理浅析与本地开发实践(2)

带你读《2022技术人的百宝黑皮书》——HTTPS的原理浅析与本地开发实践(1)https://developer.aliyun.com/article/1340630?groupCode=taobaotech


方案四:先在客户端/服务端之间做认证,然后通过非对称加密协商秘钥,  最后用协商的秘钥做后续的数据传输

 

场景:在传输数据前先通过鉴别通信双方是否真实,而不是假冒的其他用户,在身份验证完毕后,基于某种高安全性的秘钥协商算法,通过非对称加密(秘钥对随机产生)的方式在客户端/服务端之间协商秘钥,双方会基于协商算    法的公开数据得到相同的秘钥,然后开启后续的对称加密通信。

 

特点:

  1. 数据传输前先做身份认证,基本可以解决中间人攻击的问题,防止篡改数据;
  2. 使用高安全性的秘钥加密通信数据,可以有效防止数据被嗅探;

 

结论

 

方案四就是HTTPS解决明文传输两大问题的基本思路。其中身份认证涉及数字签名和数字证书概念,而非对称加密 设计非对称加密体系。由于非对称加密的计算性能不及对称加密,所以,在经过几轮握手,协商好秘钥后,将数据传输的加密方式改为对称加密。

 

总的来说,HTTPS就是通过数字证书 + 非对称秘钥体系 + 对称秘钥体系的组合方案来解决HTTP协议传输明文的两大问题。

 

HTTPS

image.png

 

 

 

HTTPS (Hypertext Transfer Protocol Secure) 是基于 HTTP 的扩展,用于计算机网络的安全通信,已经在互联网得到广泛应用。在 HTTPS 中,原有的 HTTP 协议会得到 TLS (Transport Layer Security - 安全传输层协议) 或其前任 SSL (Secure Sockets Layer - 安全套接层) 的加密。因此 HTTPS 也常指 HTTP over TLS HTTP over SSL。(HTTPS)

 

理论分析

 

方案四只对信息传输的场景做了简要分析,其中有数字签名、数字证书、加密体系这些基础概念,为了方便在后续解析TLS/SSL握手过程,这里先对涉及的基础技术概念做简要的汇总介绍。

 

散列函数 —— 散列算法、哈希函数

 

image.png定义

散列函数(Hash Function)是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来(散列值)。

image.png特点

  1. 确定性:如果两个散列值是不相同的(根据同一散列函数),那么这两个散列值的原始输入也是不相同的;
  2. 不可逆性:故意创建产生给定散列值的消息是不可行的;
  3. 散列碰撞:散列函数的输入和输出不是唯一对应关系的,如果两个散列值相同,两个输入值很可能是相同的,但也可能不同;

image.png常见的两种散列算法

  1. MD (Message Digest)摘要算法:MD算法生成的摘要消息都是128位长(32位的十六进制数字)表示,安全性排序:MD2 < MD4 < MD5,但是目前安全性最高的MD5算法存在弱点,可以被破解。
  2. SHA(Secure Hash Algorithm)安全散列

 image.png

 

带你读《2022技术人的百宝黑皮书》——HTTPS的原理浅析与本地开发实践(3)https://developer.aliyun.com/article/1340628?groupCode=taobaotech

相关文章
|
12天前
|
网络协议 前端开发 Java
网络原理 - HTTP / HTTPS(4)——构造http请求
网络原理 - HTTP / HTTPS(4)——构造http请求
13 1
|
12天前
|
JSON 缓存 前端开发
网络原理 - HTTP / HTTPS(3)——http响应
网络原理 - HTTP / HTTPS(3)——http响应
10 0
|
12天前
|
存储 JSON 安全
网络原理 - HTTP / HTTPS(2)——http请求
网络原理 - HTTP / HTTPS(2)——http请求
13 1
|
12天前
|
前端开发 网络协议 JavaScript
网络原理 - HTTP / HTTPS(1)——http请求
网络原理 - HTTP / HTTPS(1)——http请求
8 0
|
26天前
|
算法 安全 网络协议
https原理--RSA密钥协商算法
https原理--RSA密钥协商算法
25 0
|
1月前
|
安全 网络协议 应用服务中间件
一文读懂HTTPS⭐揭秘加密传输背后的原理与Nginx配置攻略
一文读懂HTTPS⭐揭秘加密传输背后的原理与Nginx配置攻略
|
1月前
|
缓存 安全 算法
网络原理 HTTP _ HTTPS
网络原理 HTTP _ HTTPS
20 0
|
1月前
|
前端开发
webpack如何设置devServer启动项目为https协议
webpack如何设置devServer启动项目为https协议
298 0
|
11天前
|
安全 前端开发 中间件
中间件中HTTP/HTTPS 协议
【6月更文挑战第3天】
14 3
|
18天前
|
存储 安全 前端开发
HTTP 协议 与HTTPS
HTTP 协议 与HTTPS