Apple System Keychainから多くのシステムルートを削除するにはどうすればよいですか?


14

Appleキーチェーンアプリケーションでは、システムルートを削除することはできません。無効にすることのみが許可されます。一度に1つだけ無効にすることができます。それぞれについて、3つのUIパネルを通過し、パスワードを入力する必要があります。これを自動化する方法と一度にすべてを行う方法はありますか?Appleの現在のシステムルートの選択は好きではありません。


私はあなたに答え/解決策を与えることはできませんが、私はあなたにこれを再考することを提案できます。何を達成したいですか/あなたの目標は何ですか?これを行うことの利点は何ですか?これを行うことの欠点は何ですか?キーチェーンをクリーンアップしたいだけの場合は、忘れてしまいます。「システム」を扱うものを変更すると問題が発生する可能性があるため、通常はお勧めしません。これは、「壊れていない場合は修正しないでください」という状況の1つです。
modelamac

5
私の目標は、信頼していない組織から信頼されたルートを削除することです。私は中国政府を信用していません。私は、オランダからの侵害された証明書を信用していません。私は他の多くの組織の証明書を信用していません。欲しくありません。なぜこれらすべての組織を信頼する必要があるのですか?しません。
vy32

3
私は、信用できない証明書とそのハッシュの良いリストを見つけて開発したいと思っています。専門的なニッチの外で定期的に見られないものを疑うのは良い考えのように思えます。たぶん、ネットクラフトには、広く使用されているCAを調査するために作成した、広く使用されているCAのリストがあります。約12のCAがあり、上位500のサイトと、定期的にアクセスするすべてのサイトがカバーされていると確信しています。vy32、私はあなたが信頼しないと決めた証明書のリストを持っているかどうか、そしてそれらを選択した理由に興味があります。共有できますか?また、
-MrE

どの証明書がどのアプリケーションに属しているかをどのように確認しますか?
ラスケ

証明書はアプリケーションに属していません。それらはシステムに属します。
vy32

回答:


13

何かを試す前に、キーチェーンをバックアップしてください。

ルート証明書のリスト:

sudo security dump-keychain /System/Library/Keychains/SystemRootCertificates.keychain

ダンプから、削除する証明書の名前またはSHA-1ハッシュ値を探して書き留めてください。

これで、security delete-certificateコマンドを使用してそのルート証明書を削除できます。

使用法:証明書の削除[-c名] [-Zハッシュ] [-t] [キーチェーン...]

-c  Specify certificate to delete by its common name
-Z  Specify certificate to delete by its SHA-1 hash value
-t  Also delete user trust settings for this certificate The certificate to be deleted must be uniquely specified either by a

一般名またはSHA-1ハッシュで見つかった文字列。検索するキーチェーンが指定されていない場合、デフォルトの検索リストが使用されます。

たとえば、次のコマンドを使用して中国語のルート証明書を削除できます。

sudo security delete-certificate -Z 8BAF4C9B1DF02A92F7DA128EB91BACF498604B6F /System/Library/Keychains/SystemRootCertificates.keychain

3
ルート証明書のリストがどの属性の下にダンプされると、SHA-1ハッシュ値が見つかりますか?
BrightIntelDusk

1
@BrightIntelDuskでは、次のコマンドを使用できますsudo security find-certificate -a -c startcom -Z /System/Library/Keychains/SystemRootCertificates.keychain
。– lifeofguenter

1

ありがとうございました!-cオプションを使用して作業しました。Keychain.appでルート証明書の名前を見つけ、sudo security delete -c "CERTNAME" /System/Library/Keychains/SystemRootCertificates.keychain その証明書を表示した状態でKeychain.appを開いたままにしておくと、ターミナルでコマンドを実行するとすぐに削除されます。


0

ハッシュによる削除証明書によるルートの不信は壊れています。sudo security delete- certificate -Z 8250BED5A214433A66377CBC10EF83F669DA3A67 / System/Library/Keychains/SystemRootCertificates.keychainこれは、この参照された証明書が存在する場合でも、常に「security:SecKeychainItemDelete:UNIX [Operation not allowed]」で失敗します。

DEFCON24での講演の回避策を次に示します。

代わりに、ルート証明書をcerファイルとして保存し、次を使用します。 security add-trusted-cert -d -r deny -k "/Library/Keychains/System.keychain" certname.cer


0
  1. キーチェーンアクセスアプリを開きます(/アプリケーション/ユーティリティ/キーチェーンAccess.app)
  2. キーチェーンでシステムルートを選択する
  3. カテゴリ内の証明書を選択
  4. 期限切れの証明書の名前を検索する
  5. 証明書を右クリックして、「削除」を選択します
  6. システム管理者パスワードを入力してください

これは、システムの完全性保護のため、エルキャピタン以来機能しません。ただし、信頼しないことを選択できます。
Antzi
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.