【基础】HTTPS

HTTPS

What

HTTPS的全称是Hypertext Transfer Protocol Secure, 中文名称超文本传输安全协议。是一种通过计算机网络进行安全通信的传输协议。HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包。HTTPS开发的主要目的,是提供对网站服务器的身份认证,数据安全性与数据完整性。

HTTPS主要做三个事情

  1. 身份认证
  2. 数据安全性
  3. 数据完整性

Why

HTTP在传输过程不安全,明文,容易被中间人劫持,篡改,伪造数据请求。

HTTPS解决HTTP传输过程不安全

How

身份认证

使用非对称加密, 服务端保存私钥,颁发公钥给客户端。

服务端能用私钥解密,代表客户端是使用服务端颁发的公钥进行加密。

客户端能用公钥解密,代表是服务端使用私钥加密。

但这里还存在一个问题,就是公钥是任何人都可以颁发,中间人可以伪造颁发公钥,窃取客户端提交数据,使用自己私钥解密得到内容。

所以需要一个有公信力的机构,证明公钥是对应服务端颁发,这里需要引入CA(Certificate Authority), 证书认证机构,证明公钥是对应服务端颁发。

数据安全性

客户端发起HTTPS请求,生成一个随机数作为会话密钥,作为内容加密的密钥,使用对称密码对内容加密传输。

会话密钥生成步骤

  1. 客户端发起HTTPS请求
  2. 服务端返回HTTPS证书
  3. 客户端验证证书合法性并生成随机数加密传输服务端
  4. 服务端私钥进行解密得到随机数并存储作为会话密钥
  5. 服务端会话密钥对称加密内容传输客户端
  6. 客户端使用会话密钥对称解密得到内容渲染

数据完整性

除了对内容加密,还会使用摘要算法,对内容生成摘要(签名),把签名同时传输。

校验步骤

  1. 对内容生成摘要
  2. 解密然后取其中内容生成摘要
  3. 对比摘要
posted @ 2022-11-02 11:05  WilsonPan  阅读(111)  评论(0编辑  收藏  举报