Hi, Am 02.11.2011 17:11, schrieb Robin H. Johnson: > On Wed, Nov 02, 2011 at 01:03:21PM +0100, enno+gentoo@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