当前位置:   article > 正文

快速了解Https通信原理

快速了解Https通信原理
公钥和私钥的关系
  • 私钥由服务器持有,公钥所有人都知晓

  • 私钥加密的数据,使用公钥可以解密

  • 公钥加密的数据,只有私钥可以解开

  • 私钥和公钥之间的这种关系,是通过特定算法实现的,但是破解难度和成本极大,因此可以认为是相当安全的

  • 服务端发给浏览器的数据,由于公钥是公开的,谁都可以解密,因此不能直接用于数据通信

信任建立过程(非对称加密)
  • 服务端向权威CA机构,购买一份受信任的SSL证书

  • 浏览器向服务器发出请求,并携带自己的加密算法和摘要算法

  • 服务器收到浏览器的请求,选择浏览器要求的加密算法和摘要算法

  • 服务器将自己申请的数字证书返回给浏览器

  • 浏览器根据证书的颁发机构,去内置的证书列表中查找

    • 如果是权限证书机构,则取出对应的公钥
    • 如果不是可信机构,则警告证书不可信,是否继续使用
  • 浏览器用公钥去解密服务器发来的数字证书,得到证书中的域名,有效期等信息

    • 如果域名和实际访问地址不一致,或者已过有效期,则提示用户证书无效
  • 浏览器生成一个随机数R,保存到本地,用公钥加密后将R发送给服务器

  • 服务器用私钥解密,得到随机数R,保存到本地

数据通信过程(对称加密)
  • 服务器用R作为密钥,加密网页,发送给浏览器

  • 浏览器用R作为密钥,解密网页

  • 浏览器用R作为密钥,继续加密新的数据,并发送给服务器

设计原理

非对称加密方式,仅仅用来交换对称加密所需的秘钥R

当R被存储到双方本地后,后面的过程使用对称加密的方式通信,就不用担心安全问题了

在非对称加密阶段

当服务器给浏览器发送证书,由于服务端证书校验依赖于认证中心和私钥,因此是安全的

当浏览器给服务器发送数据时,由于随机数R的解密依赖于私钥,因此也是安全的

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号