使用gpg签署maven工件的目的

时间:2012-03-25 18:10:09

标签: maven-3 gnupg

我知道这可以在发布时使用maven-gpg-plugin完成。但是,我不是在开发开源软件。我还需要签署自己的文物吗?这有什么意义?我认为,一旦我的资源被编译成JAR,它们无论如何都是安全的吗?谢谢!

1 个答案:

答案 0 :(得分:4)

如果您将源代码编译成jar就可以了。但是jar a只是简单的zip文件,可以通过unzip / jar简单地解压缩,之后你可以修改jar的内容,这意味着你可以简单地更改内容并将其重新打包到jar中。所以要说清楚:安全是完全错误的。

如果您通过maven创建工件,则会将工件部署到存储库管理器,并在发布过程中创建SHA1总和...可以在使用依赖项(下载)期间进行检查。如果存储库中的校验和与通过jar存档计算的校验和不同,则默认配置只会打印出警告。如果您愿意,可以更改配置以在checksum is wrong时中断构建。 校验和仅用于识别工件的修改,这些修改也不是100%安全的,因为您可能发生中间人攻击,这可能不仅会修改jar的内容以及校验和。 另一方面,工件的签名用于识别谁创建了该工件。在某些环境中,在发布过程中对工件进行签名是有意义的。

更新为了防止中间人附加Maven中央存储库长时间使用https而不是http。