
~からこのブログ。
中間CAはルートCAによって署名された証明書であり、すべてのWebサイトのすべての証明書に署名できます。
ルートCAほど強力ですが、システム信頼の完全なリストはありません。なぜなら、ルートCAは勝手に新しいCAを作成でき、システムは一目でそれを信頼するからです。何千人もの人々がCTにログインしました。
今月は、2015年9月に作成されたと思われる興味深い問題が現れました。 Symantecが署名した「Blue Coat Public Services Intermediate CA」です。 (現在まで、このCAによって署名された証明書はCT LogまたはCensysに達していません。)
私は、これがOS Xで信頼されている中間CAを明示的に不信にする方法を記録する良い機会になると思いました。ルートCAが新しい中間CAを同じ組織に引き渡すのを防ぐことはできませんが、ないよりも優れています。
Ubuntuでブログの手順を試したときにこの証明書をダウンロードしました。https://crt.sh/?id=19538258。 .crtを開くと、Gnomeキーリングにインポートされますが、インポート後に証明書を「信頼しない」方法が見つかりません。
答え1
つまり、Linuxには証明書を処理するためのいくつかのライブラリがあります。
MozillaのNSSを使用している場合は、次のように証明書を積極的に不信にすることができます。証明書ツールオプション-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>
。 (certutilは、例えばUbuntuのlibnss3-toolsパッケージにあります)~/.mozilla/firefox/<???>.profile
<???>
詳細は次のとおりです。
-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を削除する以外に何もできません。信頼アンカーストア(インターネットの半分を信頼しないため、シマンテックルートCAであることを考慮すると愚かです)とNSSに依存するアプリケーションは、Blue Coatのすべてのチェーンを含むアプリケーションを信頼しないように、より細かく設定できます。証明書
たとえば、OpenVPNはOpenSSLを証明書ストアとして使用するため、OpenVPNを使用する商用VPNプロバイダに接続すると、Big Brotherはユーザーの知らないうちにOpenVPNトラフィックを受信できます。これが本当に心配な場合は、商用VPNプロバイダのルートCAが誰であるかを確認してください。 Symantec/VeriSignなら、他人のためにこれを捨てる時が来たのでしょうか?
SSHはX509証明書を使用していないため、Blue Coat MITM攻撃を心配することなくSSHを使用して接続およびトンネリングできます。
答え2
まだコメントできないので、Ubuntu Gnome 15.10で@garethTheRedのメソッドを使用すると、次のような結果が得られます。
~$ certutil -d ~/.mozilla/firefox/<directory>.default -M -t p -n "Blue Coat Public Services Intermediate CA"
certutil: could not find certificate named "Blue Coat Public Services Intermediate CA": SEC_ERROR_BAD_DATABASE: security library: bad database.
~$ certutil -d sql:.pki/nssdb/ -M -t p -n "Blue Coat Public Services Intermediate CA"
certutil: could not find certificate named "Blue Coat Public Services Intermediate CA": SEC_ERROR_UNRECOGNIZED_OID: Unrecognized Object Identifier.
「Bluecoat Systems」も動作しません。
(これは私がインポートした証明書です。https://crt.sh/?id=19538258)