From: "Shawn O. Pearce" <spearce@spearce.org>
To: Sam Vilain <sam@vilain.net>
Cc: git@vger.kernel.org
Subject: Re: [RFC] Authenticate push via PGP signature, not SSH
Date: Mon, 28 Jan 2008 03:12:58 -0500 [thread overview]
Message-ID: <20080128081258.GE24004@spearce.org> (raw)
In-Reply-To: <479D5611.4010205@vilain.net>
Sam Vilain <sam@vilain.net> wrote:
...
> The key idea is to reject pushes if the PGP signature cannot be verified.
...
> When heads are pushed, the signed tags that are moved from refs/heads/
> foo can be saved in an "archive" tag space, such as under refs/audit/
> KEYID/ - this will allow, in the case of a network of git servers, for
> servers to synchronise from each other, even when they
> don't trust each other.
This is certainly interesting. It would benefit from the recursive
locking scheme we were talking about for the update hook, which
someone (Steven Grimm?) wanted so they could execute git-svn
transparently during push and have the update hook change the ref
instead of receive-pack.
The downside to this is you have to tag everything before you push
it, so you need some sort of wrapper around git-push. That isn't
as hard as it sounds for the command line case, but it does make
things more difficult for a usage from say git-gui. :)
I was also thinking about using GPG to sign the command packets
being sent between send-pack and receive-pack. If the GPG signature
for that set of packets is good and a known key then the update is
allowed to continue. This avoids the mess of needing to run git-tag
locally before push, and of needing to "unwrap" the temporary tag
in the receiving repository, but it adds yet another extension to
the send-pack/receive-pack protocol.
> This does force potential contributors to get PGP keys, and get them
> signed - but that seems to me to be a reasonable barrier of entry and
> may even help drive some PGP adoption.
In many cases today such contributers would have been forced to get
an SSH account on the server they want to push to. Getting an SSH
account configured and a key installed may be more difficult than
generating a PGP key pair and emailing in the public key.
Of course the PGP based system is nicer in that the administrator
might get a public key that has been signed by others he trusts,
and thus is more readily able to verify that the contributor is
who they think it is.
To be perfectly honest, in a wide open source community I think
the truely distributed nature of development like the linux kernel
or git itself uses works very well. Development schedules aren't
organized into "next 30 minutes", "next 4 hours", and "next week".
Peer review and community acceptance of changes is a very important
concept. Blindly accepting changes into a tree because of a PGP
signature/SSL certificate/SSH key isn't really the norm, and is
far from the best solution. We've all posted cr**p^Wless-than-
the-best-code to this list before, and yet many of us would have
"committer access" to the git tree under a centralized model.
I'm happy my changes aren't accepted just because I signed them.
Its better that Linus/Nico/Dscho/Junio/you/et.al. have looked at
them and also felt they were worthwhile.
But in a smaller business type setting, where there's under 100
employees working, odds are you've already created the user account
on systems, and physically passed the initial password via a sticky
note after checking the person's government issued IDs. In such a
setting having yet another authentication system (PGP keys) is just
yet more work for the already over worked/under appreciated IT staff.
--
Shawn.
next prev parent reply other threads:[~2008-01-28 8:13 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-28 4:12 [RFC] Authenticate push via PGP signature, not SSH Sam Vilain
2008-01-28 8:12 ` Shawn O. Pearce [this message]
2008-01-28 21:06 ` Jan Hudec
2008-01-28 21:58 ` Sam Vilain
2008-01-29 2:57 ` Shawn O. Pearce
2008-01-29 4:10 ` Shawn O. Pearce
2008-01-29 19:08 ` Pierre Habouzit
2008-01-30 4:22 ` Shawn O. Pearce
2008-01-30 5:55 ` Sam Vilain
2008-01-30 6:16 ` Shawn O. Pearce
2008-01-30 8:35 ` Pierre Habouzit
2008-01-30 20:22 ` Sam Vilain
2008-01-30 8:00 ` Johannes Sixt
2008-01-31 5:43 ` Shawn O. Pearce
2008-01-30 8:33 ` Pierre Habouzit
2008-01-31 4:30 ` Shawn O. Pearce
2008-01-31 9:25 ` Pierre Habouzit
2008-01-30 6:29 ` Sam Vilain
2008-01-30 7:47 ` Shawn O. Pearce
2008-01-31 1:18 ` Sam Vilain
2008-01-28 8:48 ` Pierre Habouzit
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080128081258.GE24004@spearce.org \
--to=spearce@spearce.org \
--cc=git@vger.kernel.org \
--cc=sam@vilain.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).