Re: [gentoo-dev] Manifest signing

2011-11-03 Thread enno+gentoo
Hi,

Am 02.11.2011 17:11, schrieb Robin H. Johnson:
 On Wed, Nov 02, 2011 at 01:03:21PM +0100, enno+gen...@groeper-berlin.de wrote:
 I followed the threads about manifest signing with interest and even had
 a look at the manifest signing guide [4]. Sounds nice at first view.
 But, please correct me, if I'm wrong. I didn't find a place where these
 signatures are verified.
 Is manifest signing for the infrastructure team, enabling them to verify
 the author of a commit (see GLEP57 [1])? Wouldn't this be obsoleted by
 commit signing if the move to git is done ([2])?
 Developer signing is radically altered in the face of git yes, that's
 one of the reasons not much has happened there. But the other larger
 reason is that developer signing pales in importance to the signature
 chain between infra-user.
If developer signing works, it could act as a trust chain between
(developer-)infra-user. And it could work with good old default
emerge --sync, not only with emerge-webrsync and snapshots.
If its senseless to do anything in this area as long as the move to git
isn't done, there is no need to wine about unsigned manifests.
At least if there isn't anyone checking developer signatures at the moment.

 If it is (also) for the users, why is there no code for it in portage
 anymore [3]?
 Hmm, I hadn't see that removal, but it makes sense unless the entire
 tree is developer-signed, which isn't likely to happen soon.
I don't agree here. Of course the implementation shouldn't stop the user
from installing an unsigned package at the moment. But it could give a
warning instead and ask the user what to do.
In this way developers are encouraged to sign their packages (to make
the warning go away) and users get the ability to check the signatures,
that already exist.
Key problem here is the Gentoo keyring (how to ensure it didn't get
manipulated).

 Okay why is clear. Obviously nobody was maintaining it...
 The code worked when I used it...
I didn't check it. All I have are the commit messages and the
feature-removal of the portage team.

 I thought about signing the manifests of my overlay. But this is
 senseless, if there is no automatic check. I can't think of any user
 verifying manifest signatures by hand.
 There's a chicken  egg problem with most signing. You need to
 communicate the valid keys out of band from the actual repo.
 Maybe the layman data is a good place for that, but until such a
 location is figured out, you have zero security gain (if the 'correct'
 keys are only listed in a file in the repo, any attacker just replaces
 that when he puts his other content in).
Of course. But security is always worth thinking about it.
First step: What are the possibilities the check the signatures? FAIL.
In my case some (most?) of the users of my overlay should know my GPG
key already. The web of trust works here. The drawback for possible
other users would be a false sense of security.

 How does infrastructure team check, if a GPG key belongs to a developer?
 The Manifest signing guide [4] simply says Upload the key to a
 keyserver. Everbody can upload a key to the public keyservers. An
 attacker, able to modify a signed Manifest, could simply create a new
 key on the developers name and use it to sign the modified manifest.
 Therefore it must be clear which key really belongs to a dev.
 Developers specify in their LDAP data what keys are theirs, and this
 gets exported here, amongst other places:
 http://www.gentoo.org/proj/en/devrel/roll-call/userinfo.xml
Thanks for the enlightenment. But I doubt, if this should be the way to
go (see below).

 There was a prototype keyserver at one point as well, and I can generate
 new keyrings if needed based on the LDAP data.
This could be okay for a first creation. Later I would prefer something
like Debian does:
http://keyring.debian.org/replacing_keys.html
That way you would decouple the LDAP and the keyring and trust only the
data, that is already in the keyring (somebody whose key is already in
the keyring signing the request for a new key).
See also: http://keyring.debian.org/
Perhaps the prototype keyserver already did something like that.

 
 Furthermore the Tree-Signing-GLEPs [5] seem to be incomplete.
 This looks like the right place to continue work on Tree Signing.
 Those were the draft copies, which were finalized into GLEP 57..61.
 You are correct that there are two unfinished GLEPs in that directory:
 02-developer-process-security
 03-gnupg-policies-and-handling
 
 Of those, 03 can probably be written at this point.
 02 is going to change radically when git comes into play.
I had those 2 in mind, yes.

Regards,
Enno



signature.asc
Description: OpenPGP digital signature


Re: [gentoo-dev] Manifest signing

2011-11-02 Thread enno+gentoo
Hello,

Am 29.09.2011 17:02, schrieb Anthony G. Basile:
 Hi everyone,
 
 The issue of Manifest signing came up in #gentoo-hardened channel ...
 again.  Its clearly a security issue and yet many manifests in the tree
 are still not signed.  Is there any chance that we can agree to reject
 unsigned manifests?  Possibly a question for the Council to adjudicate?

I followed the threads about manifest signing with interest and even had
a look at the manifest signing guide [4]. Sounds nice at first view.
But, please correct me, if I'm wrong. I didn't find a place where these
signatures are verified.
Is manifest signing for the infrastructure team, enabling them to verify
the author of a commit (see GLEP57 [1])? Wouldn't this be obsoleted by
commit signing if the move to git is done ([2])?
If it is (also) for the users, why is there no code for it in portage
anymore [3]?
Okay why is clear. Obviously nobody was maintaining it...
I thought about signing the manifests of my overlay. But this is
senseless, if there is no automatic check. I can't think of any user
verifying manifest signatures by hand.
To me it looks like there are repeating complaints about missing
signatures, but I don't see any verification methods for existing
manifest signatures.
At the moment there are 10608 of 15085 manifests signed in my portage
tree. But I can't check them, because I don't have the public keys and
if I fetch them from a public keyserver, I still don't know, if they
really belong to the corresponding Gentoo developers.
Is there some kind of Gentoo Keyring I don't know of?

How does infrastructure team check, if a GPG key belongs to a developer?
The Manifest signing guide [4] simply says Upload the key to a
keyserver. Everbody can upload a key to the public keyservers. An
attacker, able to modify a signed Manifest, could simply create a new
key on the developers name and use it to sign the modified manifest.
Therefore it must be clear which key really belongs to a dev.

Furthermore the Tree-Signing-GLEPs [5] seem to be incomplete.
This looks like the right place to continue work on Tree Signing.

Regards,
Enno

[1] http://www.gentoo.org/proj/en/glep/glep-0057.html
[2]
http://archives.gentoo.org/gentoo-dev/msg_91813ec042831af2fd688e7ecfae4943.xml
[3]
http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=4c16649d121dca977b3c569f03c5d1b194b635d4
[4] http://www.gentoo.org/proj/en/devrel/handbook/handbook.xml?part=2chap=6
[5]
http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo/users/robbat2/tree-signing-gleps/



signature.asc
Description: OpenPGP digital signature