带你读《2022技术人的百宝黑皮书》——HTTPS的原理浅析与本地开发实践(8)https://developer.aliyun.com/article/1340622?groupCode=taobaotech
第四次握手
【C端 -> S端】
- 客户端在本地随机生成一个私钥d2,通过私钥d2和基点G生成公钥Q2(Pubkey)。此时,双方都有对方的椭 圆曲线公钥、自己的椭圆曲线私钥、椭圆曲线基点 G。于是,双方都就计算出点(x,y),其中 x 坐标值双方都是一样的。x直接作为对称加密的秘钥使用安全性低,双方为了会提高秘钥的安全性,会在x上“加盐”处理, 即使用先前会话产生的随机数组合产生秘钥 —— 【5a882b + 524401 + x 】。
- 秘钥协商完毕,告知S端后续通信数据改用对称算法加密;
- 对数据做摘要算法,使用秘钥加密,交给服务端验证;
第五次握手
【S端 -> C端】
- 确认改用对称加密算法加密后续的通信数据;
- 使用同样的方式传输加密后的数据并交给客户端验证。
TLS 经过五次握手协商并得到加密秘钥后,双方就开始基于对称加密的方式对传输数据,这样能很好的提高数据传输的效率。
数据传输(加密)
通信双方使用“加盐”后的秘钥加密数据,并在网络间传输。如果传输中获取到秘钥协商时产生的秘钥,则可以解密已经加密的 Application Data,例如,TLSv1.3 的加密数据被wireshark解密。
(https-ssl.ccdoit.com-no ico-WITH FIN TCP.pcapng)
小结
文章的最开始就提出了HTTP协议在目前网络传输中存在的问题,然后基于两个典型问题做了合理的方案设想,最终推演出的第四种方案是更趋近于两个问题的实际解决方案的。在提出方案后,开始对其中涉及到的哈希函数、数据加密、数字签名等书面概念做了简单的总结,目的是为后续HTTPS的实际秘钥协商过程和数据传输过程做了铺 垫。随后,基于wireshark工具,拦截一次HTTPS请求流量,对TLS(1.2版本)的秘钥协商过程(握手过程)做 了相对细致的分析,期间也对先前TLS版本使用的秘钥协商过程做了简要的介绍,希望能够帮助你在理解HTTPS 协议概念上能有所帮助。
下一篇文章属于实战部分,将重点介绍HTTPS证书的配置过程,我将会以阿里云证书配置和OpenSSL自签证书配置两种方式来让你的网站从HTTP转换到HTTPS。
带你读《2022技术人的百宝黑皮书》——HTTPS的原理浅析与本地开发实践(10)https://developer.aliyun.com/article/1340620?groupCode=taobaotech