因为两种加密各有所长,HTTPS 取两者优点组合使用:非对称加密用于身份认证和密钥交换,对称加密用于后续数据传输。
展开解析:
- 对称加密(AES 等):加解密用同一把密钥,速度极快、适合大数据量;致命问题是密钥如何安全地传给对方——网络上传输密钥会被窃听,即"密钥分发难题"。
- 非对称加密(RSA、ECC 等):公钥公开、私钥保密,公钥加密的内容只有私钥能解开,天然解决密钥分发;但运算量比对称加密高几个数量级,直接加密所有业务数据性能不可接受,且能加密的数据长度有限。
所以 TLS 的做法是:握手阶段用非对称加密(配合证书验证身份)安全地协商出一个临时的对称会话密钥,之后的应用数据全部用对称加密传输。这样既有非对称的安全分发,又有对称的高性能。
易错点:现代 TLS 1.3 中密钥不再"加密传输",而是用 ECDHE 让双方各自计算出共享密钥,私钥只用于签名认证,从而获得前向安全性——即使私钥日后泄露,历史会话也无法被解密。
追问方向:前向安全、为什么证书还要 CA 签名(防中间人伪造公钥)。