¿Qué CA raíz de confianza se incluyen en Android de forma predeterminada?

No parece haber un recurso central de Android que enumere las CA raíz de confianza incluidas en el sistema operativo o en el navegador predeterminado ( pregunta relacionada en SO ), entonces, ¿cómo puedo averiguar cuáles están incluidas en mi teléfono de manera predeterminada?

Con la cantidad de certificados raíz que se han visto comprometidos y la cantidad de certificados SSL fraudulentos creados en los últimos años, este es un problema para cualquiera que confíe en SSL para su seguridad, ya que de lo contrario no sabrá si desea eliminar cualquier CA de confianza .

(no incluyo mi fabricante o la versión de mi sistema operativo, ya que estoy buscando un recurso genérico o una solución que debería ser aplicable a cualquier dispositivo)

He usado esta aplicación (se requiere raíz) para enumerar y eliminar certificados raíz individuales: CACertMan o en Play Store . El proyecto guradian también mantiene una versión editada del almacén de claves estándar: github.com/guardianproject/cacert
El enlace de Play Store en el comentario anterior es incorrecto: aquí está el Play Store correcto
@Michael: Gracias por la pista, parece que me equivoqué con mi búfer de copiar/pegar (dejando el comentario, ya que tú y eldarera proporcionaron el correcto)

Respuestas (1)

En ICS o posterior , puede verificar esto en su configuración . Vaya a Settings->Security->Trusted Credentialspara ver una lista de todas sus CA de confianza, separadas por si se incluyeron con el sistema o si las instaló el usuario.

Las versiones anteriores de Android mantienen sus certificados /system/etc/securityen un paquete encriptado llamado cacerts.bksque puede extraer usando Bouncy Castle y el keytoolprograma. El resumen es primero extraer el paquete usando adb(necesita un shell raíz) y luego puede usar Bouncy Castle para enumerar el contenido del paquete:

shell~$ adb pull /system/etc/security/cacerts.bks`
shell~$ keytool -keystore cacerts.bks -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider -storepass changeit -v -list

También hay al menos una aplicación que puede probar si prefiere no usar el shell: CACertMan (requiere root para modificar la lista, pero debería permitirle ver la lista sin root). Creo que surgió debido al fiasco de DigiNotar, ya que no había formas particularmente fáciles para que un usuario revocara el certificado en ese momento. Dado que los certificados se almacenan de manera diferente en ICS y más adelante, esta aplicación solo funcionará en dispositivos que ejecutan Gingerbread (o anterior), pero de todos modos está obsoleta en ICS/JB.

Sí, vino gracias a DigiNotar. La raíz solo es necesaria para editar CA (por ejemplo, CA estatales chinas), no para ver, supongo (IIRC).
@ce4: no recuerdo si necesita root solo para navegar con CACertMan o no; lo verificaré muy rápido. Actualización: creo que tiene razón, puedo enumerarlos si le niego el acceso a la raíz, simplemente no puedo guardar una lista modificada. Voy a aclarar eso.
¿Existe una forma (enraizada) de editar/agregar certificados desde el shell? El método de Configuración afirma tener éxito en mi tableta, pero los certificados en realidad no están instalados.