Quais CAs raiz confiáveis ​​estão incluídas no Android por padrão?

21

Não parece haver um recurso central do Android que lista as CAs raiz confiáveis ​​incluídas no sistema operacional ou no navegador padrão ( pergunta relacionada ao SO ); portanto, como posso descobrir quais estão incluídos no meu telefone por padrão?

Com o número de certificados raiz que foram comprometidos e o número de certificados SSL fraudulentos criados nos últimos dois anos, esse é um problema para quem confia no SSL para segurança, caso contrário, você não saberá se deseja remover quaisquer CAs confiáveis .

(não listando a versão do fabricante ou do sistema operacional, pois estou procurando um recurso ou solução genérica que deve ser aplicável a qualquer dispositivo)

GAThrawn
fonte
1
Eu usei este aplicativo (raiz obrigatório) para listar e excluir certificados de raiz individuais: CACertMan ou na Play Store . O projeto guradian também mantém uma versão editada do armazenamento de chave padrão: github.com/guardianproject/cacert
CE4
Ligação Play Store no comentário anterior é errado - Aqui é o caminho certo Play Store
Michael Kohne
1
@ Michael: Obrigado pela dica, parece que eu errei com meu copiar / colar tampão (deixando o comentário, como você e eldarerathis ambos fornecidos o correto)
CE4

Respostas:

17

No ICS ou posterior, você pode verificar isso nas suas configurações . Vá para Settings->Security->Trusted Credentialsver uma lista de todas as suas CAs confiáveis, separadas por terem sido incluídas no sistema ou instaladas pelo usuário.

As versões anteriores do Android mantêm seus certificados /system/etc/securityem um pacote criptografado chamado cacerts.bksque você pode extrair usando o Bouncy Castle e o keytoolprograma. O resumo é primeiro puxar o pacote usando adb(você precisa de um shell raiz) e, em seguida, você pode usar o Bouncy Castle para listar o conteúdo do pacote:

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

Há também pelo menos um aplicativo que você pode tentar se preferir não usar o shell: CACertMan (requer raiz para modificar a lista, mas deve permitir que você visualize a lista sem raiz). Acredito que isso ocorreu devido ao fiasco do DigiNotar, pois não havia maneiras particularmente fáceis para um usuário revogar o certificado na época. Como os certificados são armazenados de maneira diferente no ICS e posteriormente, esse aplicativo funcionará apenas em dispositivos executando o Gingerbread (ou anterior), mas é obsoleto no ICS / JB de qualquer maneira.

eldarerathis
fonte
Sim, veio por causa do DigiNotar. A raiz é necessária apenas para editar CAs fora (por exemplo, CAs do estado chinês), não para visualização, suponho (IIRC).
CE4
@ ce4: Não me lembro se você precisa de root apenas para navegar com CACertMan ou não - vou verificar isso rapidamente. Atualização: acho que você está certo, eu posso listá-los se eu negar o acesso root, simplesmente não consigo salvar uma lista modificada. Eu vou esclarecer isso.
27612 eldarerathis
Existe uma maneira (enraizada) de editar / adicionar certificados do shell? O método Settings reivindica sucesso no meu tablet, mas os certificados não estão realmente instalados.
Michael