计算机网络HTTP:HTTP和HTTPS

  • HTTP协议的缺点
    • 通信使用明文,内容可能被窃听。
    • 不验证通信方身份,有可能遭遇伪装。
    • 无法证明报文的完整性,有可能已被篡改。
  • HTTPS
    • HTTPS并非应用层的一种新协议,只是HTTP通信接口部分用SSL/TLS协议代替而已。通常HTTP直接和TCP通信,当使用SSL时则变成先和SSL通信,再由SSL和TCP通信。
      image
  • SSL/TLS(安全套接层/传输层安全协议)
    • SSL协议分为两层
    • SSL记录协议:它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。
    • SSL握手协议:它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。
  • 对称密钥加密和非对称密钥加密
    • 对称密钥加密(私钥加密):即信息的发送方和接收方使用同一个密钥去加密和解密数据。
    • 非对称密钥加密(公钥加密):它需要使用一对密钥来分别完成加密和解密操作,一个公开发布,即公开密钥,另一个由用户自己秘密保存,即私用密钥。信息发送方用公开密钥去加密,而信息接收方则用私用密钥去解密。
      image
  • SSL/TLS协议基本原理
    • 基本思路:客户端先向服务端索要公钥,然后用公钥加密信息,服务端收到密文后,用自己的私钥解密。
    • 如何保证公钥不被篡改?
      • 解决方法:将公钥放在数字证书中,只要证书是可信的,公钥就是可信的。
    • 公钥加密计算量太大,如何减少耗用的时间?
      • 解决方法:每一次对话(session),客户端和服务端都生成一个“对话密钥(session key)”,用它来加密信息。由于“对话密钥”是对称加密,所以运算速度非常快,而服务器公钥只用于加密“对话密钥本身”,这样就减少了加密运算的耗费时间。
        image
    • SSL/TLS协议的基本过程
      • 客户端向服务端索要并验证公钥。
      • 双方协商生成“对话密钥”。
      • 双方采用“对话密钥”进行加密通信。
  • 数字证书
    image
  • HTTPS存在的问题
    • 当使用SSL时,它的处理速度会变慢。
    • SSL必须进行加密处理。会比HTTP更多的消耗硬件资源。

猜你喜欢

转载自www.cnblogs.com/xiaobaizzz/p/12301904.html