Re: [TLS] Alternative ESNI?

Stephen Farrell <stephen.farrell@cs.tcd.ie> Sat, 15 December 2018 20:40 UTC

Return-Path: <stephen.farrell@cs.tcd.ie>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2D1D9130E44 for <tls@ietfa.amsl.com>; Sat, 15 Dec 2018 12:40:31 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.301
X-Spam-Level:
X-Spam-Status: No, score=-4.301 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cs.tcd.ie
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 ZcdgW40ZSr_a for <tls@ietfa.amsl.com>; Sat, 15 Dec 2018 12:40:26 -0800 (PST)
Received: from mercury.scss.tcd.ie (mercury.scss.tcd.ie [134.226.56.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1C1931294D7 for <tls@ietf.org>; Sat, 15 Dec 2018 12:40:23 -0800 (PST)
Received: from localhost (localhost [127.0.0.1]) by mercury.scss.tcd.ie (Postfix) with ESMTP id 8B10CBE2C; Sat, 15 Dec 2018 20:40:17 +0000 (GMT)
X-Virus-Scanned: Debian amavisd-new at scss.tcd.ie
Received: from mercury.scss.tcd.ie ([127.0.0.1]) by localhost (mercury.scss.tcd.ie [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id tkr3sxMf_jFY; Sat, 15 Dec 2018 20:40:16 +0000 (GMT)
Received: from [10.244.2.138] (95-45-153-252-dynamic.agg2.phb.bdt-fng.eircom.net [95.45.153.252]) by mercury.scss.tcd.ie (Postfix) with ESMTPSA id B106DBE2D; Sat, 15 Dec 2018 20:40:15 +0000 (GMT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cs.tcd.ie; s=mail; t=1544906415; bh=KV0C1CxZ7lRmogCAgkqgC2AnK9HlXH3XSZiuAsl4ij0=; h=To:References:From:Subject:Date:In-Reply-To:From; b=YO5TxkhGVu1JckC+vGDyd7CY1ifjK6+tXvsVFMQwww9Dyv+KPf/G2O6Lk4SYpimBx M2yde1Wmo2LtXGRbVsafzy4eIqKRdy0zX/g14iNoqaLxOBOXJsbV3tDh5zAuSUenBv pRsTUCJg9dDh4mwO1JcSt1KyyqSEQ3opXor17mcw=
To: IETF TLS WG <tls@ietf.org>, Viktor Dukhovni <ietf-dane@dukhovni.org>
References: <20181215025346.GJ15561@localhost> <d297696e-5199-779a-697c-a5c3249555f2@cs.tcd.ie> <970F5B55-A45D-4DFF-9D9D-C9E310D8E331@dukhovni.org>
From: Stephen Farrell <stephen.farrell@cs.tcd.ie>
Openpgp: id=5BB5A6EA5765D2C5863CAE275AB2FAF17B172BEA; url=
Autocrypt: addr=stephen.farrell@cs.tcd.ie; prefer-encrypt=mutual; keydata= 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 4MrnagFdcFnWYp1JPh96ZKjiqBwMv/H0kw==
Message-ID: <4d16124a-11ae-592c-638b-4462ce39fd43@cs.tcd.ie>
Date: Sat, 15 Dec 2018 20:40:12 +0000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.2.1
MIME-Version: 1.0
In-Reply-To: <970F5B55-A45D-4DFF-9D9D-C9E310D8E331@dukhovni.org>
Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="mvYui3V9J62TpCenTsqu8ha08fQLl8pAd"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/ecO5c04nrZevffraoYygbVPF9QE>
Subject: Re: [TLS] Alternative ESNI?
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <tls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tls>, <mailto:tls-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tls/>
List-Post: <mailto:tls@ietf.org>
List-Help: <mailto:tls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tls>, <mailto:tls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 15 Dec 2018 20:40:31 -0000

Hiya,

On 15/12/2018 20:00, Viktor Dukhovni wrote:
> 
> 
>> On Dec 15, 2018, at 8:08 AM, Stephen Farrell <stephen.farrell@cs.tcd.ie> wrote:
>>e
>> I don't see any point in considering the variant with the easy
>> active attack though;
> 
> For the record the easy MiTM attack requires on-path TCP termination,
> only discloses the SNI name, and the full handshake then fails.  It
> looks to me like the same happens with the current draft when the
> fronting key_share is not DNSSEC-validated.  

Yes. The significant difference though, for me, is that I can
see how to mitigate the attack in the case of the current draft
(deploy DNSSEC and/or DoH/DoT covering the bits of network about
which you're worried). Whereas the HRR scheme without the step
of authenticating the cover site inherently cannot have such a
mitigation as far as I can see.

Personally, I think that's a winning argument against the HRR
scheme with no cover-server authentication prior to exposing the
ESNI.

> And the attack on DNS
> can be done cheaply at scale as we saw with the MyEtherWallet BGP
> re-route back in April.
> 
> The present draft puts keys in DNS that for many site operators
> will be difficult to rotate frequently, so there is a considerable
> loss of forward-secrecy.  Absent DNSSEC, and even with DoH/DoT,
> MiTM attacks are not precluded by the current draft.  The attacker
> just has to compromise the traffic between the DoH/DoT recursive
> resolver and the authoritative server.
> 
> Yes, if the same provider operates both of:
> 
>    * The user's selected DoH/DoT upstream DNS resolver
>    * The authoritative DNS for the ultimate target domain
> 
> do we really want this much centralization?

I agree that the current content specified for putting in the
DNS and the potential centralisation that may cause are both
undesirable.

I'm not convinced the HRR scheme is a better replacement. (But
I do think it is worth considering, as I said before.)

If browsers found one of the schemes attractive and the other
not, that'd I think be a winning argument - unfortunately, but
realistically, that'd win all arguments about trade-offs in
terms of potential for privacy improvement.

> 
>> as ekr said, I think that was considered
>> before and I'd say that'll just confuse matters and is better
>> omitted, so I'm only really considering your figure 2 below.
> 
> It seems to me that in this space we can't realistically have
> perfection, there are only trade-offs.  If we want the protected
> domains to not stand out by being a tiny fraction of the traffic
> to the fronted server, then low adoption barriers are essential
> to getting any security here, MiTM or not.
> 
> Obviating the need to put server keys in DNS, and synchronize the
> key shares across the server farm, ... IMHO does more to ensure
> SNI privacy than an MiTM-resistant but more difficult to deploy
> model.
> 
>>>        ClientHello
>>>        + key_share             -------->
>>>                                                        ServerHello
>>>                                                        + key_share
>>>                                             {EncryptedExtensions*}
>>>                                                      {Certificate}
>>>                                                {CertificateVerify}
>>>                                <--------       {HelloRetryRequest}
>>>        ClientHello
>>>        + key_share
>>>        {EncryptedExtensions}   -------->
>>>                                              {EncryptedExtensions}
>>>                                              {CertificateRequest*}
>>>                                                      {Certificate}
>>>                                                {CertificateVerify}
>>>                                                         {Finished}
>>>                                <--------       [Application Data*]
>>>        {Certificate*}
>>>        {CertificateVerify*}
>>>        {Finished}              -------->
>>>        [Application Data]      <------->        [Application Data]
>>>
>>>              Figure 2: Alternative ESNI w/ active protection
>>>
>>
>> Some questions:
>>
>> - How are you proposing the client knows of the existence of the
>>  hidden service? (Aside from local configuration, which is always
>>  possible.)
> 
> For opportunistic discovery, yes also DNS, but the DNS record would
> just hold a stable indication of support for the protocol.

Isn't the easiest attack on ESNI then to just block visibility
of that boolean at which point a client will use SNI and not ESNI
and it's game-over? That seems to imply the HRR scheme isn't
any less dependent on DNS really, as I think ekr implied. (The
HRR scheme could be much nicer in terms of operating DNS, but not
more secure.)

Cheers,
S.

PS: Thanks for the other answers below, I think they're clear
enough.

> 
>   * It could be just a boolean, with the SNI name sent to the CDN
>     being a well-known placeholder (but only in the case that we
>     forgo authenticating the CDN and accept MiTM SNI disclosure).
> 
>   * It could be a list of fronting server names (similar to SRV) with
>     the appropriate SNI name sent to each server, prior to switching
>     to an encrypted SNI.  This supports multi-CDN deployments, but
>     the load-balancing across CDNs is then handled client-side.
> 
>> - How does the server know to include the HRR in it's answers? (IOW,
>>  what ESNI signal is present in the client's 1st flight?
> 
> It could be a specially designated sentinel key_share algorithm, or
> it could be an extension that solicits HRR.  If this proposal merits
> further discussion, then we can get into the details, for now it is
> perhaps best to consider the broad outline, and see whether that has
> any merit.
> 
>> - Ought that be some more general signal? e,g. "client wants to send
>>  some EncryptedExtensions, let's do an extra RTT." (I'd like that
>>  I think, but the counter argument might be that that's overreach
>>  and we'd be better to just stick with an ESNI model that we're
>>  confident can get some deployment.)
> 
> Either is possible.
> 
>> - Given HRR was a kludge for backwards compatibility could changing
>>  where that occurs in the protocol trigger more middlebox messes?
> 
> It could.  This would need to be explored.
> 
>> - This seems like supporting the split mode behaviour [1] could be a
>>  lot more complex, as this scheme is more embedded in the h/s. Is
>>  that fair? (Note: I'm not sure the split mode is really easy in
>>  any circumstances though, so that mightn't be a killer argument.)
> 
> Yes, it is not immediately obvious how/whether split mode works.
> I've not given it much thought.  Presently just wanted to see
> whether using ephemeral keying for ESNI is a viable alternative.
>