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

Signaling TLS handshake failure #272

Closed
martinthomson opened this issue Feb 8, 2017 · 5 comments
Closed

Signaling TLS handshake failure #272

martinthomson opened this issue Feb 8, 2017 · 5 comments
Assignees
Labels
-tls design An issue that affects the design of the protocol; resolution requires consensus. has-consensus An issue that the Chairs have determined has consensus, by canvassing the mailing list.

Comments

@martinthomson
Copy link
Member

This needs to be written down. I think that the best outcome would be to include BOTH a TLS alert and a QUIC error code (in a CONNECTION_CLOSE frame).

@martinthomson martinthomson self-assigned this Feb 8, 2017
@ianswett
Copy link
Contributor

ianswett commented Feb 9, 2017

I don't know if there's an open issue for this, but I think the only frames we want to send unencrypted are stream frames for stream 1 and ack frames. Those we believe are necessary and even ack frames have special rules, as we've discussed.

We could send an unencrypted connection close frame, but I'm having a hard time seeing cases when a TLS alert wouldn't be better. And in other cases, a public reset is sufficient.

@RyanTheOptimist
Copy link
Contributor

CONNECTION_CLOSE should definitely be allowed. There are any number of insane things a client could do which would cause the server to want to tear down the connection. When this happens, it's very valuable for the client to see the error code from the server.

@martinthomson
Copy link
Member Author

@ianswett, there's lots of text on the point of what can be unencrypted, and some issues on the finer points (like the issue around acknowledgments).

As you say, the TLS alert is going to be useful for diagnosis if nothing else, but if we are to maintain our layering, we need a CONNECTION_CLOSE as well. Luckily, they can both be carried in a single packet.

@ianswett
Copy link
Contributor

ianswett commented Feb 9, 2017

I may be missing it, but when I skimmed and searched in the transport draft, I couldn't find anywhere it said what frame types may be sent without encryption.

I'm happy to have both TLS alerts and connection closes if they're useful. Ryan reminded me there have been some cases when unencrypted connection close errors were able to provide valuable insight to debug an issue.

@martinthomson
Copy link
Member Author

The TLS draft has all that text. Currently.

@mnot mnot added the design An issue that affects the design of the protocol; resolution requires consensus. label Feb 15, 2017
martinthomson added a commit that referenced this issue Mar 9, 2017
Also rationalize the TLS error messages, which means removing most of them.

Closes #272
@mnot mnot added the has-consensus An issue that the Chairs have determined has consensus, by canvassing the mailing list. label Apr 19, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-tls design An issue that affects the design of the protocol; resolution requires consensus. has-consensus An issue that the Chairs have determined has consensus, by canvassing the mailing list.
Projects
None yet
Development

No branches or pull requests

4 participants