Какие доверенные корневые центры сертификации включены в Android по умолчанию?

21

Кажется, что нет центрального ресурса Android, в котором перечислены доверенные корневые центры сертификации, включенные в ОС или браузер по умолчанию ( связанный вопрос по SO ), так как я могу узнать, какие из них включены в мой телефон по умолчанию?

Учитывая количество скомпрометированных корневых сертификатов и количество мошеннических сертификатов SSL, созданных за последние пару лет, это проблема для всех, кто полагается на SSL для безопасности, иначе вы не узнаете, хотите ли вы удалить любые доверенные центры сертификации .

(без указания моего производителя или версии ОС, поскольку я ищу общий ресурс или решение, которое должно быть применимо к любому устройству)

GAThrawn
источник
1
Я использовал это приложение (требуется root) для просмотра и удаления отдельных корневых сертификатов: CACertMan или в Play Store . Проект guradian также поддерживает отредактированную версию стандартного хранилища ключей: github.com/guardianproject/cacert
ce4
Ссылка Play Store в предыдущем комментарии неверна - вот правильный Play Store
Michael Kohne
1
@Michael: Спасибо за подсказку, похоже, я испортил свой буфер копирования / вставки (оставив комментарий, поскольку вы и eldarerathis оба предоставили правильный)
ce4

Ответы:

17

На ICS или позже вы можете проверить это в своих настройках . Перейдите Settings->Security->Trusted Credentialsк списку всех доверенных ЦС, разделенных по тому, были ли они включены в систему или установлены пользователем.

Более ранние версии Android хранят свои сертификаты /system/etc/securityв зашифрованном пакете, cacerts.bksкоторый можно извлечь с помощью Bouncy Castle и keytoolпрограммы. Суть в том, чтобы сначала извлечь пакет, используя adb(вам нужна корневая оболочка), а затем вы можете использовать Bouncy Castle, чтобы просмотреть содержимое пакета:

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

Есть также, по крайней мере, одно приложение, которое вы можете попробовать, если вы предпочитаете не использовать оболочку: CACertMan (требуется root для изменения списка, но оно должно позволять вам просматривать список без root). Я полагаю, что это произошло из-за фиаско DigiNotar, так как в то время у пользователя не было особенно простых способов отозвать сертификат. Поскольку сертификаты хранятся по-разному в ICS и позже, это приложение будет работать только на устройствах с Gingerbread (или более ранними версиями), но оно все равно устарело на ICS / JB.

eldarerathis
источник
Да, это произошло из-за DigiNotar. Root требуется только для редактирования CA (например, CA в китайских штатах), а не для просмотра, я полагаю (IIRC).
ce4
@ ce4: Я не помню, нужен ли вам root только для просмотра с CACertMan или нет - я проверю это очень быстро. Обновление: Думайте, что вы правы, я могу перечислить их, если откажу в праве root, я просто не могу сохранить измененный список. Я уточню это.
eldarerathis
Есть ли (укоренившийся) способ редактирования / добавления сертификатов из оболочки? Метод «Настройки» требует успеха на моем планшете, но сертификаты на самом деле не установлены.
Майкл