自动化 PGP 加密?(视窗)

信息安全 视窗 pgp
2021-08-25 19:20:12

假设我有需要使用 PGP 加密(然后通过电子邮件发送)的日常文件,并且我想自动执行此任务。我将使用 Windows PowerShell 来操作文件(检查日期/时间等),但是如何自动化 PGP 部分?

我正在手动使用 PGP 软件,但没有看到任何命令行选项。我确实从同一个地方(赛门铁克)看到了一个命令行软件,但我做不到 3000 美元。

我找到了 GnuPG,但是(根据 GnuPG 的常见问题解答)如果使用 v 2.x 或使用 v 5.x,PGP 无法解密 GnuPG 文件,那么 PGP 必须使用更多选项。接收用户不愿意让事情变得更复杂,需要额外的选项。

简而言之,我正在寻找适用于 Windows 的命令行 PGP。

2个回答

不兼容仅适用于 PGP v2.x。对于 v5.x,GPG(不是您所说的 PGP)需要有更多选项

如果 PGP 2.x 的问题确实是个问题,那么您可能不得不为 PGP 命令行版本买单。请注意,PGP v5 似乎是在 1997 年发布的,而 PGP v2 是在 1992 年左右发布的,所以除非您正在处理不升级的接收者,否则您可能会有很好的覆盖范围。

导入您的密钥和其他人:

gpg -v --import c:\pgp\my-pub-and-priv-pgp-key.asc

导入每个收件人密钥

gpg -v --import c:\pgp\pub\recipient1.asc
...
gpg -v --import c:\pgp\pub\recipientN.asc

出于某种原因,在本地安装的 Windows 手册中很难找到命令行选项;他们在这里

现在使用 --batch 进行批处理模式,使用 --passphrase-file 让您的私钥解锁短语从给定文件中读取,而不是通过 gpg-agent* 从键盘读取,并始终信任收件人密钥。如果您不需要对输出进行签名,那么显然您不需要使用或解锁您的私钥。

加密 (-e) 并签署 (-s) 文件

gpg -v --always-trust --batch --passphrase-file mypassphrasefile -se -r recipient1 -r recipient2 ... -r recipientN -o output-file file-to-encrypt

文件应该能够由收件人使用 PGP 解密和验证。

*我认为我不必说将您的私钥密码短语存储在明文文件中是什么潜在的坏主意。请注意,在 Windows 上,gpg-agent 将从键盘读取您的私钥并将其缓存。它缓存它的时间段可以在 gpg-agent.conf 文件中设置,尽管我没有尝试过(请参阅此处了解一些潜在的指针;gpg-agent.conf 位于您的主目录中,该目录使用GNUPGHOME env var 或通过设置 HKCU\Software\GNU\GnuPG:HomeDir 字符串变量)。

我建议您使用 GPG 并使用自解密存档选项。你需要在你身边的一个 Windows 盒子上使用 GPG,你只需要附加一个密码。可能需要玩一段时间,因为我已经很多年没有做过了。