Multiple dev one signing key
Konstantin Ryabitsev
konstantin at linuxfoundation.org
Fri Mar 8 20:38:16 CET 2019
On Fri, Mar 08, 2019 at 08:05:53PM +0100, john doe wrote:
>Hi,
>
>I'm considering working on a project that has only for now a couple of
>developers.
>As part of that project everything that will be released will need to be
>gpg signed.
>
>What is the best way forward?
>- One signing key accessible on the release system
>- Each dev having a copy of the key to be able to sign a release
>- Other suggestions
From the perspective of kernel.org, we've tried very hard not to have
signing keys residing on any kind of centrally managed infrastructure.
The general rule is that we place trust into developers, not into
infrastructure or systems admins.
Therefore, all tags and tarball releases are signed by developers
themselves, using their own PGP keys, and those keys are signed by the
lead developer (i.e. everyone signing tags on kernel.org can trace their
key via the web of trust to Linus Torvalds). So, if anyone wants to
verify a tag or a tarball sig, they can trace that developer's key to
Linus. I'm willing to bet that this happens extremely rarely, if ever --
most people just use "Trust On First Use."
If, for some reason, you can't use this approach and all your releases
must be signed by the same key, a solution I can suggest is having a
single Certify ("master") key with multiple Signing subkeys. Each
developer is given their own Signing subkey, but not the master key.
The master private key is kept offline with the passphrase split between
multiple members of the project using something like Shamir's Secret
Sharing. When someone new joins the team, a new Signing subkey is
created and given to them, and if someone leaves, then their subkey is
revoked.
There are downsides to this approach -- for example, everyone would need
to remember to refresh the pubkey regularly in order to get information
about new and revoked signing subkeys. If they don't do that, the
signatures would fail to verify due to "unknown key" error -- so if your
intended target for these signatures if the public at large, then you
are likely to have a lot of confusion about what is going on.
Anyway, I don't recommend having central infrastructure storing private
keys -- unless you invest a lot of effort into setting that up properly,
that's going to be a very interesting target for attackers to get into.
Best,
-K
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: not available
URL: <https://lists.gnupg.org/pipermail/gnupg-users/attachments/20190308/e614b9b0/attachment-0001.sig>
More information about the Gnupg-users
mailing list