• 计算机网络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更多的消耗硬件资源。
  • 相关阅读:
    windows 10 上源码编译opengv | compile opengv on windows 10 from source
    ubuntu 16.04上源码编译libjpeg-turbo和使用教程 | compile and use libjpeg-turbo on ubuntu 16.04
    c 时间 学习
    cap文件的格式说明
    C#调用C++
    c/c++基础 const
    tomcat 简单安装配置说明
    言论
    近期任务
    解决mysql从windows迁移到centos出现乱码问题
  • 原文地址:https://www.cnblogs.com/xiaobaizzz/p/12301904.html
Copyright © 2020-2023  润新知