HTTPS / TLS

HTTPS原理

Posted by chchaooo on January 26, 2019

HTTPS

  • HTTP: 应用层协议,基于TCP
  • TCP:传输层协议,保证了数据从端到端的可靠传输,但是传输过程没有进行加密,因此抓包之后,可以直接完整获取到发出的数据
  • HTTPS:HTTPS 是在 HTTP 和 TCP 之间加了一层 TLS,这个 TLS 协商了一个对称密钥来进行 HTTP 加密,保证传输内容的安全

TLS

SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS可以看做SSL3.1.

TLS协议的目标是为信息传输提供三个基本的保证:加密、身份验证和数据完整性。这三种服务并不是必须的,可以根据具体的应用场景进行选择。

  • 加密:混淆数据的机制。
  • 身份验证:验证身份标识有效性的机制。
  • 完整性:检测消息是否被篡改或伪造的机制。

SSL/TLS 实际上混合使用了对称和非对称密钥,主要分成这几步

  1. 使用非对称密钥建立安全的通道
    • 客户端请求 Https 连接,发送可用的 TLS 版本和可用的密码套件
    • 服务端返回证书,密码套件和 TLS 版本
  2. 用安全的通道产生并发送临时的随机对称密钥
    • 客户端生成随机对称密钥,使用证书中的服务端公钥加密,发送给服务端
    • 服务端使用私钥解密获取对称密钥
  3. 使用对称密钥加密信息,进行交互