Android: проверка целостности приложения на стороне сервера - PullRequest
2 голосов
/ 30 января 2011

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

Isесть ли возможность это обеспечить?Может быть, есть возможность с подписью файла apk?

Любая подсказка приветствуется.

С уважением, Питер

Ответы [ 3 ]

5 голосов
/ 30 января 2011

Вы пытаетесь решить известную проблему:

  1. Вы никогда не можете доверять приложению на открытом устройстве (мобильный телефон, настольный компьютер). Чтобы доверять этому, это должно быть доказательством подделки. Примером такого устройства является SmartCard. Мобильные устройства, конечно, не так.

  2. Вы никогда не должны отправлять данные на устройство, которое пользователь не должен видеть. Это означает, что вся бизнес-логика должна выполняться на сервере.

  3. Все запросы к серверу должны проходить проверку подлинности с учетными данными пользователя (имя пользователя / пароль) и выполняться по безопасному протоколу (HTTPS / SSL).

5 голосов
/ 30 января 2011

Ни за что. Все, что находится в руках пользователя, больше не ваше. Даже если вам как-то удастся передать APK на сервер для проверки, ничто не мешает взломанной программе отправить оригинальную копию на сервер.

1 голос
/ 30 января 2011

Чтобы проверить, работает ли ваше программное обеспечение, клиентские устройства должны иметь возможность предоставлять услуги удаленной аттестации, что является одним из множества акронимов в мире TPM . Я обнаружил, что кто-то работает над предоставлением сервисов TPM, включая IBM IMA , что почти достаточно для того, что вы хотите.

Подробности здесь: http://www.vogue -project.de / cms / upload / vogueSoftware / Manual.pdf ( Google Quickview ).

Конечно, эмулирует TPM и требует исправления ядра Android. Но, возможно, один из различных производителей захочет построить модель с включенным для вас оборудованием TPM?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...