保护纯文本文件中敏感数据的最佳做法?

时间:2010-11-30 15:22:15

标签: sql c linux daemon centos

目前我正在开发一个C linux守护进程,它接受SQL连接字符串的用户输入,然后将信息存储到本地conf文件(客户端)。守护程序的目的是以一定的时间间隔向SQL数据库提交数据,因为每次加载守护程序时,它都将查找本地conf以获取SQL连接字符串。此外,通过使用命令行参数-c,用户可以在信息更改时重新配置SQL连接字符串。是否有人愿意分享一种保护这个conf文件的方法,以便它不是纯文本。请记住,我仍然需要能够访问和读取conf文件,因为存在其他conf设置。先谢谢你们。

编辑:我最终计划使用SSL在客户端和SQL服务器之间提交数据。

2 个答案:

答案 0 :(得分:6)

保护文件的唯一方法是更改​​其权限,使其仅对运行守护程序的用户可读

EG。如果您以用户'foo'和组'foo'运行守护程序,则应该:

chown foo.foo my-conf-file
chmod 600 my-conf-file

(或者甚至将其修改为400以防止意外修改,但我想在这种情况下您将失去-c选项功能。

注意:还要记住,在命令行上传递连接字符串是非常危险的,因为它们在进程列表中是可见的!

您也可以使用一些GPG来加密文件,但是我没有看到那里的重点,因为那时您必须保护用于描述文件的密钥,并且您得到与以前完全相同的问题。 / p>

答案 1 :(得分:0)

如果您无法保密,密码学将无法帮助您。如果你的守护进程能够以某种方式解密密码而不使用任何秘密,那么任何人都可以这样做。因此,您必须依赖系统保护,例如文件访问模式标志来保留密钥。