HTTPS(超文本传输安全协议)使用了一种称为SSL(安全套接字层)或TLS(传输层安全性)的协议来进行加密。以下是HTTPS进行加密的基本过程:
- 建立安全连接:
- 客户端(如浏览器)向服务器发送一个请求,请求建立一个加密的连接。
- 服务器回应,并发送其SSL证书(包含公钥和服务器的一些其他信息)。
- 验证证书:
- 客户端验证服务器的SSL证书是否有效,是否由受信任的证书颁发机构(CA)签发,以及证书中的域名是否与请求的服务器域名匹配。
- 密钥交换:
- 客户端和服务器使用非对称加密技术(如RSA)进行密钥交换。
- 客户端使用服务器的公钥来加密一个随机生成的对称密钥(会话密钥),并将加密后的密钥发送给服务器。
- 服务器使用其私钥来解密这个对称密钥。
- 数据传输:
- 一旦双方都有了共享的对称密钥,它们就可以使用这个密钥来加密和解密传输的数据。
- HTTPS使用对称加密算法(如AES)来加密和解密实际传输的数据。
- 完整性检查:
- HTTPS还使用了一种称为消息认证码(MAC)的技术来确保数据的完整性。
- 客户端和服务器都使用一个共享的密钥(通常与用于加密数据的密钥相同)来生成MAC。
- 当服务器收到数据时,它会使用相同的密钥和算法来生成MAC,并与接收到的MAC进行比较,以确保数据在传输过程中没有被篡改。
- 关闭连接:
- 当数据传输完成时,客户端和服务器关闭加密连接。
这种结合非对称加密和对称加密的方式确保了HTTPS连接的安全性。非对称加密用于安全地交换对称密钥,而对称加密则用于高效地加密和解密实际传输的数据。