Безопаснее ли сохранять закрытый ключ, зашифрованный паролем пользователя, чем хранить хэш в базе данных?

#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. Я выполняю часть шифрования на стороне клиента, и на сервер будет отправлен только зашифрованный ключ