Заблокировать Android-устройство от получения данных с сервера приложений по идентификатору устройства - PullRequest
0 голосов
/ 13 сентября 2018

Я занимаюсь разработкой приложения для Android, которое извлекает данные с внешнего сервера. Это приложение установлено на 20 планшетах. Однако при краже устройства весь доступ к этому внешнему серверу должен быть заблокирован, поэтому с этого внешнего сервера невозможно получить данные.

Я хочу заблокировать устройство по уникальному идентификатору устройства, поэтому сервер отклоняет идентификатор, который устройство отправляет на сервер. У меня получилось так называемое Android ID . Однако, как известно, иногда оно равно нулю, оно задокументировано как «может измениться при сбросе настроек». Его также можно легко изменить на рутированном телефоне.

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

Есть ли рекомендуемый способ блокировки этого устройства?

1 Ответ

0 голосов
/ 13 сентября 2018

Предполагая, что:

  • приложение отсутствует в Google Play
  • был установлен прямо на планшетах
  • у вас есть контроль над тем, на каких устройствах он будет установлен.

Наилучшим подходом может быть:

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

Таким образом, если вы контролируете устройства, на которых устанавливается приложение, вы можете убедиться, что оно установлено только на устройствах, которые не возвращают null ANDROID_ID .

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

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

Отказ от ответственности: я работаю на Approov

...