HTTPS 知识点

1.网景公司首创,所有主要浏览器和服务器都支持此协议
2.使用HTTPS时,所有的HTTP请求和响应数据在发送到网络之前,都要进行加密。HTTPS在HTTP和TCP之间加入了一个传输级的安全层,可以使用SSL或者TLS。TLS/SSL中使用了非对称加密、对称加密、Hash算法等。
3.密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的参数。密钥分为对称密钥与非对称密钥。
4.数字加密
 1)对称密钥加密(DES、RC2、RC4)
   加密和解密使用相同的密钥。
   优点:加密解密的效率比较高    
   缺点:发送端和接收端需要共享一把密钥。对于有多个数据交换需求的个体,两两之间需要分配并维护一把密钥,带来巨大的成本开销
 2)非对称密钥加密(RSA)
   使用两个不同的密钥进行编码和解码,编码密钥是公开的,但只有主机才知道私有的解密密钥。
   公钥加密的数据只能通过私钥解开,私钥加密的数据只能通过公钥解开。
   问题1:数据传输仅单向安全。因为公钥也可以解开私钥加密的数据,而公钥又是公开的,那么只要中间代理拿到公钥后就可以在数据发回浏览器的途中解开数据。HTTPS结合使用了非对称加密、对称加密,避免了这个问题。
     整个加密通信的流程如下:
      1.小明访问XX,XX将自己的证书发给浏览器
      2.浏览器从证书中拿到XX的公钥A
      3.浏览器生成一个只有自己知道的对称密钥B,用公钥A加密,并传给XX
      4.XX通过私钥解密,拿到对称密钥B
      5.浏览器、XX之间的数据通信,都通过密钥B进行加密

     如此,也解决了非对称密钥加解密效率低的问题。
   问题2:公钥如何获取,如何保证不被篡改。HTTPS将公钥放在数字证书中,只要数字证书是可信的,公钥就是可信的。    
 3)数字签名
   对传输的内容,通过hash算法计算出一段固定长度的串,这段字符串就是“摘要”。然后通过CA的私钥对这段摘要进行加密,加密得到的结果就是数字签名。数字签名用于说明是谁编写的报文,同时证明报文未被篡改过。
   数字签名通常是用非对称密钥技术产生
 4)数字证书
   包含了由某个受信任组织担保的用户或公司的相关信息,相当于网站的身份证
   数字证书的主要内容包括:
    1. 对象的名称
    2. 过期时间
    3. 证书发布者
    4. 来自证书发布者的数字签名


参考链接:

  1. HTTPS科普扫盲帖
  2. SSL/TLS协议运行机制的概述