Как лучше хранить "секретную" инфу в базе
нельзя зашарить инфу для пользователя, который еще не был на сайте.
Страшный недостаток, просто полный ноу-гоу. Примерно как поскандалить в банке. Оказывается без удостоверения личности нельзя открыть счёт! А если оставаться с компьютерами, то, оказывается нельзя выдать права доступа к файлу пользователю, если его ещё в LDAP-е (AD) нет. Как с таким можно жить! :)
Если честно - не смешно. Как ты себе представляешь обеспечивать безопасность непонятно для кого? Ну, можно попросить пользователя А самому сгенерировать пару новых ключей для Б. И пусть сам передаёт их Б. Когда Б зарегистрируется, будет их использовать, пока не сгенерит свои.
после обновления инфы нужно обновить и все зашифрованные копии
Эм... О каких зашифрованных "копиях" идёт речь?
P.S. А, увидел на рисунке. Нет, ты неправильно понял. У тебя у 1 ресурса несколько зашифрованных ресурсов. А должен быть 1. Никакого ЗР2 из Р1 делать не надо. Р1 -> ЗР1, Р2 -> ЗР2. Только ключи ресурса для пользователей шифруем и получаем больше одного: у КР1 есть варианты ЗКР1_Па и ЗКР1_Пб. А сам ресурскак был ЗР1 так и остался. И вообще, почисть картинку, что-то и слева и справа Па и Р1
сложно будет скакать от компа к компу - все таки веб приложение, а таскать за собой свой ключи не очень хочется.
Тоже обалденная претензия. Ключ от квартиры с собой носить заставляют! Животные! Это я так издеваюсь, да. Носи на УСБ стике, напиши приложение для телефона, держи в облаке, обычно приватные ключи можно защитить паролем. Можно хранить защищённые паролем приватные ключи прямо в хранилище ключей. Чем мы эффективно снизим уровень защиты раз так в 10^20. Потому как теперь не надо ломать 2048-битный ключ, достаточно подобрать к нему пароль. Символов из 6-8.
Открою страшную тайну - чем сильнее защита данных, тем менее удобно получать к ним доступ. Именно поэтому у нас всё и не зашифровано. Мы и паролей помнить не хотим, и ключи с собой таскать не хотим, да ещё и искать в супер-пупер-защищённых данных нам очень надо. Но чтобы никто кроме меня их не видел! Но поиск обеспечь. И противоречий мы не видим.
В общем я понял. Решение для тебя: каждый пользователь выдумывает себе пароль и с ним всё XOR-им. Мелкософт-стайл. Пароль пользователь запомнить сможет? (как бонус - в таком даже поиск можно сделать)
И даже если юзер забудет пароль, поможем ему дешифровать :)