[TLS]Re: WG Adoption for TLS Trust Expressions

Dennis Jackson <ietf@dennis-jackson.uk> Mon, 20 May 2024 14:24 UTC

Return-Path: <ietf@dennis-jackson.uk>
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 16F0EC14CEFF for <tls@ietfa.amsl.com>; Mon, 20 May 2024 07:24:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.096
X-Spam-Level:
X-Spam-Status: No, score=-7.096 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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, 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=dennis-jackson.uk
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 B0DBs5cOLVZR for <tls@ietfa.amsl.com>; Mon, 20 May 2024 07:24:16 -0700 (PDT)
Received: from mout-p-103.mailbox.org (mout-p-103.mailbox.org [IPv6:2001:67c:2050:0:465::103]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 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 BB6FDC15109C for <tls@ietf.org>; Mon, 20 May 2024 07:24:09 -0700 (PDT)
Received: from smtp202.mailbox.org (smtp202.mailbox.org [IPv6:2001:67c:2050:b231:465::202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-103.mailbox.org (Postfix) with ESMTPS id 4VjfvS08QYz9sPv for <tls@ietf.org>; Mon, 20 May 2024 16:24:04 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dennis-jackson.uk; s=MBO0001; t=1716215044; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=KIhr2KYVuhge0pdEAhAklefJ6LSqKx8wW5OqjiFhq4E=; b=Kkgg6JSSgSjCd4LRq9NaRNWQu5CsDUHIumufCxV3GXmqzBBkretPBOgQdA50M7vfsSOgx4 /RqA9WxNnyqAnJQB/lx740mzeVDre7rn56169c//aJO0xPr2sXIveeNukMGWHznmP2JFfj D+ZNywinoeTVkKDDY3RNcEUdbS53VCjaMvDKi8oR7rKzk2gJTL5b/g973OAticn6v3Hlvg uK4UgVpsqugnAX/SfIyNqyPnEqTWLP/VIzgWr0MYBX170td4nc8Ba4rf63H2+l72YTwUcm PPiXvbq95LXSopXzrYskJZTa4XF8Bq50HXUrp+ZYeerEYVcgJ8ecrZrCnvVXog==
Content-Type: multipart/alternative; boundary="------------V0tJyVarHGeaIwcuP1sopw6Q"
Message-ID: <398b9992-83ca-488b-a8b4-85936c3467a8@dennis-jackson.uk>
Date: Mon, 20 May 2024 15:24:02 +0100
MIME-Version: 1.0
To: TLS List <tls@ietf.org>
References: <CAD2nvsQafns7PB72uV2CBgrt1N+f3YK6p_=EO-A_Bs-mb9=g1Q@mail.gmail.com> <91123dd3-7a24-4474-9649-84b78120ea81@dennis-jackson.uk> <CAF8qwaBLvsnY01fm1Uby2U9OQ2koR_8HnRLeNbE4ZQjvX2a4EA@mail.gmail.com> <450344cc-5e1d-4d71-8984-a3c651eae604@dennis-jackson.uk> <CAF8qwaAuHfvfwSnL+xNxFicbL02hwjV=pRybBTfK3c-ULxPrWg@mail.gmail.com> <CAF8qwaCXy=nPex08_xSdm4mAdDFxf5xE=PULzsbSpvxMvy1CcQ@mail.gmail.com>
Content-Language: en-US
From: Dennis Jackson <ietf@dennis-jackson.uk>
In-Reply-To: <CAF8qwaCXy=nPex08_xSdm4mAdDFxf5xE=PULzsbSpvxMvy1CcQ@mail.gmail.com>
X-Rspamd-Queue-Id: 4VjfvS08QYz9sPv
Message-ID-Hash: CVCXNDE7Y7NCX4IBNLIUMKWMRXB5DEOA
X-Message-ID-Hash: CVCXNDE7Y7NCX4IBNLIUMKWMRXB5DEOA
X-MailFrom: ietf@dennis-jackson.uk
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-tls.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
X-Mailman-Version: 3.3.9rc4
Precedence: list
Subject: [TLS]Re: WG Adoption for TLS Trust Expressions
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <tls.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/XslyAL38dELwe-5ueVXLdDx-Y7s>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tls>
List-Help: <mailto:tls-request@ietf.org?subject=help>
List-Owner: <mailto:tls-owner@ietf.org>
List-Post: <mailto:tls@ietf.org>
List-Subscribe: <mailto:tls-join@ietf.org>
List-Unsubscribe: <mailto:tls-leave@ietf.org>

Hi David, Devon, Bob,

Response to both your recent mails below:

On Thu, May 9, 2024 at 10:45 AM David Benjamin <davidben@chromium.org> 
wrote:
> We’re particularly concerned about this server operator pain because 
> it translates to security risks for billions of users. If root program 
> actions cause server operator pain, there is significant pressure 
> against those actions. The end result of this is that root store 
> changes happen infrequently, with the ultimate cost being that user 
> security cannot benefit from PKI improvements.

The claim here is that Trust Expressions is going to make it easier to 
remove CAs by reducing the pain to server operators of CA distrust? This 
seems to be incompatible with the draft's intent for CAs to provision 
the server's certificate chains without interaction with the website 
operator. Why is the CA you're distrusting ever going to voluntarily 
enable their own removal by transitioning their subscribers to a 
different CAs cert chain?

> It’s hard to say exact numbers [of trust store labels / versions] at 
> this stage. We can only learn with deployment experience, hence our 
> desire to progress toward adoption and experimentation.
Leaving aside the concerns about what other parties may abuse this for, 
can you talk concretely about how *you* would use it? Would Chrome and 
Android Webview share the same trust expressions label? Would desktop 
Chrome and mobile Chrome? Would Chrome Canary and Chrome Release? Would 
Chrome and Chromium? Would you expose the Trust Expressions API to 
Android applications? I don't think the answer matters for the concerns 
that I'm articulating around both risks and effectiveness, but I have a 
slightly morbid**curiosity about how far through you've thought this 
proposal.

> This is an important point; most modern root programs including Chrome 
> <https://www.chromium.org/Home/chromium-security/root-ca-policy/moving-forward-together/> 
> and Mozilla <https://wiki.mozilla.org/CA/Root_CA_Lifecycles> are 
> trending towards increased requirements on CAs to become trusted, 
> including greater agility among trust anchors. This agility reduces 
> the risk of powerful, long-lived keys and allows for faster adoption 
> of security improvements, but poses additional pain on subscribers who 
> can only deploy one certificate to meet the needs of a set of clients 
> that are changing faster than ever before.

Are those requirements truly changing faster than ever before? The vast 
majority of the pain in this space has been caused by the fact that the 
Android Root Store could only be updated by an OTA update from the OEM 
and so was effectively abandonware. I understand that Google finally 
fixed this in Android 14, released October 2023. Meanwhile, downloading 
Firefox yields a modern root store for any Android device released in 
the past 10 years (Android 5 - Lollipop, 2014).

Momentum very much seems to be pointing in the opposite direction to 
what you claim, as the old abandoned devices age out, they're being 
replaced by devices that are much easier to keep up to date. Similarly, 
various countries now have laws on the books requiring a minimum number 
of years of security updates for devices and manufacturer's are 
responding by vastly improving their supported lifetimes. This situation 
improves even further with the coming shift to PQ (described below).

> There are indeed costs to fragmentation, but those costs themselves 
> provide the pressure against unnecessary fragmentation. We’re not 
> aware of any more limited solution that would still meet the 
> requirements here. Did you mean the ones in 
> https://mailarchive.ietf.org/arch/msg/tls/XXPVFcK6hq3YsdZ5D-PW9g-l8fY/
>
> Looking at these:
> - Cross-signing is a broad space. We discuss it briefly in the 
> explainer 
> <https://github.com/davidben/tls-trust-expressions/blob/main/explainer.md#path-building>, 
> but it would need to be more concrete to be a sketch of a solution. 
> Was this the option you had in mind?
Cross-signing is well understood.

The easiest case is when an already trusted CA wishes to transition to 
new key material. The CA can cross sign both the new root and the new 
intermediates as Let's Encrypt has for ISRG X1 and ISRG X2 [1]. The main 
drawback is increased certificate chain size. Adopted drafts like 
Abridged Certs [2] completely eliminate it.

The alternative use case is when a new CA wants to launch. Currently, 
it's left to the CA to negotiate with incumbents to obtain a cross 
signed certificate and many do, e.g. Let's Encrypt from IdenTrust [3], 
SSL.com from Certum [4]. If you feel that it should be made even easier, 
an argument I'm sympathetic to, that's an easy policy decision for Root 
Programs to make.

On Thu, May 9, 2024 at 10:40 AM David Benjamin <davidben@chromium.org> 
wrote:


    Our understanding of your argument is that it will be easier for
    governments to force clients to trust a CA if a sufficient number of
    websites have deployed certificates from that CA. We just don’t
    agree with this assertion and don’t see websites’ deployment as a
    factor in trust store inclusion decisions in this scenario.

I asked why you believed that. Flat denial of the direct connection 
between making it easier to deploy a new CA (regardless of any root 
store inclusion) and the ease of deploying a new CA for bad purposes is 
a weird hill to die on.

        Ifwe had Trust Expressions deployed today, how would life be
        better for LE / Cloudflare or other impacted parties?

    It isn’t necessary for older device manufacturers to adopt Trust
    Expressions. Rather, Trust Expressions would be adopted by modern
    clients, allowing them to improve user security without being held
    back by older clients that don’t update. Servers may still need to
    navigate intersections and fingerprinting for older clients, but
    this will be unconstrained by modern ones. It will also become
    simpler, with fingerprinting less prevalent, as older clients fall
    out of the ecosystem.

You seem to be agreeing that it wouldn't solve any of the issues which 
people have come to the list to talk about. Rather, you're now anchoring 
your claims around improving security. But its totally unclear what 
security benefits you're actually delivering.

        To pick an example you've repeatedly highlighted, can you
        clarify how Trust Expressions will speed the transition to a PQ
        PKI? Specifically, how much earlier do you expect a given site
        to be able to deploy a PQ cert chain in the case of TE adoption
        vs without TE adoption (and why)?


    The transition benefits are briefly summarized in Section 9.2. We
    anticipate a PQ transition will result in many PQ roots coming
    online in a short time. It is implausible that every root program
    will qualify them at the same time and in the same order.

    That means, during the transition, different trust stores will have
    different subsets of the final “common” PQ root set. (But, again, as
    root programs do not and cannot actually coordinate, it is not a
    truly common set.) Negotiation allows early adopters to start using
    PQ CAs where they can, while still remaining compatible with the
    root programs that support PQ but not yet with their chosen CAs.
    Without this, everyone must delay until things settle.


The approach you outline is to basically make easier for slower moving 
CAs to transition to PQ. Is this desirable? Aren't users better off in a 
world where CAs are racing to be the first to deploy PQ and enjoy 
widespread trust from root programs? Without there being any direct 
benefit to being early in the PQ transition, we're likely to see CAs 
reluctant to make the considerable investment in the necessary hardware, 
software and procedures. After all, why not let someone else go first 
and pave the way?

We'll also want to consider much shorter lifetimes for PQ root 
certificates to ensure that there cannot be a repeat of the Android 
debacle. I understand the Google Root Program has already announced an 
intent to limit root certificates to 7 year lifetimes [5]. This would 
effectively shift responsibility for handling old insecure devices from 
website operators to device manufacturers, where it correctly belongs.

Compared to the alternatives, Trust Expressions seems to solve the 
problems less effectively and introduce much greater risks. If you 
really feel the opposite is true, I would strongly encourage you to:
a) Write up concrete security benefits which Trust Expressions uniquely 
enables. It's important to explain not just how Trust Expressions solves 
the problem, but also why incentives are aligned for the various 
stakeholders to deploy it correctly such that those benefits can be 
realized.

b) Make a good faith attempt to engage with the concerns raised about 
the risks. Think through how a party with different goals to your own 
could exploit the negotiation offered by Trust Expressions for their own 
purposes. If your goal was instead to enable surveillance and domestic 
control of the web for your government, how would widespread support for 
Trust Expressions help you?

Best,
Dennis

[1] https://letsencrypt.org/images/isrg-hierarchy.png

[2] http://github.com/tlswg/draft-ietf-tls-cert-abridge/

[3] https://letsencrypt.org/2015/10/19/lets-encrypt-is-trusted

[4] 
https://www.ssl.com/blogs/ssl-com-legacy-cross-signed-root-certificate-expiring-on-september-11-2023/

[5] 
https://www.chromium.org/Home/chromium-security/root-ca-policy/moving-forward-together/#encouraging-modern-infrastructures-and-agility