maven';s OpenPGP签名是否有人可以创建和上传任何密钥?

maven';s OpenPGP签名是否有人可以创建和上传任何密钥?,maven,openpgp,Maven,Openpgp,Sonatype要求(非快照版本)工件进行GPG签名;公共OpenPGP密钥应上传到(MIT)密钥服务器 但是任何人都可以通过电子邮件创建任何名称的OpenPGP密钥,并将其上传到密钥服务器。(据我所知,或者我错了吗?)没有将特定软件项目/库与特定公钥关联的自动机制。当然,如果有人想检查工件的真实性,可以随时向软件作者请求公钥,或者该密钥已经发布在某个地方(以与特定软件项目相关联的方式);但是,由于这不能自动完成,几乎没有人这样做 因此,整个OpenPGP签名过程似乎也是非常技术和耗时的,它更像

Sonatype要求(非快照版本)工件进行GPG签名;公共OpenPGP密钥应上传到(MIT)密钥服务器

但是任何人都可以通过电子邮件创建任何名称的OpenPGP密钥,并将其上传到密钥服务器。(据我所知,或者我错了吗?)没有将特定软件项目/库与特定公钥关联的自动机制。当然,如果有人想检查工件的真实性,可以随时向软件作者请求公钥,或者该密钥已经发布在某个地方(以与特定软件项目相关联的方式);但是,由于这不能自动完成,几乎没有人这样做

因此,整个OpenPGP签名过程似乎也是非常技术和耗时的,它更像是灌输了一种虚假的安全感,而不是实际上为普通用户提供了很多安全性


那么,难道不应该有一种自动/简化的方式将软件项目与OpenPGP密钥关联起来,从而使整个过程真正安全吗?

应用OpenPGP签名可以让其他人通过信任网验证作者身份。由于这确实是一个相当复杂的方法,具有相当陡峭的学习曲线,因此默认情况下不会强制执行

Sander Mak写了一篇文章。遗憾的是,他没有展示更好的执行自动验证的方法,而是使用商业软件作为Maven Central代理:

自动验证? 到现在为止,您一定在想‘仅仅为了验证一个依赖关系就需要做大量的工作’。你完全正确。应用程序通常使用许多依赖项,手工检查它们很快就会变得单调乏味。在我看来,基于Maven的构建工具支持自动PGP签名验证是一个巨大的机会。在这种情况出现之前,您还可以使用Sonatype的Nexus存储库管理器作为Maven Central的代理。它可以自动检查PGP签名是否存在代理工件,并在签名检查失败时拒绝为其提供服务。不幸的是,这只能使用商业版Nexus Pro,而不能使用开源版本


我最近遇到了一个相当新的项目,(),它是一个Maven工件,用于验证其他工件的OpenPGP签名,并使您能够将允许对给定工件签名的密钥列入白名单。

对工件签名只是第一步。缺少的是Maven依赖项定义还包括有关如何验证依赖项工件的信息。用于签名工件的哈希或预期OpenPGP密钥。另见和。