1

我通过 PHP 使用 openssl 和 mysql 加密。目前,我在php源代码中编写了密钥,但我认为它不是那么安全。如果有人得到源(可能是 FTP),加密就会被破坏。那么,您将如何在 Linux 服务器上存储加密密钥?我不能使用另一个网络服务器来存储密钥。

4

2 回答 2

2

我假设您使用的是 Apache。

将秘密数据放入环境变量中/etc/apache2/envvars,将所有者设置为root,权限设置为400。

攻击者必须破坏服务器才能将他的手放在您的密钥上。

您还可以编写一个脚本,在 Apache 启动时询问密码(很烦人,但更安全)。

请注意,具有 root 访问权限的人将始终能够获取您的密钥,而试图向他们隐藏它只是一种安慰剂。

安慰剂溶液:

  • 默认情况下使您的应用程序处于空闲状态,直到您将密钥发布到同一应用程序中的 HTTPS 页面,将密钥保存在全局变量中并继续您的业务。您必须考虑 PHP 进程的生命周期(当进程终止时,您必须重新发送密钥)。
于 2012-07-31T18:39:15.777 回答
0

我相信您最好的(根据您的问题和评论)的赌注是将密钥粘贴在目录空间的某个位置。确保它们不在 www-root 等之下。使用适当的文件权限(取决于您的服务器设置)。

于 2012-07-31T18:54:24.460 回答