[TLS]Re: Trust Anchor Negotiation Surveillance Concerns and Risks

Mike Shaver <mike.shaver@gmail.com> Mon, 22 July 2024 18:00 UTC

Return-Path: <mike.shaver@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 CF303C1D6FAD for <tls@ietfa.amsl.com>; Mon, 22 Jul 2024 11:00:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.107
X-Spam-Level:
X-Spam-Status: No, score=-2.107 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] autolearn=unavailable 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 9DscXLg7KG_p for <tls@ietfa.amsl.com>; Mon, 22 Jul 2024 11:00:29 -0700 (PDT)
Received: from mail-oa1-x2c.google.com (mail-oa1-x2c.google.com [IPv6:2001:4860:4864:20::2c]) (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 48694C1D6FA6 for <tls@ietf.org>; Mon, 22 Jul 2024 11:00:18 -0700 (PDT)
Received: by mail-oa1-x2c.google.com with SMTP id 586e51a60fabf-260fff38792so2391905fac.1 for <tls@ietf.org>; Mon, 22 Jul 2024 11:00:18 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1721671217; x=1722276017; darn=ietf.org; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=GLa+Cvcw0INObts8ifP4NFMGnnEki2joG5LWrzg5Wbk=; b=lLG9xpxhJ+ga+w3LjkzR0DNMLvEugKb1Ew77GDaP8iI9l8JYq2gmPUrFI0OObAsN6m gttIVY5nKrep+w90g4KhQN2NWm0mEfiAuMXk/mCuf5uPVnc1LhAKp4WsOOU1favO+4Se pYx+jhcRYWjqiV61ziIYHQAvKBdt/gzh9UEBVwp7JtkI9alL0k+AdFzJ7kjEWmSHMKtT JuaOVVnzRNmmtw3hvgcHxUOpoclR4PPyQ+ygaywUPVQscJ3tHxh3KwvNrYUD4iltY8ES nR5xmoTpPxQskSm0JC3RZGsYSmv5ouiq0hVoj7WhI06a94vhNhtTL8eyX7097hg7o2gi Kl3Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721671217; x=1722276017; h=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=GLa+Cvcw0INObts8ifP4NFMGnnEki2joG5LWrzg5Wbk=; b=CYHg6U1615DmfMjofO3mwkKokrkDLOxnph60uhC7gQTiMntCc3GKMGw3TYV+gVxpTc EibNgnV2X8mV/fAC/UHnYdJDE8VVOZkZBgxV+pC8vC+2pVHX5sMDFs9uBawJOjr799nF WX9pen6WjIgDCg6mqVOX1v3ql5L/NjU3aD8etayZe5k1Qu2Sw7uV/cV6TRKBkIdEs5qv 8tTMFl0XFKd32HNcKfbN+fJnBbaDBskvW7Fx2JUuyDxuanqm26Xca84+ddt1AyJj+vP2 fkh6X7Fh/kbveAIpIUw3vmXuKoiYq5827Zkysd/6hlCydfDbcwyNrWx9rU0SJyslS90Y A3ZQ==
X-Forwarded-Encrypted: i=1; AJvYcCVzVqdolNFXvx+Uty9qWPp1+6gE+beh0451hCpVq9SXEkGqep9eET4AHo7EqeL06wzNNOH5D9oqHMWHsQQ=
X-Gm-Message-State: AOJu0YzwdoCfqfVeNveqCraazyZRUpyO5Wf5seJkrS5PLmn1LRtNKWju ceDCVi6r2JM7jYCVZkbQaw9NOR4zvKPV8pg6rn5RovrlWwhniUlQ3iU0Mp/hoJr531WKVwD09oH WdhcR3k/jzTI0idHitx5AKFsbFoCX4/Se
X-Google-Smtp-Source: AGHT+IEdI73zdbbVjd/9H3TDW8ZaboJq7uQ+nyeJ50FBiTbAucvhbg4eQl4UOwe7ZV4satw5OdzOwy+7a1fjZ9A3fVg=
X-Received: by 2002:a05:6870:64a5:b0:25d:f8fa:b535 with SMTP id 586e51a60fabf-2638dfb1f59mr6709290fac.6.1721671216949; Mon, 22 Jul 2024 11:00:16 -0700 (PDT)
MIME-Version: 1.0
References: <CAD2nvsT4qWqudiv1C1wZn6rB4_s-9EDENq5TXEbxr_ygcMFjDQ@mail.gmail.com> <CAChr6Sw+gxK3dO29F9bsLTQReJz6LzT2hZb5O7LAXmKzQbKTSw@mail.gmail.com> <CACf5n7_29CNXLf+SmpKKOWkc_3Oi2BZqZ8irU+z=3btJns_1-Q@mail.gmail.com> <CAChr6SxJ3r88a4Aehv_5fsSWb1JApV6Lg4hfwdm0Oh5x04_shQ@mail.gmail.com> <479BA457-9001-4EBC-A84F-9E3EB71E809F@akamai.com> <CACsn0cmhsh-zeJOaa7xy_2crxgvhAF=nK9FqWxxf1dB2SMhMyQ@mail.gmail.com> <Zpu0reBpH3dtFYdf@LK-Perkele-VII2.locald> <CADQzZqtsj272Gt771Ef=VhS2+WvWKkct0Jx1=wmyS7kTu0ds1w@mail.gmail.com> <CAF8qwaB3VuWSYTi-gH99+N_cgi1ZAdMpzhrSE4=KTD5xbQMwXA@mail.gmail.com> <CADQzZqtyCQwQR2WPrBdqGGUm_tvZ7Akra5z9vqJ30x9vWBtxew@mail.gmail.com> <CAF8qwaDt-vhUb-E48874QLKe-YOc3xzC4VsArzYf_BGREz0+QQ@mail.gmail.com> <CADQzZqvw0Phv1oa--C6HSZJpKkG899v36g-xXrwyiKpM8cyYJw@mail.gmail.com> <254e0d54-7438-4666-8a0b-1ddf431e65d4@dennis-jackson.uk>
In-Reply-To: <254e0d54-7438-4666-8a0b-1ddf431e65d4@dennis-jackson.uk>
From: Mike Shaver <mike.shaver@gmail.com>
Date: Mon, 22 Jul 2024 14:00:05 -0400
Message-ID: <CADQzZqupwoqLbJNEU4RgA+G983_a34g-MmHsJN=XZygjLtDUkw@mail.gmail.com>
To: Dennis Jackson <ietf=40dennis-jackson.uk@dmarc.ietf.org>, TLS List <tls@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000004e6fae061dd9d17f"
Message-ID-Hash: KSUYOKZQQDLA5FCQHK7E3FYI7347EDYA
X-Message-ID-Hash: KSUYOKZQQDLA5FCQHK7E3FYI7347EDYA
X-MailFrom: mike.shaver@gmail.com
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: Trust Anchor Negotiation Surveillance Concerns and Risks
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/L5zEPRx-f0ptJ3-pQcByJHfwzfU>
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>

On Mon, Jul 22, 2024 at 1:36 PM Dennis Jackson <ietf=
40dennis-jackson.uk@dmarc.ietf.org> wrote:

> I would like to hear from the authors (or others in the TLS implementation
> community) if they think Trust Expressions / Trust Anchors can be pushed
> into non-browser endpoints by default and the work they think would be
> required to achieve it?
>
> I think I see how, with substantial investment, an application like a
> browser could adopt these designs. I'm not sure I can see a TLS library
> ever being able to offer it by default.
>

Today, TLS libraries used in “general purposes” systems, like the default
HTTP libraries or such for languages, have a pretty simple model of trust:
list of certs, each with notBefore/notAfter/eku at best. Already that lags
behind some of the nuance that web browsers use, whether Mozilla’s simple
notBefore-of-issued-cert measure, or Chrome’s more complex SCT time
validation.

As an example, the popular Python package “certifi” provides a set of
“curated” roots, which is actually the Firefox root set. When Firefox
stopped trusting certificates issued by “e-commerce management” after a
certain date, that package removed the root entirely, meaning that unlike
with Firefox (and Chrome), all previously issued certificates were also
rejected.

We’re in the early days of these “bounded trust” capabilities, and I have
some hope that we will settle into a small number of additional rules that
are sufficient to make root distrust (or scope reduction) easier on the
ecosystem. At that point, libraries like OpenSSL will need to decide if
they want to be able to reflect the web PKI (as interpreted by at least one
browser, anyway), in which case they will need to add these sorts of
checks, and root store providers will need to configure them. Maybe we end
up with a standard language for expressing them, but root stores already
differ in format today without much pain, so I don’t think that’s
necessary. I think that most program authors who use these “standard” TLS
implementations are generally expecting to validate as a browser would,
unless they take additional steps, so I see this lack as a bug in those
libraries, or at least a capability that needs to be easily available in
each stack ecosystem.

Trust Anchor negotiation will require configuration of both sides, but so
does cipher negotiation and so forth, and I think that it will be fine for
a library to come with “sane, web-like” defaults, and then provide a
mechanism for configuring alternative policies when desired.

Whether it should be or not, especially given recent events, it’s generally
easier to get a configuration change deployed than a software update. But
also, even if the legacy endpoints never get a trust anchors configuration
update or support, those that *do* support it can be treated appropriately
without disrupting the frozen clients. This would let modern clients like
browsers continue to tend to the web PKI, without the opposing force of
such possible disruptions. From my experience with root programs, this
would be a very welcome capability!

Mike