К списку
Инструменты QASeniorТехническое

Отладка certificate pinning в мобильных приложениях через Charles и mitmproxy

Краткий ответ

Установите на тестовом устройстве доверенный корневой сертификат прокси, подмените сертификаты на прокси-сервере и проверьте корректную обработку ошибок при несовпадении pin. Это помогает выявить проблемы с certificate pinning в приложении.

Развёрнуто

Краткий ответ

Для обхода certificate pinning с помощью Charles или mitmproxy нужно добавить их корневой сертификат в доверенные на мобильном устройстве, настроить проксирование HTTPS-трафика с подменой сертификатов и проверить, что приложение корректно реагирует на подмену, фиксируя ошибки pin.


Как это работает

Certificate pinning — это механизм безопасности, при котором мобильное приложение проверяет, что сертификат сервера совпадает с заранее заданным ("пином"). При этом любые сертификаты, включая выданные прокси, вызывают ошибку.

Для отладки с помощью Charles или mitmproxy необходимо:

  • Установить корневой сертификат прокси на тестовом устройстве, чтобы оно доверяло прокси-серверу.
  • Перехватывать и подменять сертификаты HTTPS-соединений, создавая поддельные, но доверенные сертификаты.
  • Проверять реакции приложения: если pinning реализован правильно, приложение должно выдавать ошибку при несовпадении сертификата.
Этап Действие Цель
Установка сертификата Добавить корневой сертификат прокси Доверие к прокси для перехвата
Перехват трафика Настроить Charles/mitmproxy на проксирование Подмена сертификата
Тестирование Запустить приложение и отследить ошибки Проверка работы certificate pinning

Пример

1. Скачайте корневой сертификат Charles/mitmproxy.
2. Установите его в раздел доверенных на Android/iOS.
3. Запустите прокси и настройте устройство на работу через него.
4. Перехватывайте запросы приложения.
5. Изменяйте сертификаты для проверки реакции приложения.

Что важно знать на собеседовании

  • Certificate pinning предотвращает MITM-атаки, проверяя конкретный сертификат.
  • Для обхода pinning требуется установка доверенного корневого сертификата прокси.
  • При неправильной реализации pinning приложение может пропускать подмену сертификатов.
  • Charles и mitmproxy позволяют анализировать и модифицировать трафик для отладки.
  • На iOS и Android процедура установки сертификата и доверия отличается и может требовать дополнительных действий.

Тема: Инструменты QA | Уровень: senior