Quali CA radice attendibili sono incluse in Android per impostazione predefinita?


21

Non sembra esserci una risorsa Android centrale che elenca le CA radice attendibili incluse nel sistema operativo o nel browser predefinito ( domanda correlata su SO ), quindi come posso scoprire quali sono inclusi sul mio telefono per impostazione predefinita?

Con il numero di certificati root che sono stati compromessi e il numero di certificati SSL fraudolenti creati negli ultimi due anni, questo è un problema per chiunque si affidi a SSL per sicurezza, poiché altrimenti non saprai se vuoi rimuovere eventuali autorità di certificazione attendibili .

(non elencando la versione del mio produttore o del sistema operativo in quanto sto cercando una risorsa o una soluzione generica che dovrebbe essere applicabile a qualsiasi dispositivo)


1
Ho usato questa app (root richiesto) per elencare ed eliminare i singoli certificati root: CACertMan o su Play Store . Il progetto guradian mantiene anche una versione modificata del keystore standard: github.com/guardianproject/cacert
ce4

Il link Play Store nel commento precedente è errato - Ecco quello giusto Play Store
Michael Kohne

1
@Michael: Grazie per il suggerimento, sembra che abbia incasinato il mio buffer di copia / incolla (lasciando il commento, dato che tu ed eldarerathis avete fornito quello corretto)
ce4

Risposte:


17

Su ICS o versioni successive puoi verificarlo nelle tue impostazioni . Vai a Settings->Security->Trusted Credentialsper visualizzare un elenco di tutte le tue CA affidabili, separate dal fatto che siano state incluse nel sistema o installate dall'utente.

Le versioni precedenti di Android mantengono i loro certificati /system/etc/securityin un pacchetto crittografato chiamato cacerts.bksche è possibile estrarre utilizzando Bouncy Castle e il keytoolprogramma. Il riepilogo è innanzitutto estrarre il bundle utilizzando adb(è necessaria una shell di root), quindi è possibile utilizzare Bouncy Castle per elencare il contenuto del bundle:

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

C'è anche almeno un'app che puoi provare se preferisci non usare la shell: CACertMan (richiede root per modificare l'elenco, ma dovrebbe permetterti di visualizzare l'elenco senza root). Credo che ciò sia dovuto al fiasco di DigiNotar poiché non c'erano modi particolarmente facili per un utente di revocare il certificato in quel momento. Poiché i certificati sono archiviati in modo diverso su ICS e successivamente questa app funzionerà solo su dispositivi che eseguono Gingerbread (o precedenti), ma è comunque obsoleta su ICS / JB.


Sì, è arrivato grazie a DigiNotar. Il root è necessario solo per la modifica delle CA (ad es. CA statali cinesi), non per la visualizzazione suppongo (IIRC).
Ce4,

@ ce4: non ricordo se hai bisogno di root solo per navigare con CACertMan o no - lo controllerò molto velocemente. Aggiornamento: Penso che tu abbia ragione, posso elencarli se gli nego l'accesso come root, non riesco proprio a salvare un elenco modificato. Lo chiarirò.
eldarerathis,

Esiste un modo (radicato) per modificare / aggiungere certificati dalla shell? Il metodo Settings richiede successo sul mio tablet, ma i certificati non sono effettivamente installati.
Michael,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.