使用 GPG 自动检索密钥的安全性

Str*_*Bad 6 security gpg

我正在使用 Arch Linux 并尝试从 AUR 构建一个包。为了构建这个包,我需要从存储库下载源文件。Arch PKGBUILD 将密钥列为validpgpkey。虽然我可以单独下载此密钥,但也可以将 GPG 配置为自动检索密钥

keyserver-options auto-key-retrieve
Run Code Online (Sandbox Code Playgroud)

包构建过程显然存在安全隐患。我的理解是该auto-key-retrieve选项是全局的,其他程序现在可能会开始自动下载密钥。这有什么类型的安全隐患?

Ste*_*itt 5

包构建过程本身是安全的,即使使用自动密钥检索:因为validpgpkeys必须列出完整的指纹,所以自动检索的密钥肯定是正确的。受自动密钥检索影响的主要用例是检测对validpgpkeys声明的不需要的更改(但无论如何都应手动验证此类更改,而不仅仅是在gpg抱怨其密钥环中没有必要的密钥时)。

auto-key-retrieve选项确实是全局的,因此启用它意味着任何gpg涉及不在您的密钥环中的密钥的交互都将从您的默认密钥服务器下载该密钥。这产生的实际差异取决于两个因素:您在手动下载密钥时所做的验证,以及您的密钥和您正在下载的密钥是否已连接。显然,如果你总是在将密钥添加到您的密钥环之前验证带外密钥,您不想启用自动密钥检索。如果您使用的密钥已连接,并且您使用信任信息,那么无论密钥来自何处,这都是有效的,因此自动密钥检索是安全的。在这两个极端之间,在我看来,如果您使用全指纹,自动密钥检索也是安全的;如果您不这样做,无论其来源如何,与密钥相关的风险都是相同的(例如,接受由真正密钥所有者签名的邪恶密钥签名的东西,或者更糟糕的是,将某些东西加密到邪恶的密钥,认为您是发给别人)。

真正的主要警告auto-key-retrieve手册中突出显示

请注意,此选项使“网络错误”之类的行为成为可能。Keyserver 或 Web Key Directory 运营商可以看到您请求哪些密钥,因此通过向您发送由全新密钥签名的消息(您的本地密钥环上自然不会有),运营商可以告诉您的 IP 地址和时间你验证了签名。