crashxd
@crashxd
Backend разработчик

Чем шифровать и как хранить в БД пароли, которые нужно будет отображать во frontend?

Практически ноль в криптографии, но есть задача, которую нужно решить.

Есть рабочий проект (сайт на Laravel), где нужно организовать модуль для расшаривания паролей на группу пользователей.
Например, у пользователя1 есть пароль. Он делится им с пользователем2. И они оба получают к нему доступ (видят расшифрованный пароль).

Насколько я понимаю, у асимметричного шифрования, есть открытый и закрытый ключ. Для доступа к паролю только одним пользователем, можно было бы хранить открытый ключ на сервере, а закрытый ключ (может быть в виде мастер пароля) вводил бы сам пользователь для дешифрирования.
Но вот с группой пользователей не могу придумать как это организовать, более менее безопасно.

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

В какую сторону копать? Может я что-то упускаю и ответ лежит на поверхности?
  • Вопрос задан
  • 324 просмотра
Решения вопроса 1
sim3x
@sim3x
Единственный вменяемый вариант, когда пользователи имеют свои ключи и обменялись ими между собой

Ваш сервис только передает зашифрованный текст, а пользователи расшифровывают все у себя в gpg
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
saboteur_kiev
@saboteur_kiev
software engineer
А потому что вся идеология работы с паролями не подразумевает, что они должны храниться и тем более быть видимыми кому-либо.
Почему вам нужно именно один пароль от ресурса раздавать разным пользователям?
Почему бы не давать разным пользователям с разными паролями к одному нужному ресурсу?
Ответ написан
VladimirAndreev
@VladimirAndreev
php web dev
а все таки, нужно показать пароль, или дать возможность войти по паролю?
если войти, то пароль не нужно показывать в расшифрованном виде)
Ответ написан
@abmanimenja
Это потенциально огромная дыра в безопасности.
В частности не так просто отозвать пароль для одного пользователя, когда доступ к паролю имеет более одного пользователя (придется поменять его, что повлияет на всех пользователей, им придется заново взять пароль)

Впрочем, если у вас все не критично, то можно.

А в серьезных случаях используют токены (с ограниченным временем жизни), к примеру. Или одноразовые пароли.
И средства для управления ими, например:

https://habr.com/ru/post/306812/
https://blog.amet13.name/2018/07/hashicorp-vault-o...
Ответ написан
Immortal_pony
@Immortal_pony Куратор тега PHP
Храните пароль зашифрованным AES256 на сервере.
Если у пользователя есть права на получение данного пароля - расшифровывайтие и отдавайте.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы