Maven Central工件的预期GPG用户ID?

时间:2016-05-20 04:12:09

标签: maven gnupg sign pgp openpgp

我正在经历(看似错综复杂的)程序,以便在Maven Central上获取公司的工件。然后我进入了GPG签约部分,进入了一个混乱和难题的新世界。 GPG有很多选择,而且签署公司工件的合理做法并不明显。

假设Acme想要向Maven Central发布工件org.example.acme:foobar:1.0.0。他们应该用什么用户名来签名?什么子项?如何将密钥与用户的个人密钥分开?

让我解决所有的疑惑,让你知道为什么会让人感到困惑。

  • 我应该为Acme使用哪些电子邮件?我应该使用admin@acme.example.com吗?身份应该是Acme,还是Acme的一个部门?或者只有个人签署文件以便在Maven上发布?
  • 评论怎么样?一个source说我们应该完全放弃评论。我应该使用"Acme (software) software@acme.example.com"吗?或者只是"Acme acme@acme.example.com"
  • 好吧,也许你说这没关系,这一切都是以意见为基础的,我可以用任何适用于我公司的东西---很好。但是,我如何将公司和个人ID分开?我可以在同一台计算机上的同一个密钥环上为Acme和John Doe提供一个单独的密钥吗?在发布工件时,我如何区分它们?所有示例似乎都假设您使用的是单一身份。
  • 我应该使用子键吗?我应该为不同的部门创建不同的子项吗?或者相同子键的不同身份?或者是什么?
  • 我的钥匙是否应该过期?或者只是主键?或者只是子项?

我可以继续下去......试着总结一下,所有的例子似乎都假设1)用户只在他们的密钥环上安装了一个用户ID,2)每个签署他们的工件的人都是个人,而不是公司

签署组织的Maven工件的预期方法是什么?用户如何独立于用户的个人密钥管理组织的密钥?

1 个答案:

答案 0 :(得分:2)

  

我应该为Acme使用哪些电子邮件?我应该使用admin@acme.example.com吗?身份应该是Acme,还是Acme的一个部门?或者只有个人签署文件才能在Maven上发布?

使用密钥使用用于组/部门公共通信的那个。对于较小的公司,我可能会选择info@acme.example.com等通用地址。

不要混在一起。这是一个公司密钥,用于标识公司(或公司内部的特定职能),而不是个人。

  

评论怎么样?一位消息人士称,我们应该完全放弃评论。我应该使用" Acme(软件)software@acme.example.com" ;?或者只是" Acme acme@acme.example.com"。

"软件&#34>评论添加任何相关信息?我不这么认为,所以请把它留下,因为它只会增加噪音。

通常,像#34;签署密钥"被添加为此类键的注释。我不认为这是必要的,因为用法很明显。如果您想阻止其他人使用该密钥发送加密邮件,最好将密钥使用限制为仅签名,强制执行此限制(并且不要求其他用户不要使用密钥进行加密)。 / p>

  

好吧,也许你说它并不重要,所有这些都是基于意见的,我可以使用任何适用于我公司的东西---很好。但那我如何保持公司和个人身份私密?我可以在同一台计算机上的同一个密钥环上为Acme和John Doe提供一个单独的密钥吗?在发布工件时,我如何区分它们?所有示例似乎都假设您使用的是单一身份。

您的计算机上可以有任意数量的密钥,这不是问题。 Maven (and other software relying on GnuPG) can be configured to use a specific key.通常,您可以在其中放置用户ID,邮件地址,密钥ID或指纹 - 因为这是一次性配置,更好地使用最具体的方式,指纹。

  

我应该使用子键吗?我应该为不同的部门创建不同的子项吗?或者相同子键的不同身份?还是......

是的,你应该。这是一个重要的关键。保持主键脱机(在安全的情况下......;对于其他人,除了组织中最重要的人员/经理),访问权限非常小。只分发限制签名的子密钥:您可以将这样的密钥放在构建服务器上,也可以将其交给正在推送构建的员工。如果您需要更换密钥,则不必更改主密钥,只需更改子密钥(这不是很费力,特别是不会告诉客户有关新密钥的信息)。

为了减轻员工离开公司的副本密钥,请利用OpenPGP智能卡(也可能是YubiKey)。钥匙无法从卡中取出,因此钥匙被盗等于卡的被盗(很难被忽视)。