【问题标题】:Ensure good security / code signing for builds with Maven + Java + Clojure使用 Maven + Java + Clojure 确保构建的良好安全性/代码签名
【发布时间】:2012-11-27 14:44:57
【问题描述】:

我有许多使用 Maven 构建并部署到公共存储库 (clojars.org) 的 Java 和 Clojure 开源项目。我使用 Eclipse 作为 IDE,使用 git / GitHub 作为源代码控制,使用 Windows 7 作为操作系统,使用 PuTTY / pageant 作为我的密钥。

这很好用,但我想确保我遵循最佳实践并签署我的所有工件,以便其他人可以信任它们,同时我也可以验证这些工件没有被篡改。

我应该采取哪些关键步骤来确保我的所有工件都得到正确签名和验证?理想情况下,我希望它能够很好地集成到 Maven 构建过程中,这样我就不必遵循额外的手动步骤。

【问题讨论】:

  • 你能再具体一点吗?这几乎接近于“非建设性”的讨论型问题。您感兴趣的仅仅是签名机制吗?
  • 我要求的是所需的步骤 - 不是讨论(尽管显然 cmets 对这些步骤背后的基本原理会有所帮助!)

标签: java security maven clojure code-signing


【解决方案1】:

除了签名之外,您还需要在与 Maven 存储库不在同一位置的某个地方提供签名和公钥,例如你的网页。否则签名不会达到提高他人信任的目的,只有你自己。如果我不能确定工件上的签名是你的,我的信任度并没有提高。

【讨论】:

    【解决方案2】:

    Maven GPG plugin docs 是工件签名的良好起点。

    【讨论】:

    • GPG 插件是标准/推荐的方法吗?还有其他值得考虑的选择吗?
    • @mikera,如果您计划部署到公共 Maven 存储库(我想您提到了 clojars),那么这是一个不错的选择。不过,Maven 并不是打包和部署 Java 代码的唯一方法。无论如何,就密钥对生成、签名、公钥分发等而言,高级流程是相似的。
    【解决方案3】:

    顺便提一下(我知道你提到了 maven,但 leiningen 是 Clojure 的一个很好的替代品,它具有内置的 Clojars 支持):

    最新的 Leiningen 预览版支持使用 GPG 密钥进行自动签名,以及使用签名的 pom/jar 自动部署 clojars。上周论坛上有一个帖子(有些人抱怨它有点坏)——我认为它很快就会准备好迎接黄金时段,如果你使用的是 leiningen,这可能是 Clojure 项目的最佳实践.

    讨论中有几个分步指南。对于 Windows,您可能需要查看 http://www.gpg4win.org/ 以获得 gpg 支持,以生成密钥。

    https://groups.google.com/d/topic/clojure/AsPs9ZonRPQ/discussion

    在 clojars 中配置 GPG 公钥后, lein deploy clojars 是您部署所需要做的所有事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-06
      相关资源
      最近更新 更多