使用 HTTPS(超文本传输安全协议)的主要原因包括以下几点:
- 数据加密 - HTTPS 使用 TLS(传输层安全协议)对数据进行加密,确保在客户端和服务器之间传输的数据不会被中途窃听或篡改。即使黑客截获了数据,也难以解密读取。
- 数据完整性 - HTTPS 可以确保传输的数据不会在过程中被篡改。即使恶意攻击者截获了数据包,数据包的校验机制会发现篡改的痕迹,进而拒绝数据的传递。
- 身份验证 - HTTPS 通过数字证书对服务器进行验证,确保用户连接到的是真正的目标服务器,而不是被攻击者伪装的假服务器。这大大减少了中间人攻击(Man In the Middle)的风险。
- 提高搜索排名 - 搜索引擎(如 Google)优先显示使用 HTTPS 的网站。Google 从 2014 年起就开始把 HTTPS 作为网站排名的一个因素。
图片
HTTPS 如何工作?
- 第 1 步 - 客户端(浏览器)和服务器建立 TCP 连接。
- 第 2 步 - 客户端向服务器发送 “Client Hello” 信息。该信息包含一套必要的加密算法和它能支持的最新 TLS 版本。服务器回应一个 “Server Hello”,以便浏览器知道它是否支持这些算法和 TLS 版本。然后,服务器向客户端发送 SSL 证书。证书包含公钥、主机名、有效期等信息。客户端验证证书。
- 第 3 步 - 验证 SSL 证书后,客户端生成会话密钥 (Session Key),并使用公开密钥对其进行加密。服务器收到加密的会话密钥后,用私钥解密。
- 第 4 步 - 既然客户端和服务器都持有相同的会话密钥(对称加密),加密数据就会在安全的双向通道中传输。
HTTPS 为什么要在数据传输过程中切换到对称加密?主要有两个原因:
- 安全性:非对称加密只能单向传输。这意味着,如果服务器尝试将加密数据发送回客户端,任何人都可以使用公钥解密数据。
- 服务器资源:非对称加密会增加大量数学开销。它不适合长时间的数据传输。
HTTPS 确实引入了一定的性能开销,但随着现代硬件和协议优化的进步,HTTPS 的性能开销相对于其安全性带来的好处已经微不足道,尤其是在 CDN(内容分发网络)、HTTP/2、TLS 1.3 等优化技术的帮助下。对于大多数应用场景,HTTPS 带来的性能影响可以忽略不计,而其提供的安全和信任则是至关重要的。