浏览器会对 CA 签发的证书做真实性的校验吗?

2016-09-20 08:13:32 +08:00
 wuruxu

举个例子:现在 github.com 的 ssl 证书是 DigiCert 签发的,假如某个被浏览器信任的 CA 也签发了一个 github.com 的证书,浏览器会检测到这个异常情况吗?
有什么工具可以检测基于 CA 的 MITM 的行为?

2867 次点击
所在节点    SSL
15 条回复
alect
2016-09-20 08:24:28 +08:00
浏览器只能提示该证书是否可信,不会判断是哪个 CA 签发的证书的……理论上除了已知的一些伪造的 SSL 会被提示出异常情况,其他的不会提示的。。
shiji
2016-09-20 08:27:08 +08:00
hpkp 设置好了发现异常证书会自动上报给你设置的 URL
wuruxu
2016-09-20 08:42:45 +08:00
@shiji 这个方法挺好,看起来好像是在证书里预先设定的
这个 URL 每个用户都可以设置的吗?
v1024
2016-09-20 09:01:08 +08:00
tinybaby365
2016-09-20 09:11:37 +08:00
这是一个正常行为啊,一个域名可以从不同的 CA 购买证书,只要 CA 合法(受信任),证书没有吊销、过期等,都是合法的。

浏览器是识别不了这种中间人攻击的(Firefox 也一样,“被浏览器信任”)。如果在 APP 中是自己写的 https 客户端可以,可以 APP 内置受信任的 CA 、甚至内置证书 public key(或起 hash)来比对。
wuruxu
2016-09-20 09:25:07 +08:00
@v1024 看到这个 ‘简单说来,证书所有者或者 CA 都可以主动向 Certificate Logs 服务器提交证书’
是不是这个证书的透明性是需要 CA 自律的?
假如偷偷签发了,使用了一段时间就不用, Certificate Transparency 会不会发现不了?
v1024
2016-09-20 09:35:17 +08:00
@wuruxu 目前这个只有 Chrome 支持,范围有限,所以都是持有者去提的。目前这个不能 100%解决问题,但是一个方向。
tony1016
2016-09-20 09:38:31 +08:00
有了这个东西, let's encrypt 怎么玩啊
jininij
2016-09-20 10:49:43 +08:00
CA 的在互联网中的身份就像一个公证处。在不可信的互联网中,计算机通过信任数量极少的 CA 来保证它不会陷入怀疑链。也可以说,互联网的安全依赖 CA 的个人诚信。

后来,某国的某 CA ,违背自己的诺言,发了一张假证书。被揭露后,大量计算机不得不取消对此 CA 的信任。
wuruxu
2016-09-20 10:57:48 +08:00
@jininij 怎么才可以更有效的发现一些 CA 的不端行为,这很重要
qgy18
2016-09-20 11:57:02 +08:00
BOYPT
2016-09-20 11:59:20 +08:00
据说 wosign 就签了个 github.com 的证书
lslqtz
2016-09-20 12:00:55 +08:00
@BOYPT 而且还有效
clino
2016-09-20 12:04:55 +08:00
Ubuntuu
2016-09-20 16:10:39 +08:00
wosign 签的 github 的证书 https://crt.sh/?id=29647048

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/307410

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX