IETF 120 - TLS WG
7/24/2024
Notes by Laura Bauman
Planned Agenda
Administrivia and Status - chairs - 5 min
8446-bis update - Turner - 10 min
TLS Formal Analysis Triage - Deirdre - 25 min
TLS Hybrid Design - Douglas - 15 min
ML-KEM-only - Deirdre - 15 min
WK-ECH Well-Known ECH - Stephen - 15 min
TLS Frozen - Rich - 5 min
SSLKEYLOG for ECH - Yaroslav - 5 min
Extended Key Update - Hannes - 5 min
Trust expressions - David - 20 min
ML-KEM-only
-
Dierdre:
- Laying out a new document for pure-PQ ciphersuite for TLS 1.3
- similar but not the same as the hybrid design since it is PQ
only
- Not asking for mandatory to implement, but wants it written down
so that people that wish to may begin to implement particularly
MLKEM768 and MLKEM1024.
- MLKEM512 not currently in there, not opposed to adding it though
- Client sends encaps key, server replies with ciphertext
-
KEM shared secret is input to Handshake Secret derivation
-
Why can't you just add a codepoint?
- because there is no document saying how to do this yet
-
Should this be recommended or MTI?
-
What about PQ signatures?
- no, this is easy. Signatures are hard.
-
Isn't this too early?
- no, considering long timelines for adoption.
-
Just use hybrid?
- some users cannot use hybrid or do not wish to use it or do
not want to do more than one PQ transition
-
Queue:
- Hannes Tschofenig: Likes it because it feels liek a natural
extension and it is not a modification to how TLS works.
- Yoav Nir: Push back on some FAQs, you can just get a codepoint,
specification does not need to be an RFC. That said, just
because you can doesn't mean you should. Having a working group
document is the right thing. Should have a proposed standard or
informational. Nobody will be forced to implement.
- Kyle Nekritz: if we don't do this now then it is unclear what we
are waiting for. Wants to see the 512 codepoint which helps fit
things into one packet.
- Dan Harkins: wants 512 too
- Paul Wouters: This provides a particular KEM with a description
of how to use generic KEM in TLS. Would like to see those split
out: how to use KEMs (no specific KEM) as an RFC and then the
particular KEM could get a particular codepoint
- Chris Wood: Think we have confidence in our design, but caution
against having a high level of confidence in the
implementations.
- Turner: Everyone seems supportive can we just adopt?
- Paul Wouters: discussion later on particular codepoints
- Deirde: There are some KEMs that are much larger. I would write
a lot more words for generic KEMs to cover all of those cases.
This will delay the document landing even though people want to
start using KEMs now. But delaying to do that will gum up the
works
- John Gray: Could be helpful to separate it out because we know
more KEMs are coming.
- Deirdre: I can make it very specific and restrictive and say
that all your stuff need to fit in the TLS KeySchedule. But that
will make people angr.
- Richard Barnes: clarifying on potentially splitting doc. Let's
just do it with ML-KEM since we know how to do that now since
there is demand now. Lets solve first and then abstract.
- Sophi Schmieg: Thinks one doc is the better solution.
- Paul Wouters: Why do you need a doc and not a codepoint then?
- Deirdre: Cause we don't have a document about just a KEM.
- Paul: Still feels like the doc is doing two things
- Dennis Jackson: Doing the safe thing for the combiner and
getting this moving is the right thing. Doing the simplest thing
is a good way forward.
- Deirdre: I do not oppose a general KEM idea since it will be
going into the TLS 1.3 key schedule, but there is more to get it
done
TLS Hybrid Design
8446-bis update - Turner
- addressed errata (thanks Ben Smyth)
- #1390: do we make X25519 MTI?
- PR: A TLS-compliant application MUST support key exchange with
secp256r1 (NIST P-256) and X25519
Formal Analysis Triage Panel Update
WK-ECH Well-Known ECH - Rich
TLS Frozen - Rich - 5 min
-
Remove duplicates from UTA WG use-tls-13 draft
- remove the bullet list from the intro
- remove the security considerations
- add text that says "nothing here applies to DTLS 1.3"
-
IANA will stop accepting registrations for any TLS parameters except
TLS exporter labels, TLS ALPN PRotocol IDs
- PQ also: say no pq stuff for 1.2
- The document is only 60 lines and sends a message that we are not
changing 1.2 except for critical security fixes
- Chris Patton: Clarify? Rich: this is jsut all the text that is left
- John Gray: will people add pq stuff to 1.2 instead of updating to
1.3?
- Rich: well we aren't the protocol police
- John Gray: Is this going to be blocked? Rich: There is a sentence
that says none of this applies to DTLS 1.3
- Watson Ladd: Ship it
- Paul Wouters: does this apply only to RFC required for IANA
registrations.
- Rich: There are no first come first serve registrations for DTLS.
SSLKEYLOG for ECH - Yaroslav - 5 min
- SSLKEYLOG is a useful troubleshooting tool for TLS handshakes
- with ECH we lose that capability
-
Challenges of TLS troubleshoting with eCH:
- inspecting ECH
- Troubleshooting ECH
- ?
-
Proposed soln:
- ECH_SECRET label to log HPKE shared_secret
- ECH_CONFIG label to log ECHConfig
- Outer ClientHello Random as keys for ECH_SECRET and ECH_CONFIG
- Inner ClientHello Random for the rest of the session as long as
ECH was accepted
-
Prototype implementations:
-
NSS
- very straightforward as shared secret is a part of HPKE
context
-
BoringSSL
- required additional callback
-
Wireshark
-
Visibility into ECH
-
Confirming server acceptance
- can look at magic bytes and compare to computed ones
-
Visibility into the rest of the session cause we can caluclate the
correct keys
-
Questions?
- What do you think about the problem?
- What do you think about proposed solution
- Should this work be adopted by the working group?
-
Stephen: hated SSLKEYLOG. For everything that we do to improve
security and privacy of TLS are we going to break it? I say we
shouldn't make this easier and I don't think it is particularly
relevant for developers. Layering violation in the way you are
logging this. Wouldn't necessarily work everywhere. Against.
- Kyle Nekritz: think this is a useful logging toodl. Think it would
be easier if we stuck with outer client random as it is basically
just an identifier.
- Christopher Patton: useful tool, would have been helpful while
workin gon ECH. If we already have SSLKEYLOG we should have for this
as well.
- Hannes Tschofenig: disagree with Stephen. It is a debugging tool.
- Turner: leaning toward adopt, we will take to the list.
Extended Key Update - Hannes - 5 min
Trust Anchor Negotiation
- Bob Beck, David Benjamin, Devon O'Brien
-
Trust Anchor Negotiation
-
TLS Parameter Negotiation
- TLS does this for ciphersuites. Goal: select best cipher suite
in common
- Also happens with curves and basically every other feature.
- We do this to support evolution of more secure options.
- Negotiation allows the internet to move forward.
-
Trust Anchor Negotiation:
- Client trusts some CAs ("trust anchors")
- Server has some certificates available
- Goal: Select certificate based on what client trusts
-
Client Diversity:
-
PKI Agility
- TLS client diversity can be useful
-
Old and new clients diverge as PKIs change, but PKI changes are
necessary for user security:
- Rotating root keys
- Removing CAs
- Adding CAs
-
Performance -- avoid lowest common denominator
- up to date clients can trust short-lived "intermediate"
directly
- Avoid sending unnecessary cross-signs when CA is already
trusted
- Parallel issuance when cross-signs are expensive or not
viable
- Even more tailored designs (e.g. Merkle Tree Certificates)
-
Security vs Availability
-
If servers cannot meet diverse client needs, security and
availability conflict:
- Security: PKI changes are sometimes necessary for user
security
- Availability: server msut satisfy all supported clients
-
Example: Client removes CA1, supports CA2. Server also needs to
support toher clients which only support CA1. When availability
and security conflict, availability usually wins:
- Security winning would mean servers drop support for some
clients (won't really happen)
- Availability wins: PKI changes needed for user security do
not happen or are delayed
-
User security is the casualty of this conflict.
- negotiation gives another option: servers use CA1 and CA2,
depending on the client.
-
Trust Anchor Negotiation
- Goal: Enable servers to handle client diversity so server
availability does not conflict with PKI security and performance
- PKI transitions do not impede overall server availability
- Root programs can make timely security decisions on behalf of
users
-
Minimize operational burden for server operators
- more server operators than CAs and root programs
- ACME extensions for CAs to send multiple certificates
- PRefer fewer mechanisms that cover the whole problem
-
Minimize bytes on the wire, especially as we transition to PQC
-
Bob: Two Approaches
-
Trust Expressions Recap
-
Trust Anchor IDs: Short CA Names
-
Trust Anchor IDs: Server Offer, Client Select
-
Trust Anchor IDs: Push to DNS
- Retry flow adds latency
- list available server certificates in DNS
- Definie tls-trust-anchors SVcParam for HTTPS/SVCB records
- Client uses SvcParam for initial prediction to trust anchor
- [missed]
-
Trust expressions
- only expresses CAs lists relative to root program "trust stores"
- works analogously to client certificates
- servers use static config from CAs
- CAs and root programs need contiuous coordination via "trust
store manifests"
- [missed a lot]
-
trust anchor IDs
- supports arbitrary CA lists
- short ca names apply to both client and server certs, retry is
only possible with server certificates
- [missed a lot]
-
Security Considerations
-
summary
- two proposed approaches to address PKI transitions in TLS
- We'd liek feedback from WG on preferred approach
- Next steps:
- discussion
- hums for preferred approach
- call for adoption
-
Paul Wouters: Also had this problem of certificates being too large
in IKEv2, chose to do hash of CA and then if you really only want 5
bytes you could truncate. Why use OIDs?
- Devon: it was a first attempt at truncation. It is also managing the
authority? This could be tracked and managed by a diff authority.
- Alessandro: For trust anchor IDs: put stuff in DNS what could
possibly go wrong? You say that trust expr most o fthe complexity is
between root program and the CA. I guess this is fine if you have a
root program already, but what if I am a mobile app and want to do
pinning. I woul dneed to communicate with the CA?
- David: Trust expressions does not handle this as well. You could use
the existing certificate_authorities extension since you just need
to add a couple.
- Alessandro: for client certs, we already do the
certificate_authorities for that and even if there are only a few
those bytes still add up.
- David: Trust anchor ids still work for client just not in retry case
- Christopher Patton: Is the retry mechanism significantly different
from what we have for ECH today? [i don't think so] how much of a
lift would this be for implementors? [it is out of TLS for full
retry] I think trust anchor ids is headed in the right direction
- Benjamin Schwarz: how do yo see this handling horrible enterprise
TLS interception scenarious.
- Devon: can you clarify?
- Ben: client has been configured with a CA that is only used locally
and outside of the root program.
- David: in that kind of environment to trust a terminating proxy, the
"server" (terminating proxy) always sends you that certificate. So
they don't have that problem in the first place.
- Ben: what does the client send?
- David: you don't have to have all your roots participate in this
design. In trust expressions you would send the ones in your browser
without some clear signature from the user otherwise that is a
privacy leak
- Ben: would that involve a change in the api between operating
systems to know which roots are public/private.
- David: there are typically system apis to tell the difference. In
trust expression, we already have to do stuff related to this. We
assume the clients know something related to what roots it trusts.
- Kyle Nekritz: Thinks it is important that we do something here.
Slight preference for trust anchor ids with concern for retry
mechanism
- Watson Ladd: Think we need an interim to discuss these things
because there are a lot of details we haven't touched on.
- Turner: think we are trying to figure out which direction to go
looks like trust anchor ids.
- Andrew Chen: think trust expressions makes more sense. Retry aspect
of anchor IDs worries me.
- Stephen Farrell: think we should think through what the long term
interaction of TLS and PKI should be before starting on deciding
between these aproaches.
-
Show of hands: 24 in favor of TIDs, 6 in favor of TE, 12 no opinion.
CHairs Note - when the meeting ended the mic queue was not completly
drained