¿Cómo elimino muchas raíces del sistema de Apple System Keychain?

14

La aplicación de llavero de Apple no le permitirá eliminar las raíces del sistema, solo le permitirá desactivarlas. Solo le permitirá deshabilitarlos uno a la vez. Para cada uno, debe pasar por 3 paneles de IU y escribir su contraseña. ¿Hay alguna manera de automatizar esto o hacerlo todo a la vez? No me gusta la selección actual de raíces del sistema de Apple.

vy32
fuente
No puedo darte una respuesta / solución, pero puedo sugerirte que vuelvas a pensar esto. ¿Qué esperas lograr / cuál es tu objetivo? ¿Cuáles son las ventajas de hacer esto? ¿Cuáles son las desventajas de hacer esto? Si solo se trata de querer limpiar Keychain, lo olvidaré. La alteración de CUALQUIER COSA relacionada con el "sistema" puede ocasionar problemas, y generalmente no se recomienda. Es una de esas situaciones de "si no está roto, no lo arregles".
modelamac
55
Mi objetivo es eliminar raíces confiables de organizaciones en las que no confío. No confío en el gobierno de China. No confío en los certificados comprometidos de los Países Bajos. No confío en los certificados de muchas otras organizaciones. No los quiero a ellos. ¿Por qué debería confiar en todas esas organizaciones? Yo no.
vy32
3
Estoy buscando encontrar / desarrollar una buena lista de certificados para no confiar, y sus hashes, lo que sería útil para desconfiar de ellos. Me parece una buena idea desconfiar de los que no se ven regularmente fuera de los nichos especializados. Quizás netcraft tiene una lista de AC ampliamente utilizadas desarrolladas a través de su encuesta para determinar cuáles son ampliamente utilizadas. Apuesto a que con alrededor de una docena de AC, tendré los 500 mejores sitios y todos los sitios que visito regularmente cubiertos. vy32, tengo curiosidad por saber si tiene su lista de certificados en los que decidió no confiar y por qué los seleccionó. ¿Puedes compartir? También,
MrE
¿Cómo saber qué certificado pertenece a qué aplicación?
Ruskes
Los certificados no pertenecen a las aplicaciones. Pertenecen al sistema.
vy32

Respuestas:

13

Copia de seguridad del llavero antes de intentar cualquier cosa.

Listado de certificados raíz:

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

Simplemente busque en un basurero los nombres o valores hash SHA-1 de los certificados de los que desea deshacerse y anótelos.

Ahora puede eliminar esos certificados raíz usando el security delete-certificatecomando.

Uso: borrar-certificado [-c nombre] [-Z hash] [-t] [llavero ...]

-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

cadena encontrada en su nombre común, o por su hash SHA-1. Si no se especifican llaveros para buscar, se utiliza la lista de búsqueda predeterminada.

Por ejemplo, puede eliminar los certificados raíz chinos con este comando:

sudo security delete-certificate -Z 8BAF4C9B1DF02A92F7DA128EB91BACF498604B6F /System/Library/Keychains/SystemRootCertificates.keychain
Alex Bolotov
fuente
3
Cuando la lista de certificados raíz se vuelca bajo qué atributo, ¿encuentro el valor hash SHA-1?
BrightIntelDusk
1
@BrightIntelDusk puede usar el siguiente comando:sudo security find-certificate -a -c startcom -Z /System/Library/Keychains/SystemRootCertificates.keychain
lifeofguenter
1

¡Gracias! Me funcionó con la opción -c. Encuentre el nombre del certificado raíz en Keychain.app, luego, sudo security delete -c "CERTNAME" /System/Library/Keychains/SystemRootCertificates.keychain si mantiene abierto Keychain.app con ese certificado a la vista, notará que se elimina inmediatamente al ejecutar el comando en la terminal.

Bolle
fuente
0

La desconfianza de una raíz con delete-certificate por hash está rota: sudo security delete- certificate -Z 8250BED5A214433A66377CBC10EF83F669DA3A67 / System/Library/Keychains/SystemRootCertificates.keychain Esto siempre falla con: "seguridad: SecKeychainItemDelete: UNIX [Operación no permitida]" incluso si este certificado referenciado está presente.

Aquí hay una solución alternativa de una charla en DEFCON24.

En su lugar, guarde el certificado raíz como un archivo cer y use: security add-trusted-cert -d -r deny -k "/Library/Keychains/System.keychain" certname.cer

cl0kd
fuente
0
  1. Abra la aplicación Keychain Access (/ Aplicaciones / Utilidades / Keychain Access.app)
  2. Seleccionar raíces del sistema en llaveros
  3. Seleccionar certificados en la categoría
  4. Busque el nombre del certificado vencido
  5. Haga clic derecho en el certificado y luego seleccione "Eliminar"
  6. Ingrese la contraseña de administrador del sistema
P Anandhakumar
fuente
Esto ya no funciona desde el capitan debido a la protección de integridad del sistema. Sin embargo, puedes elegir no confiar.
Antzi