rap*_*ael 18 linux ssl openssl certificates nss
从这个博客。
中间 CA 是由根 CA 签署的证书,可以为任何网站签署任意证书。
它们与根 CA 一样强大,但是没有您系统信任的完整列表,因为根 CA 可以随意创建新的,并且您的系统一开始就会信任它们。有数千人登录 CT。
本月出现了一个有趣的消息,显然是 2015 年 9 月生成的:“Blue Coat Public Services Intermediate CA”,由赛门铁克签署。(到目前为止,该 CA 签署的证书还没有到达 CT 日志或 Censys。)
我认为这是一个很好的机会,可以写出如何明确地不信任 OS X 中本来可以信任的中间 CA。它不会阻止根 CA 将新的中间件交给同一个组织,但总比没有好。
当我在 Ubuntu 中尝试博客中的步骤时,我下载了这个证书https://crt.sh/?id=19538258。当我打开 .crt 时,它会导入到 Gnome 密钥环中,但是在导入后我找不到“不信任”证书的方法。
只是为了让事情变得困难,Linux 有不止一个用于处理证书的库。
如果您使用的是 Mozilla 的 NSS,您可以使用certutil的-t trustargs选项主动不信任(他们的术语)证书:
$ certutil -d <path to directory containing database> -M -t p -n "Blue Coat Public Services Intermediate CA"
Run Code Online (Sandbox Code Playgroud)
对于Firefox,<path to directory containing database>通常~/.mozilla/firefox/<???>.profile那里<???>是一些随机寻找的字符。(certutil 例如在 ubuntu 的 libnss3-tools 包中)
分解如下:
-M 修改数据库
-t p 将信任设置为禁止
-n 对指定的证书进行操作
即使在 NSS 中,也不是所有的应用程序都共享同一个数据库。所以你可能需要重复这个过程。例如,做同样的Chrome浏览器,改-d <path>到-d sql:.pki/nssdb/。
$ certutil -d sql:.pki/nssdb/ -M -t p -n "Blue Coat Public Services Intermediate CA"
Run Code Online (Sandbox Code Playgroud)
但是,并非所有应用程序都使用 NSS,因此这不是一个完整的解决方案。例如,我不相信使用 OpenSSL 库可以做到这一点。
因此,任何使用 OpenSSL 提供其证书链构建(TLS、IPSec 等)的应用程序都将信任具有 Blue Coat 证书的链,并且除了删除为其签名的根 CA 之外,您无能为力。您的信任锚存储(考虑到它是赛门铁克根 CA,因为您最终会不信任一半的互联网,这将是愚蠢的),而依赖 NSS 的应用程序可以配置得更细化,以不信任其中包含 Blue Coat 证书的任何链.
例如,我相信 OpenVPN 使用 OpenSSL 作为它的证书库,因此如果您连接到使用 OpenVPN 的商业 VPN 提供商,老大哥可能会在您不知情的情况下监听您的 OpenVPN 流量。如果您真的很担心,那么请检查您的商业 VPN 提供商的根 CA 是谁——如果是赛门铁克/威瑞信,那么也许是时候将它们交给其他人了?
请注意,SSH 不使用 X509 证书,因此您可以使用 SSH 进行连接和隧道连接,而无需担心 Blue Coat MITM 攻击。
| 归档时间: |
|
| 查看次数: |
2264 次 |
| 最近记录: |