Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stateless retry relation to version negotiation #669

Closed
mikkelfj opened this issue Jun 27, 2017 · 2 comments
Closed

Stateless retry relation to version negotiation #669

mikkelfj opened this issue Jun 27, 2017 · 2 comments
Labels
invalid A duplicate, overcome-by-events, ill-formed, or off-topic issue, or a question better asked on-list.

Comments

@mikkelfj
Copy link
Contributor

If a server decides to send a version negotiation packet and also a stateless retry, which one should it choose, and should the client retain a negotiated version if it receives a stateless retry? If it does not, the cryptographic context in the retry might not make sense but text says to start new connection state.

Also, retry might be related to which server version is supported, so there could potentially be a lot of ping pong going on. On the other hand, a retry might not know the versions supported by other servers.

@mikkelfj
Copy link
Contributor Author

mikkelfj commented Jun 27, 2017

Wasn't mentioned in version negotiation nor in Stateless Retry section, but stateless retry packet does section mention it:
"the client MUST remember the results of any version negotiation that occurred "

I keep the issue open for review in case the text can be clarified a bit.

UPDATE:
There is a potential for hung handshakes (until timeout) if a retry causes a client to send a new initial client packet and the server responds with version negotiation, possibly because it was a different version from the server sending retry. In this case that client could either ignore version negotation packets, believing they are old retransmissions, or it could remember the retry mode and consider this a hard error. But a hard error is not good because it is open to attack.

@martinthomson
Copy link
Member

This isn't really a valid question. The draft is pretty clear that version negotiation happens before stateless retry.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
invalid A duplicate, overcome-by-events, ill-formed, or off-topic issue, or a question better asked on-list.
Projects
None yet
Development

No branches or pull requests

3 participants