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

2024-07-22 Thread Mike Shaver
On Sat, Jul 20, 2024 at 2:23 PM David Benjamin 
wrote:

> On Sat, Jul 20, 2024, 06:13 Mike Shaver  wrote:
>
>>  In what way are these non-web systems not allowed to use other PKI
>> models today? How would trust anchors provide that permission?
>>
>
> If the same server serves both embedded/IoT traffic and web browser
> traffic, but we aim for the two to use different PKIs, the server needs to
> arrange to serve different certificates to each. To do that, we need trust
> anchor negotiation story.
>

If there is no extra-TLS means of distinguishing those cases, such as port
or IP addresses for endpoints, then today such a system can use SNI, which
is basically a very simple trust selection story. It is less flexible, but
for selecting between disjoint PKIs in which to orient a given connection,
it seems that it would suffice.

PayPal and Netflix semi-famously rolled out SNI at moderate pain to
accommodate a pretty similar situation when browsers and their IOT/etc
devices no longer had trusted roots in common. I am not against TAs as a
more flexible way to negotiate the PKI properties that the participants
want to use for their connection, but I think it's counterproductive to the
health of the web PKI to spread the idea that TA is *required* for systems
to migrate to non-web PKI, even if they indeed need to keep using the same
endpoints for some reason. Having those systems that are inappropriately
using web PKI today justify further such misuse by saying that they are
waiting for all their systems to support TA would be pretty unfortunate. I
think that practically the process of managing and deploying new roots and
certificates for a private PKI will make "change the hostname or port used"
a small additional matter.

To be clear, I think that TA will make it easier to resolve such misuses,
and that this is a virtue of the proposal. I just really don't like the
idea that it's not possible today.

On Sun, Jul 21, 2024 at 7:05 PM Dennis Jackson  wrote:

> We've seen a number of recent incidents where CAs have delayed revocation
> of mis-issued certificates for 'critical' services that are not accessible
> on the public web [1]. The vast majority of these services could already
> migrate to a private PKI today but they simply don't have adequate
> incentives to make the small investment necessary. How would Trust
> Expressions or Trust Anchors change that?
>
TA, once deployed, could well possibly make it easier to migrate or manage
such systems, but I don't think it's reasonable to expect that any protocol
change will provide sufficient "incentive" for the operator of such a
system to bear the costs of operating a PKI when they could instead push
those costs to the stewards of the web PKI instead. It's not a reasonable
standard against which to evaluate a protocol element, IMO.

Mike


On Sat, Jul 20, 2024 at 2:23 PM David Benjamin 
wrote:

> On Sat, Jul 20, 2024, 06:13 Mike Shaver  wrote:
>
>>
>>
>> On Sat, Jul 20, 2024 at 8:59 AM Ilari Liusvaara 
>> wrote:
>>
>>> Allowing various embedded and IoT stuff to migrate off of WebPKI would
>>> be of immense value. Such stuff using WebPKI has been source of gigantic
>>> amount of pain.
>>
>>
>> I agree with your second sentence very much, but I don’t understand your
>> first one. In what way are these non-web systems not allowed to use other
>> PKI models today? How would trust anchors provide that permission?
>>
>> Mike
>>
>
> If the same server serves both embedded/IoT traffic and web browser
> traffic, but we aim for the two to use different PKIs, the server needs to
> arrange to serve different certificates to each. To do that, we need trust
> anchor negotiation story.
>
> David
>
>
>
> ___
>> 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: Trust Anchor Negotiation Surveillance Concerns and Risks

2024-07-22 Thread David Benjamin
On Mon, Jul 22, 2024 at 8:58 AM Mike Shaver  wrote:

> On Sat, Jul 20, 2024 at 2:23 PM David Benjamin 
> wrote:
>
>> On Sat, Jul 20, 2024, 06:13 Mike Shaver  wrote:
>>
>>>  In what way are these non-web systems not allowed to use other PKI
>>> models today? How would trust anchors provide that permission?
>>>
>>
>> If the same server serves both embedded/IoT traffic and web browser
>> traffic, but we aim for the two to use different PKIs, the server needs to
>> arrange to serve different certificates to each. To do that, we need trust
>> anchor negotiation story.
>>
>
> If there is no extra-TLS means of distinguishing those cases, such as port
> or IP addresses for endpoints, then today such a system can use SNI, which
> is basically a very simple trust selection story. It is less flexible, but
> for selecting between disjoint PKIs in which to orient a given connection,
> it seems that it would suffice.
>
> PayPal and Netflix semi-famously rolled out SNI at moderate pain to
> accommodate a pretty similar situation when browsers and their IOT/etc
> devices no longer had trusted roots in common. I am not against TAs as a
> more flexible way to negotiate the PKI properties that the participants
> want to use for their connection, but I think it's counterproductive to the
> health of the web PKI to spread the idea that TA is *required* for systems
> to migrate to non-web PKI, even if they indeed need to keep using the same
> endpoints for some reason. Having those systems that are inappropriately
> using web PKI today justify further such misuse by saying that they are
> waiting for all their systems to support TA would be pretty unfortunate. I
> think that practically the process of managing and deploying new roots and
> certificates for a private PKI will make "change the hostname or port used"
> a small additional matter.
>
> To be clear, I think that TA will make it easier to resolve such misuses,
> and that this is a virtue of the proposal. I just really don't like the
> idea that it's not possible today.
>

Ah yes, I was speaking in the context of a single.service (i.e. one DNS
name), but you're absolutely right that one can sometimes send different
clients to different services instead.

I say sometimes because this is not always viable. It's a more indirect way
of addressing the root issue, so there are some limitations. First, this
requires foresight on the part of the service operator and client vendor.
If everyone knew ahead of time that the client might diverge (e.g. by way
of standing still while the ecosystem moves), then one might set this up.
But this is a perennial problem *because* people empirically do not know
ahead of time. Or perhaps the vendor even intended to continue servicing
their IoT devices, went out of business, but enough folks bought them and
continue to happily use them that some other service provider does not wish
to abandon them.

We can try to help this by encouraging such foresight as best practice, but
it takes just one important client of one important server to gum up the
works. Trust anchor negotiation, if successful, provides a solution that
doesn't require as much deployment-level foresight. (If the IoT device can
negotiate trust anchors, it's easy. If it can't, the clients that *do*
negotiate
trust anchors can still evolve freely and do not add to the PKI
intersection problem.)

Second, it assumes that the non-web PKI client does not care about the DNS
name used. When DNS names are purely internal routing labels for API
endpoints, etc., the exact DNS name used is not particularly significant.
But when they are user-visible, e.g. in the UI of a web browser,
redirecting to client-specific services isn't viable. In those situations,
we similarly would need a different solution.

We discuss this a bit in
https://github.com/davidben/tls-trust-expressions/blob/main/explainer.md#client-specific-dns-names
as well.

But, absolutely, if some other solution is easier for some deployment at
the moment, by all means go for it.

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


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

2024-07-22 Thread Mike Shaver
On Mon, Jul 22, 2024 at 12:52 PM David Benjamin 
wrote:

> I say sometimes because this is not always viable. It's a more indirect
> way of addressing the root issue, so there are some limitations. First,
> this requires foresight on the part of the service operator and client
> vendor. If everyone knew ahead of time that the client might diverge (e.g.
> by way of standing still while the ecosystem moves), then one might set
> this up. But this is a perennial problem *because* people empirically do
> not know ahead of time. Or perhaps the vendor even intended to continue
> servicing their IoT devices, went out of business, but enough folks bought
> them and continue to happily use them that some other service provider does
> not wish to abandon them.
>
> We can try to help this by encouraging such foresight as best practice,
> but it takes just one important client of one important server to gum up
> the works. Trust anchor negotiation, if successful, provides a solution
> that doesn't require as much deployment-level foresight. (If the IoT device
> can negotiate trust anchors, it's easy. If it can't, the clients that *do* 
> negotiate
> trust anchors can still evolve freely and do not add to the PKI
> intersection problem.)
>

Yep, I absolutely look forward to a web where we have this sort of
capability, either on endpoints themselves or even managed by a more-modern
intermediary. I’m not informed enough to comment on the protocol elements
of the specific Trust Anchor proposal, but I agree that more PKI agility
will be healthy.

Fundamentally, the TLS implementation community will be pushing this
agility into endpoints by default, which means that it would take active
divergence by a system implementor to create the sort of TBTF systems that
impede trust changes today.

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


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

2024-07-22 Thread Rob Sayre
On Mon, Jul 22, 2024 at 9:53 AM David Benjamin 
wrote:

>
> Second, it assumes that the non-web PKI client does not care about the DNS
> name used. When DNS names are purely internal routing labels for API
> endpoints, etc., the exact DNS name used is not particularly significant.
> But when they are user-visible, e.g. in the UI of a web browser,
> redirecting to client-specific services isn't viable. In those situations,
> we similarly would need a different solution.
>

 I looked up the term "dns names" in Google Chrome, through the location
bar, which is not only used for DNS names. The URL I got back was this:

<
https://www.google.com/search?q=dns+names&oq=dns+names&gs_lcrp=EgZjaHJvbWUyCQgAEEUYORiABDIHCAEQABiABDIHCAIQABiABDIHCAMQABiABDIHCAQQABiABDIHCAUQABiABDIHCAYQABiABDIHCAcQABiABDIHCAgQABiABDIJCAkQABgKGIAE0gEIMjE1NGowajeoAgCwAgA&sourceid=chrome&ie=UTF-8
>

This argument doesn't seem compelling to me, aside from the other parts of
the discussion.

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


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

2024-07-22 Thread Dennis Jackson

On 22/07/2024 09:57, Mike Shaver wrote:

I’m not informed enough to comment on the protocol elements of the 
specific Trust Anchor proposal, but I agree that more PKI agility will 
be healthy.


Fundamentally, the TLS implementation community will be pushing this 
agility into endpoints by default, which means that it would take 
active divergence by a system implementor to create the sort of TBTF 
systems that impede trust changes today.


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.


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


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

2024-07-22 Thread Mike Shaver
On Mon, Jul 22, 2024 at 1:36 PM Dennis Jackson  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
___
TLS mailing list -- tls@ietf.org
To unsubscribe send an email to tls-le...@ietf.org


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

2024-07-22 Thread Dennis Jackson

On 22/07/2024 11:00, Mike Shaver wrote:

I’m not informed enough to comment on the protocol elements of the 
specific Trust Anchor proposal, but I agree that more PKI agility will 
be healthy.


[...]

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.


I think reading the drafts would be really valuable. Unfortunately the 
necessary changes are not as simple as anything like cipher selection.


For example, Trust Anchors requires the TLS Library to have access to 
additional DNS records, which either the application needs to provide or 
the TLS Library needs to fetch itself - neither seem viable by default. 
Both drafts also require other breaking API changes on client and server.


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!


I would love to hear more about these possible disruptions you feel are 
a factor> Speaking as someone who is involved in a root program 
currently, I don't understand how Trust Anchor Agility would enable 
anything for us - discussed at more length here [2].


Best,
Dennis

[2] 
https://github.com/dennisjackson/trust-negotiation-comments/blob/main/comments-on-usecases.md 

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


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

2024-07-22 Thread Ilari Liusvaara
On Mon, Jul 22, 2024 at 11:27:37AM -0700, Dennis Jackson wrote:
> On 22/07/2024 11:00, Mike Shaver wrote:
> 
> For example, Trust Anchors requires the TLS Library to have access to
> additional DNS records, which either the application needs to provide or the
> TLS Library needs to fetch itself - neither seem viable by default. Both
> drafts also require other breaking API changes on client and server.

Yeah, access to DNS records is very problematic. And retrying handshake
is something even more problematic.

I don't see TE requiring breaking API changes on client: API that lets
one add a set of (pseudo) trust anchors plus TE advertisement for those
should work?

Server-side both require much more extensive API changes. However, I
think that it is feasible to add support without breaking API changes
(by extending certificate loading to support alternate issuer chains
[1]).


[1] Or if TLS library has reified issuers (however, I do not know any
stable TLS library that does), extending those to support alternate
chains. If TLS library does file parsing, one might even not need
any API changes.




-Ilari 

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


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

2024-07-22 Thread Dennis Jackson

On 22/07/2024 12:28, Ilari Liusvaara wrote:


I don't see TE requiring breaking API changes on client: API that lets
one add a set of (pseudo) trust anchors plus TE advertisement for those
should work?


I agree adding a new API for T.E. which applications could opt in to 
would be fine. But could T.E. ever be enabled by default without 
breaking the existing API and requiring application changes?


For example, applications which access the server certificate via a 
callback or after handshake completion are going to be surprised by 
anything non-X.509 and also likely differ in policy from the system 
trust store (making any use of the system root store's trust expression 
label by default quite troubling).


Similar issues apply for where applications configure the TLS 
certificate validation policy in advance, ship their own root store 
(even if its say a copy of an existing one) or hook up a custom 
certificate validation library.



Server-side both require much more extensive API changes. However, I
think that it is feasible to add support without breaking API changes
(by extending certificate loading to support alternate issuer chains).


A similar picture seems to apply here. Adding a new API is fine but then 
needs server-side applications to opt in to using it. Otherwise 
overloading existing file / directory mechanisms might be possible if 
there's not too many fussy applications out there which are going to barf.


I'm pretty pessimistic about these API issues (Hyrum's Law etc) but I 
haven't had much exposure to OpenSSL's APIs from the perspective of 
other clients / servers - so curious if you do see a way to enable it by 
default without changing existing applications.


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


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

2024-07-22 Thread Salz, Rich
I agree adding a new API for T.E. which applications could opt in to would be 
fine. But could T.E. ever be enabled by default without breaking the existing 
API and requiring application changes?

Yes it could. For example, you’d have to add meta-data identifying the 
‘directory of certs’ that are typically used so that it could become a named 
trust store. Assume that’s a fixed filename, like “trust-store-id.txt” or 
something. Then when you specify that directory (e.g., via [1]) it could look 
for the fixed filename and send that identifying information.

Of course there are many ways in OpenSSL to specify how you want to trust 
things, but at least you’d have a migration path.

[1] https://www.openssl.org/docs/man3.0/man3/SSL_CTX_load_verify_locations.html
___
TLS mailing list -- tls@ietf.org
To unsubscribe send an email to tls-le...@ietf.org