Обмен ключами шифрования / дешифрования PHP / SQL - PullRequest
0 голосов
/ 12 марта 2019

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

Текущая настройка:
MySQL сервер
Вебсервер

Мне нужно хранить и читать все конфиденциальные данные в базе данных, используя AES_ENCRYPT / AES_DECRYPT. Но ключ, для которого данные зашифрованы / расшифрованы, я хотел бы надежно хранить. Таким образом, в случае, если кто-то получит доступ к базе данных или веб-серверу, он не сможет легко угадать комбинацию клавиш или прочитать ее из файла конфигурации.

Ключ может меняться в зависимости от данных, которые мне нужны для чтения / записи.

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

Есть мысли?

1 Ответ

1 голос
/ 14 марта 2019

Простой и безопасный способ хранения ключей - использование службы управления ключами, такой как AWS KMS.

Они (должны) хранить ключи в проверенных аппаратных модулях безопасности FIPS-140-2, предназначенных для хранения и загрузки ключей.

Онлайн-сервисы управления ключами делают это оптом и предоставляют API для использования вашего ключа.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...