请说明 HTTPS 的工作机制,并详细描述 TLS 握手的完整过程。
考察说明
考查对 HTTPS 加密通信原理及 TLS 握手流程的理解。
回答思路
- 【回答框架 1】HTTPS 是 HTTP 与 TLS/SSL 的组合,通过在传输层加密数据,确保通信的机密性、完整性和身份验证。其核心机制是使用非对称加密协商会话密钥,再用对称加密传输数据,兼顾安全与性能。
- 【回答框架 2】TLS 握手主要分为几个步骤:客户端发送 ClientHello,包含支持的 TLS 版本、加密套件列表和随机数;服务器回应 ServerHello,选择加密套件和协议版本,并发送证书及服务器随机数。
- 【回答框架 3】客户端验证服务器证书的合法性,验证通过后生成预主密钥,使用服务器公钥加密并发送给服务器;双方利用预主密钥和随机数独立计算出相同的会话密钥。
- 【回答框架 4】之后双方发送 Finished 消息确认握手完成,并使用对称加密的会话密钥进行应用数据传输。整个过程可选客户端证书验证,但通常仅验证服务器身份。
- 【回答框架 5】TLS 1.3 简化了握手流程,减少了往返次数,默认使用前向保密密钥交换,并移除了部分不安全算法,提高安全性和效率。
- 【关键点 1】HTTPS 通过 TLS 握手协商对称会话密钥,非对称加密仅用于密钥交换和身份验证。
- 【关键点 2】握手完成后使用对称加密(如 AES)传输数据,性能和安全性平衡。
- 【关键点 3】证书验证依赖数字证书和 CA 体系,确保服务器身份可信。
- 【关键点 4】TLS 1.3 减少握手往返,强制前向保密,提升安全性。
- 【易错点 1】不应混淆握手过程中的非对称加密与数据传输的对称加密,前者并非用于传输业务数据。
- 【易错点 2】证书验证失败时客户端应终止连接,不能忽略警告继续通信。
- 【易错点 3】TLS 版本和加密套件的兼容性可能影响握手成功率,需考虑客户端和服务器的支持范围。