Re: [TLS] Working Group Last Call for ECH

Eric Rescorla <ekr@rtfm.com> Wed, 13 March 2024 16:01 UTC

Return-Path: <ekr@rtfm.com>
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 A33FFC14F694 for <tls@ietfa.amsl.com>; Wed, 13 Mar 2024 09:01:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.904
X-Spam-Level:
X-Spam-Status: No, score=-1.904 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-com.20230601.gappssmtp.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 829frD00tb5h for <tls@ietfa.amsl.com>; Wed, 13 Mar 2024 09:01:54 -0700 (PDT)
Received: from mail-yb1-xb36.google.com (mail-yb1-xb36.google.com [IPv6:2607:f8b0:4864:20::b36]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id AC3E2C14F5FF for <tls@ietf.org>; Wed, 13 Mar 2024 09:01:54 -0700 (PDT)
Received: by mail-yb1-xb36.google.com with SMTP id 3f1490d57ef6-dc6dcd9124bso5245627276.1 for <tls@ietf.org>; Wed, 13 Mar 2024 09:01:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20230601.gappssmtp.com; s=20230601; t=1710345713; x=1710950513; darn=ietf.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=Qj7x7ZjdFmHoYVV+Qawj+kyaeH67e65Axn2vBoLE804=; b=eV8FNvt6ZGypVxkz9lztPHKW+NZEBcFjVyH+F0ZTodPKRreRAbvlmGc3+aMiW3rCVX 2z67Shg9BPufjDJGMi7B+8xIB9kztWocZ7zA0iAU0y9cizNHI1YzJpisDLmuWlDrkhaV WuFmnsbmPeaEK0ejWNqGPglIY0wnW9boC9UgCZbQfCzPKOmVkRu8+uG2sDx3Pce5R4pC Bqd+VQnPUajCIeO7645FJzFdIcc6zeKFTytMGreTDDUFGSRp4TEGlvRtF1KokjRUvGzm QHOp/31QTC9EdGkBRAR6JjeNkAfTc8XtFIzlb07rrcQU5K84+LBGQQ5UFsK7tCYjnZN/ i/RQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710345713; x=1710950513; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Qj7x7ZjdFmHoYVV+Qawj+kyaeH67e65Axn2vBoLE804=; b=QeAdkull56CY+zd6rGJVKZeiLjyAWQ8/EIIL61anmCXaAsK4ydE29OuKiEurPksX20 jP08d2Ee6pA3OCXQ4sKbtx3eI9pex9Xc1Py5rTtoS0VTVonRXMHFPmkYlu3OUpuYqOny XISUe0QnmmVp1paMr1pHaNozurbdf6kAKyG8gOZzMbjg/gBn8Hq0HeilwL/l+hVN035H VhRm9LoXufO5zIz2r8aG6ZDmf4HDIElxSLguIK03OohSi3PuqRMO3q97HkPA7YGSUAak Wi0YqyfdOQcoLpoFl9pIGQHTBTPOnRuZ5mdK+mHYXyYsReEFHo/ydv3vNtWLOTo3c3Qg jo5g==
X-Forwarded-Encrypted: i=1; AJvYcCVpJjrFsVRmBwI8DIy3wxlZvA5tpkebvsBPVMaDevhu/IithgYWjjhZ+T6cXp/nGjtU+LzdoWV9T6k3H9c=
X-Gm-Message-State: AOJu0YwHXJ+Ico3hyQGw1uJZ6YM3ORc9WMch0Kc7SGasJC4CP19qfoof Fd7htOi/yqERP9rqkGk3VbgfdRXWzsbBZvF9JjxLVKnziUEoh0z8GI+T712jKGW1f0O4HiGIn/L QJUjSSWfH/cKJqg6i5Rhaykup9JWv1Y2fFH/RdQ==
X-Google-Smtp-Source: AGHT+IHsWhwjvNNsIYxMcm4jl58BPynRJRrSjW8R91UYjSIv+wbBU64wqqWQ14YKNHsVpjbQqYrc45weWm2KXs7quBc=
X-Received: by 2002:a05:6902:2305:b0:dcc:f6e2:44d0 with SMTP id do5-20020a056902230500b00dccf6e244d0mr3228056ybb.37.1710345713264; Wed, 13 Mar 2024 09:01:53 -0700 (PDT)
MIME-Version: 1.0
References: <CAOgPGoD4iiJ7kivRo4xbe0peiMG3YdzUvmVHC2KvqnMOpm+N7Q@mail.gmail.com> <MEYP282MB35643E2F4A977C0FC051D006A32A2@MEYP282MB3564.AUSP282.PROD.OUTLOOK.COM> <CACsn0ckt5k_jJDp_RnWci94Li3AtcBiMfPehuLtdkAN-XoWtdQ@mail.gmail.com> <MEYP282MB3564E419539472CE1B5C5B1EA32A2@MEYP282MB3564.AUSP282.PROD.OUTLOOK.COM> <CABcZeBPK+jdirtxVPJWipXs0odhsqwsG088NC=OPpd4R=q16Zg@mail.gmail.com> <CAOG=JUKSjbPoz-xBHExrdgtSGTKYYTtnvO18o=qTm7eC2Anc4w@mail.gmail.com>
In-Reply-To: <CAOG=JUKSjbPoz-xBHExrdgtSGTKYYTtnvO18o=qTm7eC2Anc4w@mail.gmail.com>
From: Eric Rescorla <ekr@rtfm.com>
Date: Wed, 13 Mar 2024 09:01:17 -0700
Message-ID: <CABcZeBM5hCw6cMadN8fOCWb+8DY=rrmPqwvV5GnckcMzXWzrvQ@mail.gmail.com>
To: Amir Omidi <amir@aaomidi.com>
Cc: Raghu Saxena <poiasdpoiasd@live.com>, tls@ietf.org
Content-Type: multipart/alternative; boundary="000000000000aedb1f06138ce4aa"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/-lHuohqhCzsUz0A4GnzhPjmgD4w>
Subject: Re: [TLS] Working Group Last Call for ECH
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.39
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: Wed, 13 Mar 2024 16:01:58 -0000

On Wed, Mar 13, 2024 at 8:40 AM Amir Omidi <amir@aaomidi.com> wrote:

> I'd like to understand how the behavior of the latest draft will be under
> an adversarial condition.
>
> One of the things that really excited me about ESNI back in the day was
> effectively making it near impossible for countries, like my home country
> Iran, from being able to effectively censor the web. AFAIK Iran's main
> censorship mechanism revolves around looking for ClientHello's and then
> sending a TCP reset when that SNI matches a censored domain.
>
> I'm wondering, are we losing that ability from ESNI with this plain text
> field? Maybe there can be an understanding in the RFC that the client may
> omit, or falsify this plaintext field for a bit of extra adversarial
> security in these circumstances?
>

I don't think it's realistic for a generic client (e.g., a standard
browser) to omit or falsify this field.

The public_name is necessary to make the recovery mechanism defined in S
6.1.6. It may be the case that there are servers that only have one
identity --  though as both Watson and I noted, ECH doesn't provide much
value in those cases -- and not care about recovery, but there is no way
for the client to know that. With that said, I don't think that anything
prevents a server from placing a non-registrable value (e.g.,
`esni.invalid`) in `public_name`, which has roughly the same impact if
people converge on a small number of such names. [0]

-Ekr

[0] The value must be non-registrable -- or at least controlled by the
server -- otherwise an attacker might register it and obtain a valid
certificate, thus initiating the 6.1.6 recovery mechanism.


> On Wed, Mar 13, 2024 at 11:26 AM Eric Rescorla <ekr@rtfm.com> wrote:
>
>>
>>
>> On Wed, Mar 13, 2024 at 2:15 AM Raghu Saxena <poiasdpoiasd@live.com>
>> wrote:
>>
>>> On 3/13/24 14:51, Watson Ladd wrote:
>>>
>>> > I'm not sure what problem you want us to solve here. In the case of
>>> > server offering a single domain, an attacker can determine that
>>> > connections to that domain go to the server and cheaply block based on
>>> > IP. As a result the threat model is one of distinguishing between
>>> > connections to two different inner names.
>>>
>>> An IP can be cheaply recycled as well, for instance restarting a VPS on
>>> a cloud provider. Furthermore, IP based blocking may even be discouraged
>>> at a higher level, for the exact reason that IPs can change pretty
>>> easily. As an operator, I might be able to migrate my hosting to a new
>>> server provider (and hence IP) trivially, but informing my users of a
>>> domain change is much harder.
>>>
>>
>> Yes, but the attacker can easily learn these IPs merely by querying
>> the DNS. Moreover, they can learn the associated domains by sending
>> a CH with no SNI at all and seeing what's in the certificate.
>>
>>
>> > DNS does not propagate atomically with webserver configuration
>>> > changes. It's thus necessary to deal with mismatches.
>>> While this is true, if there is a configuration mismatch (and hence ECH
>>> cannot work), why is the decision made for the server to transparently
>>> "downgrade" it to non-ECH, instead of sending some kind of alert that
>>> signifies the client to retry without ECH?
>>>
>>
>> Three reasons:
>>
>> 1. Such an alert would be insecure because an attacker could forge it,
>> thus causing the client to send ECH in the clear.
>>
>> 2. It allows the server to be completely ECH unaware rather than needing
>> to special case an ECH alert.
>>
>> 3. It allows the server to securely provide a new ECHConfig.
>>
>> -Ekr
>>
>>
>>
>>> Regards,
>>>
>>> Raghu Saxena
>>>
>>> _______________________________________________
>>> TLS mailing list
>>> TLS@ietf.org
>>> https://www.ietf.org/mailman/listinfo/tls
>>>
>> _______________________________________________
>> TLS mailing list
>> TLS@ietf.org
>> https://www.ietf.org/mailman/listinfo/tls
>>
>