HTTPS加密过程

Https加密

HTTP: 直接通过明文在浏览器和服务器之间传递信息。
HTTPS: 采用 对称加密非对称加密 结合的方式来保护浏览器和服务端之间的通信安全。

对称加密

对称加密: 加密和解密都是同一个密钥。

非对称加密

非对称加密: 密钥成对出现,分为公钥和私钥,公钥和私钥之间不能互相推导,公钥加密需要私钥解密,私钥加密需要公钥解密。

两种加密区别

  • 对称加密速度快,非对称加密速度慢(相对慢100倍)。
  • 对称加密相对非对称加密不安全,只要密钥暴露和,明文传递没有区别;非对称加密可以将公钥暴露,供客户端加密,服务端使用私钥解密。

Https加密流程

SSL: 在TCP协议之上,应用层之下运作,是用来传输敏感信息的。使用SSL连接的URL地址以https开头,而不是http。

  1. 浏览器使用HttpsURL访问服务器,建立SSL链接。
  2. 服务器接收到SSL链接后,发送非对称加密的公钥A给浏览器。
  3. 浏览器生成随机数,作为对称加密的密钥B。
  4. 浏览器使用服务器返回的公钥A,对自己生成的对称加密密钥B进行加密,得到密钥C。
  5. 浏览器将密钥C发送给服务器
  6. 服务器使用自己的私钥D对接受的密钥C进行解密,得到对称加密密钥B。
  7. 浏览器和服务器之间使用密钥B作为对称加密密钥进行通信。

通过上面的流程浏览器和服务器之间共享一个对称加密密钥B,而且不会被人监听和拦截到,之后的消息传递,使用密钥B进行对称加密。

优点: 非对称加密只使用了一次,后续所有的通信消息都是用对称加密,效率比非对称加密高。

数字证书

非对称加密的缺点

当服务器发送公钥给客户端, 中间人截获公钥 ,将 中间人自己的公钥 冒充服务器的公钥发送给客户端。
之后客户端会用 中间人的的公钥 来加密自己生成的 对称密钥 。然后把加密的密钥发送给服务器,这时中间人又把密钥截取,中间人用自己的私钥把加密的密钥进行解密,解密后中间人就能获取 对称加密的密钥

注意: 非对称加密之所以不安全,因为客户端不知道这把公钥是不是属于服务器的。

认证中心(CA): 一个拥有公信力、大家都认可的认证中心,数字证书认证机构。

证书内容:

  1. 签发者
  2. 证书用途
  3. 公钥
  4. 加密算法
  5. Hash算法
  6. 证书到期时间

  1. 服务器在给客户端传输公钥的过程中,会把 公钥和服务器的个人信 息通过 hash算法 生成 信息摘要
    在这里插入图片描述

  2. 为了 防止信息摘要被调换 ,服务器会采用 CA提供的私钥 对信息摘要进行加密来形成 数组签名
    在这里插入图片描述

  3. 最后会把原来没 Hash算法 之前的 个人信息、公钥及、数字签名 合并在一起,形成 数字证书
    在这里插入图片描述

  4. 客户端拿到 数字证书 之后,使用 CA提供的公钥 对数字证书里的数字签名进行解密来得到信息摘要,然后对数字证书里服务器的公钥及个人信息进行 Hash 得到 另一份信息摘要

  5. 最后将 两份信息摘要对比, 如果一样则证明是服务器,否则就是中间人。
    在这里插入图片描述

常见: 证书中包含了host信息,假如客户端正在访问的host和证书中的host不一样,浏览器会发出警告。
在这里插入图片描述

CA证书的颁发

服务器一开始向认证中心申请证书,客户端也内置这些证书。
当客户端收到服务器传输过来的数据数字证书时,就会在内置的证书列表里,查看是否有解开该数字证书的公钥,如果有则认证,如果没有则不认证。

©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页