Comment supprimer de nombreuses racines système du trousseau système Apple?

14

L'application de porte-clés Apple ne vous permettra pas de supprimer les racines du système, elle vous permettra uniquement de les désactiver. Il vous permettra uniquement de les désactiver un par un. Pour chacun, vous devez passer par 3 panneaux d'interface utilisateur et saisir votre mot de passe. Existe-t-il un moyen d'automatiser cela ou de tout faire en même temps? Je n'aime pas la sélection actuelle de racines système d'Apple.

vy32
la source
Je ne peux pas vous donner de réponse / solution, mais je peux vous suggérer de repenser cela. Qu'espérez-vous accomplir / Quel est votre objectif? Quels sont les avantages de faire cela? Quels sont les inconvénients de faire cela? S'il s'agit simplement de vouloir nettoyer le trousseau, je l'oublierais. La modification de TOUT ce qui concerne le «système» peut entraîner des problèmes et n'est généralement pas recommandée. C'est une de ces situations "si ce n'est pas cassé, ne le répare pas".
modelamac
5
Mon objectif est de supprimer les racines de confiance des organisations auxquelles je ne fais pas confiance. Je ne fais pas confiance au gouvernement chinois. Je ne fais pas confiance aux certificats compromis des Pays-Bas. Je ne fais pas confiance aux certificats de tout un tas d'autres organisations. Je n'en veux pas. Pourquoi devrais-je faire confiance à toutes ces organisations? Je ne.
vy32
3
Je cherche à trouver / développer une bonne liste de certificats à ne pas faire confiance, et leurs hachages, ce qui serait pratique pour les méfier. Il me semble que c'est une bonne idée de se méfier de ceux que l'on ne voit pas régulièrement en dehors des niches spécialisées. Netcraft a peut-être une liste des autorités de certification largement utilisées développées via leur enquête pour déterminer celles qui sont largement utilisées. Je parie qu'avec environ une douzaine de CA, j'aurais couvert les 500 meilleurs sites et tous les sites que je visite régulièrement. vy32, je suis curieux de savoir si vous avez votre liste de certificats auxquels vous avez décidé de ne pas faire confiance, et pourquoi vous les avez sélectionnés. Pouvez vous partager? Aussi,
MrE
Comment savoir quel certificat appartient à quelle application?
Ruskes
Les certificats n'appartiennent pas aux applications. Ils appartiennent au système.
vy32

Réponses:

13

Sauvegardez le trousseau avant d'essayer quoi que ce soit.

Liste des certificats racine:

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

Recherchez simplement dans un vidage les noms ou les valeurs de hachage SHA-1 des certificats dont vous souhaitez vous débarrasser et notez-les.

Vous pouvez maintenant supprimer ces certificats racine à l'aide de la security delete-certificatecommande.

Utilisation: delete-certificate [-c name] [-Z hash] [-t] [keychain ...]

-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

chaîne trouvée dans son nom commun ou par son hachage SHA-1. Si aucun trousseau n'est spécifié pour la recherche, la liste de recherche par défaut est utilisée.

Par exemple, vous pouvez supprimer des certificats racine chinois en utilisant cette commande:

sudo security delete-certificate -Z 8BAF4C9B1DF02A92F7DA128EB91BACF498604B6F /System/Library/Keychains/SystemRootCertificates.keychain
Alex Bolotov
la source
3
Lorsque la liste des certificats racine est sauvegardée sous quel attribut puis-je trouver la valeur de hachage SHA-1?
BrightIntelDusk
1
@BrightIntelDusk, vous pouvez utiliser la commande suivante:sudo security find-certificate -a -c startcom -Z /System/Library/Keychains/SystemRootCertificates.keychain
lifeofguenter
1

Merci! A fonctionné pour moi avec l'option -c. Recherchez le nom du certificat racine dans Keychain.app, puis sudo security delete -c "CERTNAME" /System/Library/Keychains/SystemRootCertificates.keychain si vous gardez Keychain.app ouvert avec ce certificat en vue, vous remarquez qu'il supprime immédiatement lors de l'exécution de la commande dans le terminal.

Bolle
la source
0

La méfiance à l'égard d'une racine avec suppression de certificat par hachage est rompue: sudo security delete- certificate -Z 8250BED5A214433A66377CBC10EF83F669DA3A67 / System/Library/Keychains/SystemRootCertificates.keychaincela échoue toujours avec: «sécurité: SecKeychainItemDelete: UNIX [Opération non autorisée]» même si ce certificat référencé est présent.

Voici une solution de contournement d'une conférence à DEFCON24.

Au lieu de cela, enregistrez le certificat racine en tant que fichier cer et utilisez: security add-trusted-cert -d -r deny -k "/Library/Keychains/System.keychain" certname.cer

cl0kd
la source
0
  1. Ouvrez l'application Keychain Access (/ Applications / Utilitaires / Keychain Access.app)
  2. Sélectionner les racines système dans les trousseaux
  3. Sélectionnez les certificats dans la catégorie
  4. Rechercher le nom du certificat expiré
  5. Faites un clic droit sur le certificat puis sélectionnez "Supprimer"
  6. Entrez le mot de passe administrateur système
P Anandhakumar
la source
Cela ne fonctionne plus depuis el capitan en raison de la protection de l'intégrité du système. Cependant, vous pouvez choisir de ne pas faire confiance.
Antzi