Как сделать безопасный вход, используя UDID или токен устройства? - PullRequest
2 голосов
/ 12 января 2011

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

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

Как клиент докажет серверу, что он предоставляет правильный идентификатор устройства?

Ответы [ 2 ]

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

Теоретически, вы не можете. Идентификатор устройства не является особо секретным, и в большинстве случаев его можно легко подделать. Что касается Android, то в этой ОС вообще нет надежного идентификатора устройства - смотрите подробности здесь: Существует ли уникальный идентификатор устройства Android?

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

Тем не менее, один не особо безопасный метод аутентификации будет - отправлять идентификатор устройства и хеш идентификатора устройства, соединенные с секретным, жестко закодированным в строке кода клиента. Служба будет содержать копию той же строки, пересчитать хэш (используя предоставленный идентификатор устройства) и сопоставить хэши. Не разбивается при анализе протокола, только копаясь в коде для строки. Уязвим к повторным атакам.

Для более надежного решения аутентифицируйте пользователей, а не устройства. Это зависит от ваших клиентов и зависит от характера бизнеса.

0 голосов
/ 15 июля 2011

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

...