zoukankan      html  css  js  c++  java
  • HTTPS工作流程(入门)

    1、CA(为服务器做担保的第三方机构)将包含CA【公钥C】等信息的【证书C】发送给浏览器;

    2、服务器将其【公钥S】和网站信息发送给CA;

    3、CA用CA【私钥C】将这些信息加密得到了签名后的【服务器证书S】,发送给服务器;

    4、浏览器输入使用https协议的url;

    5、浏览器与服务器建立TCP连接;

    6、浏览器与服务器建立TLS(SSL)连接(1):主要传输浏览器支持的加密算法列表等,其中还包括用于生成对称密钥的客户端随机数;

    7、浏览器与服务器建立TLS(SSL)连接(2):传输服务器选择的加密算法,其中包括用于生成对称密钥的服务器随机数;

    8、浏览器与服务器建立TLS(SSL)连接(3):传输【服务器证书S】(经过CA私钥加密的公钥、域名等);

    9、浏览器用CA【证书C】的公钥解密【服务器证书S】,进行证书校验,验证解密后的【服务器证书S】中的域名是否正确并获得服务器【公钥S】;

    10、浏览器与服务器建立TLS(SSL)连接(4):浏览器产生pre_master key,用服务器发来的【公钥S】加密后发给服务器(用生成对称密钥);

    11、浏览器用客户端随机数、服务器随机数、pre_master key生成对称加密【密钥A】;

    12、服务器用其【密钥S】将收到的pre_master key解密,生成对称加密【密钥A】;

    13、浏览器与服务器建立TLS(SSL)连接(5):浏览器通知服务器协商完成;

    14、浏览器与服务器建立TLS(SSL)连接(6):浏览器生成一段信息,用生成的对称【密钥A】加密发送给服务器用于握手验证;

    15、服务器用生成的【密钥A】解密收到的信息,验证协商结果的正确性;

    16、浏览器与服务器建立TLS(SSL)连接(7):服务器同样生成一段信息,用生成的对称【密钥A】加密发送给浏览器用于握手验证;

    17、浏览器用生成的【密钥A】解密收到的信息,验证协商结果的正确性,通过后则握手协商过程结束;

    18、开始后续双方建立在此次安全握手基础上的会话,用对称加密【密钥A】对对话加密。

    总结:

    一、浏览器保存有CA机构的信息,包括公钥,通过CA对相关网站的担保确定网站请求的安全性【1】;

    二、服务器的公钥和网站信息通过CA的私钥签名确保公钥、网站等信息不会被中间人更改【2-3】;

    三、建立安全ssl连接,用CA机构的【公钥C】解密,确保每一次浏览器与服务器间的会话信息都没有被串改,获得对方有效的【公钥S】以及随机数【6-9】;

    四、用【公钥C】加密传递pre_master key,确保双方计算出相同的对称加密【密钥A】【10-13】;

    五、用协商生成的【密钥A】验证ssl握手和密钥的正确性,完成ssl握手过程【14-17】;

      

      

  • 相关阅读:
    面向对象先导课感想
    【LATEX】个人版latex论文模板
    【前端】wangEditor(富文本编辑器) 简易使用示例
    【前端】ACE Editor(代码编辑器) 简易使用示例
    苦果:像专家一样思考,像外行一样实践
    Matplotlib cheatsheet
    版本控制最佳实践cheatsheet
    “左手程序员、右手作家”Jupyter Notebook Cheatsheet
    Pandas DataWrangling cheatsheet(数据整理 )
    Numpy basic sheatsheet
  • 原文地址:https://www.cnblogs.com/liziof/p/12001711.html
Copyright © 2011-2022 走看看