Зашифруйте простой текстовый пароль для связи GAE <> Android - PullRequest
1 голос
/ 27 августа 2010

У меня есть приложение для Android, которое взаимодействует с бэкэндом Google App Engine (GAE). Для аутентификации у меня есть имя пользователя и пароль, однако я не хочу хранить простой текстовый пароль на клиенте и передавать его в виде простого текста по небезопасному каналу. Поэтому я думал о хешировании пароля, когда пользователи вводят его в первый раз (регистрация или логин) и сохраняют его в телефоне, а также в базе данных GAE. Тем не менее, я не уверен, какую криптографическую хеш-функцию использовать, в настоящее время думаю о sha1 (), и если мне нужно сделать что-то еще или просто sha1(plainTextPassword).

Есть рекомендации?

1 Ответ

5 голосов
/ 27 августа 2010

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

Любой, кто перехватывает хеш, может использовать его для входа в ваше приложение. Для вашего приложения хеш - это пароль. Для аутентификации по паролю требуется личный канал для аутентифицированного партнера, например, SSH или TLS.

Можно утверждать, что, по крайней мере, помогает защитить другие учетные записи пользователя, которые могут использовать тот же пароль, но один раунд SHA-1 без соли оставляет пароль, очень чувствительный к радужным таблицам и атакам по словарям. Используйте функцию получения ключа из PKCS # 5, чтобы правильно скрыть пароль; 8 случайных байтов соли и пара тысяч итераций являются хорошими параметрами для PBKDF1.

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