Comments 8
А что если ssl pining стоит? Есть некоторые приложения с ним и нужно их патчить. Но некоторые приложения настолько закриптованы что это не представляется возможным
Это усложняет задачу, но не решает проблему. Тот же пакет apk это просто архив, который можно перебрать и переподписать. Поэтому клиентское приложение всегда должно рассматриваться как потенциально скомпроментированное.
Я немного про другое. Ssl pining это когда сертификат сервиса находится в самом приложении, и шифрование идёт только этим сертификатом. А этот сертификат может быть закриптован.
Даже если вы в код запихнёте сертификат, само приложение это набор файлов. Есть много способов вытащить оттуда этот сертификат в умелых руках. Но как я уже сказал, это сильно повысит сложность взлома, чего иногда достаточно.
Скажем так, приведённый пример окружения ssl pining вполне может решить. Не решит это план Б исследователя: перепаковку приложения для проведения тщательного исследования.
Есть более интересный способ, когда ответ от сервера имеет какие-то определённые признаки в самом пакете, которые после перепаковки пропадают из ответа или запроса. Эта техника применяется вполне успешно, но требует некоторых навыков. Стандартные инструменты в данном случае бессильны либо требуют знания алгоритма этих случайных данных. Я не писал лично код, который подобную технику защиты от MitM реализует, но разбирался в коде, где видел её реализацию. Это довольно изящное решение, потому что подменить сертификат даже зашифрованный можно в пакете. А вот подменить алгоритм уже требует полной пересборки или нехилых навыков.
Одна из причин, почему надо быть аккуратнее с VPN простым пользователям, — возможность делать с вашим трафиком всё что угодно
Так HTTPS же никуда не делся при этом. При попытке завернуть трафик на свой сервис получим сообщение типа "сертификат подписан неизвестно кем, продолжить на свой страх и риск?".
Так будет, если сертификат самоподписан (при этом криво) и если залезть через браузер, и если сертификат не положили в хранилище доверенных (привет рутованым телефонам, плюс не забываем, что некоторые vpn могут законно потребовать положить сертификат), и если в пакете приложения не разрешено доверять пользовательским сертификатам. И много других если.
Говоря о простых пользователях, вы наблюдали на сколько всего они согласны, лишь бы зайти в любимое приложение с фоточками друзей?
Думаю, готовы на многое.
Просто в данной ситуации основная угроза, по-моему, не из-за ВПН, а из-за доверия левым сертификатам. Так-то и без ВПН можно влететь, подключившись к публичному вайфайю.
некоторые vpn могут законно потребовать положить сертификат
А такие есть? Зачем они это делают?
Исследование https-трафика мобильного приложения