HTTPS流程

  1. client Hello,客户端(通常是浏览器)先向服务器发出加密通信的请求
    (1) 支持的协议版本,比如TLS 1.0版。
    (2) 一个客户端生成的随机数 random1,稍后用于生成"对话密钥"。
    (3) 支持的加密方法,比如RSA公钥加密。
    (4) 支持的压缩方法。
  2. 服务器收到请求,然后响应 (server Hello)
    (1) 确认使用的加密通信协议版本,比如TLS 1.0版本。如果浏览器与服务器支持的版本不一致,服务器关闭加密通信。
    (2) 一个服务器生成的随机数random2,稍后用于生成"对话密钥"。
    (3) 确认使用的加密方法,比如RSA公钥加密。
    (4) 服务器证书。
  3. 客户端收到证书之后会首先会进行验证
    (1)浏览器就可以使用CA机构的公钥对服务器的证书进行验签
    (2)验证通过之后,客户端会生成一个随机数pre-master secret,然后使用证书中的公钥进行加密,然后传递给服务器端
  4. 服务器收到使用公钥加密的内容,在服务端使用私钥解密后得到pre-master secret,然后根据random1,random2,pre-master secret生成sessionKey 和MAC算法秘钥,作为后面交互的对称秘钥。客户端也会用同样的方法生成sessionKey 和MAC算法秘钥
  5. 然后再后续的交互中就使用session Key和MAC算法的秘钥对传输的内容进行加密和解密。


    https

    https
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 有一只猫,他活了一百万次,死了一百万次,做了一百万次别人的猫,有一百万个主人,但是猫都不喜欢他们,这些主人在猫死去...
    Satan__阅读 4,112评论 0 0
  • 九张图凑足了春夏秋冬!
    马骥北阅读 6,174评论 29 51

友情链接更多精彩内容