В ходе тестирования на проникновение в наше приложение для Android было рекомендовано закрепить IP-адрес сервера вместе с уже закрепленным сертификатом, чтобы добавить уровень защиты от атак посредника. У меня вопрос, как я могу прикрепить IP-адрес сервера в приложении для Android в дополнение к уже закрепленному сертификату.
В настоящее время я использую okhttp
. У меня уже реализовано закрепление сертификата, это делается при создании синглтона okhttpClient
с использованием okhttpClientBuilder
. Код показан ниже. Я хотел бы как-нибудь добавить привязку IP-адреса внутреннего сервера к этому компоновщику.
val client = OkHttpClient.Builder()
.addInterceptor { chain ->
val request = chain.request().newBuilder()
.addHeader(apiKeyHeader, apiKey)
.header("Content-Type", "application/json")
.build()
chain.proceed(request)
}.addInterceptor(loggingInterceptor)
.certificatePinner(CertificatePinUtil.createOkHttpCertPinner())
.build()
Были бы полезны любые рекомендации относительно того, как реализовать закрепление IP-адреса.
В идеале мы могли бы сделать это, используя OkhttpClientBuilder
или настройки безопасности Android. Я не хочу осуществлять какую-либо ручную проверку ответов.