[TLS]Re: Consensus Call: -rfc8446bis PRs #1357

2024-06-14 Thread Sean Turner


> On Jun 13, 2024, at 18:42, Salz, Rich  wrote:
> 
> I looked at the diff in https://github.com/tlswg/tls13-spec/pull/1357/files 
> 
> The changes are fine with me and I prefer EKR's wording about close_notify. 
> Does that need to be added to section 1.2?

Ah yes, we should note this (and the other post WGLC changes) in s1.2!  Might 
get done as a separate PR though.

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


[TLS]Re: TLS trust expressions and certificate_authorities

2024-06-14 Thread Bob Beck
On Thu, Jun 13, 2024 at 4:23 PM Amir Omidi  wrote:

> I’ve had a lot of trouble understanding how the user agent is supposed to
> be configured with this. Maybe a browser is going to be able to do it
> easily, but how do we envision this working in openssl? Or a programming
> language?
>
> If this is implemented by user agents, how do we envision the
> fingerprinting impact for this?
>
> My comments aren’t blockers by any means. It’s only me trying to
> understand how we imagine this draft working in these various TLS client
> implementations.
>

Hi Amir.

If you're thinking about "non-browser" things such as the openssl command
line tool, curl, nc, libcurl using utilities, etc. You probably need to
first ponder where those tools are getting their trust store to verify
certificates from the public web today.

Sometimes this is a custom bundle included with the tool, sometimes this is
a "system" CA trust store maintained by the operating system distribution.
Either way "someone" decided to include it, and usually, this is done by
following along with an existing root program
that the maintainers mostly trust to do a good job of being a root program.
Hopefully it is kept up to date both in terms of adding new additions, and
keeping up with distrusts.

By not sending a trust expression they could just continue as today, and in
the presence of a trust expressions supporting server they would get the
"default" certificate that is hoped to be ubiquitous. In the near term
until trust expressions are well supported by TLS software and servers, I
would expect that to likely be what would happen.

Outside of my day job I do assist with curating a trust store in an
operating system that is used by such tools when built there. Today we
mostly just follow along with Mozilla's trust store for firefox, because we
have no desire today to run our own root program. So let's call this
thankless task maintenance for "BasementOS".

In the future, If support were added to the TLS libraries we use, a trust
expression *could* be used, assuming BasementOS had one to use.  That could
take several forms:

   - BasementOS can use the published information from a root program
   publishing trust expressions to include the same roots of trust, and they
   simply advertise the exact trust expression corresponding to the roots
   they include. (I.E. if they decide to follow the chrome root program, they
   fetch the information from the chrome root progam, include chrome's roots
   at version 1234 and send the trust expression of "chrome 1234"). With
   support for using an identified trust store in the TLS software, one could
   even ponder being able to download or update versions of a package that
   included such roots and the trust expression for them.
   - BasementOS could decide a particular root program is mostly ok, and do
   just as the above, but exclude some roots they don't want or like in the
   system trust bundle, so they send the same trust expression, but exclude
   the roots they remove. (chrome 1234 with exclusions)

Someone could also decide we really really want to start their own root
program, for . Maybe they don't want to be what a major browser
is. One of the (unstated, and perhaps we should state it clearer) goals of
trust expressions is to allow for new root programs to be created.

   - BasementOS (or a collective of multiple OS's, packages, whatever)
   could start a root program, and start coordinating with CA's to include
   their trust expression in matching delivered certificate chains. Maybe some
   CA's do, maybe some do not. In the interim BasementOS could start with an
   existing trust store,  remove what it doesn't like, and send that along
   with it's nascent trust expression (chrome 1234 with exclusions)
   (basementOS 12) Once enough CA's include a basementOS trust expression on
   certificates, they could transition to using a BasementOS trust expression
   - Perhaps if BasementOS itself is too tiny for this job, it bands
   together in a collective with other like minded OS's / projects, etc. and
   runs a collective root program, the same way.

The important takeaway here is that even today *SOMEONE* is making
decisions somewhere about what roots such things trust when they make
connections. Trust expressions do not change that. If today they are
manually curating a bundle without a trust expression, they can continue to
do so. If they are "following" a major root program that starts to publish
trust expressions, they could also send an appropriate trust expression.

Now, do people today put a lot of thought into what "root program" is
maintaining the trust bundle and how up to date it is for their command
line tools? I am unsure that it gets the attention it might warrant.

-Bob



> Amir Omidi (he/them)
>
>
> On Thu, Jun 13, 2024 at 22:16 Eric Rescorla  wrote:
>
>>
>>
>> On Wed, Jun 12, 2024 at 5:16 PM Nick Harper  wrote:
>>
>>> On Wed, Jun 12, 2024 at 3:17 AM Dennis Jackson 
>>> wrote:
>>

[TLS]Re: TLS trust expressions and certificate_authorities

2024-06-14 Thread David Benjamin
> If this is implemented by user agents, how do we envision the
fingerprinting impact for this?

The privacy considerations section discusses this a little bit:
https://davidben.github.io/tls-trust-expressions/draft-davidben-tls-trust-expr.html#name-privacy-considerations

Broadly, the fingerprinting story is the same as the
certificate_authorities extension, in that trust expressions targets the
cases where the trust anchor list is common to your desired anonymity set,
whatever it is. That's a pretty large space of scenarios, though it does
exclude some scenarios where PKI agility may still be valuable. (But we're
certainly open to exploring solutions that are more widely applicable!)

David


On Fri, Jun 14, 2024 at 4:54 PM Bob Beck 
wrote:

>
>
> On Thu, Jun 13, 2024 at 4:23 PM Amir Omidi  40aaomidi@dmarc.ietf.org> wrote:
>
>> I’ve had a lot of trouble understanding how the user agent is supposed to
>> be configured with this. Maybe a browser is going to be able to do it
>> easily, but how do we envision this working in openssl? Or a programming
>> language?
>>
>> If this is implemented by user agents, how do we envision the
>> fingerprinting impact for this?
>>
>> My comments aren’t blockers by any means. It’s only me trying to
>> understand how we imagine this draft working in these various TLS client
>> implementations.
>>
>
> Hi Amir.
>
> If you're thinking about "non-browser" things such as the openssl command
> line tool, curl, nc, libcurl using utilities, etc. You probably need to
> first ponder where those tools are getting their trust store to verify
> certificates from the public web today.
>
> Sometimes this is a custom bundle included with the tool, sometimes this
> is a "system" CA trust store maintained by the operating system
> distribution. Either way "someone" decided to include it, and usually, this
> is done by following along with an existing root program
> that the maintainers mostly trust to do a good job of being a root
> program. Hopefully it is kept up to date both in terms of adding new
> additions, and keeping up with distrusts.
>
> By not sending a trust expression they could just continue as today, and
> in the presence of a trust expressions supporting server they would get the
> "default" certificate that is hoped to be ubiquitous. In the near term
> until trust expressions are well supported by TLS software and servers, I
> would expect that to likely be what would happen.
>
> Outside of my day job I do assist with curating a trust store in an
> operating system that is used by such tools when built there. Today we
> mostly just follow along with Mozilla's trust store for firefox, because we
> have no desire today to run our own root program. So let's call this
> thankless task maintenance for "BasementOS".
>
> In the future, If support were added to the TLS libraries we use, a trust
> expression *could* be used, assuming BasementOS had one to use.  That could
> take several forms:
>
>- BasementOS can use the published information from a root program
>publishing trust expressions to include the same roots of trust, and they
>simply advertise the exact trust expression corresponding to the roots
>they include. (I.E. if they decide to follow the chrome root program, they
>fetch the information from the chrome root progam, include chrome's roots
>at version 1234 and send the trust expression of "chrome 1234"). With
>support for using an identified trust store in the TLS software, one could
>even ponder being able to download or update versions of a package that
>included such roots and the trust expression for them.
>- BasementOS could decide a particular root program is mostly ok, and
>do just as the above, but exclude some roots they don't want or like in the
>system trust bundle, so they send the same trust expression, but exclude
>the roots they remove. (chrome 1234 with exclusions)
>
> Someone could also decide we really really want to start their own root
> program, for . Maybe they don't want to be what a major browser
> is. One of the (unstated, and perhaps we should state it clearer) goals of
> trust expressions is to allow for new root programs to be created.
>
>- BasementOS (or a collective of multiple OS's, packages, whatever)
>could start a root program, and start coordinating with CA's to include
>their trust expression in matching delivered certificate chains. Maybe some
>CA's do, maybe some do not. In the interim BasementOS could start with an
>existing trust store,  remove what it doesn't like, and send that along
>with it's nascent trust expression (chrome 1234 with exclusions)
>(basementOS 12) Once enough CA's include a basementOS trust expression on
>certificates, they could transition to using a BasementOS trust expression
>- Perhaps if BasementOS itself is too tiny for this job, it bands
>together in a collective with other like minded OS's / projects, etc. a