Мне хотелось бы получить некоторые мнения о потоке, который я создаю для любого мобильного приложения, которому необходимо отправить комбинацию пользователя и пароля. Моя идея - зашифровать пароль с помощью AES-256, генерируя случайную кодовую фразу и IV, чтобы сгенерировать ключ. Идея заключается в том, что при первом создании пароля он отправляет на сервер зашифрованный пароль и IV. IV и зашифрованный пароль будут храниться на сервере, в redis DB и ключ, а зашифрованный пароль будет только на мобильном устройстве (IV не будет сохранен на устройстве). Таким образом, каждый раз, когда пользователю нужно входить в систему, отправляет на сервер, зашифрованный пароль и ключ, с сохраненным IV, сервер расшифровывает как зашифрованный пароль, так и тот, который сохраняется в БД, используя только что отправленный ключ и IV уже на сервере.поток для отправки зашифрованного пароля с мобильных устройств на сервер
В случае, если пользователь хочет изменить свой пароль, зашифрованный пароль, ключ и IV сгенерированы снова и отправляются также старый (ключ и зашифрованный пароль), если они совпадают, значения обновляются на сервере и отправляют уведомление клиенту также обновить их.
Все эти транзакции будут проходить внутри туннелирования SSL.
Считаете ли вы, что это безопасно? если не почему? любой другой вариант шифрования/дешифрования паролей безопасным способом с мобильного устройства на сервер?
С уважением.
Зачем вам нужно хранить зашифрованный пароль? что случилось с хранением хэша? – Eric
Вы имеете в виду использование blowfish? почему sha1 не является безопасным, насколько я знаю –
что? как blowfish, так и sha1 - алгоритмы хеширования, а не шифры шифрования. Я бы рекомендовал использовать pbkdf-2, bcrypt или scrypt для хранения хеша пароля вместо хранения зашифрованного пароля. – Eric