Рейтинг:0

Хешированный пароль, используемый для шифрования и аутентификации пользователя одновременно

флаг dz

Поскольку я новичок в криптографии, я хотел бы понять, как простым способом реализовать систему, которая позволит добиться следующего: пользователю нужно будет установить пароль, который затем будет использоваться для:

1.) шифровать данные, предоставленные пользователем, и сохранять их в зашифрованном виде и 2.) для аутентификации пользователя при следующем использовании системы и расшифровки его данных.

При поиске жизнеспособных решений я нашел следующие два подхода:

а.) Пароль хешируется, а хэш позже используется для аутентификации пользователя. Комбинация простого текстового пароля и его хэша используется для генерации ключа для шифрования и дешифрования.

б.) Пароль хешируется, и из его хэша получается ключ для шифрования данных. Аутентификация решается путем сравнения некоторого известного открытого текста с частью расшифрованных данных. Если есть совпадение, пользователь ввел правильный пароль.

Буду признателен за простое и понятное объяснение.

Я был бы также благодарен за любые ссылки на эту конкретную тему.

kelalaka avatar
флаг in
Где вы оба видели? Это нехороший подход, поскольку пользователь может захотеть изменить пароли. Вы создаете случайный ключ шифрования для каждого файла и шифруете ключ с помощью ключа шифрования ключей, сгенерированного из пароля, такого как PBKDFDF2 или лучше Argon2id. Посмотреть можно [здесь подробнее](https://crypto.stackexchange.com/a/75022/18298). Когда данные находятся в состоянии покоя, файлы защищены случайными ключами, и только ваш пароль может открыть их. Рекомендуется хороший пароль, например, от dicewire.
simbr avatar
флаг dz
@kelalaka Не могли бы вы объяснить, как решить часть аутентификации пользователя с тем же паролем. Спасибо.
kelalaka avatar
флаг in
Это просто стандартное хеширование паролей [Как безопасно хэшировать пароли?] (https://security.stackexchange.com/q/211/86735). У вас один пароль и разделите домены солью и информацией.
jjj avatar
флаг cn
jjj
НЕ отправляйте все, что нужно для расшифровки, на какой-либо сервер, делайте расшифровку локально. В противном случае скомпрометированный сервер может перехватить его и расшифровать все.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.