Re: [Trans] Call for adoption, draft-linus-trans-gossip-ct

Bryan Ford <brynosaurus@gmail.com> Thu, 22 October 2015 13:45 UTC

Return-Path: <brynosaurus@gmail.com>
X-Original-To: trans@ietfa.amsl.com
Delivered-To: trans@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 771BD1A90B2 for <trans@ietfa.amsl.com>; Thu, 22 Oct 2015 06:45:55 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level:
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id f6I1iad6zEWx for <trans@ietfa.amsl.com>; Thu, 22 Oct 2015 06:45:52 -0700 (PDT)
Received: from mail-wi0-x22b.google.com (mail-wi0-x22b.google.com [IPv6:2a00:1450:400c:c05::22b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A5C871A9060 for <trans@ietf.org>; Thu, 22 Oct 2015 06:45:51 -0700 (PDT)
Received: by wijp11 with SMTP id p11so32944886wij.0 for <trans@ietf.org>; Thu, 22 Oct 2015 06:45:50 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date:cc :message-id:references:to; bh=lbKg1j/F9Bj2aPm2SOKAa1M4XXQcGjLHQiht30eGKDU=; b=O+imUmU/AX5Jr2XaI35SfZeGE50cf8S30PNnp5nt2cRuLhXxyI0vba9Dat+MyoMc8r wTbpBktXx7Eu8WCWCxWAjSC2xO+zHPqBQ1xh5IqW8LIrE1GDQ2kkzV3A9g0jOx5odQCN rAemlmTY8mNPSJD6fDK3zxQEkH6yUsZ1WTZwCBo0n3XmZPUSrjpwS8+LZzId7KmjGov/ xececjbjgOdUV0HOg2E4RO83pECnBUdxeonyy37C1XcUhQNyw0zR3E/zYOjV1/vRZ0TI hZHFKbNw9ZHFo0U4KnP9ick1N6CFB6u1Q9fBN8z/lPXuMKQnhhTAqmA16IvQ2yfKBzrt rwEQ==
X-Received: by 10.194.103.194 with SMTP id fy2mr17076698wjb.10.1445521550059; Thu, 22 Oct 2015 06:45:50 -0700 (PDT)
Received: from icsil1noteb193.epfl.ch (icsil1noteb193.epfl.ch. [128.178.151.41]) by smtp.gmail.com with ESMTPSA id ht5sm11683428wib.10.2015.10.22.06.45.48 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 22 Oct 2015 06:45:48 -0700 (PDT)
Content-Type: multipart/alternative; boundary="Apple-Mail=_7819EFEE-B30B-4630-BC74-CA3831ED13D6"
Mime-Version: 1.0 (Mac OS X Mail 9.0 \(3094\))
From: Bryan Ford <brynosaurus@gmail.com>
In-Reply-To: <CABrd9SQ30+P1WggtGWs5OE0xdpTgh1Pncm0zzgnfq7ePrjWN7Q@mail.gmail.com>
Date: Thu, 22 Oct 2015 15:45:47 +0200
Message-Id: <F14789ED-CE96-4CEF-BE55-849D1A308A63@gmail.com>
References: <mailman.1690.1439201229.3844.trans@ietf.org> <ED9E26F0-C141-4E92-AE5F-AEBDADB737ED@gmail.com> <CABrd9SQ30+P1WggtGWs5OE0xdpTgh1Pncm0zzgnfq7ePrjWN7Q@mail.gmail.com>
To: Ben Laurie <benl@google.com>
X-Mailer: Apple Mail (2.3094)
Archived-At: <http://mailarchive.ietf.org/arch/msg/trans/WYi6FfBi1V8_PNSPjPGOgrvU1nI>
Cc: trans@ietf.org
Subject: Re: [Trans] Call for adoption, draft-linus-trans-gossip-ct
X-BeenThere: trans@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Public Notary Transparency working group discussion list <trans.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/trans>, <mailto:trans-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/trans/>
List-Post: <mailto:trans@ietf.org>
List-Help: <mailto:trans-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/trans>, <mailto:trans-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 22 Oct 2015 13:45:55 -0000

On 22 Oct 2015, at 12:16, Ben Laurie <benl@google.com> wrote:
> On Thu, 22 Oct 2015 at 10:18 Bryan Ford <brynosaurus@gmail.com <mailto:brynosaurus@gmail.com>> wrote:
> Yes, it’s a numbers game: the number of co-signers (e.g., SCTs in this case) is effectively a type of security parameter, and the numeric value of such a security parameter is important.  The security difference between 56-bit DES encryption and 128-bit AES encryption has just as much to do with the increased key length as with the algorithmic changes (though of course key size is a very different kind of security parameter; I wouldn’t want to push that analogy far).  
> 
> For the most security-critical parts of Internet infrastructure I personally, at least, would be much more comfortable with a “certificate co-signing security parameter” in a ballpark of 51 than a security parameter value of 1 or 3. ;)
> 
> You are not comparing apples with apples - we choose a small number of logs that cannot lie without risking detection. You choose a large number and hope the majority are honest. If they choose to collude, they can get away with it.

With gossip, a colluding group can just as easily collude to lie without risking detection, for example by refusing to gossip with honest nodes, or by presenting one consistent view of reality to the well-connected set of honest nodes (honest monitors, auditors, etc.) and another consistent but different view of reality to any less well-connected participants that the colluding group can keep separated from the well-connected participants.

On the other hand, the attacks that gossip *can* detect are just as readily detected in the collective signing approach, because the communication process required to produce the collective signature provides as a side effect the same information-distribution properties that gossip does, just in a more structured fashion.  In order to collect and aggregate the parts of the collective signature the leader must communicate the message to be signed to all the participants, and those signature components it collects cannot be used to create a valid collective signature if any pair of honest nodes involved in the signing process disagree on what message is being signed.

In a gossip setting, the colluding group can refuse to talk with honest participants, but those participants will be able to notice and complain. In a collective signing setting, the colluding group can selectively leave all or a selected subset of honest participants out of signatures, but those honest participants will be able to notice this and complain, in exactly the same way as for gossip.  

Moreover, the collective signature (at least the way we do it) leaves a precise and unforgeable public record of exactly which participants were and were not present and contributing to the signature in each signing round.  If the leader has committed to using a particular group of co-signers but regularly omits a bunch of them from its collective signatures - even though those co-signers seem to be getting along fine with other authorities (e.g., other log servers) also using them for collective signing - then both those co-signers and all clients who see the resulting collective signatures have every opportunity to notice and ask questions.  In contrast, gossip does not inherently produce any third-party-verifiable record of which nodes were present or absent, or able or unable to connect and gossip, at any given time.  So in this respect, collective signing seems to provide the same (strong though imperfect) detection capabilities, together with significantly greater transparency in terms of the public record it leaves behind.

>> Chrome's current policy is here: http://www.chromium.org/Home/chromium-security/root-ca-policy/EVCTPlanMay2015edition.pdf <http://www.chromium.org/Home/chromium-security/root-ca-policy/EVCTPlanMay2015edition.pdf>.
>> 
>> We don't have any plans to change those numbers at present.
> 
> Thanks, I hadn’t seen that document before.  So it looks like the “absolute minimum” number of SCTs required is 2, which is certainly better than 1 but still (to me anyway) a worryingly small number.  Compounding this, I notice that the first three log servers on the current list are run by Google (and in particular by one particular team at Google :) ), effectively presenting a “one-stop shop” for any adversary who might for whatever reason want to acquire the private keys of two CT log servers so as to be able to (for example) silently MITM-attack CT-enabled Chrome clients.  
> 
> This is why you need gossip, of course - to make this kind of attack non-silent. BTW, you also need a CA as well as two logs. And once you get caught, they become valueless. Oh, and, Google is not a one-stop shop, even for logs, because the policy requires at least one SCT to not come from Google.

Missed that proviso on first read, thanks.

>> That aside, I do not disagree with the core idea. I wonder about its practicality. For example, currently we require STHs to be produced on a regular basis, which is necessary to ensure good behaviour. If we went to a multi-signing approach, and an STH was not produced on time, who would we blame? What would we do about that, in practice? Seems to me everyone involved could point fingers at everyone else. How would you address that?
> 
> Agreed that this is an important question, hopefully addressed above: the log server need not necessarily allow its availability to be “held hostage” at all, and instead client policy could (independently) determine how many missing co-signers the client is willing to tolerate.
> 
> Which allows the log server to misbehave and claim its co-signers were unavailable.

Which would be just as immediately noticeable as if a colluding group of log servers were to stop gossiping with non-colluding nodes and claim all of them are unavailable.

>>  Whereas increasing m, the number of signers per log server, can only increase security, assuming the multi-signing protocol/crypto itself isn’t broken. 
>> 
>> Aside from my problem above, at least one other obvious issue with increasing the number of signers, is you also increase latency (I suspect) and decrease reliability.
> 
> Yes, you increase latency, but in our experiments we get under 5 secs of latency for 8,000 signers; it seems hard to imagine that being a difficulty for a latency-tolerant activity like signing STHs that happens at periods counted in minutes.
> 
> Is that 8,000 geographically distributed signers?

Since unlike some companies ( ;) ) we don’t have 8,000 physically geographically distributed machines we can allocate on demand to experiments, we used 8,000 processes distributed over a DeterLab virtual network topology that imposes 100ms RTT delays on network communication, in order to simulate a geographically distributed network.  Perhaps we should be using 200ms or 300ms rather than 100ms RTTs to simulate a “truly global” network (mental note to self for future experiments), but the current 2-second signing latencies we’re getting now aren’t going to become 10 minutes even if the underlying latencies are doubled are tripled.  

Also, our experiments are pessimistic in the sense that because we don’t have 8,000 separate physical machines, each physical machine is running many virtual participants, so the signing latencies we’re seeing are despite all the participants being artificially overloaded.  I conjecture that the plot on page 35 of the slides below might stay a lot flatter toward its right end (e.g., after 1024 participants or so where you can see it curve upward) if those were real machines not overloaded by experimental artifacts.  But I don’t at the moment have the testbed I would need to confirm that conjecture. ;)

	http://dedis.cs.yale.edu/dissent/pres/151009-stanford-cothorities.pdf <http://dedis.cs.yale.edu/dissent/pres/151009-stanford-cothorities.pdf>

Cheers
Bryan