聊一聊 https 的逻辑

💡 原文中文,约2000字,阅读约需5分钟。
📝

内容提要

本文讨论了HTTPS和TLS的工作原理,介绍了HTTPS使用非对称加密和对称加密相结合的方式来保证通信安全,以及证书在TLS握手过程中的作用。同时,提供了一个使用Chrome抓包工具来观察TLS握手过程的示例。

🔎

延伸解读

证书在TLS握手中的实际作用

文章指出,证书并非独立于公私钥体系,而是TLS握手中验证服务器身份的关键环节。在服务器问候消息中,服务器会发送SSL证书,客户端通过证书颁发机构验证该证书,确认服务器是其声称的身份。验证通过后,客户端从证书中获取公钥,用于加密预主密钥,从而确保只有持有私钥的服务器能解密,为后续对称加密建立安全基础。

非对称加密与对称加密的协作逻辑

HTTPS并非全程使用非对称加密。文章解释,非对称加密效率较低,因此仅在握手阶段用于安全地交换预主密钥。一旦客户端和服务器通过客户端随机数、服务器随机数和预主密钥生成相同的会话密钥,后续通信便转为高效的对称加密。这种结合兼顾了安全性与性能,是非对称加密建立信任、对称加密保障传输的典型设计。

用Chrome抓包观察TLS握手步骤

文章提供了实操方法:通过chrome://net-export/启动抓包,访问目标网站后保存日志,再在netlog-viewer中查看。日志中的type值对应握手阶段,如1表示ClientHello,2表示ServerHello,11表示收到证书,20表示Finished。这有助于直观理解握手流程,但需注意RSA密钥交换算法在TLS 1.3前使用,现被认为不安全,实际步骤会因算法和密码套件而异。

❓

Q&A

HTTPS是如何确保通信安全的?

HTTPS结合非对称加密和对称加密来确保通信安全,先用非对称加密建立安全连接,再用对称加密进行数据传输。

TLS握手过程包括哪些步骤?

TLS握手过程包括客户端问候、服务器问候、身份验证、预主密钥交换、生成会话密钥等步骤。

证书在HTTPS中起什么作用?

证书在HTTPS中用于验证服务器身份,确保客户端与实际服务器进行安全通信。

为什么HTTPS使用非对称加密和对称加密的组合?

因为非对称加密效率较低,HTTPS先用非对称加密建立安全连接,然后使用对称加密进行高效的数据传输。

如何使用Chrome抓包工具观察TLS握手过程?

可以通过chrome://net-export/启动抓包,然后在新标签页打开目标网站,最后在https://netlog-viewer.appspot.com查看抓包日志。

TLS握手中客户端和服务器如何交换密钥?

客户端发送预主密钥,使用服务器的公钥加密,服务器用私钥解密,从而生成会话密钥。

🏷️

标签

➡️

继续阅读