Comments 32
Правильно ли я понимаю, что при таком подходе пользователю необходимо будет вводить логин и пароль от своего банковского приложения в левое приложение? Вряд ли таких пользователей будет много, банки на каждом углу твердят о том, что нельзя вводить учетные данные где попало, к тому же скорее всего придется ещё подтверждать вход через СМС (если не все банки такое требуют то большинство), а в нем ещё раз написано, что не стоит вводить этот код не в официальное приложение
Если мы говорим дальнейшее использование api внутри своего приклада, то это уже выбор пользователя доверять ли такому прикладу. Если бы я выкладывал бы такое приложение, я бы положил клиентскую часть в open source и всю работу с банками совершал на клиенте, отправляя на сервер уже полученные данные.
Данная статья не только про банки, таким же образом можно, например, найти способ автоматически отправлять показания счетчиков в вашу управляющую компанию. Способов применения сотни.
Я не говорю об опасности такого подхода, это просто способ работы. Я говорю о том, что такой подход вряд ли будет сильно популярен у пользователей, да и вообще будет отрицательно сказываться на впечатлении о приложении.
Если бы мне встретилось приложение, которое бы запрашивало мои учетные данные от банка, то я бы вряд ли их ввел. Даже если бы мне автор дал ссылку на репозиторий, т.к. во-первых я не могу быть уверен, что приложение собрано именно из этих исходников (можно конечно самому собрать), а во-вторых разбираться в этих исходниках мало удовольствия и много времени
приложение собирается для разработчика и только для него с целью дебага апи.
Сертификат то нужен не только для дебага, а и для использования. Север не даст использовать API без сертификата
У меня есть опыт написания финансового приложения, в котором болшое внимание уделялось безопасности. И в нем для подтверждения оригинальности приложения использовался свой сертификат, но просто так его нельзя было бы так просто использовать в другом приложении, т.к. он был запаролен, а пароль был зашифрован и расшифровывался в приложении во время работы (да, его можно было вытащить, но это было бы не просто).
Любой сертификат использовать не получится, т.к. сертификат приложения используется для подписи запросов и только этой подписи доверяет сервер. Вытащить логику можно (можно даже в дебаге отследить момент расшифровки сертификата паролем и получить пароль в числом виде), проблема в том, что сертификаты меняются часто и прридется заново вытаскивать сертификат и пароль и перевыпускать свое приложение
Я очень не уверен, что вы просто так сможете вырезать проверку в любом банковском приложении, т.к. очевидное решение — вынести часть проверки на север вам обойти будет сложновато.
Если на телефоне имеется root доступ, для относительно простых случаев достаточно приложения HttpCanary.
А кто-нибудь сталкивался с ситуацией, когда запросы подписываются дополнительным параметром?
Примерно так: api.host?param1=..¶m2=..&signature=abc123456
Есть альтернатива для рутованных телефонов — frida.js. Удобная штука, что бы не связываться с редактированием apk
Обычно если телефон рутован то приложение банка говорит что оно не будет работать. Как минимум у Сбера точно знаю что при руте приложение не запустится. А без рута не будет трафик сниферится.
Извините за нубский вопрос — правильно ли я понимаю, что если мое приложение ходит напрямую (без серверсайда) в гуглмапс, то Вы без труда сможете достать его ключик и, самое главное, использовать его для любых своих целей, несмотря на то, что в настройках гуглмапс он задан, как ограниченный к использованию только этим приложением?
Очень грустно, если так. Значит без серверсайда не обойтись даже в MVP
При регистрации приложения в сервисах гугл необходимо указывать fingerprint сертификата. Т. о. приложение подписанное другим сертификатом не будет иметь доступ к вашему сервису.
Для сбора данных если уже дошло до пересборки apk — проще найти где там в этом приложении включается отладочная ручка (в сборке из PlayStore она отключена но в принципе возможно наличие продовой сборки с включенной ручкой и иногда так делают) и смотреть все нужно для сбора данных в logcat например. Про обфускацию разумеется тоже не забыли.
Только вот для целей учета персональных финансов — проще web.budgetbakers.com использовать (и этот банк и многие другие российские — поддерживают, правда на каждую синхронизацю СМС потребуется… и да — потребуется логин и пароль от ИБ, доверять ли этому не смотря на все заявления — на усмотрение клиента)
По статье задача выглядеть легким, такой способ работает с любым приложением? например с увернем aliexpress?
Реверс API по его android приложению