HTTPS工作原理是什么?它是如何实现数据加密的?

发布于:2025-04-09 ⋅ 阅读:(30) ⋅ 点赞:(0)
1. 基本概念
  • 数字签名:在非对称加密下,通过私钥加密(加密内容不是数据本身,而是数据的哈希值),公钥解密来验证对方身份; 

    数字签名过程.png

    预览

  • 数字证书:CA利用其私钥对服务器公钥生成数字签名,服务器将个人信息 + 公钥 + 数字签名的打包的结果就叫数字证书;
  • 数字证书有限性验证:客户端在收到数字证书后,利用CA公钥解析出数字证书中数字签名,然后对数字证书中公钥进行计算HASH值,如果和解析的数字证书中数字签名中结果相同,则说明结果可信; 

    数字证书的验证过程.png

    预览

2. SSL/TLS连接建立过程

HTTPS 主要基于SSL/TLS 协议,确保了数据传输的安全性和完整性, 其建立连接并传输数据的基本过程如下:


- 客户端向服务器索要并验证服务器的公钥。 - 双方协商生产`会话秘钥`。 - 双方采用`会话秘钥`进行加密通信。

SSL/TLS协议建立详细流程:

1)客户端发起连接请求

客户端(通常是浏览器)向服务器发送一个 ClientHello 消息,包含了以下内容:

  • 支持的 SSL/TLS 版本
  • 支持的加密算法(如对称加密、哈希算法等)
  • 生成的随机数,用于后续加密操作
2)服务器回应

服务器收到客户端的请求后,选择一个合适的加密协议和算法,生成一个 ServerHello 消息,并返回以下内容:

  • 选择的 SSL/TLS 版本
  • 选择的加密算法
  • 服务器生成的随机数
  • 服务器的数字证书(含公钥)
3) 证书验证

客户端会验证服务器提供的 数字证书,通过以下步骤确保服务器身份:

  • 客户端检查证书是否由受信任的 证书颁发机构(CA)签发。
  • 客户端检查证书是否有效(包括证书的有效期,是否被吊销等)。
  • 客户端检查证书中的公钥是否正确。
4) 密钥交换

客户端和服务器在完成证书验证后,会开始密钥交换过程。这个过程使用 非对称加密(公钥和私钥)和 对称加密(会话密钥)来保护数据:

  • 客户端使用 服务器的公钥 加密生成一个 共享的对称密钥(会话密钥),并发送给服务器。
  • 服务器使用 自己的私钥 解密该密钥。
  • 这时,客户端和服务器已经共享了一个对称密钥,用于加密后续的通信内容。
5)完成握手

一旦密钥交换完成,客户端和服务器就可以开始使用 对称加密 进行数据的加密传输。双方交换的消息都用共享的会话密钥加密,确保通信的安全性。

3. HTTPS 的性能影响

由于 HTTPS 在数据传输过程中使用了 加密和解密 操作,通常会比 HTTP 稍慢。这是因为:

  • 加密过程:每个请求和响应都需要加密和解密,增加了处理时间。
  • 证书验证:握手过程中需要验证证书,增加了延迟。
4. HTTPS 性能优化?
  • 硬件级别优化:使用在指令级别优化了加密过程的CPU;
  • 会话复用:在同一个会话中,客户端和服务器可以重用之前的加密会话,避免重复的握手过程。
  • 协议升级:把TLS1.2升级成TLS1.3,TLS1.3大幅度简化了握手的步骤,完成TLS握手只要1RTT,而且安全性更高。
  • 证书缓存:浏览器可以缓存证书,避免频繁的证书验证过程。

网站公告

今日签到

点亮在社区的每一天
去签到