Короче говоря, наша компания недавно вторглась, когда наш БД MySQL был сброшен и украден. В настоящее время исполнители действительно нервничают и помимо повышения других мер безопасности, они намерены шифровать всю информацию о клиенте (адрес электронной почты, домашний адрес, имена и т. П.) В БД.
Я не знаю, с чего начать. Мы запускаем приложение PHP. Очевидно, что это создаст дополнительные дополнительные накладные расходы, которые мы хотели бы свести к минимуму. Еще одна проблема заключается в сложности изменения кода везде, где используются новые зашифрованные поля.
Это ставит меня в качестве ненужной меры предосторожности, но руководство на нем твердо держится.
Какой тип алгоритма / метода шифрования был бы лучше всего подходит для этого случая использования?
Существует очень хорошая запись о том, как это сделать с MySQL здесь: http://thinkdiff.net/mysql/encrypt-mysql-data-using-aes-techniques/ .
Вы захотите использовать AES с 256-битными ключами, так как сейчас это лучшая практика / стандарт. 256-битные ключи AES считаются достаточными для защиты от современных вычислительных мощностей.
Это хорошая идея, независимо от того, считаете ли вы, что это слишком много, чтобы зашифровать вашу базу данных. Даже если данные не ужасно чувствительны, потеря записей клиентов может быть очень неловкой для вашей компании, по крайней мере, и может негативно повлиять на доверие клиентов и готовность людей передать свои данные в будущем. Шифрование полного содержимого вашей базы данных, возможно, не является стандартом в отрасли, но тенденции движутся таким образом, и это не может помешать вам принять более сильную позицию безопасности. Если ничего другого, подумайте об этом как о другой записи в своей реализации Defence-in-Depth.
Я также рекомендую вам проверить эту статью – http://www.symantec.com/connect/articles/secure-mysql-database-design – поскольку она обеспечивает хорошее, довольно базовое введение в безопасную систему баз данных, которая должна вы некоторые указатели на другие вещи, чтобы проверить ваше приложение.