【问题标题】:What are the best practice to use passphrase in a batch?批量使用密码的最佳做法是什么?
【发布时间】:2012-06-08 08:22:43
【问题描述】:

我在 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


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

【问题讨论】:

  • 关于#2,文件名实际上可以是另一个参数,并且可以保留文件,例如在 USB 闪存驱动器上。但是,当然,仍然必须处理错误消息(我对此无能为力)。
  • 对于#2,我正在考虑将 Passphrase.txt 存储在网络的另一台服务器中.. 以便解密服务器上物理上的自动化内容不足以解密(如果服务器的物理窃贼)。就我而言,使用可移动驱动器并不能真正解决这个问题(因为它们物理连接到服务器),而且我们对服务器机房的物理访问非常有限。
  • 然而,存储在单独的服务器上会打开一个新的攻击向量。能够嗅探网络流量的人可能能够通过这种方式获取密码。

标签: windows automation cmd gnupg passphrase


【解决方案1】:

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

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

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

【讨论】:

  • 我们最终使用了具有适当文件权限的解决方案 #2。谢谢你的回答。
猜你喜欢
  • 2012-11-30
  • 1970-01-01
  • 1970-01-01
  • 2011-05-20
  • 2021-10-31
  • 1970-01-01
  • 1970-01-01
  • 2011-07-16
  • 1970-01-01
相关资源
最近更新 更多