http和https

一:http的不安全性

  1. http是超文本传输协议,使用的是明文传输,有可能被中途拦截窃听
  2. 可能被第三方恶意拦截篡改,替换发送报文或者返回异常报文(http劫持)
  3. 无法验证通信双方身份,有可能被伪装(dns劫持)

二:https如何解决上述问题

1.明文传输问题(加密)

  加密算法:对称性加密和非对称性加密,其中对称性加密性能好于非对称性加密。

对称加密:使用公钥加密,使用公钥解密

非对称加密:使用公钥加密,只有私钥能解密(使用私钥加密,所有公钥都能解密)

(1):使用对称加密,公开公钥

http和https_第1张图片

(2):使用对称加密,协商公钥,但是协商过程是明文的

http和https_第2张图片

(3)使用非对称加密,协商公钥一样会出问题,会发生http劫持

http和https_第3张图片

(4)引入一个第三方来证明我的公钥就是我的公钥(公钥的正确性)

对服务器公钥加密

数字证书:第三方机构对申请方公钥加密后的数据

        :里面还明文保存了第三方机构是谁

第三方机构:也采用非对称加密,用私钥给申请方的公钥加密

           然后把自己的公钥内置的浏览器里面,可以解密

           申请方的加密后的公钥,在用公钥通信

http和https_第4张图片

上述流程有一个问题:不能辨别证书来自真正的服务器和黑客

http和https_第5张图片

(5)在引入第三方的前提下,如何让客户端识别证书的真伪,需要引入证书编号

证书包含内容:明文:server公钥,CN(域名), 国家, 省份,邮箱,组织,签名算法等....,私钥加密(通过签名算法(证书内容))= 证书编号

证书编号/证书序列号:经第三方机构私钥加密(证书内容的签名(md5))

流程图如下所示:

http和https_第6张图片

客户端浏览器如何识别证书的真伪

http和https_第7张图片

在上述场景下,黑客可以篡改服务器公钥信息吗?

黑客能获取的信息有CA公钥,服务器公钥,服务器信息的签名

但是拿不到CA的私钥,修改了公钥后,无法通过CA私钥重新加密签名

因此黑客无法篡改,除非浏览器内置了有问题的CA机构或者CA机构出问题了

解决了证书验证及服务器公钥被篡改的问题

(6)浏览器获取到服务器公钥,如何如服务器协商对称秘钥(因为对称加密的性能远远好于非对称加密)

http和https_第8张图片

 

参考文章链接:HTTPS协议详解(四):TLS/SSL握手过程_hherima的博客-CSDN博客_ssl握手

你可能感兴趣的:(后端,network,https,安全,网络协议)