Android и дополнительная проверка сертификатов - PullRequest
1 голос
/ 17 ноября 2011

Я хочу выполнить дополнительную проверку для соединений SSL, которые я делаю в приложении для Android.В основном мне нужно иметь возможность:

  • Проверить, имеет ли сертификат удаленного хоста, к которому я подключен, статус расширенной проверки (EV)
  • Найти корневой центр сертификации длясертификат удаленного конца.Например, я хочу знать, является ли это сертификатом VeriSign или нет.

Для более подробной информации я пишу клиента, которому требуется высокий уровень безопасности, и наша организация использует сертификаты EV от VeriSign.на всех серверах.Я хочу предотвратить возможность взлома приложения любым скомпрометированным центром сертификации или тем, кто может обмануть центр сертификации, чтобы подделать сертификат для нашего домена.

Это выполнимо, и если да, то как?Есть ли способ получить дополнительную информацию о сертификате удаленного конца от объекта URLConnection или HTTPClient и т. Д.?

1 Ответ

0 голосов
/ 17 ноября 2011

Во-первых: вы не можете «помешать любому скомпрометированному центру сертификации» выдать сертификат для вашего домена.Если это скомпрометировано, они могут выдавать все, что хотят.Что вы можете сделать, это создать хранилище доверенных сертификатов с ограниченным числом доверенных сертификатов CA, скажем, только VeriSign.Таким образом, даже если связанный ЦС скомпрометирован и выдаст сертификат для вашего домена, это не будет иметь значения, поскольку вы в первую очередь не доверяете ему.Это также позаботится о второй пули.Для проведения дополнительных проверок вам необходимо внедрить и установить собственный X509TrustManager .Подробнее см. Справочное руководство JSSE .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...