[TLS]Re: Working Group Last Call for Bootstrapping TLS Encrypted ClientHello with DNS Service Bindings

2024-06-12 Thread Raghu Saxena

I had one comment earlier that seems to have been missed [0].

Basically I was wondering if it may be useful to use stronger language 
in the draft to indicate a client MUST use Port Prefix Naming when 
looking up the SVCB record.


Regards,

Raghu Saxena

[0] https://mailarchive.ietf.org/arch/msg/tls/ynRkX60dGq-ofmSW4POhppQcgkY/

On 6/13/24 2:10 AM, Sean Turner wrote:

This email starts the working group last call for "Bootstrapping TLS Encrypted 
ClientHello with DNS Service Bindings” I-D, located here:

https://datatracker.ietf.org/doc/draft-ietf-tls-svcb-ech/

The WG Last Call will end 26 June 2024 @ 2359 UTC.

Please review the I-D and submit issues and pull requests via the GitHub 
repository that can be found at:

https://github.com/tlswg/draft-ietf-tls-svcb-ech

Alternatively, you can also send your comments to tls@ietf.org.

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


OpenPGP_0xA1E21ED06A67D28A.asc
Description: OpenPGP public key


OpenPGP_signature.asc
Description: OpenPGP digital signature
___
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-12 Thread Nick Harper
On Wed, Jun 12, 2024 at 3:17 AM Dennis Jackson 
wrote:

> You can't argue that T.E. contains the functionality of
> certificate_authorities as a subset, then conclude that having additional
> functionalities makes it less risky. You would need to argue the exact
> opposite, that T.E. doesn't contain the bad functionalities of
> certificate_authorities. The risk associated with abuse of a feature is not
> in any way diluted by tacking on good use cases.
>
I'm not arguing that TE is a superset of certificate_authorities. I'm
arguing that it's an incremental improvement over certificate_authorities.
That is to say, certificate_authorities is a way for a relying party to
indicate to a subscriber which CAs it trusts, and TE is another way to do
the same thing. TE is an incremental improvement because it's solving the
same problem but making different tradeoffs. To deploy the
certificate_authorities extension, no extra machinery is needed past what's
in the certificates, but that comes at a cost of a large number of bytes
sent by the relying party. TE optimizes for size, at the cost of additional
complexity and machinery involving additional parties.

For the abuse scenario, TE makes it no easier than certificate_authorities
(the size of advertising the single malicious CA isn't a concern, whereas
it is a problem when it's a browser's entire trust store that's
advertised), and TE adds additional deployment complexity compared to
certificate_authorities, which lessens the risk.

The takeaway here is that the risks associated with the abuse of Trust
Expressions also exist with certificate_authorities.
>
> I wonder what such a trust store manifest would look like... [1] [2].
> There's at least one large player out there with a list of CAs ready to go
> and all the necessary machinery in place.
>
Ready to go and do what?!

If you're talking about the EU eIDAS QWAC trust list, those CAs were
already trusted by browsers before the eIDAS regulations took effect, and
eIDAS allows for their distrust and removal. Already, one CA [1] on that
list is being distrusted by multiple [2] browsers [3]. Even if the EU has a
published list of CAs that they could turn into a trust store manifest,
this is a distraction from the point that with TE, abuse requires the
cooperation (or compulsion) of more parties than with
certificate_authorities.

1: https://eidas.ec.europa.eu/efda/tl-browser/#/screen/tl/AT/5/25
2:
https://groups.google.com/a/mozilla.org/g/dev-security-policy/c/XpknYMPO8dI/m/JBNFg3aVAwAJ
3:
https://groups.google.com/a/ccadb.org/g/public/c/wRs-zec8w7k/m/G_9QprJ2AQAJ
___
TLS mailing list -- tls@ietf.org
To unsubscribe send an email to tls-le...@ietf.org


[TLS]Re: Consensus Call: -rfc8446bis PRs #1343 & #1345

2024-06-12 Thread Sean Turner
Hi! Just reminder to get any concerns about merging these in by 17 June 2024.

spt

> On Jun 3, 2024, at 11:38, Sean Turner  wrote:
> 
> Since draft-ietf-tls-rfc8446bis last completed WGLC, two PRs have been 
> submitted (and discussed) that include changes to normative language:
> 
> - #1343: Forbid the sender from sending redundant update_requested KeyUpdates
> https://github.com/tlswg/tls13-spec/pull/1343
> 
> - #1345: Forbid the sender from sending duplicate supported groups entries
> https://github.com/tlswg/tls13-spec/pull/1354
> 
> The discussion so far seems to support consensus to merge these PRs. If you 
> object, please
> do so on the issue or in response to this message.  Absent any pushback, we 
> will direct the
> editors to incorporate them in two weeks' time.
> 
> Cheers,
> spt

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


[TLS]Re: Consensus Call: -rfc8446bis PRs #1343 & #1345

2024-06-12 Thread David Benjamin
Works for me! Updated the PR with your suggestion (plus one extra word to
be clear it's a subsequent KeyUpdate and not a random past one).

On Wed, Jun 12, 2024 at 3:56 PM Kyle Nekritz  wrote:

> Yes, my worry is really around enforcement of a property that can’t be
> strictly adhered to. How about something along the lines of:
>
>
>
> Until receiving a KeyUpdate from the peer, the sender MUST NOT send
>
> another KeyUpdate with request_update set to "update_requested".
>
>
>
> Note that implementations may receive an arbitrary
>
> number of messages between sending a KeyUpdate with request_update set
>
> to "update_requested" and receiving the
>
> peer's KeyUpdate, including unrelated KeyUpdates, because those
> messages may already be in flight.
>
>
>
> I think this would make the requirement more clear, and avoid enforcement
> of a requirement that can’t be strictly followed.
>
>
>
> *From:* David Benjamin 
> *Sent:* Thursday, June 6, 2024 5:48 PM
> *To:* Kyle Nekritz 
> *Cc:* Sean Turner ; TLS List 
> *Subject:* Re: [TLS]Re: Consensus Call: -rfc8446bis PRs #1343 & #1345
>
>
>
> Regarding 1343, the PR is a rule on the sender, not the receiver. After
> all, it says "The sender MUST NOT". It is not a rule on the receiver. We
> have interop problems *today* when one side sends too many KeyUpdates,
> triggered by data
>
> Regarding 1343, the PR is a rule on the sender, not the receiver. After
> all, it says "The sender MUST NOT". It is not a rule on the receiver.
>
>
>
> We have interop problems *today* when one side sends too many KeyUpdates,
> triggered by data received. The PR does not ask receivers to enforce
> stuff, but (mostly) prevents senders from tripping receiver DoS limits and
> thus causing an interop problem.
>
>
>
> I say mostly because the scenario you mention is a good one. I hadn't
> thought of that. But that scenario is not an interop problem introduced by
> 1343. It's a scenario that 1343 doesn't fully solve, but* still
> dramatically improves*. Prior to 1343, a server with a buggy
> update_requested policy would send 3GB / 16K = 196,608 KeyUpdates for every
> 4 GB of data sent by the client, assuming full records. This will very,
> very easily trip DoS limits and quickly cause the connection to fail.
>
>
>
> 1343 clarifies that this update_requested policy is wrong sender behavior.
> You're right that 1343 doesn't completely solve the problem. The server
> will misinterpret the client's own KeyUpdates as response and send 1
> KeyUpdate for every 4 GB of data. That is, however, an improvement by a
> factor of 196,608x. It would take a lot more traffic to trip a DoS limit
> under that scenario. Ideally we'd come up with an even better sender rule,
> but I suspect we cannot do so without completely redesigning
> updated_requested. During TLS 1.3's development, my position was that
> update_requested was a mistake and we should remove it, precisely due to
> its propensity for DoS and interop problems. I think that position has
> proven to be the right one, but it's too late to remove the feature now.
> 1343 is the best option I see to fix it right now.
>
>
>
> On Thu, Jun 6, 2024 at 1:46 PM Kyle Nekritz  40meta@dmarc.ietf.org> wrote:
>
> I object to 1343 because I don't think it can be implemented without
> risking interop problems. There is nothing tying a KeyUpdate response to
> the KeyUpdate that requested it, or distinguishing it from an unrelated
> KeyUpdate. As an example of how this can cause practical problems, say we
> have two peers with the following policies:
>
> Client: sends KeyUpdate with update_not_requested every 4GB of data sent
> (which is a reasonable policy, effectively making sure the client doesn't
> violate its own data limits, and letting the peer handle theirs)
> Server: sends a KeyUpdate with update_requested every 1GB of data sent by
> either peer (similar to the motivating example in the issue)
>
> If, like in the example in the issue, the client is sending a large amount
> of data, and not reading anything from the server until it's done, and the
> server isn't sending any response application data, the server will send an
> update_requested KeyUpdate after 1GB of data from the client. The server
> will then be blocked from sending more KeyUpdates due to the proposed
> requirement. However once the client sends 4GB of data, it will send an
> update_not_requested KeyUpdate. To the server, this will appear to be a
> response to it's KeyUpdate request, and it will be free to send another
> update_requested KeyUpdate. However, to the client, this will appear as a
> redundant KeyUpdate, since the KeyUpdate it sent wasn't actually in
> response to the server's first KeyUpdate. If the client enforces the MUST
> NOT added in the PR, this will cause a failure.
>
> -Original Message-
> From: Sean Turner 
> Sent: Monday, June 3, 2024 11:38 AM
> To: TLS List 
> Subject: [TLS]Consensus Call: -rfc8446bis PRs #1343 & #1345
>
>
>
> Since 

[TLS]Re: Consensus Call: -rfc8446bis PRs #1343 & #1345

2024-06-12 Thread Kyle Nekritz
Yes, my worry is really around enforcement of a property that can’t be strictly 
adhered to. How about something along the lines of:

Until receiving a KeyUpdate from the peer, the sender MUST NOT send
another KeyUpdate with request_update set to "update_requested".

Note that implementations may receive an arbitrary
number of messages between sending a KeyUpdate with request_update set
to "update_requested" and receiving the
peer's KeyUpdate, including unrelated KeyUpdates, because those messages 
may already be in flight.

I think this would make the requirement more clear, and avoid enforcement of a 
requirement that can’t be strictly followed.

From: David Benjamin 
Sent: Thursday, June 6, 2024 5:48 PM
To: Kyle Nekritz 
Cc: Sean Turner ; TLS List 
Subject: Re: [TLS]Re: Consensus Call: -rfc8446bis PRs #1343 & #1345

Regarding 1343, the PR is a rule on the sender, not the receiver. After all, it 
says "The sender MUST NOT". It is not a rule on the receiver. We have interop 
problems *today* when one side sends too many KeyUpdates, triggered by data
ZjQcmQRYFpfptBannerStart
This Message Is From an External Sender
ZjQcmQRYFpfptBannerEnd
Regarding 1343, the PR is a rule on the sender, not the receiver. After all, it 
says "The sender MUST NOT". It is not a rule on the receiver.

We have interop problems *today* when one side sends too many KeyUpdates, 
triggered by data received. The PR does not ask receivers to enforce stuff, but 
(mostly) prevents senders from tripping receiver DoS limits and thus causing an 
interop problem.

I say mostly because the scenario you mention is a good one. I hadn't thought 
of that. But that scenario is not an interop problem introduced by 1343. It's a 
scenario that 1343 doesn't fully solve, but still dramatically improves. Prior 
to 1343, a server with a buggy update_requested policy would send 3GB / 16K = 
196,608 KeyUpdates for every 4 GB of data sent by the client, assuming full 
records. This will very, very easily trip DoS limits and quickly cause the 
connection to fail.

1343 clarifies that this update_requested policy is wrong sender behavior. 
You're right that 1343 doesn't completely solve the problem. The server will 
misinterpret the client's own KeyUpdates as response and send 1 KeyUpdate for 
every 4 GB of data. That is, however, an improvement by a factor of 196,608x. 
It would take a lot more traffic to trip a DoS limit under that scenario. 
Ideally we'd come up with an even better sender rule, but I suspect we cannot 
do so without completely redesigning updated_requested. During TLS 1.3's 
development, my position was that update_requested was a mistake and we should 
remove it, precisely due to its propensity for DoS and interop problems. I 
think that position has proven to be the right one, but it's too late to remove 
the feature now. 1343 is the best option I see to fix it right now.

On Thu, Jun 6, 2024 at 1:46 PM Kyle Nekritz 
mailto:40meta@dmarc.ietf.org>> wrote:
I object to 1343 because I don't think it can be implemented without risking 
interop problems. There is nothing tying a KeyUpdate response to the KeyUpdate 
that requested it, or distinguishing it from an unrelated KeyUpdate. As an 
example of how this can cause practical problems, say we have two peers with 
the following policies:

Client: sends KeyUpdate with update_not_requested every 4GB of data sent (which 
is a reasonable policy, effectively making sure the client doesn't violate its 
own data limits, and letting the peer handle theirs)
Server: sends a KeyUpdate with update_requested every 1GB of data sent by 
either peer (similar to the motivating example in the issue)

If, like in the example in the issue, the client is sending a large amount of 
data, and not reading anything from the server until it's done, and the server 
isn't sending any response application data, the server will send an 
update_requested KeyUpdate after 1GB of data from the client. The server will 
then be blocked from sending more KeyUpdates due to the proposed requirement. 
However once the client sends 4GB of data, it will send an update_not_requested 
KeyUpdate. To the server, this will appear to be a response to it's KeyUpdate 
request, and it will be free to send another update_requested KeyUpdate. 
However, to the client, this will appear as a redundant KeyUpdate, since the 
KeyUpdate it sent wasn't actually in response to the server's first KeyUpdate. 
If the client enforces the MUST NOT added in the PR, this will cause a failure.

-Original Message-
From: Sean Turner mailto:s...@sn3rd.com>>
Sent: Monday, June 3, 2024 11:38 AM
To: TLS List mailto:tls@ietf.org>>
Subject: [TLS]Consensus Call: -rfc8446bis PRs #1343 & #1345

!---|
  This Message Is From an External Sender

|---!

Since draft-ietf-tls-rfc8446bis last completed WGLC, two PRs 

[TLS]Working Group Last Call for Bootstrapping TLS Encrypted ClientHello with DNS Service Bindings

2024-06-12 Thread Sean Turner
This email starts the working group last call for "Bootstrapping TLS Encrypted 
ClientHello with DNS Service Bindings” I-D, located here:

https://datatracker.ietf.org/doc/draft-ietf-tls-svcb-ech/

The WG Last Call will end 26 June 2024 @ 2359 UTC.

Please review the I-D and submit issues and pull requests via the GitHub 
repository that can be found at:

https://github.com/tlswg/draft-ietf-tls-svcb-ech

Alternatively, you can also send your comments to tls@ietf.org.

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


[TLS]Re: Curve-popularity data?

2024-06-12 Thread Hubert Kario

On Wednesday, 12 June 2024 02:02:41 CEST, D. J. Bernstein wrote:

There will be an annoyingly large number of options on the PQ side---for
example, for different security levels and for patent avoidance---and
I'd expect a tricky discussion of which options to recommend for TLS.

I'm not sure I buy this premise. Currently there seems to be an
overwhelming convergence on ML-KEM768 for this job, with the one exception
being ML-KEM1024 being favored by the CNSA 2, but the latter also does not
recommend hybrids, leaving us with really only one choice for 
the PQ hybrid

for at least the medium term.


Within ML-KEM, NSA isn't just favoring 1024, but _forbidding_ sizes
below 1024:

   
https://media.defense.gov/2022/Sep/07/2003071836/-1/-1/1/CSI_CNSA_2.0_FAQ_.PDF


The document doesn't forbid hybrids; on the contrary, it states that
"NSA may allow or require hybrid solutions due to protocol standards,
product availability, or interoperability requirements".

So there isn't a clear dividing line between what NSA is doing and what
the TLS WG will end up considering. Other people have already brought up
NSA's ML-KEM requirements in TLS discussions, and people who don't think
NSA should have control over IETF can still understand NSA's position as
communicating security concerns relevant to TLS decisions. This by
itself looks to me like a much more tricky discussion than any TLS curve
discussions!


while yes, the only people that will want ML-KEM-1024 are the ones that 
will

want to follow CNSA 2.0, and those people are likely already following
CNSA 1.0 (or Common Criteria), so use P-384.

So, for the defined groups, if we provide P-256+ML-KEM-768 and
P-384+ML-KEM-1024 it should cover all the bases for FIPS and (likely even
future) Common Criteria requirements.


Apple has rolled out ML-KEM-1024 in another protocol:

   https://security.apple.com/blog/imessage-pq3/

Meanwhile Meta says, regarding TLS, that they're rolling out ML-KEM-768
and, for performance reasons (TFO packet size), also ML-KEM-512:

   
https://engineering.fb.com/2024/05/22/security/post-quantum-readiness-tls-pqr-meta/


Sounds like big deployments of all three ML-KEM sizes already (times
different Kyber versions, but let's assume all the different versions
switch to the final version of ML-KEM after NIST posts that, which
should happen any day now), and at least some of the underlying
rationales are certainly applicable to TLS.


yes, the question is if we want to pair P-256 with ML-KEM-512 or with
ML-KEM-768 for the "FIPS compatible fast option" hybrid key exchange group.

I don't have a strong opinion either way.
--
Regards,
Hubert Kario
Principal Quality Engineer, RHEL Crypto team
Web: www.cz.redhat.com
Red Hat Czech s.r.o., Purkyňova 115, 612 00, Brno, Czech Republic

___
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-12 Thread Dennis Jackson


On 12/06/2024 02:36, Nick Harper wrote:
If Trust Expressions does meaningfully change the calculus compared to 
certificate_authorities, it does it in a way that lessens risk. The 
certificate_authorities extension doesn't scale support the legitimate 
use case of trust negotiation/advertisement that Trust Expressions 
supports, but this problem doesn't exist for certificate_authorities 
advertising a single government CA. In your first example of how 
certificate_authorities differs from Trust Expressions, you've given 
an example of how Trust Expressions is less risky than 
certificate_authorities.


You can't argue that T.E. contains the functionality of 
certificate_authorities as a subset, then conclude that having 
additional functionalities makes it less risky. You would need to argue 
the exact opposite, that T.E. doesn't contain the bad functionalities of 
certificate_authorities. The risk associated with abuse of a feature is 
not in any way diluted by tacking on good use cases.




The complexity of deploying certificate_authorities for the government 
CA "risky" use case is much less than it is for Trust Expressions. The 
"risky" use case requires clients advertise the name of the CA, and it 
requires servers to be able to match a name in the 
certificate_authorities extension against one of its multiple 
certificates. This deployment has no machinery with CAs, ACME servers, 
or root programs publishing manifests. When you say 
certificate_authorities doesn't have any of the machinery necessary, 
that's because it doesn't need any such machinery, as Devon explained 
in point 4. In the "risky" use case, Trust Expressions requires the 
government to implement or compel more actions than it would with 
certificate_authorities. Starting with the clients, it would need to 
compel root programs to manage and publish an additional trust store 
manifest (or manage its own trust store manifest and compel 
advertisement of that as part of compelling trust). It would also need 
to have its CA (and the CA's ACME server) support the government trust 
store in its CertificatePropertyList. It looks like there's a lot more 
compulsion involved in this government-forced trust use case when the 
government uses Trust Expressions instead of certificate_authorities.


I wonder what such a trust store manifest would look like... [1] [2]. 
There's at least one large player out there with a list of CAs ready to 
go and all the necessary machinery in place.


[1] https://eidas.ec.europa.eu/efda/tl-browser/#/screen/home

[2] 
https://eidas.ec.europa.eu/efda/swagger-ui/index.html#/api-browser-controller/getTrustedList
___
TLS mailing list -- tls@ietf.org
To unsubscribe send an email to tls-le...@ietf.org