HTTPS的原理

之所以会去查找这些的资料,是因为之前我们的域名没有加证书,被部分浏览器拦截了,访问不了,后面才加了证书,这个证书到底有什么用呢?想必大多数人都会说安全啊,那具体是怎么做到更安全的呢?

HTTP

不安全的原因是:通过明文传输

出现的问题:可能在传输的过程中,会被监听、篡改或者冒充。

为了解决这个问题,我们就需要对传输的内容进行加密(即使监听到了数据,也看不懂),校验内容(防止被恶意篡改),验证身份(防止被冒充)。

提出方案:SSL/TLS  (这是https的核心技术)

HTTPS

SSL/TLS:

  核心: RSA非对称加密 

  通过我们对RSA工作原理的了解,会发现有两个问题:(1)服务器需要向客户端发送公钥,这个过程不安全     (2)RSA计算量大,会影响到性能

解决问题一:

  服务器对 发送给客户端的公钥 使用 CA私钥(这里就涉及到我们申请的证书,全称应该叫数字证书,它可以获取到CA 的 私钥。而且只有CA才有私钥,保证安全) 进行加密

  浏览器用  CA公钥(这是浏览器内置的,也很安全) 进行解密获得公钥

解决问题二:

  更换成 对称加密 。其中密钥由双方协商生成。

几个重要的流程:(1)数字证书获取公钥    (2)协商生成对话密钥(详细过程:四次握手)     (3)使用对话密钥进行加密

四次握手:(1)ClientHello :  传送随机数n1 、 能支持的协议版本和加密方法

      (2)ServerHello:     传送随机数n2 、 数字证书,确定使用的协议版本和加密方法

      (3)客户端回应: 传送   经过公钥加密的随机数n3

      (4)服务器最后回应:  解密得到n3

      注:  n1、n2  、n3 通过相同的算法,生成对话密钥

补充概念 

这里需要补充两个概念,RSA和与RSA相对应的对称加密

RSA:

   成员:会生成一把公钥和一把私钥;

     工作原理:公钥加密,私钥解密;私钥加密,公钥解密(二者的关系是双向)

     优点:安全

   缺点:计算量大,负担重

对称加密:

   成员:会生成一把公钥和一把私钥;

     工作原理:使用同一把密钥进行加解密。

     优点:快

   缺点:需要传输密钥,不安全

原文地址:https://www.cnblogs.com/zxn-114477/p/14578876.html