SSL/TLS协议运行机制

问题

不采用TLS协议带来的后果

  • 信息有可能被篡改
  • 信息可能被暴露
  • 可能被冒充身份

协议运行机制

第一步:客户端:协议版本号 + 加密请求协商 + 随机数

第二步:服务端:协商结果 + 证书(包含服务器的公钥+证书基本信息)+ 随机数

第三步:客户端:验证证书的有效性 + 一个随机数(pre-master key、将pre-master key使用公钥加密)+ hash(协商内容)

第四步:服务端:hash(协商内容)

加解密过程

  • 根据三个随机数生成会话密钥
  • 会话密钥加密对话内容
  • 公钥加密会话密钥

整个握手协商的过程都是不加密的,所以第三步产生的随机数是需要使用公钥进行加密的

浏览器是如何检查证书是否可信任的?

  1. 用户申请CA证书的流程
    • 用户需要把自己的公钥、身份信息、公司材料提交给CA机构进行申请证书
    • CA机构拿到用户的这些信息,CA机构对这些信息进行摘要,并使用私钥进行签名
    • 并生成一个证书(key、pem和cert文件),证书中包含CA机构的公钥
    • 然后服务器上进行配置
  2. 浏览器验证CA证书的流程
    • 浏览器拿到服务器的证书后,检查证书的有效期
    • 浏览器CA机构的公钥对签名信息进行解密获得信息摘要
    • 最后判断这两个摘要是否一致就可以了
  3. 浏览器如何获取CA机构的公钥
    • 服务器出了需要部署CA颁发的证书外,还需要部署CA机构的证书,此证书包含CA机构的公钥信息
  4. 证明CA机构的合法性
    • 操作系统中会内置一些CA机构的证书
  5. 如何判断是否为伪造的CA机构
    • 可以沿着证书链追溯到根证书,中间CA机构是有根CA机构颁发的
    • 如果某个CA机构根证书在操作系统中,则认为是合法的

CA机构颁发的证书中包含:中间CA机构的证书(公钥、证书基本信息)、服务器的证书(公钥、证书基本信息)、服务器的私钥


参考链接:

《SSL/TLS协议运行机制的概述-阮一峰》

图解SSL/TLS协议-阮一峰

https浏览器是如何验证数字证书的


SSL/TLS协议运行机制
http://example.com/2024/12/31/2024-12-31-SSLTLS协议运行机制/
作者
wyx-98
发布于
2024年12月31日
许可协议