• 计网复习 https的加密过程


    参考:HTTP和HTTPS的简单认识和区别以及HTTPS的加密过程

    HTTTP是超文本传输协议(应用层),Https是在http上增加了一个安全层(SSL/TLS)。
    对称加密:1.客户端向服务端发送请求连接, 服务端的确认请求连接中带上一个随机生成的秘钥 
                      2.客户端接收到密钥后,发送信息时需要将明文通过密钥加密后再发送给服务端
                     3. 服务端接收到加密后的信息后通过密钥进行解密,就可以得到信息了
    缺陷:约定加密方式是明文,容易被拦截
    非对称加密:1客户端向服务断发送连接请求,服务端返回一个公钥
                          2.客户端通过公钥给自己生成的私钥a进行加密,服务端用私钥解密,获得私钥a
                          3.双方通过私钥a通信
    缺陷:第一次过程中的公钥还是可能被截获、替换,导致后续密文不安全
    CA证书:
    • 服务端发送公钥给证书颁发机构申请证书
    • 证书颁发机构通过自己的私钥对服务端公钥进行加密,并且通过服务端网址等信息生成一个证书签名,证书签名同样经过机构的私钥加密。证书制作完成后,机构把证书发送给了服务端
    • 当客户端向服务端请求通信时,服务端不再直接返回自己的公钥,而是把自己申请的证书返回客户端
    • 客户端收到证书后,首先验证证书的真伪,之后取出服务端的公钥
      1. 客户端按照同样的签名规则,自己也生成一个证书签名,如果两个签名一致,说明证书是有效的。
      2. 验证成功后,再次利用机构公钥,解密出服务端的公钥
      3. 需要说明的是:各大浏览器和操作系统已经维护了所有权威证书机构的名称和公钥。因此在客户端本地就可以创建签名和解密。
    • 客户端拿到服务端的公钥后,再对自己的密钥进行加密后发送给服务端。
    • 最后服务端拿到加密后的公钥后,使用自己的私钥进行解密得到客户端的密钥
    • 接下来就可以使用密钥加密通信了
  • 相关阅读:
    Java之ServiceLoader
    docker学习(3)--Dockfile详解
    docker学习(2)--基础命令
    docker学习(1)--基础概念
    dubbo学习(1)--简单的入门搭建实例
    Flume搭建及学习(基础篇)
    VM下--Linux根分区磁盘扩容
    Windows10下简单搭建zookeeper
    Windows10下搭建TensorFlow环境
    cmath库函数
  • 原文地址:https://www.cnblogs.com/lwyang/p/16160218.html
Copyright © 2020-2023  润新知