不信任 Linux 中的中間 CA?
從這個部落格。
中間 CA 是由根 CA 簽名的證書,可以為任何網站簽署任意證書。
它們與根 CA 一樣強大,但沒有您的系統信任的完整列表,因為根 CA 可以隨意創建新的 CA,而您的系統一見鍾情就會信任它們。有數千人登錄 CT。
本月出現了一個有趣的問題,顯然是在 2015 年 9 月生成的:“Blue Coat Public Services Intermediate CA”,由賽門鐵克簽署。(到目前為止,該 CA 簽署的證書還沒有到達 CT 日誌或 Censys。)
我認為這是寫下如何明確不信任在 OS X 中受信任的中間 CA 的好時機。它不會阻止根 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"
對於 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 根 CA,因為您最終會不信任一半的 Internet,這將是愚蠢的),而依賴 NSS 的應用程序可以配置得更細化,以不信任其中包含 Blue Coat 證書的任何鏈.
例如,我相信 OpenVPN 使用 OpenSSL 作為其證書庫,因此如果您連接到使用 OpenVPN 的商業 VPN 提供商,老大哥可能會在您不知情的情況下監聽您的 OpenVPN 流量。如果您真的對此感到擔憂,那麼請檢查您的商業 VPN 提供商的根 CA 是誰——如果是賽門鐵克/威瑞信,那麼也許是時候為其他人拋棄它們了?
請注意,SSH 不使用 X509 證書,因此您可以使用 SSH 連接和隧道,而不必擔心 Blue Coat MITM 攻擊。