我有一些日志用作 GDPR 隐私问题的证据。该应用程序处理个人数据并记录谁使用它来做什么。除非正在进行滥用调查,否则任何人都不应阅读这些日志。
我如何以安全加密的方式(本地)存储这些每天轮换的日志?我正在考虑 root crontab 作业,但密码不应该是纯文本。非常感谢所有建议。
$ ls -ltrh
-rw-r----- 1 appuser appuser 83K May 27 23:55 gdpr.log.2018-05-27
-rw-r----- 1 appuser appuser 905K May 28 23:55 gdpr.log.2018-05-28
-rw-r----- 1 appuser appuser 3.0M May 29 23:40 gdpr.log.2018-05-29
-rw-r----- 1 appuser appuser 462K May 30 09:49 gdpr.log
答案1
您可以使用服务器上的公钥对文件进行加密,而该公钥只能使用不在服务器上的私钥进行解密。这样,即使服务器受到威胁,加密的日志仍然应该是安全的。
例子:
创建一个工作目录并创建一个新的公钥和私钥对:
$ mkdir /tmp/1
$ cd /tmp/1
$ ssh-keygen -f key
$ ls
key
key.pub
将公钥转换为以下pem
格式:
$ openssl rsa -in key -pubout > key.pub.pem
创建一个名为 的测试文件file
,其内容为hello
:
$ echo hello > file
使用格式公钥加密文件pem
并将输出写入名为的文件encrypted
:
$ cat file | openssl rsautl -encrypt -pubin -inkey key.pub.pem > encrypted_file
使用私钥解密文件:
$ cat encrypted_file | openssl rsautl -decrypt -inkey key
hello
显然,您希望将私钥移出服务器,并且可以将加密命令放入 cronjob 中。就像是:
for file in /var/log/dir/*;do
cat "${file}" | openssl rsautl -encrypt -pubin -inkey /path/to/key.pub.pem > "${file}.encrypted" && rm "${file}"
done
答案2
任何稍微熟悉这个主题的人都可能会问上百个问题,以确定解决方案的现实框架。话虽如此,你考虑过全盘加密吗?这真的,真的与构建任何类型的自动化或程序的开销相比,这很简单,并且可能足以承担您的责任(我不是律师),除非您是远程root。