公私密钥对在SSL/TLS连接期间如何工作
2023年6月6日
我们知道公私密钥对在IT环境中以多种方式(加密、身份验证、数字签名等)使用。但是对于每个用例,它们的使用方式大不相同。那么,公私密钥对在SSL/TLS连接期间如何工作?
当您使用 HTTPS 访问安全网站时,每个连接都从称为 TLS 握手的过程开始。此过程涉及使用公钥加密(即非对称加密)在为会话的其余部分切换到对称加密之前交换敏感信息。
为什么要切换?因为对称加密比公钥加密需要更少的计算能力。尽管我们谈论的是极短的时间(即毫秒),但它对于大规模数据加密(即对于具有更高 Web 流量的大型组织)更为有效。
要加密您网站的连接,您需要在服务器上安装SSL/TLS 证书。它还要求客户端和服务器自我介绍并交换基本信息以创建安全的加密会话。这种来回过程称为 TLS 握手,其中大多数浏览器支持两种变体——TLS 1.2(最常见)和 TLS 1.3。
以下是 TLS 1.2 握手过程如何工作的概述:
当客户端(浏览器)连接到服务器(网站)时,双方就它们支持的加密过程交换某些协议。客户端发送一个大的随机质数(称为“客户端随机数”);
服务器将其SSL/TLS 证书和公钥发送到客户端(浏览器),连同一个“服务器随机”值(是的,与客户端随机值的概念相同),该值可以与客户端随机值结合使用以创建一个对称会话密钥;
客户端检查服务器的证书并使用服务器的公钥加密它发送回服务器的对称密钥值(具体情况因使用的密钥交换算法而异);
双方使用他们交换的数据来计算对称会话密钥(即共享会话密钥);
客户端检查服务器的消息身份验证代码 (MAC)以确保握手未被篡改;
双方使用共享会话密钥创建安全的对称加密连接。