菜鸟提问,关于 https 的中间人攻击问题
CA 颁发的数字证书可以保证不会被中间人攻击。
那么如果我把 CA 服务器也一起劫持了是不是也能进行中间人攻击。
对网络安全不太懂,大佬轻喷
大部分 CA 的信息,是直接内置在 操作系统 / 网络库 中的。
你也可以手动信任其它 CA,来协助这些 CA 对你进行中间人(例如抓包的时候)。
另:
严格来说,OCSP 请求属于 『发向 CA 服务器的请求』,OCSP 请求也确实可以被劫持,此处暂不谈。
CNNIC 的这个行为就是你说的 CA 供应商做中间人。这个用户无法察觉,所以仅这一件事。CNNIC 的 CA 就彻底不被浏览器信任了。
证书的验证过程不是说浏览器拿着证书去服务器问:这个证书我可以信任嘛?
而是操作系统 /浏览器 /网络库,早就内置好了自己信任的 CA 的证书,当需要验证的时候直接在本地进行比对。
这个过程中,是不存在网络请求的,自然也就无从拦截。
再次备注:
为了方便理解,这里暂时不讨论 OCSP 的情况。
它只需要确认,你拿来验证的这个证书,是由内置的可信任证书签发的就行了。
这个验证过程是基于签名机制的,不需要联网。
附加内容:
但这个机制有个缺陷,就是证书一旦签发,就没有撤回的机会了,因为所有的验证过程都可以离线完成。
因此才出现了前面提到的 OCSP,它需要联网查询吊销列表。
劫持它确实是可行的,但是并不能让一个不受信任的证书变成信任,只能让被吊销的正牌证书暂时不被认出。