我对 Maven 中央存储库安全性进行了一些研究,尤其是交叉构建注入攻击 (XBI)。我阅读了一些链接,我在下面列出了这些链接:
http://www.sonatype.com/people/2010/01/how-to-generate-pgp-signatures-with-maven/
http://maven.apache.org/guides/mini/guide-central-repository-upload.html
在基于 Maven POM 的自动构建系统中验证依赖项真实性
以下是我理解的关键点
- 所有上传到中央存储库的工件都需要由开源项目的发布经理拥有的 PGP 私钥签名的工件。
- 公钥应提交给密钥服务器,例如 MIT 密钥服务器
- 手动验证下载的工件很麻烦。
- Nexus Pro 等存储库管理器提供了自动验证下载工件签名的功能。
但是,Nexus Pro 是如何进行自动验证的呢?Nexus 是否维护 Maven Central 托管的所有开源项目的 PGP keyid 存储库?sonatype 是否对开源项目上传到密钥服务器的 PGP 公钥进行验证和签名?有人知道内幕吗?