Android: как добавить pw / security в настройки времени / даты телефона, чтобы пользователь не мог изменить его - PullRequest
1 голос
/ 16 мая 2011

Мое приложение будет иметь часы в списке.Когда пользователь щелкает по этому элементу, он извлекает время / дату с самого телефона и отправляет эти данные на сервер.Я предпочитаю делать это, используя серверное время, так как, если у них нет сигнала / приема, они не смогут включить часы. Я хотел бы добавить защиту паролем к самим настройкам времени / даты, чтобы пользователь не мог воспользоватьсяизменение времени при включении. Как я могу это сделать?

Спасибо

Ответы [ 3 ]

1 голос
/ 16 мая 2011

Не думаю, что вы можете это сделать, но вы можете перепроверить время.

Когда вы "входите", вы также открываете / proc / uptime в виде текстового файла и читаете значение там. Я считаю, что это в считанные секунды. Когда вы выключите часы, перечитайте значение и используйте разницу как перекрестную проверку. Если сервер также доступен, проверьте время с сервера (или немедленно сообщите о времени)

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

Пользователь может предположительно скомпилировать и установить ядро, которое связано с временем безотказной работы, но этот человек, вероятно, может обойти большинство других вещей, которые вы бы тоже сделали.

0 голосов
/ 16 мая 2011

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

В общем, если вы хотите, чтобы что-то было как можно более безопасным, не делайте этого на стороне клиента (если вам абсолютно не нужно). И в этом случае пользователь может получить root на своем устройстве и использовать магию командной строки, чтобы обмануть ваш сервер поддельными датой / временем. Это не так сложно. И вы просто не сможете предсказать все умные обходные пути вашей «защиты времени».

0 голосов
/ 16 мая 2011

Вы можете настроить службу для запуска каждую минуту (или около того), которая проверяет время. Если время не прошло ~ 1 минуты после последней проверки, возможно, оно было изменено. На этом этапе вы должны подтвердить запрос на сервере, чтобы убедиться, что расхождение не было вызвано перезагрузкой телефона.

Если вы обнаружите, что время было изменено, вы можете изменить его обратно или зарегистрировать его в своем основном приложении и пометить «пользователя» для дисциплинарных действий.

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