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

Bryan Ford <brynosaurus@gmail.com> Thu, 06 August 2015 09:17 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 182CE1B2AF8 for <trans@ietfa.amsl.com>; Thu, 6 Aug 2015 02:17:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.701
X-Spam-Level: *
X-Spam-Status: No, score=1.701 tagged_above=-999 required=5 tests=[BAYES_50=0.8, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, FREEMAIL_REPLY=1, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=no
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 Dol8CjcUWXYS for <trans@ietfa.amsl.com>; Thu, 6 Aug 2015 02:17:23 -0700 (PDT)
Received: from mail-wi0-x22d.google.com (mail-wi0-x22d.google.com [IPv6:2a00:1450:400c:c05::22d]) (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 EFAC31B2AD7 for <trans@ietf.org>; Thu, 6 Aug 2015 02:17:22 -0700 (PDT)
Received: by wibxm9 with SMTP id xm9so15211937wib.1 for <trans@ietf.org>; Thu, 06 Aug 2015 02:17:21 -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=3P4enBGAkUbhRxbodGYuf8fz7ndmQ4umevC31+sKWdU=; b=cenjaI1PQ9YDxGaRM8uAoQ4RSLsQCzQAMgZ6Ngjcj6ePm+n/h5nmzxsqRGWMBIildz aaROv5Cf7yFck6Jghy7lkTuqVuKN/ELkQUkhn2IgV9LmxGhOMmNqUfOBd5lLe+Rzfb1u BHmiXZtyqj7qASCJK24ZUCFajpaiaqlzMshX34ph4KOnrpayi26LrxBrWtG0Qww6bPZH +yClk2PKJ9Ed+z+uc/GhYsk0xsFuKTKwjsCr2LONT1sc2nPoJ/cP8xJIb42oqluCLMsN Mso8y3IPRD3ZU5W3ZuFdPNZky4W/QImjex5blwQZvsCgRdhuM7saU2xOYV5BSzBDaN58 IJ3w==
X-Received: by 10.180.39.163 with SMTP id q3mr4622047wik.82.1438852641659; Thu, 06 Aug 2015 02:17:21 -0700 (PDT)
Received: from [10.247.119.93] (46-253-189-212.dynamic.monzoon.net. [46.253.189.212]) by smtp.gmail.com with ESMTPSA id i6sm8417167wje.33.2015.08.06.02.17.20 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 06 Aug 2015 02:17:20 -0700 (PDT)
Content-Type: multipart/signed; boundary="Apple-Mail=_08BE9343-57F4-4ECD-A8D1-986A01F6EE16"; protocol="application/pkcs7-signature"; micalg="sha1"
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2102\))
From: Bryan Ford <brynosaurus@gmail.com>
In-Reply-To: <CABrd9SRG-SQtADhS=hee_Zf4vzMETyZOYtqg5Xp82Dq70C0puQ@mail.gmail.com>
Date: Thu, 06 Aug 2015 11:17:19 +0200
Message-Id: <7BE2DAF1-6D52-4E6C-A00D-0F91B74B5028@gmail.com>
References: <mailman.3884.1437667800.3631.trans@ietf.org> <6E6EF479-66BE-4EBE-956C-22009BCED863@gmail.com> <CABrd9SRG-SQtADhS=hee_Zf4vzMETyZOYtqg5Xp82Dq70C0puQ@mail.gmail.com>
To: Ben Laurie <benl@google.com>
X-Mailer: Apple Mail (2.2102)
Archived-At: <http://mailarchive.ietf.org/arch/msg/trans/T9a65ACvOLxEwargg3SWOrCRXQc>
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, 06 Aug 2015 09:17:27 -0000

Sorry for the slow followup, I wasn’t able to keep up with the lists since the IETF meeting...

> On Jul 24, 2015, at 1:09 PM, Ben Laurie <benl@google.com> wrote:
> On Thu, 23 Jul 2015 at 23:27 Bryan Ford <brynosaurus@gmail.com <mailto:brynosaurus@gmail.com>> wrote:
>> From: Melinda Shore <melinda.shore@gmail.com <mailto:melinda.shore@gmail.com>>
>> Subject: [Trans] Call for adoption, draft-linus-trans-gossip-ct
>> Date: July 23, 2015 at 2:03:24 PM GMT+2
>> To: "trans@ietf.org <mailto:trans@ietf.org>" <trans@ietf.org <mailto:trans@ietf.org>>
> 
>> 
>> Hi, all:
>> 
>> This is a call for adoption of
>> http://datatracker.ietf.org/doc/draft-linus-trans-gossip-ct/ <http://datatracker.ietf.org/doc/draft-linus-trans-gossip-ct/>
>> as a working group deliverable.  The call closes on August 6.
> 
> 
> While the draft represents a fine start at defining a gossip mechanism, I would like to express serious reservations about the draft’s basic premise that a gossip mechanism is the best approach - or even an adequate approach - “to detect misbehavior by CT logs”, to quote the draft’s self-stated purpose.  As such, I have serious reservations about the WG adopting the draft, not because there’s anything wrong with the content of the draft per se but because gossip is simply not the right approach.
> 
> First, the gossip approach creates severe privacy problems, which are already well-discussed so I won’t reiterate them.
> 
> Actually, I think you need to reiterate them, since we think that gossip as proposed does _not_ create privacy problems.

It creates new privacy problems by requiring the client (browser user) to “opt out” of web browsing privacy in order to gain any security benefit.  Either the user hands over all his browsing history to a remote “trusted auditor”, thereby opting out of privacy; or else the user remains fully vulnerable to the same kind of (potentially extended) MITM attacks that motivated CT in the first place.
 
> Second, the gossip approach can’t ensure that privacy-sensitive Web clients (who can’t or don’t want to reveal their whole browsing history to a Trusted Auditor) will ever actually be able “to detect misbehavior by CT logs”, if for example the misbehaving log’s private key is controlled by a MITM attacker between the Web client and the website the client thinks he is visiting.
> 
> The intent of CT is not to enable clients to detect such behaviour - rather, it is to enable the system as a whole to detect it.

Could you explain how “the system as a whole” detects such misbehavior in the case of the state/ISP-level MITM attacker scenario?  

As I see it, if the client/browser doesn’t opt-out of privacy by gossiping his browsing history with a trusted auditor, then the client’s *only* connection to the rest of the world, i.e., “the system as a whole”, is through the “web server”, which may well be the same kind of MITM attackers that have been known to subvert the CA system.  The client never gets to communicate to the rest of the system - i.e., the legitimate CT log servers, auditors, or monitors - and so the client never gets the opportunity to “compare notes” with the rest of the system.  And the rest of the system (the legitimate log servers, auditors, and monitors) never have the opportunity to learn from the client that the client saw a MITM-attacked, forged set of CA certs, STHs, and SCTs.

> Suppose, for example, it ever so happens that a single company ends up running both a log server and a [sub-]CA, and keeps both in the same poorly-protected safe.  If an attacker can steal those two private keys, then the attacker can silently MITM any CT-aware client all it wants, by producing all the [non-EV] certificates it needs with a valid SCT, valid STH inclusion proofs in a fake log, etc.
> 
> Chrome's policy would require the subversion of at least two logs to achieve this, but for the sake of argument, I'll concede that.

I thought you were requiring CAs to have multiple SCTs only for EV certificates, no?  What if the attacker is happy to MITM attack the user with a non-EV certificate and forego showing the user the “green bar”?  Are you assuming that users will stop using the connection if they don’t see the green bar?

Or are you saying (contrary to my prior understanding) that Chrome requires *all* CT certs to have multiple SCTs signed by different log servers?
 
>  The web client isn’t going to learn about the problem via gossip with the website because that’s the MITM attacker, and the client can’t gossip with anyone else without the serious privacy risk of trusting a single audit server with his entire browsing history.  If the “trusted audit server” is actually co-located with the client, then the audit server in turn can’t gossip with the rest of the world without creating the same privacy risk.  Even if the client does voluntarily gossip with a remote trusted audit server, the MITM attacker - e.g., an ISP-level or state-level attacker - might simply block connections to all well-known audit servers.
> 
> This attack relies on a MitM that is sustained forever but indeed would succeed. We accept that CT cannot defeat such an attack. 

But isn’t that precisely what happened in the prior COMODO and DigiNotar cases, where the MITM attacks were detected only when a few more security-conscious users compared the certificates they were seeing against what the rest of the world was seeing through nonstandard “side-channels”?  Isn’t that 

> I posted an E-mail last week suggesting an alternative approach, in which log servers would not individually sign their STHs but instead collectively sign them with the active participation of (a suitable quorum of) the auditors and/or monitors watching their logs.  But I got no response to that, so I’d like to try again.
> 
> In short: the log server would propose log entries, but the auditors and/or monitors contribute to the STH signature, only after performing at least the “auditing” function of verifying that the log server is behaving like a correct log server.  In particular, all participants could proactively verify that the log server never forks or reverts the log, never signs something syntactically invalid or with a wildly-incorrect timestamp (say +/- 24 hours), etc.  Then, even if the log server’s private key was successfully stolen by a state-level attacker (and the attacker perhaps even compromises a minority of the monitor/auditor keys), the attacker will be unable to forge an STH signature that a Web client or anyone else will believe.
> 
> This would, in effect, convert each log server from yet another juicy central attack target into a strongest-link set (I like to use the term “cothority” or collective authority) with all the monitor and auditor servers watching it and contributing to its signatures.  Of course, the attacker still wins if he successfully compromises any single CA (or sub-CA) *and* any single “logging cothority” (i.e., any log server *and* a sufficient quorum of its followers).  But doing the latter becomes way, way harder if there’s enough size and diversity in each logging cothority.
> 
> How does this improve things for the Web client in Repressistan who's getting MITM attacked?  If the client is only looking at SCTs that are individually signed by a log server (and are in any case only a “promise to log soon” and not actual evidence that the cert has been logged), then unfortunately not much: the MITM attacker can still forge at least one SCT for each of its forged certs, and no one else learns because the MITM can keep the client’s view isolated from the rest of the world.
> 
> But say we enhance CT so clients can demand STHs *with* cert inclusion proofs from the web servers they talk to - as I suggested in the meeting today, and which I believe Ben Laurie mentioned is already in the works.  Then any Web client that does this will be proactively protected from MITM attacks involving faked, forked, or otherwise bad log entries.  And the client doesn’t have to compromise its privacy by gossiping with anyone.
> 
> Two points here:
> 
> 1. Is this any different to requiring n SCTs from different logs for each certificate (other than the inclusion proof part, which I address below)?

Semantically, no different, but how large many SCTs do you think is practical to require to be attached to each cert?  Two, three?  Ten?  A hundred?  How big is each SCT?  

With the multi-SCT approach, the amount of bandwidth consumed during TLS negotiation with every CT-supporting website increases linearly with n.  With the scalable multisignature approach, n can increase to arbitrarily large size - a hundred, a thousand if needed - e.g., including all the public auditors, monitors, etc. - without any increase in the size of certificates, number of SCTs attached, or ultimately the bandwidth/latency overhead during TLS negotiation.

> 2. Our original design for CT did indeed have certs served along with an STH and an inclusion proof. Unfortunately, CAs categorically rejected this approach because of the latency it introduced in the certificate issuance process. Personally, I think it would be a better approach. Now CAs are more accepting of CT, perhaps it would be worth revisiting the question with them?

Agreed, that would be great.

Bryan

>  
> 
> Bryan
> _______________________________________________
> Trans mailing list
> Trans@ietf.org <mailto:Trans@ietf.org>
> https://www.ietf.org/mailman/listinfo/trans <https://www.ietf.org/mailman/listinfo/trans>