我对 Maven 中央存储库的安全性做了一些研究,特别是交叉构建注入(inject)攻击(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
Verification of dependency authenticy in Maven POM based automated build systems
以下是我理解的要点
- 所有上传到中央存储库都需要对 Artifact 进行签名 由开源发布管理器拥有的 PGP 私钥 项目。
- 公钥应提交给 key 服务器,例如 作为 MIT key 服务器
- 手动验证下载的 Artifact 很麻烦。
- 存储库管理器(例如 Nexus Pro)提供自动验证下载项目签名的功能。
但是,Nexus Pro 是如何进行自动验证的呢? Nexus 是否维护 Maven Central 托管的所有开源项目的 PGP keyid 存储库? sonatype是否验证并签署开源项目上传到 key 服务器的PGP公钥?有谁知道内部原理吗?
最佳答案
所有 GPG key 都在公钥服务器上可用,并且 Nexus 会根据每个下载组件的 key 进行验证。每次上传到 Central 都需要一个已知的、注册的和批准的 key 。
有关该过程的更多详细信息,请访问 https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide
关于security - Nexus Pro 如何自动验证下载 Artifact 的真实性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15010743/