Как избежать «закрепления» сертификата Okhttp с помощью приложения SSL trust killer? - PullRequest
0 голосов
/ 11 сентября 2018

Я использую закрепление сертификата okhttp3 для безопасности.Но команда VAPT способна обойти пиннинг и перехватить связь.Они используют Android ssl Trust Killer Apk.

Код для создания объекта пиннер:

public CertificatePinner provideCertificatePinner() {

        final CertificatePinner.Builder builder = new CertificatePinner.Builder();

        builder.add(DOMAIN_PATTERN, "sha1/***********");

        builder.add(DOMAIN_PATTERN, "sha256/**********");

        builder.add(DOMAIN_PATTERN, "sha256/*******");

        builder.add(DOMAIN_PATTERN, "sha256/*****

        return builder.build();

    }

Присоединение пиннер к HTTP-клиенту:

OkHttpClient getOkHttpClient(HttpLoggingInterceptor interceptor, CommonRequestInterceptor authenticationInterceptor

            , CertificatePinner certificatePinner) {

        OkHttpClient okHttpClient = null;

        try {

            OkHttpClient.Builder okHttpClientBuilder = new OkHttpClient.Builder().readTimeout

                    (Constants.NetworkConstants.READ_TIMEOUT, TimeUnit.SECONDS).connectTimeout

                    (Constants.NetworkConstants.CONNECTION_TIMEOUT, TimeUnit.SECONDS);

            okHttpClientBuilder.sslSocketFactory((SSLSocketFactory) SSLSocketFactory.getDefault());

            okHttpClientBuilder.addInterceptor(authenticationInterceptor);

            okHttpClientBuilder.addInterceptor(interceptor);

            okHttpClientBuilder.certificatePinner(certificatePinner);

            okHttpClient = enableTls12OnPreLollipop(okHttpClientBuilder).build();



        } catch (Exception e) {

            e.printStackTrace();

        }

        return okHttpClient;

    }

1 Ответ

0 голосов
/ 12 сентября 2018

Вы можете посмотреть эту серию блогов о вымышленном приложении, чтобы увидеть все шаги безопасности, которые вы можете предпринять для защиты своего приложения, как их можно обойти, и в конце вы сможете увидеть, как -end может защитить от общения с скомпрометированным приложением.

Короче говоря, нельзя избежать обхода закрепления сертификата, но серверная часть вашего приложения может защитить от него.

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

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

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

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