HTTPS(HyperText Transfer Protocol Secure)是通过在HTTP协议基础上加入加密层(SSL/TLS)来实现安全通信的。其核心原理结合了对称加密、非对称加密、数字证书和散列算法,以下是关键步骤和原理:
1. 混合加密机制(核心)
-
非对称加密(密钥交换)
- 使用RSA、ECC等算法,服务器持有公钥和私钥,客户端用公钥加密信息,服务器用私钥解密。
- 作用:安全协商后续的对称加密密钥(如会话密钥)。
- 缺点:非对称加密计算量大,不适合全程加密数据。
-
对称加密(数据传输)
- 协商出共享的会话密钥(如AES-256)后,后续通信全部用对称加密。
- 原因:对称加密速度快,适合大数据量加密。
2. 数字证书(防冒充)
- 证书验证
- 服务器向CA(证书颁发机构)申请数字证书,包含域名、公钥、CA签名等信息。
- 客户端(浏览器)内置信任的CA根证书,验证服务器证书的真实性和有效性(如域名匹配、是否过期)。
- 防中间人攻击:伪造证书无法通过CA签名验证。
3. SSL/TLS握手流程
-
Client Hello
- 客户端发送支持的加密算法列表和随机数(Client Random)。
-
Server Hello
- 服务器选择加密算法,返回随机数(Server Random)和数字证书。
-
密钥交换
- 客户端验证证书后,用证书中的公钥加密一个Pre-master Secret发送给服务器。
-
生成会话密钥
- 双方通过Client Random、Server Random和Pre-master Secret生成相同的会话密钥。
-
加密通信
- 后续数据传输均使用会话密钥对称加密。
4. 散列算法(完整性校验)
- 使用SHA-256等算法生成消息的摘要,并通过MAC(消息认证码)确保数据未被篡改。
5. 关键点总结
| 技术 | 作用 | 示例算法 |
|---|---|---|
| 非对称加密 | 安全交换对称密钥 | RSA、ECC |
| 对称加密 | 高效加密实际数据传输 | AES、ChaCha20 |
| 数字证书 | 验证服务器身份,防钓鱼 | X.509(由CA签发) |
| 散列算法 | 确保数据完整性 | SHA-256、HMAC |
为什么HTTPS安全?
- 保密性:对称加密保护数据不被窃听。
- 身份认证:数字证书防止冒充服务器。
- 完整性:散列算法防止数据被篡改。
注意:HTTPS的性能开销主要来自TLS握手阶段(非对称加密),但通过会话复用(Session Resumption)可优化。

1559

被折叠的 条评论
为什么被折叠?



