物事を難しくするために、Linuxには証明書を操作するための複数のライブラリがあります。
MozillaのNSSを使用している場合は、certutilの-t trustargs
オプションを使用して、証明書を積極的に信頼できません(その用語)。
$ certutil -d <path to directory containing database> -M -t p -n "Blue Coat Public Services Intermediate CA"
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"
ただし、すべてのアプリケーションがNSSを使用するわけではないため、これは完全なソリューションではありません。たとえば、OpenSSLライブラリを使用してこれを行うことは不可能だと思います。
結果として、OpenSSLを使用して証明書チェーンビルディング(TLS、IPSecなど)を提供するアプリケーションは、Blue Coat証明書を使用してチェーンを信頼し、署名元のルートCAを削除する以外にできることはありません。トラストアンカーストア(インターネットの半分を信頼しなくなるため、Symantec Root CAであると考えるのはばかげています) 。
たとえば、OpenVPNは証明書のライブラリとしてOpenSSLを使用するため、OpenVPNを使用する商用VPNプロバイダーに接続している場合、兄貴は知らないうちにOpenVPNトラフィックを聞いている可能性があります。本当に心配な場合は、商用VPNプロバイダーのルートCAを確認してください。Symantec/ Verisignの場合は、誰か他の人のためにそれらを捨てるべき時でしょうか?
SSHはX509証明書を使用しないため、Blue Coat MITM攻撃を心配することなく、SSHを使用して接続およびトンネリングできることに注意してください。