[TLS]I-D Action: draft-davidben-tls-trust-expr-03.txt

2024-05-24 Thread internet-drafts
Internet-Draft draft-davidben-tls-trust-expr-03.txt is now available. It is a
work item of the Transport Layer Security (TLS) WG of the IETF.

   Title:   TLS Trust Expressions
   Authors: David Benjamin
Devon O'Brien
Bob Beck
   Name:draft-davidben-tls-trust-expr-03.txt
   Pages:   34
   Dates:   2024-05-24

Abstract:

   This document defines TLS trust expressions, a mechanism for relying
   parties to succinctly convey trusted certification authorities to
   subscribers by referencing named and versioned trust stores.  It also
   defines supporting mechanisms for subscribers to evaluate these trust
   expressions, and select one of several available certification paths
   to present.  This enables a multi-certificate deployment model, for a
   more agile and flexible PKI that can better meet security
   requirements.

The IETF datatracker status page for this Internet-Draft is:
https://datatracker.ietf.org/doc/draft-davidben-tls-trust-expr/

There is also an HTML version available at:
https://www.ietf.org/archive/id/draft-davidben-tls-trust-expr-03.html

A diff from the previous version is available at:
https://author-tools.ietf.org/iddiff?url2=draft-davidben-tls-trust-expr-03

Internet-Drafts are also available by rsync at:
rsync.ietf.org::internet-drafts


___
TLS mailing list -- tls@ietf.org
To unsubscribe send an email to tls-le...@ietf.org


[TLS]Re: WG Adoption for TLS Trust Expressions

2024-05-24 Thread Dennis Jackson

On 23/05/2024 17:41, David Benjamin wrote:

On Thu, May 23, 2024 at 11:09 AM Dennis Jackson 
 wrote


This is something that I believe David Benjamin and the other
draft authors, and I all agree on. You and Nick seem to have
misunderstood either the argument or the draft.

David Benjamin, writing on behalf of Devon and Bob as well:


By design, a multi-certificate model removes the ubiquity
requirement for a trust anchor to be potentially useful for a
server operator.

[...]

Server operators, once software is in place, not needing to be
concerned about new trust expressions or changes to them. The
heavy lifting is between the root program and the CA.

From the Draft (Section 7):


Subscribers SHOULD use an automated issuance process where the CA
transparently provisions multiple certification paths, without
changes to subscriber configuration.

The CA can provision whatever chains it likes without the
operator's involvement. These chains do not have to be trusted by
any clients. This is a centralized mechanism which allows one
party (the CA) to ship multiple chains of its choice to all of its
subscribers. This obviously has beneficial use cases, but there
are also cases where this can be abused.


Hi Dennis,

Since you seem to be trying to speak on my behalf, I'm going to go 
ahead and correct this now. This is not true. I think you have 
misunderstood how this extension works. [...]



Hi David,

The certification chains issued to the server by the CA comes tagged 
with a list of trust stores its included in. The named trust stores are 
completely opaque to the server. These chains and names may not be 
trusted by any client nor approved by any server, they are issued solely 
by the CA as opaque labels. These chains sit on the server and will not 
be used unless a client connects with the right trust store label but 
obviously can easily be scanned for by anyone looking to check how 
pervasively deployed the alternate trust store is.


Do you dispute any part of that? Most of what you wrote went off on a 
completely different tangent.


Of course, whether this property (whether servers can usefully 
pre-deploy not-yet-added trust anchors), which trust expressions does 
not have, even matters boils to whether a root program would 
misinterpret availability in servers as a sign of CA trustworthiness, 
when those two are clearly unrelated to each other.


Again, my primary concern here is not around the behavior of individual 
root stores, this is not relevant to the concern I'm trying to 
communicate to you. I know folks from all of the major root stores have 
great faith in their judgement and technical acumen.


My concern is that Trust Expressions upsets a fragile power balance 
which exists outside of the individual root stores. There is an eternal 
war between governments pushing to take control of root stores and the 
security community pushing back. This battle happens in parliaments and 
governments, between lawmakers and officials, not within root stores and 
their individual judgement largely does not matter to this war. The 
major advantages we as the security community have today are that:


    a) These attempts to take control for surveillance are nakedly 
obvious to the local electorate because crappy domestic roots have no 
legitimate purpose because they can never achieve any real adoption.


    b) If a root store were to bow to pressure and let in a root CA 
used for interception, every other country has an interest in preventing 
that. An international WebPKI means that we are either all secure, or 
all insecure, together.


Trust Expressions, though intended to solve completely different 
problems, will accidentally eradicate both of these advantages. Firstly, 
it provides a nice on ramp for a new domestic trust store, mostly 
through the negotiation aspect but also through the CA pre-distribution. 
Secondly, by enabling fragmentation along geographic boundaries whilst 
maintaining availability of websites. Without Trust Expressions, we 
cannot balkanize TLS. With Trust Expressions, we can and we know people 
who want to (not anyone in this thread).


If you still do not understand this wider context within which all of 
our work sits, I do not think further discussion between you and I is 
going to help matters.


I would suggest we focus our discussion on the use cases of Trust 
Expressions and how exactly it would work in practice - these concerns I 
shared earlier in the thread are solely technical and operational and 
you and I might be able to make better progress towards a common 
understanding.


Best,
Dennis
___
TLS mailing list -- tls@ietf.org
To unsubscribe send an email to tls-le...@ietf.org


[TLS]Re: WG Adoption for TLS Trust Expressions

2024-05-24 Thread Dennis Jackson

Hi Ryan,

On 23/05/2024 19:01, Ryan Hurst wrote:
Regarding the concern about government-mandated adoption of root 
certificates, I also care deeply about this issue. This is why I am 
disappointed by the one-sided nature of the conversation. I see no 
mechanism in this proposal that bypasses operator consent, and while 
governments do and will continue to force operators to make changes 
not in their interest, this proposal doesn't change that reality. 
Continuing to focus on this issue in this way detracts from the more 
constructive discussions happening in this thread.
The problem here is that fragmentation (which you acknowledge as a 
compelling concern) combined with making it much easier to deploy new 
CAs (a core goal of the draft) which together alters the power balance 
between the security community and governments in rather the wrong 
direction. I am not going to spend any further words on it here, but I'm 
disappointed you've engaged so dismissively in what has become a long 
discussion on a deeply complex topic.


The most compelling argument against Trust Expressions I see in the 
thread is the potential for fragmentation. However, the current 
conversation on this topic overlooks the existing fragmentation 
challenges faced by site operators. The primary concern I hear from 
these operators is the anxiety over changes related to cipher suites 
and certificates, fearing that these changes might inadvertently break 
services in exchange for security properties that their leadership 
isn’t asking for. Trust Expressions, in my view, offers a net-positive 
solution to this problem by allowing site operators to manage the 
trust anchor portion of this risk, which they cannot do effectively today.


Is it not rather the opposite, that this draft will give server 
operators an additional product space of choices and incompatibilities? 
With Trust Expressions, we must anticipate that CAs will need to jump 
through at least four separate hoops to provision a chain for each of 
the major root stores, as well as provision a chain for any past 
incompatible versions which are still popular. History does not suggest 
that CAs are particularly capable of managing these considerably more 
complex structures, given existing struggles with getting single chains 
correct.


Worse, we cannot expect Trust Expressions to become universal in any 
reasonable timeframe, meaning we still have the compatibility headache 
of existing and new clients with no Trust Expressions support.


At the same time, we are seeing more embedded devices being deployed 
without long-term maintenance strategies, automatic updates, or 
mechanisms to manage root store lists.


Can you evidence this? The UK and the EU have passed fairly sweeping 
laws over the past year to require that manufacturers provide long term 
maintenance and security updates for the entire lifecycle of new digital 
products [1,2]. The USA usually catches up eventually.


Better still, with the shift to PQ we have the best opportunity to adopt 
the Chrome Root Program's proposal for 7 year certificates. This would 
entirely fix this issue by pushing it from website operators to device 
manufacturers, where it should belong anyway :-), rather than creating a 
fragmented compatibility nightmare by embracing it and putting labels on 
it.


Best,
Dennis

[1] https://digital-strategy.ec.europa.eu/en/policies/cyber-resilience-act
[2] 
https://www.gov.uk/government/news/new-laws-to-protect-consumers-from-cyber-criminals-come-into-force-in-the-uki





On Thu, May 23, 2024 at 10:40 AM Watson Ladd  
wrote:


On Thu, May 23, 2024 at 12:42 PM David Benjamin
 wrote:

>
> Of course, whether this property (whether servers can usefully
pre-deploy not-yet-added trust anchors), which trust expressions
does not have, even matters boils to whether a root program would
misinterpret availability in servers as a sign of CA
trustworthiness, when those two are clearly unrelated to each
other. Ultimately, the trustworthiness of CAs is a subjective
social question: do we believe this CA has *and will continue*
only sign true things? We can build measures to retroactively
catch issues like Certificate Transparency, but the key question
is fundamentally forward-looking. The role of a root program is to
make judgement calls on this question. A root program that so
misunderstands its role in this system that it conflates these two
isn't going to handle its other load-bearing responsibilities either.

As the old saw goes "past performance is no guarantee of future
results, but it sure helps". Moreover root programs have to balance
the benefits of including a CA against the costs. One of those
benefits is the number of sites that use it.

Sincerely,
Watson

>
> David
> ___
> TLS mailing list -- tls@ietf.org
> To unsubscribe send an email to 

[TLS]Re: WG Adoption for TLS Trust Expressions

2024-05-24 Thread Nick Harper
On Thu, May 23, 2024 at 4:14 AM Dennis Jackson  wrote:

> Hi Nick,
>
> I think the issues around risk have a great deal of nuance that you're not
> appreciating, but which I've tried to lay out below. I appreciate that
> rational reasonable people can absolutely disagree on how they weigh up
> these risks, but I think we have to agree that Trust Expressions enables
> websites to adopt new CA chains regardless of client trust and even builds
> a centralized mechanism for doing so. It is a core feature of the design.
>
> On the issues around benefit, you've repeated the high level talking
> points around PQ, adopting new CAs and supporting older devices, but these
> talking points don't pan out on closer inspection.
>
> The central problem is that whilst Trust Expressions introduces a
> negotiation mechanism at the TLS layer, it is only moving the pain up the
> stack, without actually solving anything. To actually solve these problems,
> Trust Expressions envisages that either website operators are doing a
> complex dance with multiple CAs to enable the universal compatibility they
> already enjoy today or that new CAs are forming business relationships with
> incumbent CAs, identically as they would for a cross sign. In both cases,
> we're adding a lot more complexity, fragmentation and pain, for no actual
> return.
>
> A detailed response is inline below.
>
> Best,
> Dennis
>

Hi Dennis,

Since there's been a lot of discussion on this thread, I'm going to reply
here to your comments relating to the problem Trust Expressions solves and
how it compares to other potential solutions. The discussion of the risks
is still an important topic, but to make it easier to focus on that
discussion my replies to that will be in another message forking this
thread.

The main problem that Trust Expressions solves is giving servers a reliable
way to pick which one of their multiple certificate chains to use on a
connection with a given client. The transition to a PQC PKI is a motivating
use case where servers will have multiple certificate chains and need to
select one vs the other, though other use cases for a multi-certificate
model also exist and have also been discussed. This is issue #2 in Andrei's
email [1].

I agree with Andrei, you, and others that existing widely supported
mechanisms (signature_algorithms and signature_algorithms_cert TLS
extensions) solve issue #1 of selecting a chain compatible with the
client's signature suite support, e.g. whether or not the client supports
PQC PKI. Phrased differently, this existing mechanism is the negotiation
mechanism needed by PQC PKI experiments. The only gap in using
signature_algorithms_cert for negotiating the use of a PQC PKI experiment
is issue #2 - identifying whether the client trusts a particular
certificate chain.

You suggest that instead of the client providing an indication of what
roots it trusts, the server can (if the client supports the PQC algorithm)
send a PQC certificate chain that is cross-signed by a ubiquitous classical
CA. In this case, the client and server pay the cost of the PQC cert chain
on the wire but only get the security of classical cryptography. Using a
cross-sign also doesn't give the server a reliable signal about whether the
client will trust the chain; instead it maintains the status quo where
server operators hope that the cross-sign is ubiquitous enough for the
client to trust it. This also assumes that the PQC PKI uses X.509 to be
able to do the cross-sign, which puts an unnecessary design constraint on
PQC PKI.

Trust Expressions solves the problem of a server identifying which (if any)
of its multiple certificate chains will be trusted by the client that is
currently connecting to it. Temporal trust store divergence is one example
of this problem. Despite your claims otherwise, the authors have explained
[2] how Trust Expressions solves this problem:

> 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.

The key point here is that Trust Expressions keeps this problem from
getting more complicated. Cross-signing only works if it's possible to
construct a set of paths with the right cross-signs trusted by both the old
devices and modern clients. I previously cited [3] as evidence of this,
with a Let's Encrypt cross-sign having expired with no replacement. If
cross-signs were a viable solution, we'd see more of it happening.
Cross-signs are allowed by root programs. You seem to think that root
programs encouraging cross signing would make them more of a valuable
solution, but I can't infer from yo

[TLS]TLS Trust Expressions risks

2024-05-24 Thread Nick Harper
On Fri, May 24, 2024 at 10:14 AM Dennis Jackson  wrote:

> Hi David,
>
> The certification chains issued to the server by the CA comes tagged with
> a list of trust stores its included in. The named trust stores are
> completely opaque to the server. These chains and names may not be trusted
> by any client nor approved by any server, they are issued solely by the CA
> as opaque labels. These chains sit on the server and will not be used
> unless a client connects with the right trust store label but obviously can
> easily be scanned for by anyone looking to check how pervasively deployed
> the alternate trust store is.
>
> Do you dispute any part of that? Most of what you wrote went off on a
> completely different tangent.
>
> Of course, whether this property (whether servers can usefully pre-deploy
> not-yet-added trust anchors), which trust expressions does not have, even
> matters boils to whether a root program would misinterpret availability in
> servers as a sign of CA trustworthiness, when those two are clearly
> unrelated to each other.
>
> Again, my primary concern here is not around the behavior of individual
> root stores, this is not relevant to the concern I'm trying to communicate
> to you. I know folks from all of the major root stores have great faith in
> their judgement and technical acumen.
>
> My concern is that Trust Expressions upsets a fragile power balance which
> exists outside of the individual root stores. There is an eternal war
> between governments pushing to take control of root stores and the security
> community pushing back. This battle happens in parliaments and governments,
> between lawmakers and officials, not within root stores and their
> individual judgement largely does not matter to this war. The major
> advantages we as the security community have today are that:
>
> a) These attempts to take control for surveillance are nakedly obvious
> to the local electorate because crappy domestic roots have no legitimate
> purpose because they can never achieve any real adoption.
>
> b) If a root store were to bow to pressure and let in a root CA used
> for interception, every other country has an interest in preventing that.
> An international WebPKI means that we are either all secure, or all
> insecure, together.
>
> Trust Expressions, though intended to solve completely different problems,
> will accidentally eradicate both of these advantages. Firstly, it provides
> a nice on ramp for a new domestic trust store, mostly through the
> negotiation aspect but also through the CA pre-distribution. Secondly, by
> enabling fragmentation along geographic boundaries whilst maintaining
> availability of websites. Without Trust Expressions, we cannot balkanize
> TLS. With Trust Expressions, we can and we know people who want to (not
> anyone in this thread).
>
> If you still do not understand this wider context within which all of our
> work sits, I do not think further discussion between you and I is going to
> help matters.
>
> I would suggest we focus our discussion on the use cases of Trust
> Expressions and how exactly it would work in practice - these concerns I
> shared earlier in the thread are solely technical and operational and you
> and I might be able to make better progress towards a common understanding.
>
> Best,
> Dennis
>

Hi Dennis,

I’m replying in this separate thread to respond to some of your comments
and responses around the risks related to Trust Expressions so that we can
keep the primary thread focused on the technical matters. First, let’s
agree on the facts of what Trust Expressions does. Trust Expressions makes
it easier to deploy new CAs. Specifically, it makes it easier for servers
to use certificate chains issued by new CAs.

Trust Expressions does not enable the use/adoption/deployment of new CAs
regardless of trust. It only does so for trusted CAs, whereby trusted I
mean the CA is in a client’s root store. David Benjamin explains [1] this
in detail in his latest reply. If you permit me to summarize what’s already
been said on the thread: At the time of certificate issuance, the CA
provides the web server with metadata (in the form of a
TrustStoreInclusionList, section 5.1 [2]) indicating which trust stores
contain the root for that certificate chain. When responding to a
ClientHello that contains the trust_expressions TLS extension, the server
will only use Trust Expressions if it has a certificate chain that at
issuance time matched one of the client’s TrustStores. Trust Expressions
only enables the deployment of certs from a new CA if that CA is trusted by
a client when the CA sends the subscriber the TrustStoreInclusionList
alongside the certificate chain. The client has to trust the CA before
Trust Expressions enables use of a new CA, hence it only enables new CAs
that are trusted. If the CA makes up its own trust store label to use for
deployment, clients would have to be compelled to advertise that trust
store label for this “pre-

[TLS]Re: WG Adoption for TLS Trust Expressions

2024-05-24 Thread Ilari Liusvaara
On Fri, May 24, 2024 at 06:14:00PM +0100, Dennis Jackson wrote:
> 
> Trust Expressions, though intended to solve completely different problems,
> will accidentally eradicate both of these advantages. Firstly, it provides a
> nice on ramp for a new domestic trust store, mostly through the negotiation
> aspect but also through the CA pre-distribution. Secondly, by enabling
> fragmentation along geographic boundaries whilst maintaining availability of
> websites. Without Trust Expressions, we cannot balkanize TLS. With Trust
> Expressions, we can and we know people who want to (not anyone in this
> thread).

One detail of Trust Expressions is that the extension value is
TrustExpressionList, not TrustExpression. That is, client can signal
support for multiple root programs.

Thus, client X in region Y would signal X+Y, not X_Y to the server. The
server that does not want to care about Y can then pick X (which is
global) and send certificate accordingly.

If getting cert in Y is way more painful than getting cert in X, that
is further incentive to do just that... And that one region is one of
those cases.

And even if it isn't more painful, having more certificates is still
more painful, so there is incentive to avoid that.

The acknowledgement does not say which root program the server used.


> I would suggest we focus our discussion on the use cases of Trust
> Expressions and how exactly it would work in practice - these concerns I
> shared earlier in the thread are solely technical and operational and you
> and I might be able to make better progress towards a common understanding.

As for my guesses about how well Trust Expressions would work in
practice for various cases presented:


- It would not make CA distrusts less painful.

  I expect most sites do not have alternate certificates that are not
  off some oddball issuers for some weird devices. Such certificates
  are not usable for browser usecases, as those either have never
  been in the trust store, or have fallen out of it.

- It is very effective at intermediate suppression.

  If the client can keep up even remotely up to date, I expect ~100%
  supression. This includes compat cross-signs that will pop up if
  root programs shorten root lifetimes.

- It does help Post-Quantum deployment quite a lot.

  Without, until major four all accept common roots, PQ transition is
  dead in the water. And if site needs to deal with oddball clients,
  it is dead until quantum armageddon. Not a good place to be, to put
  it mildly.  

  The SHA-1 to SHA-2 transion was rather painful and took over 10 years.

- It could be used for migrating stuff off WebPKI.

  There is all sorts of stuff tacked on WebPKI that is constant source
  of pain (especially in any sort of transitions). Getting it off
  WebPKI into private PKIs would cut the pain by quite a bit. TE could
  be used that way.  

  I propose API in client TLS libraries that let's cliet use a custom
  root program, that then gets signaled to server via TE. I do plan
  to add such API to the TLS library I wrote (later, when TE can
  archive interop).




-Ilari

___
TLS mailing list -- tls@ietf.org
To unsubscribe send an email to tls-le...@ietf.org


[TLS]Re: TLS Trust Expressions risks

2024-05-24 Thread Watson Ladd
On Fri, May 24, 2024 at 2:16 PM Nick Harper  wrote:
>
> On Fri, May 24, 2024 at 10:14 AM Dennis Jackson 
>  wrote:
>>
>> Hi David,
>>
>> The certification chains issued to the server by the CA comes tagged with a 
>> list of trust stores its included in. The named trust stores are completely 
>> opaque to the server. These chains and names may not be trusted by any 
>> client nor approved by any server, they are issued solely by the CA as 
>> opaque labels. These chains sit on the server and will not be used unless a 
>> client connects with the right trust store label but obviously can easily be 
>> scanned for by anyone looking to check how pervasively deployed the 
>> alternate trust store is.
>>
>> Do you dispute any part of that? Most of what you wrote went off on a 
>> completely different tangent.
>>
>> Of course, whether this property (whether servers can usefully pre-deploy 
>> not-yet-added trust anchors), which trust expressions does not have, even 
>> matters boils to whether a root program would misinterpret availability in 
>> servers as a sign of CA trustworthiness, when those two are clearly 
>> unrelated to each other.
>>
>> Again, my primary concern here is not around the behavior of individual root 
>> stores, this is not relevant to the concern I'm trying to communicate to 
>> you. I know folks from all of the major root stores have great faith in 
>> their judgement and technical acumen.
>>
>> My concern is that Trust Expressions upsets a fragile power balance which 
>> exists outside of the individual root stores. There is an eternal war 
>> between governments pushing to take control of root stores and the security 
>> community pushing back. This battle happens in parliaments and governments, 
>> between lawmakers and officials, not within root stores and their individual 
>> judgement largely does not matter to this war. The major advantages we as 
>> the security community have today are that:
>>
>> a) These attempts to take control for surveillance are nakedly obvious 
>> to the local electorate because crappy domestic roots have no legitimate 
>> purpose because they can never achieve any real adoption.
>>
>> b) If a root store were to bow to pressure and let in a root CA used for 
>> interception, every other country has an interest in preventing that. An 
>> international WebPKI means that we are either all secure, or all insecure, 
>> together.
>>
>> Trust Expressions, though intended to solve completely different problems, 
>> will accidentally eradicate both of these advantages. Firstly, it provides a 
>> nice on ramp for a new domestic trust store, mostly through the negotiation 
>> aspect but also through the CA pre-distribution. Secondly, by enabling 
>> fragmentation along geographic boundaries whilst maintaining availability of 
>> websites. Without Trust Expressions, we cannot balkanize TLS. With Trust 
>> Expressions, we can and we know people who want to (not anyone in this 
>> thread).
>>
>> If you still do not understand this wider context within which all of our 
>> work sits, I do not think further discussion between you and I is going to 
>> help matters.
>>
>> I would suggest we focus our discussion on the use cases of Trust 
>> Expressions and how exactly it would work in practice - these concerns I 
>> shared earlier in the thread are solely technical and operational and you 
>> and I might be able to make better progress towards a common understanding.
>>
>> Best,
>> Dennis
>
>
> Hi Dennis,
>
> I’m replying in this separate thread to respond to some of your comments and 
> responses around the risks related to Trust Expressions so that we can keep 
> the primary thread focused on the technical matters. First, let’s agree on 
> the facts of what Trust Expressions does. Trust Expressions makes it easier 
> to deploy new CAs. Specifically, it makes it easier for servers to use 
> certificate chains issued by new CAs.

By trust expressions do we mean the extension, or the envisioned world
where cert automation results in the CA provisioning multiple
certificates to the server via ACME extensions? I don't see why a CA
would send a cert from a competitor along with its own. This confusion
is I think contributing to the rising temperatures, coming close to
that of autoignition of IETF emails.

>
> Trust Expressions does not enable the use/adoption/deployment of new CAs 
> regardless of trust. It only does so for trusted CAs, whereby trusted I mean 
> the CA is in a client’s root store. David Benjamin explains [1] this in 
> detail in his latest reply. If you permit me to summarize what’s already been 
> said on the thread: At the time of certificate issuance, the CA provides the 
> web server with metadata (in the form of a TrustStoreInclusionList, section 
> 5.1 [2]) indicating which trust stores contain the root for that certificate 
> chain. When responding to a ClientHello that contains the trust_expressions 
> TLS extension, the server will only use T

[TLS]Re: WG Adoption for TLS Trust Expressions

2024-05-24 Thread Christian Huitema



On 5/23/2024 9:41 AM, David Benjamin wrote:
At the end of the day, the TLS components of trust expressions are 
simply a more size-efficient form of the certificate_authorities field. 
The rest is working through the deployment implications to reduce server 
operator burden. However, the way we achieve this size efficiency is by 
*not* saying the CAs names. Instead, the CA sets are indirected through 
named and versioned "trust stores". However, the price one inherently 
needs to pay here is that servers need to know how to map from those 
trust stores back to the certificates. We solve this with the 
TrustStoreInclusionList metadata from the CA.


That TrustStoreInclusionList structure is necessarily a point-in-time 
snapshot of the state of the world. If a root program has not included a 
CA yet, the CA cannot claim it in the metadata or connections will fail. 
If the CA is included in zero root programs, the only viable (i.e. 
correct and does not cause interop issues) TrustStoreInclusionList is 
the empty list, in which case the certificate will never be presented.


I think this is making the assumptions that the only choice for clients 
is to adopt one "well known" trust store, probably from a short list. I 
am concerned that such mechanisms reinforce ongoing centralization of 
the web.


-- Christian Huitema

___
TLS mailing list -- tls@ietf.org
To unsubscribe send an email to tls-le...@ietf.org


[TLS]Re: TLS Trust Expressions risks

2024-05-24 Thread Brendan McMillion
>
> What point in this process depends on Trust Expressions - that is to say,
> at what point does a browser decide that the government CA is acting
> differently enough from the other CAs in its root store that it’s willing
> to fragment or bifurcate its trust store, and after that point, how does
> the politics play out that mandating this CA’s trust is still somehow
> legitimate?


I'll assert that many people consider eavesdropping by their own government
to be legitimate, and eavesdropping by foreign governments to be
illegitimate. The point at which a browser would need to make a decision
about bifurcating its trust store or pulling out of a country, is the
moment a government-controlled CA starts mis-issuing certificates. Without
TE, browsers have no ability to bifurcate their trust store, and servers
have no ability to support a bifurcated client base. So without TE, the
decision must be to pull out of the country, as this is the only
technically expedient solution which is acceptable to most people. With TE,
browsers /can/ bifurcate their trust store, and servers /can/ support a
bifurcated client base. So a decision to pull out of the country, rather
than bifurcate, is simply malicious.

It's also worth pointing out that the security benefits of TE (i.e.,
allowing rapid distrust of roots) come from gracefully handling client
fragmentation that's the result of time-since-last-update, not
fragmentation that's a result of different codebases. It may be worth
thinking about how to rework the proposal to reflect that


On Fri, May 24, 2024 at 2:46 PM Watson Ladd  wrote:

> On Fri, May 24, 2024 at 2:16 PM Nick Harper  wrote:
> >
> > On Fri, May 24, 2024 at 10:14 AM Dennis Jackson  40dennis-jackson...@dmarc.ietf.org> wrote:
> >>
> >> Hi David,
> >>
> >> The certification chains issued to the server by the CA comes tagged
> with a list of trust stores its included in. The named trust stores are
> completely opaque to the server. These chains and names may not be trusted
> by any client nor approved by any server, they are issued solely by the CA
> as opaque labels. These chains sit on the server and will not be used
> unless a client connects with the right trust store label but obviously can
> easily be scanned for by anyone looking to check how pervasively deployed
> the alternate trust store is.
> >>
> >> Do you dispute any part of that? Most of what you wrote went off on a
> completely different tangent.
> >>
> >> Of course, whether this property (whether servers can usefully
> pre-deploy not-yet-added trust anchors), which trust expressions does not
> have, even matters boils to whether a root program would misinterpret
> availability in servers as a sign of CA trustworthiness, when those two are
> clearly unrelated to each other.
> >>
> >> Again, my primary concern here is not around the behavior of individual
> root stores, this is not relevant to the concern I'm trying to communicate
> to you. I know folks from all of the major root stores have great faith in
> their judgement and technical acumen.
> >>
> >> My concern is that Trust Expressions upsets a fragile power balance
> which exists outside of the individual root stores. There is an eternal war
> between governments pushing to take control of root stores and the security
> community pushing back. This battle happens in parliaments and governments,
> between lawmakers and officials, not within root stores and their
> individual judgement largely does not matter to this war. The major
> advantages we as the security community have today are that:
> >>
> >> a) These attempts to take control for surveillance are nakedly
> obvious to the local electorate because crappy domestic roots have no
> legitimate purpose because they can never achieve any real adoption.
> >>
> >> b) If a root store were to bow to pressure and let in a root CA
> used for interception, every other country has an interest in preventing
> that. An international WebPKI means that we are either all secure, or all
> insecure, together.
> >>
> >> Trust Expressions, though intended to solve completely different
> problems, will accidentally eradicate both of these advantages. Firstly, it
> provides a nice on ramp for a new domestic trust store, mostly through the
> negotiation aspect but also through the CA pre-distribution. Secondly, by
> enabling fragmentation along geographic boundaries whilst maintaining
> availability of websites. Without Trust Expressions, we cannot balkanize
> TLS. With Trust Expressions, we can and we know people who want to (not
> anyone in this thread).
> >>
> >> If you still do not understand this wider context within which all of
> our work sits, I do not think further discussion between you and I is going
> to help matters.
> >>
> >> I would suggest we focus our discussion on the use cases of Trust
> Expressions and how exactly it would work in practice - these concerns I
> shared earlier in the thread are solely technical and operational and

[TLS]Re: TLS Trust Expressions risks

2024-05-24 Thread Brendan McMillion
>
> In your latest message [5], I understand the context of governments
> pushing for inclusion of certain roots with varying degrees of legitimacy.
> I don’t see the on-ramp for CA pre-distribution being meaningfully
> different with Trust Expressions compared to certificate_authorities.
>

Sorry, I meant to address this point as well. The difference between TE and
the certificate_authorities extension, is that there's less widespread
server support for the latter. You might compel a browser to bifurcate and
advertise the certificate_authorities extension, but pushing out
server-side support would be a substantial challenge. Not speaking for
Google, but I believe their intention /is/ to put in the substantial work
to make server-side TE support ubiquitous, such that it would be a minor
ACME config change

On Fri, May 24, 2024 at 4:00 PM Brendan McMillion <
brendanmcmill...@gmail.com> wrote:

> What point in this process depends on Trust Expressions - that is to say,
>> at what point does a browser decide that the government CA is acting
>> differently enough from the other CAs in its root store that it’s willing
>> to fragment or bifurcate its trust store, and after that point, how does
>> the politics play out that mandating this CA’s trust is still somehow
>> legitimate?
>
>
> I'll assert that many people consider eavesdropping by their own
> government to be legitimate, and eavesdropping by foreign governments to be
> illegitimate. The point at which a browser would need to make a decision
> about bifurcating its trust store or pulling out of a country, is the
> moment a government-controlled CA starts mis-issuing certificates. Without
> TE, browsers have no ability to bifurcate their trust store, and servers
> have no ability to support a bifurcated client base. So without TE, the
> decision must be to pull out of the country, as this is the only
> technically expedient solution which is acceptable to most people. With TE,
> browsers /can/ bifurcate their trust store, and servers /can/ support a
> bifurcated client base. So a decision to pull out of the country, rather
> than bifurcate, is simply malicious.
>
> It's also worth pointing out that the security benefits of TE (i.e.,
> allowing rapid distrust of roots) come from gracefully handling client
> fragmentation that's the result of time-since-last-update, not
> fragmentation that's a result of different codebases. It may be worth
> thinking about how to rework the proposal to reflect that
>
>
> On Fri, May 24, 2024 at 2:46 PM Watson Ladd  wrote:
>
>> On Fri, May 24, 2024 at 2:16 PM Nick Harper  wrote:
>> >
>> > On Fri, May 24, 2024 at 10:14 AM Dennis Jackson > 40dennis-jackson...@dmarc.ietf.org> wrote:
>> >>
>> >> Hi David,
>> >>
>> >> The certification chains issued to the server by the CA comes tagged
>> with a list of trust stores its included in. The named trust stores are
>> completely opaque to the server. These chains and names may not be trusted
>> by any client nor approved by any server, they are issued solely by the CA
>> as opaque labels. These chains sit on the server and will not be used
>> unless a client connects with the right trust store label but obviously can
>> easily be scanned for by anyone looking to check how pervasively deployed
>> the alternate trust store is.
>> >>
>> >> Do you dispute any part of that? Most of what you wrote went off on a
>> completely different tangent.
>> >>
>> >> Of course, whether this property (whether servers can usefully
>> pre-deploy not-yet-added trust anchors), which trust expressions does not
>> have, even matters boils to whether a root program would misinterpret
>> availability in servers as a sign of CA trustworthiness, when those two are
>> clearly unrelated to each other.
>> >>
>> >> Again, my primary concern here is not around the behavior of
>> individual root stores, this is not relevant to the concern I'm trying to
>> communicate to you. I know folks from all of the major root stores have
>> great faith in their judgement and technical acumen.
>> >>
>> >> My concern is that Trust Expressions upsets a fragile power balance
>> which exists outside of the individual root stores. There is an eternal war
>> between governments pushing to take control of root stores and the security
>> community pushing back. This battle happens in parliaments and governments,
>> between lawmakers and officials, not within root stores and their
>> individual judgement largely does not matter to this war. The major
>> advantages we as the security community have today are that:
>> >>
>> >> a) These attempts to take control for surveillance are nakedly
>> obvious to the local electorate because crappy domestic roots have no
>> legitimate purpose because they can never achieve any real adoption.
>> >>
>> >> b) If a root store were to bow to pressure and let in a root CA
>> used for interception, every other country has an interest in preventing
>> that. An international WebPKI means that we are eith

[TLS]Re: TLS Trust Expressions risks

2024-05-24 Thread Nick Harper
On Fri, May 24, 2024 at 2:27 PM Brendan McMillion <
brendanmcmill...@gmail.com> wrote:

> In your latest message [5], I understand the context of governments
>> pushing for inclusion of certain roots with varying degrees of legitimacy.
>> I don’t see the on-ramp for CA pre-distribution being meaningfully
>> different with Trust Expressions compared to certificate_authorities.
>>
>
> Sorry, I meant to address this point as well. The difference between TE
> and the certificate_authorities extension, is that there's less widespread
> server support for the latter. You might compel a browser to bifurcate and
> advertise the certificate_authorities extension, but pushing out
> server-side support would be a substantial challenge. Not speaking for
> Google, but I believe their intention /is/ to put in the substantial work
> to make server-side TE support ubiquitous, such that it would be a minor
> ACME config change
>

The degree of server support is an important consideration. Even with
ubiquitous server-side TE support and servers configured with both a
ubiquitous chain and a government-issued chain, it seems to me this
government push for use of their CA requires a change to server TLS stacks
to prefer the government CA chain since both will match the client's
advertised trust stores. Mandating this server behavior change seems to me
like a heavier lift than just a minor config change. I don't have a good
sense of how it compares to the difficulty of configuring a server stack to
use the certificate_authorities extension. It appears that at least OpenSSL
has support for the certificate_authorities extension (
https://github.com/openssl/openssl/issues/13453), though the application
using OpenSSL needs to implement the certificate selection. With TE, I
imagine that certificate selection will happen inside the TLS stack or a TE
library closely tied to the TLS stack.

I wonder if there are ways to make it harder for a server to choose the
"bad" cert and easier to choose the "good" cert, but this seems like a
social/political problem rather than a technical one.

On Fri, May 24, 2024 at 2:46 PM Watson Ladd  wrote:

> To be clear, in Denis's scenario Ebonia requires all servers to obtain
> a cert from Honest Ahmed's
> (https://bugzilla.mozilla.org/show_bug.cgi?id=647959) Ebonian Secure
> CA. Server operators who complain that this will break clients are
> told that it will have a trust expression that currently isn't used,
> but government inspectors will use it to see if the cert is installed.
> Then in step 2 they use the number of certs issued to bolster the
> argument for inclusion. I don't see how Trust Expressions isn't making
> this scenario easier.
>

Sure, the Ebonian government could mandate that all servers get a cert from
Honest Achmed, and provide a specific Ebonia trust store label for the
servers to match against. However, the only time the server would use that
cert chain is when the government inspectors send the Ebonian trust store
label to check if the cert is installed. In step 2 when Ebonia uses the
number of certs from Honest Achmed as part of their argument, it matters
what that count is. Is it the number of certs issued, number of certs
servers are "willing to use" (that's not very well defined), number of
certs that servers are actually using? Of course Ebonia will choose
whatever suits them best, but it also depends where that number came from
and how it was obtained. For example, Ebonia can get a large number of
certs issued by Honest Achmed without Trust Expressions by having Honest
Achmed generate a cert for every cert it sees in CT logs (with the Honest
Achmed leaf using the same public key as in the logged leaf certs so that
they're technically usable by the server). I imagine if Ebonia tried to use
that count of certificates issued as part of their argument for adoption,
there would be outcry about how that volume of cert issuance is
manufactured and meaningless. In the scenario where certs are issued and
delivered to servers, but they only use them in response to the government
inspectors (because those are the only clients that match, this volume of
cert issuance to me seems similarly manufactured and meaningless.

Maybe Trust Expressions makes that scenario ever so slightly easier, but it
seems like this step requires manufacturing false demand/use that would be
fairly clear to see is occurring and discount it when arguing against that
claim.
___
TLS mailing list -- tls@ietf.org
To unsubscribe send an email to tls-le...@ietf.org


[TLS]Re: WG Adoption for TLS Trust Expressions

2024-05-24 Thread Bob Beck
On Fri, May 24, 2024 at 2:05 PM Christian Huitema 
wrote:

>
>
> On 5/23/2024 9:41 AM, David Benjamin wrote:
> > At the end of the day, the TLS components of trust expressions are
> > simply a more size-efficient form of the certificate_authorities field.
> > The rest is working through the deployment implications to reduce server
> > operator burden. However, the way we achieve this size efficiency is by
> > *not* saying the CAs names. Instead, the CA sets are indirected through
> > named and versioned "trust stores". However, the price one inherently
> > needs to pay here is that servers need to know how to map from those
> > trust stores back to the certificates. We solve this with the
> > TrustStoreInclusionList metadata from the CA.
> >
> > That TrustStoreInclusionList structure is necessarily a point-in-time
> > snapshot of the state of the world. If a root program has not included a
> > CA yet, the CA cannot claim it in the metadata or connections will fail.
> > If the CA is included in zero root programs, the only viable (i.e.
> > correct and does not cause interop issues) TrustStoreInclusionList is
> > the empty list, in which case the certificate will never be presented.
>
> I think this is making the assumptions that the only choice for clients
> is to adopt one "well known" trust store, probably from a short list. I
> am concerned that such mechanisms reinforce ongoing centralization of
> the web.
>
>
I think this is a worthwhile concern, and while noting that I am an author
of this draft, I will attempt to wear a slightly different hat temporarily.

 In another life I help maintain an OS trust store for non-mainstream
clients to access the web. My "choices" today are basically to follow
Firefox or Chrome and include most of what they support. (we have basically
followed Firefox for many years). We can decide to not include certain CA's
that we don't feel have merit, but only if they have very little use. We do
not have an effective way to add anything separate or distinct for our
clients, as such servers can not also be used with the public web in
general.  So I think as far as the situation is today, trust store choice
is already very centralized if you want your client to "usually work" on
the public web. We have basically two choices. both of which are very very
similar in their content.

 I am not certain that trust expressions would change that situation for a
non-mainstream client like this, but I don't think that it makes my choices
worse. I still have the same choice - follow one of the well known trust
stores. I can do this either by continuing as always and not having the
client send a trust expression, or, by fetching the trust anchors from a
"well known" big trust store and modifying the client to support the
necessary things and to send the appropriate trust expression.

 Were a "new" trustworthy root program to show up with CA partnerships that
were useful and made use of trust expressions, a non-mainstream client
could potentially start to make use of that as another choice, *If* they
trusted the operators of such a program to do a good job of evaluating the
trustworthiness of the CA's they were including.

-Bob


> ___
> TLS mailing list -- tls@ietf.org
> To unsubscribe send an email to tls-le...@ietf.org
>
___
TLS mailing list -- tls@ietf.org
To unsubscribe send an email to tls-le...@ietf.org


[TLS]Re: TLS Trust Expressions risks

2024-05-24 Thread Brendan McMillion
>
> Even with ubiquitous server-side TE support and servers configured with
> both a ubiquitous chain and a government-issued chain, it seems to me this
> government push for use of their CA requires a change to server TLS stacks
> to prefer the government CA chain since both will match the client's
> advertised trust stores. Mandating this server behavior change seems to me
> like a heavier lift than just a minor config change.
>

The part of the spec you quoted says: if multiple certs match, choose any.
When TE is rendered in actual code, why do you assume that there will be no
configurable or easily-gameable way to make sure the government CA
always wins?

On Fri, May 24, 2024 at 5:15 PM Nick Harper  wrote:

>
>
> On Fri, May 24, 2024 at 2:27 PM Brendan McMillion <
> brendanmcmill...@gmail.com> wrote:
>
>> In your latest message [5], I understand the context of governments
>>> pushing for inclusion of certain roots with varying degrees of legitimacy.
>>> I don’t see the on-ramp for CA pre-distribution being meaningfully
>>> different with Trust Expressions compared to certificate_authorities.
>>>
>>
>> Sorry, I meant to address this point as well. The difference between TE
>> and the certificate_authorities extension, is that there's less widespread
>> server support for the latter. You might compel a browser to bifurcate and
>> advertise the certificate_authorities extension, but pushing out
>> server-side support would be a substantial challenge. Not speaking for
>> Google, but I believe their intention /is/ to put in the substantial work
>> to make server-side TE support ubiquitous, such that it would be a minor
>> ACME config change
>>
>
> The degree of server support is an important consideration. Even with
> ubiquitous server-side TE support and servers configured with both a
> ubiquitous chain and a government-issued chain, it seems to me this
> government push for use of their CA requires a change to server TLS stacks
> to prefer the government CA chain since both will match the client's
> advertised trust stores. Mandating this server behavior change seems to me
> like a heavier lift than just a minor config change. I don't have a good
> sense of how it compares to the difficulty of configuring a server stack to
> use the certificate_authorities extension. It appears that at least OpenSSL
> has support for the certificate_authorities extension (
> https://github.com/openssl/openssl/issues/13453), though the application
> using OpenSSL needs to implement the certificate selection. With TE, I
> imagine that certificate selection will happen inside the TLS stack or a TE
> library closely tied to the TLS stack.
>
> I wonder if there are ways to make it harder for a server to choose the
> "bad" cert and easier to choose the "good" cert, but this seems like a
> social/political problem rather than a technical one.
>
> On Fri, May 24, 2024 at 2:46 PM Watson Ladd  wrote:
>
>> To be clear, in Denis's scenario Ebonia requires all servers to obtain
>> a cert from Honest Ahmed's
>> (https://bugzilla.mozilla.org/show_bug.cgi?id=647959) Ebonian Secure
>> CA. Server operators who complain that this will break clients are
>> told that it will have a trust expression that currently isn't used,
>> but government inspectors will use it to see if the cert is installed.
>> Then in step 2 they use the number of certs issued to bolster the
>> argument for inclusion. I don't see how Trust Expressions isn't making
>> this scenario easier.
>>
>
> Sure, the Ebonian government could mandate that all servers get a cert
> from Honest Achmed, and provide a specific Ebonia trust store label for the
> servers to match against. However, the only time the server would use that
> cert chain is when the government inspectors send the Ebonian trust store
> label to check if the cert is installed. In step 2 when Ebonia uses the
> number of certs from Honest Achmed as part of their argument, it matters
> what that count is. Is it the number of certs issued, number of certs
> servers are "willing to use" (that's not very well defined), number of
> certs that servers are actually using? Of course Ebonia will choose
> whatever suits them best, but it also depends where that number came from
> and how it was obtained. For example, Ebonia can get a large number of
> certs issued by Honest Achmed without Trust Expressions by having Honest
> Achmed generate a cert for every cert it sees in CT logs (with the Honest
> Achmed leaf using the same public key as in the logged leaf certs so that
> they're technically usable by the server). I imagine if Ebonia tried to use
> that count of certificates issued as part of their argument for adoption,
> there would be outcry about how that volume of cert issuance is
> manufactured and meaningless. In the scenario where certs are issued and
> delivered to servers, but they only use them in response to the government
> inspectors (because those are the only clients that match, this volume of
> cert issua

[TLS]Re: TLS Trust Expressions risks

2024-05-24 Thread Nick Harper
On Fri, May 24, 2024 at 4:15 PM Brendan McMillion <
brendanmcmill...@gmail.com> wrote:

> The part of the spec you quoted says: if multiple certs match, choose any.
> When TE is rendered in actual code, why do you assume that there will be no
> configurable or easily-gameable way to make sure the government CA
> always wins?
>

I'm not assuming there will be no configurable or easily-gameable way to do
this - I don't know what exactly that will look like in implementations.
I'm asserting that TE alone as currently specified is insufficient for this
attack, because TE says "choose any" and the attack needs to choose a
specific one.
___
TLS mailing list -- tls@ietf.org
To unsubscribe send an email to tls-le...@ietf.org


[TLS]Re: TLS Trust Expressions risks

2024-05-24 Thread Bob Beck
On Fri, May 24, 2024 at 5:18 PM Brendan McMillion <
brendanmcmill...@gmail.com> wrote:

> Even with ubiquitous server-side TE support and servers configured with
>> both a ubiquitous chain and a government-issued chain, it seems to me this
>> government push for use of their CA requires a change to server TLS stacks
>> to prefer the government CA chain since both will match the client's
>> advertised trust stores. Mandating this server behavior change seems to me
>> like a heavier lift than just a minor config change.
>>
>
> The part of the spec you quoted says: if multiple certs match, choose any.
> When TE is rendered in actual code, why do you assume that there will be no
> configurable or easily-gameable way to make sure the government CA
> always wins?
>

Since the server is free to apply whatever logic (random, smallest number
of bytes on the wire, secret government coercion) it likes to pick from
multiple matches, If what the government intends is to *always* have the
paths matching a particular trust expression chosen on a multiple match,
the server software needs to be either gamed, or complicit in making that
happen, or it will not happen reliably. (either that or the client needs to
be mandated to be modified to simply try with only the desired "bad" trust
first, and then if it doesn't work silently reconnect with the "good" trust
to work with the rest of the world - which can happen without trust
expressions perfectly fine, and is a trick clients have used before for
things like, SHA1 deprecation.

I don't believe this is in any way different than a server supporting
https://datatracker.ietf.org/doc/html/rfc8446#section-4.2.4 (which says the
list should be used as "guidance" and leaves it up to the implementer -
maybe the list is in a priority order like key shares, maybe it is not?)
While I am not convinced that this is a real risk for surveillance issues
that is not already present, as already outlined in our previous replies,
If the community at large truly believes that this is a real risk worthy of
design work to mitigate, then this should probably also be addressed in
8446 at the same time.
___
TLS mailing list -- tls@ietf.org
To unsubscribe send an email to tls-le...@ietf.org