Отладка 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