Re: [git patches] libata updates, GPG signed (but see admin notes)

10 messages, 6 authors, 2011-11-01 · open the first message on its own page

Re: [git patches] libata updates, GPG signed (but see admin notes)

From: Junio C Hamano <hidden>
Date: 2011-10-31 22:44:30

"H. Peter Anvin" [off-list ref] writes:
On 10/31/2011 03:30 PM, Linus Torvalds wrote:
quoted
But if you do the normal "git pull git://git.kernel.org/name/of/repo"
- which is how things happen as a result of a pull request - you won't
get tags at all - you have to ask for them by name or use "--tags" to
get them all.
Didn't realize that... I guess I'm too used to named remotes.

If so, just using a tag should be fine, no?
So nobody is worried about this (quoting from my earlier message)?

   On the other hand, the consumers of "Linus kernel" may want to say that
   they trust your tree and your tags because they can verify them with your
   GPG signature, but also they can independently verify the lieutenants'
   trees you pulled from are genuine.

A signed emphemeral tag is usable as means to verify authenticity in a
hop-by-hop fashion, but that does not leave a permanent trail that can be
used for auditing.

Re: [git patches] libata updates, GPG signed (but see admin notes)

From: "H. Peter Anvin" <hpa@zytor.com>
Date: 2011-10-31 22:47:21

On 10/31/2011 03:44 PM, Junio C Hamano wrote:
"H. Peter Anvin" [off-list ref] writes:
quoted
On 10/31/2011 03:30 PM, Linus Torvalds wrote:
quoted
But if you do the normal "git pull git://git.kernel.org/name/of/repo"
- which is how things happen as a result of a pull request - you won't
get tags at all - you have to ask for them by name or use "--tags" to
get them all.
Didn't realize that... I guess I'm too used to named remotes.

If so, just using a tag should be fine, no?
So nobody is worried about this (quoting from my earlier message)?

   On the other hand, the consumers of "Linus kernel" may want to say that
   they trust your tree and your tags because they can verify them with your
   GPG signature, but also they can independently verify the lieutenants'
   trees you pulled from are genuine.

A signed emphemeral tag is usable as means to verify authenticity in a
hop-by-hop fashion, but that does not leave a permanent trail that can be
used for auditing.
Well, the permanent trail is in the maintainer's tree, but that might
still be suboptimal.  The problem with Linus pulling those tags I assume
that it makes the tree too noisy?

	-hpa

Re: [git patches] libata updates, GPG signed (but see admin notes)

From: "Ted Ts'o" <tytso@mit.edu>
Date: 2011-10-31 22:49:17

On Mon, Oct 31, 2011 at 03:44:25PM -0700, Junio C Hamano wrote:
So nobody is worried about this (quoting from my earlier message)?

   On the other hand, the consumers of "Linus kernel" may want to say that
   they trust your tree and your tags because they can verify them with your
   GPG signature, but also they can independently verify the lieutenants'
   trees you pulled from are genuine.

A signed emphemeral tag is usable as means to verify authenticity in a
hop-by-hop fashion, but that does not leave a permanent trail that can be
used for auditing.
Oh, there are definitely people who worry about this.  They tend to be
security poeple, though, so the goal is how do we leave the permanent
trail in a way that doesn't generate too much noise or otherwise makes
life difficult for developers who don't care.

							- Ted

Re: [git patches] libata updates, GPG signed (but see admin notes)

From: "H. Peter Anvin" <hpa@zytor.com>
Date: 2011-10-31 22:52:09

On 10/31/2011 03:49 PM, Ted Ts'o wrote:
On Mon, Oct 31, 2011 at 03:44:25PM -0700, Junio C Hamano wrote:
quoted
So nobody is worried about this (quoting from my earlier message)?

   On the other hand, the consumers of "Linus kernel" may want to say that
   they trust your tree and your tags because they can verify them with your
   GPG signature, but also they can independently verify the lieutenants'
   trees you pulled from are genuine.

A signed emphemeral tag is usable as means to verify authenticity in a
hop-by-hop fashion, but that does not leave a permanent trail that can be
used for auditing.
Oh, there are definitely people who worry about this.  They tend to be
security poeple, though, so the goal is how do we leave the permanent
trail in a way that doesn't generate too much noise or otherwise makes
life difficult for developers who don't care.
Could we introduce a tag namespace that doesn't show up in gitweb by
default, and perhaps doesn't resolve in abbreviated form?

This is basically what Linus suggested, as far as I understand:
something like refs/pulls/hpa/tip-123-456 which is otherwise a normal
tag object?

	-hpa

Re: [git patches] libata updates, GPG signed (but see admin notes)

From: Linus Torvalds <torvalds@linux-foundation.org>
Date: 2011-10-31 22:52:50

On Mon, Oct 31, 2011 at 3:44 PM, Junio C Hamano [off-list ref] wrote:
So nobody is worried about this (quoting from my earlier message)?
No, because you haven't been reading what we write.

The tag is useless.

The information *in* the tag is not. But it shouldn't be saved in the
tag (or note, or whatever). Because that's just an annoying place for
it to be, with no upside.

Save it in the commit we generate. BAM! Useful, readable, permanent,
and independently verifiable.

And the advantage is that we can make that same mechanism add
"maintainer notes" to the merge message too. Right now some
maintainers write good notes about what the merge will bring in, but
they are basically lost, because git is so good at merging and doesn't
even stop to ask people to edit the merge message.

                    Linus

Re: [git patches] libata updates, GPG signed (but see admin notes)

From: "H. Peter Anvin" <hpa@zytor.com>
Date: 2011-10-31 22:54:40

On 10/31/2011 03:52 PM, Linus Torvalds wrote:
Save it in the commit we generate. BAM! Useful, readable, permanent,
and independently verifiable.
Note: this means creating a commit even for a fast-forward merge.  Not
that there is any technical problem with that, of course.

	-hpa

Re: [git patches] libata updates, GPG signed (but see admin notes)

From: Linus Torvalds <torvalds@linux-foundation.org>
Date: 2011-10-31 23:04:14

On Mon, Oct 31, 2011 at 3:54 PM, H. Peter Anvin [off-list ref] wrote:
On 10/31/2011 03:52 PM, Linus Torvalds wrote:
quoted
Save it in the commit we generate. BAM! Useful, readable, permanent,
and independently verifiable.
Note: this means creating a commit even for a fast-forward merge.  Not
that there is any technical problem with that, of course.
Well, only for the signed case, but yes. And for that case it's likely
a good thing.

In fact, even without signing, some projects always use --no-ff,
because they want the merge messages with the nice summary in them.
I've played around with it too, but haven't generally found it to be
worth it, and tend to think that it aggrandizes the merger too much.

It generates nice merge summaries, and it can look nice, but if the
*only* upside is the merge summary I think it's borderline worth it.
But with a signature, it would suddenly actually contain real
information, and I think that changes the equation.

                           Linus

Re: [git patches] libata updates, GPG signed (but see admin notes)

From: Jeff Garzik <hidden>
Date: 2011-10-31 23:55:11

On 10/31/2011 06:44 PM, Junio C Hamano wrote:
"H. Peter Anvin"[off-list ref]  writes:
quoted
On 10/31/2011 03:30 PM, Linus Torvalds wrote:
quoted
But if you do the normal "git pull git://git.kernel.org/name/of/repo"
- which is how things happen as a result of a pull request - you won't
get tags at all - you have to ask for them by name or use "--tags" to
get them all.
Didn't realize that... I guess I'm too used to named remotes.

If so, just using a tag should be fine, no?
So nobody is worried about this (quoting from my earlier message)?

    On the other hand, the consumers of "Linus kernel" may want to say that
    they trust your tree and your tags because they can verify them with your
    GPG signature, but also they can independently verify the lieutenants'
    trees you pulled from are genuine.

A signed emphemeral tag is usable as means to verify authenticity in a
hop-by-hop fashion, but that does not leave a permanent trail that can be
used for auditing.
The main worry is Linus ($human_who_pulls) gets 
cryptographically-verified data at the time he pulls.  Once Linus 
republishes his tree (git push), there will be few, if any, wanting to 
verify Jeff Garzik's signature.

So no, I don't see that as a _driving_ need in the kernel's case.

And IMO the kernel will be a mix of signed and unsigned content for a 
while, possibly forever.


And Linus wrote:
[ Example gpg-signed small block that the attached patch adds to the
pull request: ]

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Commit be3fa9125e708348c7baf04ebe9507a72a9d1800
from git.kernel.org/pub/git
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.18 (GNU/Linux)

iQEcBAEBAgAGBQJOrsILAAoJEHm+PkMAQRiGxZcH/31e0RrBitXUPKxHJajD58yh
SIEe/7i6E2RUSFva3KybEuFslcR8p8DYzDQTPLejStvnkO8v0lXu9s9R53tvjLMF
aaQXLOgrOC2RqvzP4F27O972h32YpLBkwIdWQGAhYcUOdKYDZ9RfgEgtdJwSYuL+
oJ7TjLrtkcILaFmr9nYZC+0Fh7z+84R8kR53v0iBHJQOFfssuMjUWCoj9aEY12t+
pywXuVk2FsuYvhniCAcyU6Y1K9aXaf6w5iOY2hx/ysXtUBnv92F7lcathxQkvgjO
fA7/TXEcummOv5KQFc9vckd5Z1gN2ync5jhfnmlT2uiobE6mNdCbOVlCOpsKQkU=
=l5PG
-----END PGP SIGNATURE-----

This is my preference for kernel pull requests at the moment.  That has 
one advantage over Junio's "git pull --require-signature" and signed 
commits, notably, the URL is signed.

But in general signed commits would be nice, too.  pull-generated merge 
requests would need to be signed, potentially introducing an additional 
interactive step (GPG passphrase request) into an automated process.

	Jeff

Re: [git patches] libata updates, GPG signed (but see admin notes)

From: "H. Peter Anvin" <hpa@zytor.com>
Date: 2011-11-01 00:43:19

The main worry is Linus ($human_who_pulls) gets
cryptographically-verified data at the time he pulls.  Once Linus
republishes his tree (git push), there will be few, if any, wanting to
verify Jeff Garzik's signature.

So no, I don't see that as a _driving_ need in the kernel's case.

And IMO the kernel will be a mix of signed and unsigned content for a
while, possibly forever.
I think the desire is to be able to deconstruct things if things were to
go wrong.

	-hpa

-- 
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel.  I don't speak on their behalf.

Re: [git patches] libata updates, GPG signed (but see admin notes)

From: James Bottomley <James.Bottomley@HansenPartnership.com>
Date: 2011-11-01 05:39:09

On Mon, 2011-10-31 at 15:52 -0700, Linus Torvalds wrote:
On Mon, Oct 31, 2011 at 3:44 PM, Junio C Hamano [off-list ref] wrote:
quoted
So nobody is worried about this (quoting from my earlier message)?
No, because you haven't been reading what we write.

The tag is useless.
It's not useless to people who want to verify the tree after it's been
released by you (say for forensics or something).  As Peter said, we can
put it in a normally invisible namespace, but having a flag to make it
visible allows tools like git describe --contains to tell me which
signed tag was used to send a particular commit.
The information *in* the tag is not. But it shouldn't be saved in the
tag (or note, or whatever). Because that's just an annoying place for
it to be, with no upside.

Save it in the commit we generate. BAM! Useful, readable, permanent,
and independently verifiable.

And the advantage is that we can make that same mechanism add
"maintainer notes" to the merge message too. Right now some
maintainers write good notes about what the merge will bring in, but
they are basically lost, because git is so good at merging and doesn't
even stop to ask people to edit the merge message.
A signed empty commit containing the merge message as a comment also
looks fine to me.  We'd need extra tooling to say which signed merge
corresponds to this patch, but I'd say its workable.  The only slightly
counter intuitive thing is that for a non-trivial merge, my signed merge
description will have to be the next commit below rather than in the
actual merge you do (because we can't alter a cryptographically signed
commit).

James

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help