用户网站管理员需要部署HTTPS,普通用户要求浏览器挂锁标志。考虑到SSL涉及多个技术层,得拆解成可理解的部分:先讲非对称加密交换密钥,再讲对称加密传输数据,最后用证书解决信任问题。SSL 证书的加密机制是一个综合体系,它结合了非对称加密(公钥加密)、对称加密和数字证书来实现安全通信。其核心目标有两个:加密传输的数据和验证服务器的身份。

以下是其工作原理的详细分解:

非对称加密(公钥加密) - 用于安全交换对称密钥和身份验证

原理: 使用一对数学上关联的密钥:公钥和私钥。

公钥:可以公开给任何人。用于加密数据和验证数字签名。

私钥:必须由所有者严格保密。用于解密用其公钥加密的数据和创建数字签名。

用公钥加密的数据,只有对应的私钥能解密。用私钥签名的数据,任何拥有对应公钥的人都能验证签名。

在SSL/TLS中的作用:

交换对称会话密钥: 这是非对称加密在SSL/TLS中最关键的作用。客户端在“握手”阶段使用服务器的公钥(从证书中获得)来加密一个随机生成的预主密钥发送给服务器。只有拥有对应私钥的服务器才能解密它。双方随后基于这个预主密钥计算出相同的对称会话密钥。

身份验证: 服务器在握手过程中会使用其私钥对一段握手数据进行数字签名。客户端使用服务器证书中的公钥来验证这个签名。如果验证成功,就证明服务器确实拥有与证书公钥匹配的私钥,从而验证了服务器的身份。

(可选)客户端认证: 某些场景下(如银行后台),服务器也可能要求客户端提供证书并使用其私钥签名来验证客户端身份。

对称加密 - 用于高效加密实际传输的数据

原理: 通信双方使用同一个秘密密钥来加密和解密数据。加密和解密速度快,效率高,适合大量数据传输。

在SSL/TLS中的作用:

加密应用数据: 一旦握手完成,客户端和服务器都拥有了相同的对称会话密钥(session key)。后续所有的HTTP请求、响应等应用层数据都使用这个对称密钥进行加密和解密。

为什么用对称加密? 虽然非对称加密解决了安全交换密钥的问题,但它的计算开销比对称加密大得多。对称加密速度更快,性能更好,适合对实际通信内容进行持续加密。

数字证书 - 用于信任和身份绑定

原理: 数字证书是一个电子文档,遵循X.509标准。它最重要的作用是将一个公钥与其所有者的身份信息(通常是域名和组织信息)安全地绑定在一起。证书本身包含:

证书持有者的域名、组织信息等。

证书持有者的公钥。

证书的签发者(Certificate Authority, CA)信息。

证书的有效期。

CA的数字签名:这是证书的核心价值所在。CA使用自己的私钥对该证书的所有内容进行加密(生成数字签名)。

在SSL/TLS中的作用:

分发公钥: 服务器在SSL/TLS握手开始时,将其证书发送给客户端。客户端从证书中提取服务器的公钥。

建立信任:

客户端(操作系统或浏览器)内置了一个受信任的根证书颁发机构列表及其公钥。

客户端使用内置的根CA公钥(或中间CA证书链上的公钥)来验证服务器证书上的CA签名。

如果签名验证通过,说明:

该证书确实是由一个可信的CA签发的。

证书的内容(包括域名和公钥)在签发后没有被篡改。

客户端还会检查证书是否在有效期内,以及证书中的域名是否与用户正在访问的网站域名匹配。

身份验证: 通过验证证书,客户端确认它正在通信的服务器拥有与该证书绑定的域名,并且该域名对应的公钥是可信的(由CA背书)。这防止了中间人攻击者冒充合法网站。

总结整个加密机制流程(简化版):

客户端发起连接: 客户端(浏览器)向服务器发送连接请求,并告知支持的加密套件等信息。

服务器发送证书: 服务器将其SSL证书(包含其公钥和由CA签名的身份信息)发送给客户端。

客户端验证证书:

检查证书是否由可信的CA签发(验证CA签名)。

检查证书是否在有效期内。

检查证书中的域名是否匹配当前访问的网站域名。

生成和交换预主密钥(非对称加密):

客户端生成一个随机的预主密钥。

客户端使用从证书中获取的服务器公钥加密这个预主密钥,发送给服务器。

服务器解密预主密钥: 服务器使用自己的私钥解密得到预主密钥。

生成对称会话密钥: 客户端和服务器根据预主密钥和握手过程中交换的随机数,各自独立计算出相同的对称会话密钥。

切换到对称加密通信: 握手完成。客户端和服务器后续所有的通信数据都使用这个共享的对称会话密钥进行加密和解密。传输的内容(如密码、信用卡号、个人信息、网页内容)得到保护。

会话结束: 连接关闭时,会话密钥被丢弃。下次连接会生成新的会话密钥。

关键点:

非对称加密主要用于安全地交换对称密钥和进行身份验证(数字签名)。

对称加密用于高效地加密实际传输的数据。

数字证书是信任的基石,它由可信的CA签名,将服务器的公钥与其身份(域名) 安全地绑定在一起,使客户端能够信任服务器的公钥和身份。

因此这个机制共同确保了在不可信的网络(如互联网)上通信的机密性(数据加密)、完整性(防止数据篡改)和身份验证(确认对方是声称的服务器)。