Является ли хранение сгенерированного клиентом закрытого ключа, зашифрованного паролем пользователя, более безопасным, чем хранение хэша пароля? (Часть шифрования выполняется на стороне клиента, и она будет отправлена на сервер, пароль пользователя не будет отправлен на сервер)
Является ли сохранение закрытого ключа, зашифрованного паролем пользователя, более безопасным, чем хранение хэша в базе данных?
Ответы (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'oc36o&+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
И они отправляют это на сервер, и вы зашифруете его паролем пользователя: откуда вы узнали пароль пользователя!? >
Вы не можете этого сделать, потому что вы не можете знать их пароль.