3

我在 Windows 2003 服务器上,我需要编写一个批处理文件来使用 GnuPG 自动解密。解密命令需要密码才能使用私钥。

以下是一些不完全让我满意的可行选项:

  1. echo thisIsMyPassphrase|gpg.exe --passphrase-fd 0 --output %1 --decrypt %2 这种硬编码的密码看起来不像是一种安全的方法!此外,更改也不方便(直接嵌入在 .cmd 文件中)。

  2. 将密码存储在不同的文件中,并确保只有运行解密过程的 Windows 用户才能访问它(使用 NTFS 安全设置)。
    gpg.exe --passphrase-file X:\passphrase.txt --output %1 --decrypt %2
    我不太喜欢这里..是我们在某个地方有一个裸文件,其中只包含这些高度敏感的信息。奇怪的维护?容易找到 ?..

  3. 我不觉得将密码存储在环境变量中听起来不错(看起来很暴露)..
    echo %MY_PASSPHRASE%|gpg.exe --passphrase-fd 0 --output %1 --decrypt %2


那么,您对实现这一目标的最佳(或“最不坏”)解决方案有何看法?

4

1 回答 1

0

我认为您的第二个(密码文件)选项对于大多数用例来说似乎是一种相当合理的方法。并且使用 Windows 2003 加密文件系统可以减轻对物理服务器被盗的某种程度的担忧。您当然可以跳过箍来进一步混淆密码,但这就是 - 混淆。您真正的安全性在于 NTFS 文件系统安全性。

提到它几乎是可笑的,但是“适当的”安全实施是解决方案成本和数据价值之间的平衡行为,如果数据足够敏感并且您愿意在问题上投入一些现金,那么硬件安全模块(nCipher想到),这可能有助于解决这类问题。

如果您有兴趣,这里有一个类似 SO 讨论的链接:Storing passwords for batch jobs

于 2012-06-07T21:26:21.257 回答