■面试官求你了,别再问我HTTPS( 四 )

  • 用 CA 机构的公钥进行解签 , 得到 Sig2(由于 CA 机构是一种公信身份 , 因此在系统或浏览器中会内置 CA 机构的证书和公钥信息) 。
  • 用证书里声明的哈希算法对明文 Text 部分进行哈希得到 H 。
  • 当自己计算得到的哈希值 T 与解签后的 Sig2 相等 , 表示证书可信 , 没有被篡改 。

  • ■面试官求你了,别再问我HTTPS
    本文插图

    这时 , 签名是由 CA 机构的私钥生成的 , 中间人篡改信息后无法拿到 CA 机构的私钥 , 保证了证书可信 。
    注意 , 这里有一个比较难以理解的地方 , 非对称加密的签名过程是 , 私钥将一段消息进行加签 , 然后将签名部分和消息本身一起发送给对方 。
    收到消息后对签名部分利用公钥验签 , 如果验签出来的内容和消息本身一致 , 表明消息没有被篡改 。
    在这个过程中 , 系统或浏览器中内置的 CA 机构的证书和公钥成为了至关重要的环节 , 这也是 CA 机构公信身份的证明 , 如果系统或浏览器中没有这个 CA 机构 , 那么客户端可以不接受服务端传回的证书 , 显示 HTTPS 警告 。
    实际上 CA 机构的证书是一条信任链 , A 信任 B , B 信任 C , 以掘金的证书为例 , 掘金向 RapidSSL 申请一张证书 , 而 RapidSSL 的 CA 身份是由 DigiCert Global 根 CA 认证的 , 构成了一条信任链 。
    各级 CA 机构的私钥是绝对的私密信息 , 一旦 CA 机构的私钥泄露 , 其公信力就会一败涂地 。
    之前就有过几次 CA 机构私钥泄露 , 引发信任危机 , 各大系统和浏览器只能纷纷吊销内置的对应 CA 的根证书 。
    有些老旧的网站会要求使用前下载安装他自己的根证书 , 这就是这个网站使用的证书并不能在系统内置的 CA 机构和根证书之间形成一条信任链 , 需要自己安装根证书来构成信任链 , 这里的风险就要使用者自己承担了 。
    ■面试官求你了,别再问我HTTPS
    本文插图

    证书明细
    总结
    HTTPS 的出发点是解决 HTTP 明文传输时信息被篡改和监听的问题:
    • 为了兼顾性能和安全性 , 使用了非对称加密+对称加密的方案 。
    • 为了保证公钥传输中不被篡改 , 又使用了非对称加密的数字签名功能 , 借助 CA 机构和系统根证书的机制保证了 HTTPS 证书的公信力 。
    作者:怪怪
    编辑:陶家龙
    出处:转载自微信公众号接水怪(ID:master0931)


    推荐阅读