【计算机网络】HTTPS
一、HTTPS如何实现加密传输的?
- 加密通信(防止窃听)
对称加密:传输实际数据(AES),速度快,适合大量数据。
非对称加密:握手阶段(RSA)交换对称密钥,保证密钥传输的安全。 - 身份验证(防止冒充、防止中间人攻击)
数字证书:服务器通过 CA(证书颁发机构) 签发的数字证书证明其身份。
- 证书:
- 服务器域名、公钥、有效信息
- CA 的数字签名(用 CA 私钥生成,客户端用 CA 公钥验证)。
- 证书:
- 数据完整性(防篡改)
消息认证码(MAC):TLS 协议通过哈希算法(如 SHA-256)生成消息摘要,确保数据在传输过程中未被篡改。
- 握手过程
- ClientHello:客户端发送支持的加密套件(如 ECDHE-RSA-AES256-GCM-SHA384)和随机数。
- ServerHello:服务器选择加密套件,返回随机数和数字证书。
- 密钥交换:
- 服务器发送公钥(证书中的公钥)。
- 客户端验证证书后,生成预主密钥(Pre-Master Secret),用服务器公钥加密后发送。
- 双方通过 ECDHE 等算法生成相同的会话密钥(对称密钥)。
- 加密通信:后续数据均用会话密钥加密传输。
二、HTTPS绝对安全吗?
- HTTPS 不是绝对安全:它防止的是传输过程中的窃听和篡改,但无法防止:
用户主动泄露密码(如钓鱼网站)。
服务器本身被入侵(如数据库泄露)。