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

Является ли хранение сгенерированного клиентом закрытого ключа, зашифрованного паролем пользователя, более безопасным, чем хранение хэша пароля? (Часть шифрования выполняется на стороне клиента, и она будет отправлена ​​на сервер, пароль пользователя не будет отправлен на сервер)


person TarithJ    schedule 26.11.2020    source источник


Ответы (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

И они отправляют это на сервер, и вы зашифруете его паролем пользователя: откуда вы узнали пароль пользователя!? >

Вы не можете этого сделать, потому что вы не можете знать их пароль.

person Ian Boyd    schedule 26.11.2020
comment
Я выполняю часть шифрования на стороне клиента, и на сервер будет отправлен только зашифрованный ключ. - person TarithJ; 01.12.2020