У меня есть основанная на Интернете (perl/MySQL) CRM-система, и мне нужен раздел для HR, чтобы добавить информацию о дисциплинарных мерах и зарплате.
Вся эта информация, которую мы храним в базе данных, должна быть зашифрована, чтобы разработчики не могли ее увидеть.
Я думал об использовании шифрования AES, но что я использую в качестве ключа? Если я использую пароль HR Manager, то, если она забывает пароль, мы теряем всю информацию о персонале. Если она изменяет свой пароль, мы должны расшифровать всю информацию и повторно зашифровать с помощью нового пароля, который кажется неэффективным и опасным, и может пойти ужасно неправильно, если есть ошибка на полпути через процесс.
У меня возникла идея, что у меня может быть ключ шифрования, который шифрует всю информацию и использует пароль менеджера HR для шифрования ключа. Затем она может изменить свой пароль, который ей нравится, и нам нужно будет снова зашифровать ключ. (И без пароля HR Manager данные безопасны)
Но тогда все еще существует проблема многопользовательского доступа к зашифрованным данным.
Я мог бы сохранить "незашифрованную" копию ключа за пределами сайта и зашифровать его каждым новым паролем персонажа. Но тогда я знаю мастер-ключ, который не кажется идеальным.
Кто-нибудь пробовал это раньше и преуспел?