Есть ли способ аутентификации Android-приложения против php-веб-приложения? - PullRequest
0 голосов
/ 04 января 2012

Я разрабатываю это приложение для Android, где пользователи могут обновить свою базу данных SQLite до последней версии на веб-сервере.Все работает нормально, пользователь нажимает кнопку в приложении, и последняя версия базы данных загружается в Android.

Эти пользователи просто устанавливают приложение, и не нужно проходить проверку подлинности отдельных пользователей.пользователь (у пользователей нет имени пользователя / пароля).т.е. все используют одну и ту же базу данных.Данные совсем не зависят от пользователя.И нет необходимости настраивать двустороннюю синхронизацию.

Проблема в том, что любой может получить доступ (загрузить) базу данных.Мы должны запретить кому-либо загружать базу данных вручную.База данных будет размещена на веб-сервере Apache с php.Я могу реализовать php-коды для управления доступом к базе данных SQLite (файл обновления).

Есть ли в php какой-либо способ аутентификации Приложения, созданного нами на телефоне Android, так что только пользователи этого приложения могут загрузитьбазы данных непосредственно в их телефон.

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

1 Ответ

2 голосов
/ 04 января 2012

Вы можете сохранить общий секрет в приложении телефона и на сервере, а затем время от времени получать случайный ключ от веб-службы для перепрошивки и использовать его в качестве учетных данных:

Android Phone                           Server
---------------------------------------------------------------------
"SharedSecret"                          "SharedSecret"
getRandomKey()                  <----   "This is some randomKey currently valid"

Authentication:
sha256(RandomKey + SharedSecret) <--->  sha256(RandomKey + SharedSecret)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...