如何在脚本中处理密码:内存中 VS 文件中

如何在脚本中处理密码:内存中 VS 文件中

我有一个在廉价云提供商的 VPS 上运行的脚本。场景是:我信任我的提供商,但如果他想窃取我的密钥,我宁愿让他的生活变得艰难。硬盘中所有相关的文件夹都已加密(truecrypt 或类似加密),只有在机器启动时才会以明文形式显示(每次都是这样,但如果他们取出 hhd,他们将无法查看我的数据)

哪个是处理脚本内 Dropbox API 密钥的最佳解决方案?

注意:该脚本将从 FTP 获取文件,将其上传到 Dropbox 并从磁盘中删除它们。

我正在考虑存储一个加密文件(openssl/pgp),当我启动脚本(使用解密密钥,手动输入)时,它将解密密钥,将其存储为变量并在需要时使用它(脚本将永远保持有效)

有什么想法或意见吗?

答案1

你可以使用类似python-gnupg使用 gnupg 加密文件。要实现“真正的”安全性,您需要为私钥设置密码,否则您将在同一台服务器中拥有包含密码和私钥的加密文件,因此解密文件将变得微不足道。每次启动脚本时都需要输入密码,但可以使用 gpg-agent 最大限度地减少这种情况,只需在启动机器时输入密码即可。

答案2

这可能是通过隐蔽性实现的安全性,但几乎没有其他选择。如果你想让潜在的小偷难以得手,我建议将密钥嵌入脚本中,然后使用以下命令将脚本转换为可执行文件韓國。你可能还想混淆精灵本身(混淆精灵的方法。) 但请记住,无论您做什么,它仍然可以被拆解和研究。

相关内容