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

On 22/05/2024 07:28, Nick Harper wrote:

The second way this could happen is that the government compels a browser to add a CA to their root store regardless of whether it complies with root store policy, implicitly stating that this CA will misissue certificates. The browser's choice is to comply or leave the market. Until this new CA is in a trust store advertised by clients, there's no incentive for server operators to get a certificate issued by that CA, as there are no clients for it to present that cert to.
This is incorrect. Governments have a wide range of incentives available to them to encourage adoption by websites, including simply making it a legal requirement. Currently, none of those incentives are strong enough to overcome the fact that the website would become simply inoperable without Trust Expressions.
Thus, server adoption is no factor in the government's pressure to compel a browser to add their CA, and I see the same probability of this being successful as in the current state of the world without Trust Expressions.
The conclusion that server adoption has no role in government pressure doesn't follow from any of the argument that you made and is in any case, wrong.

Government capability to compel browsers is fundamentally one of legitimacy. In democracies, this usually plays out in debates between elected lawmakers who will either support or oppose new legislation impacting browsers. Website adoption is absolutely a factor in this debate. "A large fraction of our domestic websites have adopted our new domestic certificates, but American browsers refuse to trust them leaving us dependent on foreign infrastructure" is a much more powerful argument than "we made a new CA that no one uses, pretty please can we force browsers to trust it".

A substantial issue that you didn't pick up on is how Trust Expressions changes government incentives to perform this kind of mass surveillance. Whilst having your domestic root CA ship in clients does enable surveillance, it's not especially useful when no websites use that root CA, so targets can tell when their connection is being intercepted. Governments therefore either have two choices: MiTM everything (a substantial hurdle to have passed into law) or compel adoption by websites of the domestic CA (so that MiTM certs blend in with real ones). This latter path is substantially easier from the perspective of lawmaking and is only possible with Trust Expressions (otherwise the adopting sites would become inaccessible. As noted earlier in the thread, this approach with Trust Expressions also scales nicely, allowing many countries to do this in parallel with the website using the domestic CA of each one.

> The real problem here is that you've
> (accidentally?) built a system that makes it much easier to adopt and
> deploy any new CA regardless of trust, rather than a system that makes
> it easier to deploy & adopt any new *trusted* CA.

I disagree that it makes it easier to adopt and deploy a new CA *regardless of trust*. Trust Expressions only makes it easier to deploy a CA that is in a trust store advertised by clients. If a CA is in a client's trust store, that to me sounds like a *trusted CA*.

Without Trust Expressions, web servers are locked into one certificate chain which needs to be widely trusted. With Trust Expressions, web servers can add arbitrary certificate chains regardless of client trust, and CAs are empowered to ship additional chains without the operator's consent. This makes it much easier to deploy a new CA regardless of trust. Neither the operator, not the client, needs to trust the new CA cert chain for it to be provisioned.

I appreciate reasonable people can disagree on the complex interaction between tech, policy and root stores, but this is just a factual observation: Trust Expressions makes it easier to deploy new CAs and does so regardless of who trusts them.

Instead, we should focus discussion on the problems that Trust Expressions solves.

As the Web PKI transitions to PQC, there will be a long transition time where server operators will need to support having multiple distinct certificate chains and send the appropriate one based on whether the client supports a PQC PKI or only classical cryptography. There will also be experiments with different approaches on how to build a PQC PKI. A server provisioned with multiple certificate chains (a prerequisite for PQC PKI) needs to know which one to use with each client. While a TLS extension could be used to identify which approaches/algorithms/protocols the client supports, the server also needs to know which of its certificate chains the client trusts.

As Andrei observed, such an TLS extension is already exists and is widely supported.
There is no reason to assume that there will be a single ubiquitous set of PQC CAs, especially during the transition period when experiments are ongoing for different approaches for a PQC PKI. One potential approach already being discussed is Merkle Tree Certs [8], and that will require an as-yet unidentified alternative mechanism when its requirements (e.g. issuance delay, client freshness) can't be met. I'm sure there will be other ideas experimented with and considered that explore the tradeoffs in signature vs public key sizes as well as number of signatures in a certificate chain and transparency requirements.

These experiments will need their own negotiation mechanisms anyway. Trust Expressions does not help that.

Separately, I do think MTC is a compelling proposal and that the issuance delay / client freshness issue could be addressed with some tweaks to the design.

As CA operators start to spin up PQC CAs, different operators will do this at different times and with different technologies. A server that prefers to use a PQC certificate will need to know whether the client trusts that certificate's CA. At its simplest, consider a single web browser, a single PQC PKI technology, and two PQC CAs that get added to its root store at different times. If the server is a customer of the second PQC CA to get added to the root store, it needs to know whether the client (that supports PQC PKI) has updated to the new version of the root store. When multiple browsers are involved, this check of "is the client fresh?" is more complicated, as different browsers will add the second PQC CA to their root stores at different times, and they might add CAs to their root stores in different orders. Waiting for stability of the root stores is the same thing as waiting for ubiquity of trusted roots.

Yet a simple cross-sign between the new PQ root key and the old non-PQ key suffices. PQ clients with the new PQ root will have PQ security. PQ clients without the new PQ root will consume the non-PQ signature (but Trust Expressions doesn't help them anyway). Non-PQ clients will signal via their signature_algorithms extension and receive the non-PQ chain.


This gets at the second instantiation of the problem: temporal trust store divergence. There's already been a fair amount of discussion on this thread about this [9][10], in the form of how to support older devices. I assume I don't need to explain why this is an important problem to solve.
Yet as acknowledged by the authors, Trust Expressions does not solve this problem. The devices causing this problem are not likely to adopt Trust Expressions, meaning that we'll still be doing TLS fingerprinting indefinitely. Cross Signing does actually solve this problem.

I believe Trust Expressions is an effective solution at solving all of these problems. I've only seen one serious alternative presented on this thread: cross-signs with Abridged Certs [11]. You present (in message [12]) two examples of using cross-signing to solve the temporal trust store divergence problem. One is a CA transitioning to new keying material. While this works for some period of time, we've already seen that it's reached its limit [7],

Can you explain why you think cross-signing has reached its limit? As I noted earlier, Root Stores could easily encourage cross signing if they wanted to.

and even with Abridged Certs there's an additional cost to the client and server storing the compression dictionary (or multiple versions of it) and the smaller number of bytes on the wire representing the compressed intermediate that could have been completely omitted had Trust Expressions been used instead.

A compressed intermediate certificate in Abridged Certs occupies two bytes on the wire. Somewhat smaller than the Trust Expressions extension :-).

The server-side storage space required is negligible, 34 bytes per intermediate certificate (32 byte hash, 2 byte identifier). The client-side storage space required is 2 bytes per intermediate certificate (since we already ship the full set of intermediates to clients). The dictionary format has also been ordered to support multiple versions without needing to store the redundant data. So in short, much less than the multiple extra certificate chains that Trust Expressions demands.

The second example is when a new CA wants to launch. The existing mechanism requires a new entrant to the space to make a business deal with one of its potential competitors to be able to usefully enter the market. This sounds like a bug, not a feature, of the system.

Firstly, Trust Expressions also requires these business deals. Website Operators need both a chain from the new CA and an existing trusted CA. This requires either the subscriber to have a business relationship with the existing CA, or the new CA to have a business relationship with them.

Secondly, unlike Trust Expressions, cross signing actually solves this. Further, root store operators can encourage cross signing if they so wish.


In [12], you suggest that Trust Expressions encourages CA operators to more slowly transition to a PQC PKI, and that this is undesirable. In the transition to a PQC PKI, there will be experiments with different approaches, and different CA operators may choose different approaches to implement on different schedules. The incentive for CA operators to move quickly instead of waiting for others to pave the way is to meet the demand of servers that want PQC certs early.
We're not worried about the CAs at the front of the pack, who will look to innovate no matter what. We're worried about the CAs that make up the long tail.

 Servers that use trust expressions can be more confident that they are using a certificate chain trusted by their diverse set of clients (and monitor which trust expressions they don't support so they can adjust their certificate order configuration to close gaps if they want to support those clients).

What do you mean by 'more confident'? They already know whether the chain is accepted or not based on whether the connection goes through. You seem to be imagining that having to maintain relationships with multiple CAs to be present in multiple trust stores is a feature for website operators, rather than a huge burden. Best case is that they will do much as they do today and simply pick one CA which is ubiquitous, so Trust Expressions doesn't help.

CA operators benefit by being able to issue certs from their new roots sooner without needing to wait for ubiquity or having server operators complain that they don't work.
Only by carrying out a business agreement with a more widely trusted CA, just as they would for a cross sign.

Root programs benefit by being able to more easily make changes with less risk of breakage (e.g. policy changes like root key lifetimes, and breakage due to the inability for servers to provide a set of certificates that both old and new clients can build valid paths for).

Cross Signing actually solves both of these problems as we've already discussed. Trust Expressions does not, it relies either on CAs doing the legwork to keep these things working (as they already do today) or website operators to do a complex dance with multiple CAs and fingerprinting (as they already do today).

On Tue, May 21, 2024 at 3:00 PM Dennis Jackson <ietf=40dennis-jackson...@dmarc.ietf.org> wrote:

    Although Watson observed that the answer to this is at least
    'somewhat', I agree such a world is already maxed at 10/10 on the
    bad worlds to live in scale and so it's not by itself a major
    problem in my view.

I don't see Watson saying that in any of his messages [5] [6] [7].

On 01/05/2024 00:07, Watson Ladd wrote:

I think the sharper concern is that you could block traffic without the cert 
included.
Watson can of course speak for himself in this matter.
_______________________________________________
TLS mailing list -- tls@ietf.org
To unsubscribe send an email to tls-le...@ietf.org

Reply via email to