在最近两篇 Slashdot 文章之后(#1 #2) 关于安装在机器上的可疑根证书,我决定仔细查看一下我的机器上安装的内容。
(我在 Win7 上使用当前版本的 Chrome,据我所知,它使用了 Windows 的 CA 列表)
我的发现确实让我很惊讶。
- 两台相对干净的机器拥有截然不同的 CA 列表。
- 每个机构都有许多 CA 在 1999 年和 2004 年到期!
- 许多 CA 的身份并不容易了解。
我还看到许多证书在 2037 年到期,即 UNIX 更新前不久,大概是为了避免目前未知的 Y2K38 类型的错误。但其他证书的有效期更长。
我搜索了一番,但有些令人惊讶的是,我并没有找到一个被普遍接受的 CA 的规范列表。
- 如果我的机器上有 MITM 恶意证书,我怎么知道?
- 是否存在“已接受”证书的列表?
- 我可以安全地删除过期的 CA 吗?
- 我可以知道我是否/何时有曾经使用 CA 来实现 HTTPS?
答案1
如果我的机器上有 MITM 恶意证书,我怎么知道?
您通常不会。事实上,系统管理员经常以这种方式监视员工的 HTTPS 会话:他们悄悄地将受信任的证书推送到所有桌面,并且该受信任的证书允许中间代理在不提醒最终用户的情况下对内容进行 MITM 扫描。(查找“为 https 代理组策略推送 CA” - 我的声誉很差,链接用完了!)
是否存在“已接受”证书的列表?
有一些证书,通常是操作系统默认安装的证书列表。但是,某些浏览器也有硬编码的 CA 列表(例如,http://mxr.mozilla.org/mozilla-central/source/security/certverifier/ExtendedValidation.cpp)支持扩展验证(“绿色条”),但 EV 列表也有所不同(例如,http://www.digicert.com/ssl-support/code-to-enable-green-bar.htm)
我可以安全地删除过期的 CA 吗?
一般来说,是的……如果您只是浏览网站。但是,在运行某些签名应用程序时,您可能会遇到其他问题。
我能否知道我是否/何时使用过 HTTPS 的 CA?
嗯...听起来像是一个需要书写的应用程序。;)