В настоящее время я повышаю безопасность на одной из платформ, с которыми я работаю. Но я не могу понять, как безопасно хранить мой ключ шифрования / дешифрования.
Текущая настройка:
MySQL сервер
Вебсервер
Мне нужно хранить и читать все конфиденциальные данные в базе данных, используя AES_ENCRYPT / AES_DECRYPT. Но ключ, для которого данные зашифрованы / расшифрованы, я хотел бы надежно хранить. Таким образом, в случае, если кто-то получит доступ к базе данных или веб-серверу, он не сможет легко угадать комбинацию клавиш или прочитать ее из файла конфигурации.
Ключ может меняться в зависимости от данных, которые мне нужны для чтения / записи.
Это вообще возможно? Первый вариант, о котором я подумал, состоял в том, чтобы просто использовать комбинацию клавиш, основанную на некоторых столбцах данных, которые мне нужно было прочитать. Но это позволяет угадать, глядя на код, если кто-то завладеет как исходным кодом, так и базой данных.
Есть мысли?