题目
简述HTTPS的作用及TLS握手的基本过程
信息
- 类型:问答
- 难度:⭐
考点
HTTPS作用,TLS握手过程,加密通信原理
快速回答
HTTPS 通过 TLS/SSL 协议为 HTTP 提供安全保护:
- 加密传输:防止数据被窃听
- 身份验证:通过证书验证服务器身份
- 数据完整性:防止数据被篡改
TLS 握手基本过程:
- 客户端发送 ClientHello
- 服务器返回 ServerHello + 证书
- 客户端验证证书并生成会话密钥
- 双方切换加密通信
一、HTTPS的核心作用
HTTPS = HTTP + TLS/SSL,解决HTTP明文传输的安全缺陷:
- 加密传输:使用对称加密(如AES)保护数据传输,防止中间人窃听
- 身份认证:通过CA签发的数字证书验证服务器身份(如防止钓鱼网站)
- 数据完整性:MAC(消息认证码)机制确保数据未被篡改
二、TLS握手过程详解
以TLS 1.2为例:
- ClientHello:客户端发送支持的TLS版本、加密套件列表、随机数
- ServerHello:服务器选择加密套件,返回随机数 + 数字证书
- 证书验证:客户端验证证书有效性(是否过期/是否被信任/域名匹配)
- 密钥交换:客户端生成预主密钥,用服务器公钥加密发送
- 生成会话密钥:双方用随机数 + 预主密钥生成相同的会话密钥
- 加密通信:客户端发送「Finished」消息,后续所有数据用会话密钥加密
三、关键原理说明
- 混合加密机制:
- 非对称加密(RSA/ECC)用于密钥交换
- 对称加密(AES)用于数据传输(效率高)
- 证书验证流程:
- 浏览器内置信任的CA根证书
- 逐级验证证书链:服务器证书 → 中间CA → 根CA
四、最佳实践
- 使用TLS 1.2或更高版本(TLS 1.3握手更快)
- 配置HSTS响应头强制HTTPS:
Strict-Transport-Security: max-age=31536000 - 定期更新服务器证书(通常有效期90天)
五、常见错误
- ❌ 证书配置错误(域名不匹配/过期)导致浏览器警告
- ❌ 使用弱加密套件(如RC4、SHA1)
- ❌ 未正确处理HTTP到HTTPS的重定向
六、扩展知识
- TLS 1.3改进:握手从2-RTT减少到1-RTT,移除不安全算法
- OCSP装订:服务器主动提供证书状态,避免客户端单独查询
- SNI扩展:ClientHello中指定域名,支持单IP多证书