Запретить Чарльзу отслеживать запросы моего приложения без закрепления SSL в iOS

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

Могу ли я как-нибудь помешать Чарльзу перехватывать весь трафик для моего рабочего приложения без закрепления SSL?

Пожалуйста, помогите мне.

Заранее спасибо!

Привет @Судха Тивари, ты нашел что-нибудь подобное?

Bhavesh Lathigara 27.06.2024 11:24

@BhaveshLathigara нет. :(

Sudha Tiwari 27.06.2024 19:06

хорошо спасибо. @Судха Тивари

Bhavesh Lathigara 28.06.2024 13:28
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
3
103
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Нет, сделать это невозможно, и на самом деле даже закрепление SSL не может этого гарантировать.

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

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

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

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

Если вы используете на сервере надлежащие механизмы безопасности, не должно возникнуть проблем, если пользователи смогут видеть трафик со своих собственных устройств. Это та же модель, с которой всегда работали веб-страницы: они запускаются в браузере (ненадежная среда, где пользователь может видеть все), но отправляют трафик на сервер, который аутентифицирует запросы.

но «закрепление SSL» действительно усложняет захват трафика с помощью Charles

Wayne Mao 18.07.2024 07:38

Я имею в виду, что это может немного усложнить задачу, но, возможно, на 10 минут усилий (если вы не знаете, что делаете) или на 10 секунд (если вы знаете, и у вас уже есть готовая установка). Кроме того, ваши пользователи должны иметь возможность видеть свой собственный трафик! Это трафик, происходящий на устройствах, которыми они владеют и которые контролируют! Они отвечают за свои телефоны, а не вы. В любом случае, определенно не существует мира, в котором вы действительно могли бы предположить, что они не могут этого сделать, и поскольку вам в любом случае придется защищать свою систему от этого, вы можете также пропустить добавление бессмысленных средств защиты от закрепления сертификатов, которые не будут работать.

Tim Perry 19.07.2024 14:58

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

Wayne Mao 26.07.2024 05:26

@WayneMao Доступно множество руководств с готовыми сценариями, я написал одно здесь: httptoolkit.com/blog/frida-certificate-pinning

Tim Perry 27.07.2024 14:09

Другие вопросы по теме