From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1Q4FXF-0006PK-4Q for garchives@archives.gentoo.org; Mon, 28 Mar 2011 16:43:21 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id AAB6CE05CF; Mon, 28 Mar 2011 16:43:12 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id 49B0C1C0F1 for ; Mon, 28 Mar 2011 16:42:45 +0000 (UTC) Received: from [66.170.231.104] (unknown [66.170.231.104]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: c1pher) by smtp.gentoo.org (Postfix) with ESMTPSA id 81F761B402C for ; Mon, 28 Mar 2011 16:42:44 +0000 (UTC) Message-ID: <4D90B9E4.5030303@gentoo.org> Date: Mon, 28 Mar 2011 12:40:04 -0400 From: Dane Smith User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.15) Gecko/20110321 Thunderbird/3.1.9 Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-dev@lists.gentoo.org Reply-to: gentoo-dev@lists.gentoo.org MIME-Version: 1.0 To: gentoo-dev@lists.gentoo.org Subject: Re: [gentoo-dev] Re: rejecting unsigned commits References: <201103252133.27978.dilfridge@gentoo.org> <201103261012.17119.dilfridge@gentoo.org> In-Reply-To: X-Enigmail-Version: 1.1.2 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Archives-Salt: X-Archives-Hash: ea21bb4f575b9d368c574659bcaa6867 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 03/27/2011 08:13 PM, Robin H. Johnson wrote: > On Sat, Mar 26, 2011 at 10:12:10AM +0100, Andreas K. Huettel wrote: >> 3) Rely on an existing key list somewhere distributed in portage; the list >> file with the key id's (not the keys themselves) is signed with a master key. >> Is a mediocre and potentially insecure workaround. >> Pros: you can exactly decide what keys are used and trusted, without thinking >> about GnuPG's inner workings. A user can edit his key and the key remains >> trusted. >> Cons: Mainly that the key id is a pretty short hash afaik.(Any better-informed >> people around?) > 1. Generate said list L from the GPG fields in LDAP (w/ long-form keyids) > 2. Clear-sign L, produces L' > 3. Include L' in /metadata/ during rsync content build. > 3.1. Provide all L' files in a trusted Git repository for historical reference. > 4. Tree-sign per GLEP58, such that signed list is included. > > Pros: > - L' is plaintext and works well w/ rsync deltas. > > Security weakpoints: > - Introduces new weak point if attacker can compromise the automated > clear-signing service of #2. > >> 4) Rely on an existing list of keys somewhere distributed in portage and >> possibly somewhere else (keyservers); a key userid is signed with a master >> key. Work with GnuPG's well-tested and well-thought-out trust relationships. >> Back to start, time to re-read the entire thread... :) > What does this actually add over #3 in terms of security? > This is an extremely non-trivial question. You're talking about signing each individual key's fingerprint vs generating a list of key fingerprints (hashes of the key), concatenating them all, hashing THAT, and then signing that hash. - From a cryptologic point of view, I would be *extremely* impressed with anyone that can find a proof of security that shows that those two are equivalent. Simple(ish) example. By creating a list you're introducing a lot of data that is then getting hashed. Now, from a cryptologic point of view, I would *not* attack the signature per se, but rather the underlying hash of the list. By providing a large file with lots of data, there are attacks against (some) has functions that can make use of this (Small changes in the file that will result in the same hash with probability greater than normal). (Anyone know off the cuff what hash is actually used?) Now, the other method would require having to single out each hash on it's own, and the underlying key that it hashed. That data is harder to deal with because you have to manipulate one key into another *valid* key(a difficult task to have it still be valid) and have it come out with the same hash. Whereas with the file, who cares if they invalidate another key, as long as they can get their hash into the file and have the hash for the sig come out the same. Point being, what it adds / subtracts is not a simple question. Crypto is a funny beast, and is best not trifled with unless you understand the underlying math / the current attacks etc (And even then, don't do it =P). Do I think that using #4 gives us a huge difference over #3, even with my years of study on this topic I would not even begin to try to answer that. Chances are the difference is negligible for our *needs* (see below), but I don't think it's negligible in the true sense of security. Having said that we aren't exactly talking about securing the end all be all. We just want to be able to verify with a reasonable degree of certainty that the tree is in a good state and that it wasn't tampered with. Do we really need the end all be all, I somehow doubt it. - -- Dane Smith (c1pher) Gentoo Linux Developer -- QA / Crypto / Sunrise / x86 RSA Key: http://pgp.mit.edu:11371/pks/lookup?search=0x0C2E1531&op=index -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.17 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQIcBAEBAgAGBQJNkLnkAAoJEEsurZwMLhUxV64P/1AbiEkcbouFd/XZ50aq/BsC LRjlUC5GbCpBL1MBTigP1OWO0HT8JvBEKJPAbwChr+KSQqtk3/HOcaoRTlJDz3hf iG7NrKkh4VECwErshFpzS1/D0D7M2qFXABat7DE/lPmFrIpI96XSd+ZAnjLMtM0g RoFOAyJ3s3CEIKeG3n448TQagpHkAGinzgkmtA8NZRUf/ziukA7Gk7lQGC+e9YIE MViWW4bBB1PQq4XL5in58JH2ohQBx49+RgeovdREnTWFJlDsHbxIZN3JTV8EHq7a 8xpni/uPLCbW3XGS2G3x/L7f8yPJOqEyTPROU3s+YGDtZkDYwDI1bn+k2Fnu+3a7 kkFyp4aRrajiFE4WK20iBnnPJn1knfR47O6UEP4aZu/GCC3s/3fJP5pVNlnla7mU 5RXJ1j6Tj3MQoCBdbGypEaVYJf1ZiJGdpUYOHpi4XL2R3mh8XsmnEF53pdp7GOk/ wHfuKvvZ5uKtYawj8QhVB8+Y97kTNYc7t7OIShpAZb0SoyUN+ZGoal4pDASkSM15 uATdmilb7z5JIEKiQ0lLwjdLjJJq5imgpB4YuQBqiF3sKmH8N9Qf5+kCRxvSE09y lq1hWqppGX+H4CvA5FPRkB7/Qvg2prmwfdIqDlGWfMlR2KLsFoIzRyjKnL1xSCgn eX/hTD9umMkzOho7l1eL =h4nm -----END PGP SIGNATURE-----