我通过PHP使用openssl和mysql加密。 目前,我在php源代码中写了密钥,但我认为它不那么安全。如果有人获得源(可能是FTP),加密就会被破坏。 那么,如何在Linux服务器上存储加密密钥?我无法使用其他网络服务器来存储密钥。
答案 0 :(得分:2)
我假设你正在使用Apache。
将秘密数据放入/etc/apache2/envvars
的环境变量中,将所有者设置为root,将权限设置为400。
攻击者必须妥协服务器才能将手放在钥匙上。
你也可以编写一个脚本,在Apache启动时询问秘密(烦人,但更安全)。
请注意,具有超级用户权限的人始终能够获取您的密钥并尝试将其隐藏起来只是一个安慰剂。
安慰剂解决方案:
答案 1 :(得分:0)
我相信你最好的(根据你的问题和评论)赌注只是把钥匙粘在目录空间的某个地方。确保它们不在www-root等之下。使用适当的文件权限(取决于您的服务器设置)。