Закрепление сертификата в OkHttp против конфигурации сетевой безопасности Android

#android #okhttp

#Android #okhttp

Вопрос:

Я пробую закрепление сертификата в своем приложении и вижу, что могу сделать это с помощью OkHttp напрямую или через конфигурацию сетевой безопасности Android.

Я могу думать о двух практических различиях:

  1. Метод OkHttp поддерживается ниже Android 7
  2. Метод конфигурации сетевой безопасности Android применяется, даже если не используется OkHttp

Есть ли другие?

Ответ №1:

С поддержкой конфигурации сетевой безопасности Android «можно установить время истечения срока действия для PIN-кодов, после которого закрепление не выполняется». Но, в конечном счете, поскольку OkHttp — это программный API, вы можете настроить его любым удобным для вас способом.

Но напоминание о том, чтобы обсудить и спланировать с вашей командой безопасности, как вы применяете закрепление, чтобы вы соответствовали политике сертификатов, которой они следуют. Вы не хотите блокировать пользователей, если команде безопасности потребуется повторно выдавать сертификаты, менять поставщиков или переключаться на резервное копирование.

Ответ №2:

Программный подход

Метод OkHttp поддерживается ниже Android 7

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

Если вам действительно нужно поддерживать закрепление сертификата ниже Android API 24, я бы рекомендовал вам использовать TrustKit:

TrustKit Android — это библиотека с открытым исходным кодом, которая упрощает развертывание закрепления и отчетности по открытым ключам SSL в любом приложении для Android.

Подход к настройке

Метод конфигурации сетевой безопасности Android применяется, даже если не используется OkHttp

Это одно из его главных преимуществ наряду с тем фактом, что он не подвержен программным ошибкам, только ошибкам конфигурации, например, неправильному извлечению PIN-кода открытого ключа для закрепляемого домена и / или наличию в нем опечаток.

К счастью, теперь у нас есть бесплатный онлайн-инструмент, который поможет нам предотвратить подобные ошибки. Генератор закрепления мобильного сертификата предоставит нам готовый к использованию network_security_config.xml файл для доменов, которые мы хотим закрепить в нашем мобильном приложении.

Например:

Вкладка конфигурации

Файл конфигурации сетевой безопасности

Теперь вам просто нужно скопировать и вставить файл в свой проект и инструмент, даже в виде пошагового руководства, чтобы показать нам, как это сделать правильно.

Вы также можете использовать инструмент, чтобы получить PIN-коды для использования в TrustKit 🙂