HTTPS理解

作用:

  1. 证书:证明要访问的域名是真实的域名,不是被黑客冒充的假网站。

      2. 加密:避免中间人攻击,避免内容被中间人获取。

证书中包含的信息:

      1. RSA公钥

      2. 证书签发机构,对证书的签名(指纹)

      3. 签名算法,带RSA加密的SHA256

使用过程:

    1.  密钥协商:客户端(浏览器)随机生成AES密钥,使用RSA公钥加密,发送给服务端,服务端使用私钥解密。得到AES密钥。

    2.  数据加密:使用AES对数据加密。

    3.  生成摘要:对数据进行SHA256算法,生成数据的摘要。并使用RSA私钥对摘要进行签名。

Q:为什么不直接是用RSA进行非对称加密?

A:为了性能,RSA跟AES相比运行效率存在十几倍的差距。

  

Q:为什么要对摘要进行SHA256生成摘要,直接对内容进行签名不行吗?

A:也是为了性能,RSA非对称加密算法性能跟SHA相比差存在十倍的差距。先生成摘要,可以让RSA签名的数据变小。

Q:为什么要生成摘要和签名?数据不是已经加密了吗?

A:防止中间人攻击,中间人可以获得AES密钥,篡改数据。但中间人密钥RSA私钥,无法对摘要进行签名。

    

原文地址:https://www.cnblogs.com/lhp2012/p/14245098.html