Como removo muitas raízes do sistema do Apple System Keychain?


14

O aplicativo de chaveiro da Apple não permitirá que você remova as raízes do sistema, mas apenas as desabilite. Isso permitirá que você os desabilite um de cada vez. Para cada um, você precisa passar por três painéis da interface do usuário e digitar sua senha. Existe uma maneira de automatizar isso ou fazer tudo de uma vez? Não gosto da seleção atual da Apple de raízes do sistema.


Não posso lhe dar uma resposta / solução, mas posso sugerir que você repense isso. O que você espera alcançar / Qual é o seu objetivo? Quais são as vantagens de fazer isso? Quais são as desvantagens de fazer isso? Se é apenas uma questão de querer limpar o chaveiro, eu esqueceria. Alterar QUALQUER COISA que lide com "sistema" pode levar a problemas e geralmente não é recomendado. É uma daquelas situações "se não está quebrado, não conserte".
Modelamac 10/09/11

5
Meu objetivo é remover raízes confiáveis ​​de organizações nas quais não confio. Eu não confio no governo da China. Não confio nos países comprometidos da Holanda. Não confio em documentos de várias outras organizações. Eu não os quero. Por que devo confiar em todas essas organizações? Eu não.
vy32

3
Estou procurando encontrar / desenvolver uma boa lista de materiais para não confiar, e seus hashes, o que seria útil para desconfiar deles. Parece-me uma boa idéia desconfiar dos que não são vistos regularmente fora de nichos especializados. Talvez a netcraft tenha uma lista de autoridades de certificação amplamente usadas, desenvolvida por meio de sua pesquisa para determinar quais são amplamente usadas. Aposto que, com cerca de uma dúzia de CAs, eu teria os 500 principais sites e todos os sites que visito regularmente cobertos. vy32, estou curioso para saber se você tem sua lista de assuntos em que decidiu não confiar e por que os selecionou. Você pode compartilhar? Além disso,
MRE

Como você descobre qual certificado pertence a qual aplicativo?
Ruskes

Certificados não pertencem a aplicativos. Eles pertencem ao sistema.
precisa

Respostas:


13

Chaveiro de backup antes de tentar qualquer coisa.

Listando certificados raiz:

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

Basta procurar no dump por nomes ou valores de hash SHA-1 de certificados dos quais você deseja se livrar e anotá-los.

Agora você pode excluir esses certificados raiz usando o security delete-certificatecomando

Uso: 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

sequência encontrada em seu nome comum ou por seu hash SHA-1. Se nenhum chaveiro for especificado para pesquisa, a lista de pesquisa padrão será usada.

Por exemplo, você pode excluir certificados raiz chineses usando este comando:

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

3
Quando a lista de certificados raiz é despejada em qual atributo eu encontro o valor de hash SHA-1?
precisa saber é o seguinte

1
@BrightIntelDusk você pode usar o seguinte comando:sudo security find-certificate -a -c startcom -Z /System/Library/Keychains/SystemRootCertificates.keychain
lifeofguenter

1

Obrigado! Trabalhou para mim com a opção -c. Localize o nome do certificado raiz em Keychain.app e, em seguida, sudo security delete -c "CERTNAME" /System/Library/Keychains/SystemRootCertificates.keychain se você mantiver o Keychain.app aberto com esse certificado, verá que ele é excluído imediatamente ao executar o comando no terminal.


0

A desconfiança de uma raiz com certificado de exclusão por hash é interrompida: sudo security delete- certificate -Z 8250BED5A214433A66377CBC10EF83F669DA3A67 / System/Library/Keychains/SystemRootCertificates.keychainisso sempre falha com: “security: SecKeychainItemDelete: UNIX [Operação não permitida]”, mesmo que este certificado referenciado esteja presente.

Aqui está uma solução alternativa de uma palestra no DEFCON24.

Em vez disso, salve o certificado raiz como um arquivo cer e use: security add-trusted-cert -d -r deny -k "/Library/Keychains/System.keychain" certname.cer


0
  1. Abra o aplicativo Acesso ao Keychain (/ Aplicativos / Utilitários / Keychain Access.app)
  2. Selecione Raízes do sistema em chaveiros
  3. Selecione Certificados na categoria
  4. Procure o nome do certificado expirado
  5. Clique com o botão direito do mouse no certificado e selecione "Excluir"
  6. Digite a senha de administrador do sistema

Isso não funciona mais desde o capitan devido à proteção de integridade do sistema. No entanto, você pode optar por não confiar.
Antzi 28/09
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.