如何确认数据证书所有者跟你要访问的是同一个对象

比如 a 要访问 b,
ab 的公钥,bca 有证书 ca_b.
c 想冒充 b, cca 有证书 ca_c.
ca 机器上的b的公钥换为自己的公钥,然后冒充 b,通信的时候用自己的证书 ca_ca 通信,因为 a 对于 b 的公钥已经被替换,所以通信过程中一切校验都可以通过了。但是 b 已经被 c 冒充了。

我想问的是比如我想访问 github, 验证过程中,我通过他的证书拿到了证书所有者, github_owner,我怎么来确认这个 github_owner 就是 github 呢?

阅读 3.3k
2 个回答

c把a机器上的b的公钥换为自己的公钥

c如何能做到这个?(能做到的话,浏览器应该是有漏洞的……

服务器证书跟域名相关的,要不就证书链不可信,要不就域名不匹配。
如果搞定根证书服务器,或者浏览器信任的根证书,那确实可能出事。。。
大概就是这样,希望没理解错。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏