SSL证书使用的是非对称加密和对称加密结合的方式。非对称加密用于密钥交换,比如RSA或者ECDSA,而对称加密比如AES或者ChaCha20用于实际数据传输,因为对称加密更快,以确保数据在传输过程中的机密性、完整性和身份认证。下面是其核心机制的分步解释:
1. 非对称加密(密钥交换与身份验证)
SSL证书的核心是非对称加密(如RSA、ECDSA),依赖公钥-私钥对:
公钥:包含在SSL证书中,用于加密数据或验证签名。
私钥:由服务器保管,用于解密或生成签名。
用途:
身份验证:客户端验证服务器SSL证书的有效性(如颁发机构、有效期等),确保对方是合法的服务器,而非中间人。
密钥交换:在TLS握手阶段,客户端用服务器的公钥加密生成的预主密钥(Pre-Master Secret),服务器用私钥解密后,双方生成相同的会话密钥(Session Key)。
2. 对称加密(高效数据传输)
握手完成后,双方使用对称加密算法(如AES、ChaCha20)加密实际传输的数据。对称加密速度快,适合处理大量数据。
会话密钥生成:
客户端和服务器通过预主密钥和随机数生成主密钥,最终派生出会话密钥。
所有后续通信均使用此密钥加密和解密。
3. 密钥交换算法(前向保密优化)
现代TLS(如TLS 1.3)更注重前向保密(Perfect Forward Secrecy, PFS),常用Diffie-Hellman类算法(如ECDHE):
临时密钥交换:即使私钥泄露,过去会话的密钥也无法被破解。
流程:服务器用证书私钥对DH参数签名,客户端验证签名后,双方通过DH交换生成会话密钥。
4. 哈希与完整性校验
哈希函数(如SHA-256):用于生成消息摘要,确保数据未被篡改。
数字签名:服务器用私钥对握手消息哈希值签名,客户端用公钥验证,确认消息来源和完整性。
5. 证书链与信任验证
证书颁发机构(CA):浏览器内置信任的根CA证书,验证服务器证书是否由可信CA签发。
证书链校验:从服务器证书逐级回溯到根CA,确保整个链可信。
总结:SSL/TLS加密流程
握手阶段:
非对称加密验证身份并交换密钥。
生成会话密钥(对称加密使用)。
数据传输阶段:
对称加密保护数据,哈希和签名确保完整性。
关键优势
混合加密:非对称加密确保安全密钥交换,对称加密提升效率。
前向保密:临时会话密钥保护历史通信安全。
身份可信:CA体系防止伪造证书。
SSL证书加密分层机制在保证安全性的同时,兼顾了性能,成为互联网通信的基础。