Re: [TLS] Request mTLS Flag

Jonathan Hoyland <jonathan.hoyland@gmail.com> Mon, 23 October 2023 15:58 UTC

Return-Path: <jonathan.hoyland@gmail.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 9248EC151540 for <tls@ietfa.amsl.com>; Mon, 23 Oct 2023 08:58:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.105
X-Spam-Level:
X-Spam-Status: No, score=-2.105 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-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=gmail.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 HWWfUkFxYCyJ for <tls@ietfa.amsl.com>; Mon, 23 Oct 2023 08:58:33 -0700 (PDT)
Received: from mail-pg1-x532.google.com (mail-pg1-x532.google.com [IPv6:2607:f8b0:4864:20::532]) (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 344A4C15153F for <tls@ietf.org>; Mon, 23 Oct 2023 08:58:29 -0700 (PDT)
Received: by mail-pg1-x532.google.com with SMTP id 41be03b00d2f7-5ac88d2cfaaso2696531a12.2 for <tls@ietf.org>; Mon, 23 Oct 2023 08:58:29 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1698076708; x=1698681508; 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=JiUeSF1eYYap6szmuoRhj86lHg5tpdRF/BNi5Dti8OA=; b=FOtFppnkxneK1h9QerLfITRght51FzLlOYHy9cOqUzAeHzwWAsZboXQP3BJDexoT6p FR0ZM4WUp1V2ywGvYoJLyF046+9LK87xn6+NFAhc8/un10wwTVobeOkV7vs/qA/tHoYi 9MiofGy6MXsp6gTRZyNBCvFpSC7QL99cgvVu2i5W0VnnhuFZj3nkuqVEic2Fz+UWAAOI jdmMPQ1pZLhfThvmGiYrEiqFdf8gfU0Rw/z60jptCpQ8cAcxR6s+4UJ+E+7QtCTFErYf mC7lAbo1nwyCkYmAK//vs2qAHrjFOEIcxEjZsawq/wZ6vqRbVgFTk8s6zPwH5gotw7OK Cf3w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698076708; x=1698681508; 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=JiUeSF1eYYap6szmuoRhj86lHg5tpdRF/BNi5Dti8OA=; b=pY3UHbPyAtoH6+Cy7CdFYH7f1KXlfsCyvpC385crZUpZVsbGgxngdBtmyNYxmtkR+c uqP04256vfcpRSZqyTPM40nedOWU9rlJWVMu1JRoHnYoDPDOOLfnLzIhxJJqCn/p1mnq Nna9uVHe9wsOVgdT9m5VLAKSG8N3hezNIcMOgmf9Id4U9DIi0CuDIlqEhpOo9t24UYOx x1MeJrH4xyd1uCm4q+haNv4/0frIxzbYXcXZq4wDwdw8hBpfIJpAmTD070GCCqCt23ZT TmlWHbBK2Zx7nA9BpaGnOP7x1SZkVOlBXpZsCyM6KUlf/OLZ14RIgcpNI9xP39dbSQLF /g0g==
X-Gm-Message-State: AOJu0YzDDWBPAr/2Fa/kxKOTIEXZ8ydh9/aTz7jlc4rlvaUaoiqeqSlW xpDUjlZd5BTBVKSTJlFZcQWY4XQ2ZrpwOq+EJCU=
X-Google-Smtp-Source: AGHT+IEeJfiOJqt86dlOXyyAGv48+72+i1H0WALSTw2b1NuOala0UQO713Fe7o7v+1J7agJI8+vMJo4Eo97e5J1uBQk=
X-Received: by 2002:a05:6a21:4886:b0:16b:8498:d9bc with SMTP id av6-20020a056a21488600b0016b8498d9bcmr10339696pzc.62.1698076708534; Mon, 23 Oct 2023 08:58:28 -0700 (PDT)
MIME-Version: 1.0
References: <CACykbs3TMM6W_K2zHnOjPwuuhxa8ZUnSz2BqvgSGfEpNs71Edg@mail.gmail.com> <CAF8qwaDc_Moj_mXJHqRxzi995eA8T3uFNJmvHCfDboq5LG42mA@mail.gmail.com>
In-Reply-To: <CAF8qwaDc_Moj_mXJHqRxzi995eA8T3uFNJmvHCfDboq5LG42mA@mail.gmail.com>
From: Jonathan Hoyland <jonathan.hoyland@gmail.com>
Date: Mon, 23 Oct 2023 16:58:15 +0100
Message-ID: <CACykbs2hMVgR=AoA1yXmnAn3Knuy_B9NgCvjRvc6xd5YKYby-Q@mail.gmail.com>
To: David Benjamin <davidben@chromium.org>
Cc: "<tls@ietf.org>" <tls@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000037ffd0608644bb4"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/-b4yJpDyLI5I51_QBzUn2gLwTxM>
Subject: Re: [TLS] Request mTLS Flag
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: Mon, 23 Oct 2023 15:58:34 -0000

Hi David,

So in my mind this is something that will (almost) never be sent by
browsers.

This is aimed at bots, both internal and external. For example identifying
a web crawler, and either allowing or disallowing it.

Currently we identify many bots by IP range and user agent (and a bunch of
ML), which isn't always reliable.

The web crawler case is where the dedicated endpoint falls over, because
crawlers are indexing the human visible web.

I don't think this leaks more info than a dedicated endpoint (even
accounting for ECH), and from a security perspective is just a hint.


Regards,

Jonathan


On Mon, 23 Oct 2023, 16:36 David Benjamin, <davidben@chromium.org> wrote:

> Would you expect a browser user to send this flag? On the browser side, we
> don't know until the CertificateRequest whether a client certificate is
> configured. We have to do a moderately expensive query, dependent on
> information on the CertificateRequest of the OS's cert and key stores to
> get this information. This query may even call into things like 3p
> smartcard drivers, which may do arbitrarily disruptive things like showing
> UI.
>
> And if we could somehow predict this information, this would leak into the
> cleartext ClientHello when, starting TLS 1.3, the whole client certificate
> flow is in the encrypted portion of the handshake.
>
> So, practically speaking, I don't think browsers could do anything
> meaningful with this extension. We'd either always send it, on grounds that
> we have code to rummage for client certs on request, or never send it on
> grounds that we're not preconfigured with a client cert at the time of
> ClientHello. Either way, it seems likely to interfere with someone's
> assumptions here.
>
> The dedicated endpoint strategy seems more straightforward.
>
> David
>
>
> On Mon, Oct 23, 2023, 11:22 Jonathan Hoyland <jonathan.hoyland@gmail.com>
> wrote:
>
>> Hey TLSWG,
>>
>> I've just posted a new draft
>> <https://www.ietf.org/archive/id/draft-jhoyla-req-mtls-flag-00.html>
>> that defines a TLS Flag
>> <https://www.ietf.org/archive/id/draft-ietf-tls-tlsflags-12.html> that
>> provides a hint to the server that the client supports mTLS / is configured
>> with a client certificate.
>>
>> Usually the server has no way to know in advance whether a given inbound
>> connection is from a client with a certificate. If the server unexpectedly
>> requests a certificate from a human user, most users wouldn’t know what to
>> do. To avoid this many servers never send the CertificateRequest message in
>> the server’s first flight, or set up dedicated endpoints used only by bots.
>> If client authentication is necessary it can be negotiated later using a
>> higher layer either through post-handshake auth or with an Exported
>> Authenticator, but both of those options add round trips to the connection.
>>
>> At Cloudflare we’re exploring ways to quickly identify clients. Having an
>> explicit signal from the client that it has an mTLS certificate on offer
>> reduces round-trips to find out, avoids unnecessarily probing clients that
>> have no certificate, etc. I think this would be an ideal use case for the
>> TLS Flags extension.
>>
>> I have a pair of interoperable implementations (one based on boringssl
>> and one based on Go TLS) which I plan to open source before Prague.
>> Obviously these include implementations of the TLS Flags extension, which
>> hopefully will help drive that work forward too.
>>
>> Regards,
>>
>> Jonathan
>> _______________________________________________
>> TLS mailing list
>> TLS@ietf.org
>> https://www.ietf.org/mailman/listinfo/tls
>>
>>