Https建立过程

HTTPS定义

在HTTP之下增加一个安全层,用于保障HTTP的加密传输

HTTPS本质

在客户端和服务器之间用非对称加密协商出一套对称加密密钥,每次发送信息之前将内容加密,收到之后解密,达到内容的加密传输

HTTPS建立连接过程

客户端建立TLS连接

  • Client Hello,包含:
    • 可选的TLS版本集合
    • 可选的Cipher Suite加密套件集合
    • 客户端随机数
  • Server Hello,包含:
    • TLS版本
    • Cipher Suite加密套件
    • 服务器随机数

服务器发回证书

  • 证书包含:
    • 服务器公钥,名字,地区,主机名等
    • 对服务器公钥的签名
    • 验证上面签名的公钥,及证书签发机构的公钥
    • 签发机构的公钥的签名

客户端验证服务器证书

  • 用签发机构的公钥验证服务器公钥签名
  • 用根证书(在操作系统中)验证签发机构的公钥的签名
  • 验证主机名

客户端和服务器协商对称密钥

  • 客户端用公钥加密发送Pre-Master-Secret
  • 客户端和服务器端分别通过客户端随机数、服务器随机数、Pre-Master-Secret各自计算出Master Secret
  • 通过Master Secret算出:
    • 客户端加密密钥
    • 服务器端加密密钥
    • 客户端MAC Secret
    • 服务器端MAC Secret
  • 客户端发送通知:将使用加密通信
    • 使用服务器端加密密钥将以上内容加密发送给服务器端
  • 客户端发送Finished
  • 服务器发送通知:将使用加密通信
    • 使用客户端加密密钥将以上内容发送给客户端
  • 服务器发送Finished

使用对称密钥开始通信

  • 客户端使用服务器密钥加密数据,服务器使用客户端密钥加密数据
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章