如何防止 OpenPGP 私钥被导出?

如何防止 OpenPGP 私钥被导出?

有没有什么方法可以防止导出私人 OpenPGP 密钥,比如每次导出前都要求输入密码?

我尝试导出私钥几次,每次导出前 GnuPG 都没有要求我输入密码。不过导出的私钥是加密的。

答案1

不是的。最终,你的所有私钥都存储在磁盘上,而你的密码是已经什么可以防止它们被盗。

GnuPG 2.x有点按照您想要的方式工作。在 1.x 中,“导出”只是将 secring 的相关块(仍处于加密状态,没有任何变化)复制到输出文件。在 2.x 中,密钥导出通过 gpg-agent,它首先使用当前密码解密密钥,然后使用新密码重新加密。

但即使禁止导出,有人也可以很容易地从您的复制secring.pgp或。但如果不知道密码,它们就毫无用处。private-keys.d/~/.gnupg/

答案2

导出(加密)密钥与复制密钥环并没有什么不同。如果要防止这种情况发生,您必须阻止对文件的访问(适当的权限,但您几乎无法保护它免受计算机系统管理员或以您的用户帐户运行的任何恶意应用程序的侵害)。

不过,有一种方法可以保护私钥不被复制:OpenPGP 和 GnuPG 都支持 OpenPGP 智能卡。这些智能卡拥有自己的加密处理器来执行私钥操作,因此私钥永远不会离开卡(毕竟无法导出)。此类智能卡有多种款式:由核心概念或作为FSFE 会员卡。还有可用的 USB 令牌,例如YubiKeys硝基钥匙

相关内容