Хорошая идея использовать мобильное устройство UUID для входа в систему? - PullRequest
4 голосов
/ 22 июня 2011

Я использую phonegap и jQuery mobile для разработки приложения и впервые работаю с этими двумя технологиями.

Теперь пользователь должен войти на удаленный сервер. У меня есть готовый сервис JSON, сессия будет храниться на удаленном сервере. Чтобы все было удобно, я бы хотел, чтобы пользователь входил только один раз. Вот мой процесс:

1) телефон просматривает удаленный каталог - разрешен ли мой UUID для определенной учетной записи?

1a) если да, то войдите

1b) если нет, перейдите к 2

2) Логин

2a) Если вход выполнен успешно, сохраните UUID в учетной записи пользователя. Удалить UUID из других аккаунтов, если он там хранился

2b) Если вход не выполнен, перейдите к 2

Теперь мой вопрос: по соображениям безопасности, стоит ли использовать UUID в качестве «ключа»? Или им можно манипулировать противным образом?

Другой вариант - сохранить пароль (хэшированный) на iphone.

Что такое лучшая практика?

Спасибо, Christian

Ответы [ 3 ]

3 голосов
/ 22 июня 2011

Я предполагаю, что вы говорите об идентификаторе устройства, который Apple называет "UDID".

Использование UDID для этой цели не кажется мне хорошей идеей. Исходя из ваших целей, нет никакой разницы между UDID и любой другой 40-значной шестнадцатеричной строкой. Тем не менее, с точки зрения пользователя, это неизменяемая строка, которая не является закрытой и используется в качестве замены для имени пользователя и пароля. Поскольку любое приложение может обнаружить UDID, а UDID предоставляется разработчикам и другим лицам свободно, безопасность всей вашей системы будет зависеть только от неясности вашего алгоритма хеширования.

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

Я не вижу реального преимущества в использовании UDID по сравнению со случайной 40-значной шестнадцатеричной строкой, которую вы генерируете в своем приложении. С другой стороны, преимущества создания собственной строки заключаются в том, что никакое другое приложение не может легко обнаружить вашу строку, и пользователь может (если вы позволите им) изменить строку по своему желанию.

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

1 голос
/ 22 июня 2011

Пока UUID не используется в качестве единственного уникального идентификатора для пользователя, все должно быть в порядке. Просто помните, что UUID идентифицирует устройство, а не пользователя. Пользователь может потерять или сломать свой телефон и получить новый, что означает изменение UUID. Это будет все тот же пользователь, использующий другой телефон.

1 голос
/ 22 июня 2011

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

...