Android: предотвращать обнюхивание (например, с помощью CharlesProxy) трафика SSL

Я использую Чарльз, чтобы проверить, какие данные отправляют, бросить мое приложение на HTTPS. Я установил сертификат Charles CA на свой телефон, и из-за этого я могу расшифровать каждый трафик SSL.

Но я нашел приложения, где невозможно увидеть трафик SSL. Как я могу реализовать это поведение в своем приложении? При этом ни один человек в средней атаке не будет возможен.

… Я установил сертификат Charles CA на свой телефон, и из-за этого я могу расшифровать каждый трафик SSL.

Но я нашел приложения, где невозможно увидеть трафик SSL. Как я могу реализовать это поведение в своем приложении? При этом ни один человек в средней атаке не будет возможен.

Это можно сделать с помощью присвоения сертификата / открытого ключа, когда вы не проверяете сертификат серверов на локальные корневые сертификаты, а вместо этого удостоверяетесь, что вы получаете только ожидаемый сертификат. См. OWASP для деталей и образцов кода.

Сертификат Pinning – это то, что вам нужно, но имейте в виду, что это не лишено недостатков и осложнений. Присвоение сертификата добавляет к вашей системе уровень сложности, что означает большую работу в день развертывания и еще одну вещь, которая может пойти не так.

Классическая ошибка, выполняемая с помощью сертификата Pinning, заключается в том, что бэкэнд-команда будет обновлять / изменять / настраивать сертификат сервера при выпуске обновления и забывать, что клиенты используют фиксацию сертификата, что в основном приведет к остановке всей вашей системы.

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