Как хранить данные в БД, чтобы никто, имеющий к ним доступ, не мог их понять?

#mysql #database #security #data-protection #anonymize

#mysql #База данных #Безопасность #защита данных #анонимизация

Вопрос:

Скоро мы выпускаем частную бета-версию веб-сайта для внутренней экономики.

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

Каковы наилучшие методы хранения данных в нечитаемом виде? Конечно, пароли участников уже хэшируются в БД.

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

Пожалуйста, у кого-нибудь есть рекомендации?

Ответ №1:

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

Могут существовать существующие стандарты, которые применяются к вашим данным, в зависимости от того, где вы находитесь в мире и с какими отраслями вы работаете. Найдите их и следуйте им.

Ответ №2:

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

Дело в том, что единственное «решение» такого рода — это отличное ведение журнала доступа к компьютеру в сочетании с надежным юридическим документом, подтверждающим, что за ними следят, и вы будете преследовать в судебном порядке. Также вы должны проводить ежегодные проверки ваших технических специалистов. Далее, количество людей с таким типом доступа должно быть крайне ограничено. Как генеральный директор, который принимает активное участие в нашем процессе разработки, даже у меня нет доступа к нашим производственным системам.

Несмотря на это, вы все равно должны зашифровать базу данных, особенно данные PII. В зависимости от вашей отрасли на вас могут подать в суд, если вы этого не сделаете, и не обращайте внимания на плохую прессу, если кто-то вытащит дамп данных.

Ответ №3:

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

Комментарии:

1. Только что видел сообщение ObscureRobots. Это намного лучше, чем у меня 😉