Чем шифровать и как хранить в БД пароли, которые нужно будет отображать во frontend?
Практически ноль в криптографии, но есть задача, которую нужно решить.
Есть рабочий проект (сайт на Laravel), где нужно организовать модуль для расшаривания паролей на группу пользователей.
Например, у пользователя1 есть пароль. Он делится им с пользователем2. И они оба получают к нему доступ (видят расшифрованный пароль).
Насколько я понимаю, у асимметричного шифрования, есть открытый и закрытый ключ. Для доступа к паролю только одним пользователем, можно было бы хранить открытый ключ на сервере, а закрытый ключ (может быть в виде мастер пароля) вводил бы сам пользователь для дешифрирования.
Но вот с группой пользователей не могу придумать как это организовать, более менее безопасно.
Какие есть варианты, каким способ шифровать, хранить ключи и сами зашифрованные пароли, чтобы оба пользователя могли увидеть расшифрованный пароль у себя в ЛК?
В какую сторону копать? Может я что-то упускаю и ответ лежит на поверхности?
А зачем вообще может понадобиться хранить пароли?
Обычно пароли не хранят.
Сам факт хранения паролей не нормален и не безопасен.
Пароль должен знать только пользователь и только он может его кому-то сообщать.
А потому что вся идеология работы с паролями не подразумевает, что они должны храниться и тем более быть видимыми кому-либо.
Почему вам нужно именно один пароль от ресурса раздавать разным пользователям?
Почему бы не давать разным пользователям с разными паролями к одному нужному ресурсу?
Это потенциально огромная дыра в безопасности.
В частности не так просто отозвать пароль для одного пользователя, когда доступ к паролю имеет более одного пользователя (придется поменять его, что повлияет на всех пользователей, им придется заново взять пароль)
Впрочем, если у вас все не критично, то можно.
А в серьезных случаях используют токены (с ограниченным временем жизни), к примеру. Или одноразовые пароли.
И средства для управления ими, например:
Immortal_pony, А что именно нужно обосновывать? Если у сервера есть ключ для расшифровки, то можно считать, что данные на зашифрованы.
Вот если ключ хранится на клиенте и расшифровка происходит там же - другое дело.