Skip to content

Move The Transcript Hash to earlier in the document#1404

Open
davidben wants to merge 4 commits intotlswg:mainfrom
davidben:transcript-4
Open

Move The Transcript Hash to earlier in the document#1404
davidben wants to merge 4 commits intotlswg:mainfrom
davidben:transcript-4

Conversation

@davidben
Copy link
Contributor

Only look at the last commit in this stack. This PR includes #1401, #1402, and #1403. GitHub is bad at stacked PRs. I'll rebase this one once decisions on the other three PRs is made.

It is a little strange that it is buried inside Authentication Messages, but then it's referenced all throughout the document. This seems enough of a core component of the handshake protocol to describe it first.

NB: This will cause almost all the section numbers between RFC 8446 and rfc8446bis to be different. Folks will need to take some care when updating references.

As previously written, it suggests the message sequence does not change
at all, but it is actually (as the text suggests), the transcript of
everything sent or received.

This still doesn't quite make us robust to extensions. The
CertificateVerify and Finished messages are defined in terms of this
"Handshake Context" that is written using phrases like

* "later of EncryptedExtensions/CertificateRequest"
* "later of server Finished/EndOfEarlyData"
* "ClientHello ... client Finished + CertificateRequest"

And then sometimes Certificate and CertificateVerify are explicitly
appended to it. Interestingly, that is also a bit goofy because we don't
always account for those messages not existing in the prose.

This PR leaves all that alone for now, because I haven't quite written
something down for that yet. (I think the right wording is to say "hash
all the messages up to but not including Finished/CertificateVerify.)
Rather than trying to define in terms of a funky Handshake Context and
then a set of messages that are appended throughout, define this the way
it is actually implemented: you stop the transcript just before the
message you are working on.

One cloud darkens this simple description: post-handshake authentication
acts on a funny transcript where the main transcript is forked off and
then we get extra messages appended to it.
It is a little strange that it is buried inside Authentication Messages,
but then it's referenced all throughout the document. This seems enough
of a core component of the handshake protocol to describe it first.

NB: This will cause almost all the section numbers between RFC 8446 and
rfc8446bis to be different. Folks will need to take some care when
updating references.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant