#cryptography #passwords #password-hash #password-storage
#криптография #пароли #пароль-хэш #хранение паролей
Вопрос:
Безопаснее ли хранить закрытый ключ, сгенерированный клиентом, который зашифрован паролем пользователя, чем хранить хэш пароля? (Часть шифрования выполняется на стороне клиента, и она будет отправлена на сервер, пароль пользователя не будет отправлен на сервер)
Ответ №1:
Это зависит от того, о чем вы говорите.
Если я клиент:
- я генерирую чистый случайный «ключ»:
58 3b ae a9 de 37 88 e6 ed a2 9f 45 db 8b 9f 56 ef e1 aa 25 ac 52 f6 3d 02 dd 1b 86 1f c5 39 44
- я шифрую его паролем:
3e 35 33 46 fe a2 04 09 58 ff 1a 29 41 97 cb 6d 44 32 5f 4a 74 01 90 1d f3 32 eb 2c 6e 49 e1 19
Что вы сделали, так это попросили клиента создать надежный пароль с дополнительными шагами. Я могу преобразовать эти байты в строку:
4uG,crh9N%=T99g6'oc36oamp; AF9.IDo.oV_DFre)
Теперь это «пароль» пользователя. Когда пользователь входит на ваш сайт, вам необходимо подтвердить этот пароль. Это означает, что вы должны надежно хранить этот пароль в своей системе, а использование хэша SHA-256 этого пароля небезопасно.
Это все, если клиент зашифрует его
Что, если вместо этого пользователь генерирует «закрытый ключ»:
58 3b ae a9 de 37 88 e6 ed a2 9f 45 db 8b 9f 56 ef e1 aa 25 ac 52 f6 3d 02 dd 1b 86 1f c5 39 44
И они отправляют это на сервер, и вы зашифруете его паролем пользователя: как вы узнали пароль пользователя !?
Вы не можете этого сделать, потому что вы не можете знать их пароль.
Комментарии:
1. Я выполняю часть шифрования на стороне клиента, и на сервер будет отправлен только зашифрованный ключ