HTTP
HTTP是一个位于网络七层模型(TCP/IP五层模型)中应用层的协议
从安全性来讲:

  1. HTTP通信使用明文,内容容易被窃听
  2. 不验证通信方的身份,因此可能遭受伪装
  3. 无法证明报文的完整性,有可能被篡改
    为了解决HTTP的安全性问题,NetScape公司设计了SSL(Secrure Sockets Layer)协议,经多年发展后成为了现在的TLS(Transport Layer Security) 协议

HTTPS
而我们所说的HTTPS则是"HTTP+SSL/TLS"的结合产物,它通过加密应用层的数据报再进行传输的方式来确保数据在传输过程中的完整性
既然SSL/TLS是通过加密来进行数据完整性的保护的,那么它们的加密逻辑都是怎么样的呢?

1.对称加密

服务器在本地生成一份密钥,数据的加密和解密都依靠这个密钥,因此,客户端也需要这份密钥,这样一来密钥就要在通信的过程中进行传输。

  • 对称加密的优点:效率高,因此适用于对数据的安全有一定的要求,又对速度有一定要求的场景
  • 对称加密的缺点:因为密钥要在网络中进行传输,因此有被拦截的风险

2.非对称加密

与对称加密相同的是非对称加密也使用密钥,不过非对称加密加密和解密的密钥是不同的,双端各自产生公钥和私钥,进行通信时双方会将公钥交换,加密数据后传回,由本地的服务器解密。

  • 非对称加密的优点:即使在传输过程中公钥被拦截也无法完成对数据的解密
  • 非对称加密的缺点:窃听者可以通过拦截公钥后伪造服务端身份,给客户端发送窃听者自己的公钥,于是客户端就会使用窃听者的公钥进行加密,传回后窃听者便可以通过自己的私钥来进行解密。

CA认证机制
证书颁发机构(CA, Certificate Authority)即颁发数字证书的机构。是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。

  • CA中心为每个使用公开密钥的用户发放一个数字证书,数字证书的作用是证明证书中列出的用户合法拥有证书中列出的公开密钥。CA机构的数字签名使得攻击者不能伪造和篡改证书。
  • 服务器将公钥提供给CA机构,CA机构使用自己的私钥将服务器公钥加密后将CA证书(该证书保存有服务器公钥)返回给服务器。一般操作系统或者浏览器中都会内置CA根证书,当客户端(比如浏览器)请求服务器时,服务器会将CA证书提供给客户端,客户端获取到CA证书后会使用CA根证书进行本地验证(验证通过即表明服务器CA证书的合法性,间接表明公钥来源的合法性)。
Last modification:December 15th, 2019 at 03:41 pm
If you think my article is useful to you, please feel free to appreciate