Android: проверка целостности приложения на стороне сервера

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

Есть ли возможность это обеспечить? Может есть возможность с подписью апк файла?

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

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


person Peter    schedule 30.01.2011    source источник


Ответы (3)


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

person Eugene Mayevski 'Callback    schedule 30.01.2011

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

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

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

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

person Peter Knego    schedule 30.01.2011

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

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

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

person sarnold    schedule 30.01.2011