我正在经历(看似错综复杂的)程序,以便在Maven Central上获取公司的工件。然后我进入了GPG签约部分,进入了一个混乱和难题的新世界。 GPG有很多选择,而且签署公司工件的合理做法并不明显。
假设Acme想要向Maven Central发布工件org.example.acme:foobar:1.0.0
。他们应该用什么用户名来签名?什么子项?如何将密钥与用户的个人密钥分开?
让我解决所有的疑惑,让你知道为什么会让人感到困惑。
admin@acme.example.com
吗?身份应该是Acme,还是Acme的一个部门?或者只有个人签署文件以便在Maven上发布?"Acme (software) software@acme.example.com"
吗?或者只是"Acme acme@acme.example.com"
。我可以继续下去......试着总结一下,所有的例子似乎都假设1)用户只在他们的密钥环上安装了一个用户ID,2)每个签署他们的工件的人都是个人,而不是公司
签署组织的Maven工件的预期方法是什么?用户如何独立于用户的个人密钥管理组织的密钥?
答案 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)。钥匙无法从卡中取出,因此钥匙被盗等于卡的被盗(很难被忽视)。