HTTPS 加密过程解析

一、HTTP 和 HTTPS 之间的区别

  1. HTTP 是明文传输的, 通信双方无法确认对方的身份是否正确,很难保证信息不被泄漏, 无法保证数据的完整性, 默认端口80
  2. HTTPS = HTTP + 身份认证 + SSL/TLS + 数据私密性 + 数据完整性能, 默认端口443
    • HTTPS 经由HTTP 通信,利用 SSL/TLS 建立信息安全通道, 加密数据包

二、对称加密和非对称加密

  1. 对称加密:加密和解密都使用一个密钥(存储在服务端),客户端需要加密数据时需要先从服务端获取密钥
    • 优点:加密速度快,计算量小
    • 缺点:通信前双方需要先协商好密钥,在网络传输过程中是不安全的
  2. 非对称加密: 用一对密钥进行加密和解密,公钥负责加密,私钥负责解密;客户端和服务端都各自保存自己的公钥和私钥,并且客户端和服务端的公钥可以相互传递
    • 优点: 私钥不传递给另一方,公钥可以传递,传输过程中比较安全
    • 缺点: 加密算法复杂,效率比较低

三、身份认证

  1. 客户端和服务端 通过第三方权威机构提供和维护的证书来进行身份认证
  2. 证书跟域名一样是需要购买的,因为机构不仅仅要颁发证书给你,还要提供证书的认证查询服务。

四、HTTPS 加密流程

HTTPS 加密即使用了 非对称加密又使用了对称加密
请添加图片描述

  1. 客户端向服务端发起网络请求
  2. 服务度端向客户端返回携带公钥A 的证书
  3. 客户端解析证书(浏览器完成的)验证合法性
  4. 验证通过之后 从证书中取出 公钥A
  5. 随后生成一个 随机码KEY(客户端公钥),再将这个随机码传递给服务端
  6. 服务端接收到 随机码之后使用 私钥 B进行解码获取客户端公钥(随机码KEY)
  7. 然后将要传输的数据通过随机码 KEY进行加密发送给客户端
  8. 客户端接收到加密过的数据之后使用随机码KEY进行解密

你可能感兴趣的:(https,ssl,网络协议,http,网络)