Debian 存储库的 GPG 密钥是否应该在其维护者之间共享?

Debian 存储库的 GPG 密钥是否应该在其维护者之间共享?

我正在按照本教程设置 Debian 存储库

https://wiki.debian.org/SettingUpSignedAptRepositoryWithReprepro

这个存储库将由我和我的同事管理。我们想要对软件包和存储库本身进行签名,因此我需要一个 GPG 密钥。当然,我不应该使用自己的 GPG 密钥,否则我的同事就无法管理存储库。因此,我想专门为这个存储库创建一个新的 GPG 密钥,然后与我的同事共享私钥。

这是让许多人管理存储库的正确方法吗?我不喜欢共享私钥的想法(并且我认为对于由许多人管理的存储库来说,这种做法的扩展性不好),但另一方面,我看不出还有其他方法可以做到这一点。

我想有一个简单的解决方案,但是我缺乏这种服务器的经验,所以没有帮助。

编辑:这里提到了共享私钥http://irtfweb.ifa.hawaii.edu/~lockhart/gpg/(最底部的用例 2)

答案1

我还没有对 Debian 软件包做过这样的事情,但我们在以前的工作中对 RPM 做过这样的事情:我们制作了一个签名服务器,它保存着私钥,没有人可以直接访问它。(好吧,除了我们这些在该系统上担任系统管理员的人;根据您的安全需求,您可以使这个“防火墙”更强大。)

签名服务器有一个 Dropbox 区域。您可以通过 ssh 密钥或密码等方式限制该区域,或者,由于下一步,您甚至可以将其向全世界开放。

监控 Dropbox 区域是否有新文件。当它们出现时,检查它们是否已签名使用其中一位维护者的有效密钥。如果不是,请删除它们。然后,使用您想要的任何其他检查检查它们是否是有效的包文件,将它们复制到为签名服务保留的用户帐户下的暂存区。通过验证后,签名服务器将使用自己的密钥(同样,该密钥不可直接读取)对包进行签名。

而且为了方便,我们让同一台服务器实际运行存储库创建工具。与 RPM 不同,您的存储库本身是经过签名的,因此这似乎特别方便,因为您可以在此处添加签名,同样使用无人能直接访问的私钥。

稍微强一点的版本会删除自动拾取,并让签名者每次都输入密钥的密码。这样,维护系统的人甚至可能无法通过作弊和直接访问来签署软件包。(当然,他们可以给系统植入木马,但让我们把这种程度的偏执留到其他话题。或者您可以决定无论如何您都必须信任系统管理员并通过策略强制执行这一点,同时保留 drop-box 方法的便利性。)

相关内容