HTTPS 与加密基础
HTTP 存在哪三类安全问题?
- 明文通信: 报文以明文发送, 可被窃听;
- 无身份验证: 不验证通信方身份, 无法做访问控制, 也无法阻止伪装与 DDoS;
- 无完整性校验: 无法阻止报文被篡改, 即中间人攻击 (MITM) 风险;
HTTPS 如何解决这三类问题?
- 定义: HTTPS 在 HTTP 之上加入加密处理、认证与完整性保护;
- 实现: 把 HTTP 的通信接口部分替换为 SSL/TLS;
- 加密: 用非对称加密完成身份验证与密钥交换, 用对称加密传输数据;
- 认证: 用数字证书保证服务端身份真实;
- 完整性: 用哈希算法(如 MD5/SHA)校验数据;
对称加密与非对称加密各有什么问题?
- 对称加密: 加密与解密共用同一密钥; 问题在于密钥本身需要安全传递与保管;
- 非对称加密: 公钥加密、私钥解密, 避免私钥传递; 问题是加密解密速度慢;
HTTPS 为什么使用混合加密?
- 思路: 先用非对称加密安全地传递本次会话的对称密钥, 再改用对称加密传输数据;
- 效果: 兼顾密钥交换的安全性与后续通信的性能;
