Welche vertrauenswürdigen Stammzertifizierungsstellen sind standardmäßig in Android enthalten?

21

Es scheint keine zentrale Android-Ressource zu geben, die die im Betriebssystem oder im Standardbrowser enthaltenen vertrauenswürdigen Stammzertifizierungsstellen auflistet ( verwandte Frage zu SO ). Wie kann ich also herausfinden, welche standardmäßig auf meinem Telefon enthalten sind?

Angesichts der Anzahl der manipulierten Stammzertifikate und der Anzahl betrügerischer SSL-Zertifikate, die in den letzten Jahren erstellt wurden, ist dies ein Problem für alle, die sich aus Sicherheitsgründen auf SSL verlassen, da Sie sonst nicht wissen, ob Sie diese entfernen möchten alle vertrauenswürdigen Zertifizierungsstellen .

(Ich liste meinen Hersteller oder meine Betriebssystemversion nicht auf, da ich nach einer allgemeinen Ressource oder Lösung suche, die auf jedes Gerät anwendbar sein sollte.)

GAThrawn
quelle
1
Ich habe diese App (root erforderlich) verwendet, um einzelne Root-Zertifikate aufzulisten und zu löschen: CACertMan oder im Play Store . Das guradian Projekt unterhält auch eine bearbeitete Version der Standard - Keystor: github.com/guardianproject/cacert
ce4
Play Store Link im vorherigen Kommentar ist falsch - Hier ist der richtige Play Store
Michael Kohne
1
@Michael: Vielen Dank für den Hinweis, anscheinend habe ich meinen Copy / Paste-Puffer durcheinander gebracht (und den Kommentar hinterlassen, da Sie und eldarerathis beide den richtigen bereitgestellt haben)
ce4

Antworten:

17

Auf ICS oder höher können Sie dies in Ihren Einstellungen überprüfen . Gehen Sie zu Settings->Security->Trusted Credentials, um eine Liste aller Ihrer vertrauenswürdigen Zertifizierungsstellen anzuzeigen, getrennt davon, ob sie im System enthalten sind oder vom Benutzer installiert wurden.

Frühere Versionen von Android speichern ihre Zertifikate /system/etc/securityin einem verschlüsselten Paket mit dem Namen, cacerts.bksdas Sie mit Bouncy Castle und dem keytoolProgramm extrahieren können . Die Zusammenfassung besteht darin, das Bundle zuerst mit adb(Sie benötigen eine Root-Shell) abzurufen und dann mit Bouncy Castle den Inhalt des Bundles aufzulisten:

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

Es gibt auch mindestens eine App, die Sie ausprobieren können, wenn Sie die Shell nicht verwenden möchten : CACertMan (erfordert root, um die Liste zu ändern, sollte es Ihnen jedoch ermöglichen, die Liste ohne root anzuzeigen). Ich glaube, dies ist auf das DigiNotar-Fiasko zurückzuführen, da es zu diesem Zeitpunkt für einen Benutzer keine besonders einfachen Möglichkeiten gab, das Zertifikat zu widerrufen. Da die Zertifikate auf ICS und später unterschiedlich gespeichert sind, funktioniert diese App nur auf Geräten, auf denen Gingerbread (oder früher) ausgeführt wird, aber auf ICS / JB ist sie sowieso veraltet.

eldarerathis
quelle
Ja, es kam wegen DigiNotar. Root wird nur für das Herausschneiden von CAs benötigt (z. B. CAs in China), nicht für das Anzeigen (IIRC).
Ce4
@ce4: Ich kann mich nicht erinnern, ob Sie root brauchen, um mit CACertMan zu surfen oder nicht - ich werde das ganz schnell überprüfen. Update: Denken Sie, Sie haben Recht, ich kann sie auflisten, wenn ich den Root-Zugriff verweigere. Ich kann eine geänderte Liste nur nicht speichern. Ich werde das klären.
Eldarerathis
Gibt es eine (verwurzelte) Möglichkeit, Zertifikate von der Shell aus zu bearbeiten / hinzuzufügen? Die Methode "Einstellungen" behauptet, auf meinem Tablet erfolgreich zu sein, die Zertifikate sind jedoch nicht installiert.
Michael