Я ищу руководство при шифровании полей (и/или таблицы если возможный) для MySQL. Я соглашусь на достойное учебное руководство, но я действительно хотел бы определенные подсказки относительно управления переходом от незашифрованной схемы до зашифрованных полей одного использования.Спасибо!
Наряду с AES_ENCRYPT для полей, если вы храните конфиденциальную информацию, лучше включить SSL по проводу тоже. Также рассмотрите разделение сети (vlan) конфиденциальных компьютеров с базами данных и другие стандартные методы обеспечения безопасности. Хранение ключей важно (где висит общий ключ AES, конечно, не на веб-сервере (ах)!) И учитывать влияние на индексы / запросы, поскольку поиск или объединение данных таблицы не будет таким простым, как раньше.
Подумайте, чего вы пытаетесь добиться с помощью шифрования? К сожалению, простого безопасного решения не существует.
Помните, что ключ, который вы используете для шифрования, может быть получен из вашего кода. Поэтому с точки зрения хакеров обойти шифрование довольно просто. Вам нужно продумать архитектуру и инфраструктуру.
Какая польза от шифрования базы данных на уровне поля? Это то, что вы действительно хотите, или этого будет достаточно для шифрования на уровне ОС или SAN? Планируете ли вы пролонгировать ключи или просто хранить один и тот же ключ шифрования вечно? Будет ли шифрование нарушать индексы таблиц, ссылки или типы полей? Как вы будете использовать ключ шифрования в кластере базы данных?
Я поднимаю эти вопросы только потому, что шифрование базы данных - это обычно то, чего хочет руководство, но никто не может объяснить добавленную стоимость или то, как это будет реализовано ...
На самом деле существует (по крайней мере) два подхода. Вы можете шифровать данные, хранящиеся в ваших таблицах (используя функции EAS/DES, например http://dev.mysql.com/doc/refman/5.1/en/encryption-functions.html)
Или вы можете использовать зашифрованный раздел жесткого диска для хранения ваших папок с данными (например, с помощью TrueCrypt)