java为什么要使用MavenGPGPlugin用GnuPG签署项目的工件?
我有两个问题要问
首先,我需要知道用“GnuPG”签署java项目工件的重要性
我目前的情况是,我正在考虑发布我的第一个公共java项目。我正在使用Maven来构建和管理这个项目,遇到了“Maven GPG插件”。关于插件的文档非常模糊,没有描述为什么人们应该用“GnuPG”为工件签名。我没有使用GnuPG/Maven GPG的经验,所以我想知道使用这个Maven插件有什么好处
我的第二个问题是,我将如何在Eclipse中的java项目上使用这个插件
在我构建项目时,是否只需将以下内容添加到我的pom.xml
签名中
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
如果没有,我将如何在Eclipse中与maven正确地签署该项目
谢谢!
# 1 楼答案
我没有在Maven中实际使用GnuPG的经验(我从来没有发布过Maven插件),因此我将把我的答案限制在你问题的第一部分
简单的散列和只能用于实现意外传输问题,如位翻转。与这些不同,GnuPG发布加密签名,也能够识别传输问题,但还可以验证签名数据的作者
如果没有加密签名,就无法知道您正在下载和执行的代码/程序是否真的是您期望的代码/程序。一次又一次地丢失或未经验证的加密签名会导致通过后门下载,就在最近Linux Mint had such an issue
加密签名并不意味着代码是正确的,没有(安全)问题,但至少知道您拥有作者发布的相同代码,这大大减少了后门的机会