Я использую шифрование openssl и mysql через PHP. В настоящее время я пишу ключ в исходном коде php, но я думаю, что он не настолько безопасен. Если кто-то получает источник (возможно, FTP), шифрование нарушается. Итак, как бы вы могли хранить ключи шифрования на сервере Linux? Я не могу использовать другой веб-сервер для хранения ключа.
Я предполагаю, что вы используете Apache.
Поместите секретные данные в переменную среды в /etc/apache2/envvars
, установите для владельца root и разрешения 400.
Злоумышленнику придется скомпрометировать сервер, чтобы он положил руки на ваш ключ.
Вы также можете сгенерировать скрипт, который запрашивает секрет, когда Apache запускает (раздражает, но даже более безопасно).
Обратите внимание, что люди с корневым доступом всегда смогут получить ваш ключ и пытаться скрыть его от них – это просто плацебо.
Решение плацебо:
Я считаю, что ваша лучшая (по вашему вопросу и комментариям) ставка заключается в том, чтобы просто вставлять ключи где-то в вашем пространстве каталога. Убедитесь, что они не находятся под www-root и т. Д. Используйте соответствующие разрешения для файлов (в зависимости от настроек вашего сервера).