聊一聊 https 的逻辑
内容提要
本文讨论了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握手中客户端和服务器如何交换密钥?
客户端发送预主密钥,使用服务器的公钥加密,服务器用私钥解密,从而生成会话密钥。