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
crypto/tls: missing ec_point_formats extension make some old clients to decline handshake #31943
Comments
Cc @FiloSottile |
It is worth noting that on the client side, Go is unconditionally sending
Nothing says we MUST NOT send it in case of non-ECC cipher suites, and this kind of handshake is hopefully going away, but it means that this patch will affect all types of handshake flow tests in place. I was considering adding a condition for not sending those extensions in case of RSA only handshake, but I guess it would be rejected. Please advise. |
Change https://golang.org/cl/176418 mentions this issue: |
More than happy to match OpenSSL and BoringSSL here. It's kind of hard to get Go to do an ECC-less ClientHello, so I would not bother with figuring that out to remove the extension. The tree is frozen now, so will merge as soon as 1.14 opens. Thanks for sending a patch! |
Any news on this? |
Was just looking at it yesterday while retriaging for Go 1.14. I'll be rebasing and merging it soon! |
For some reason, Go TLS does send the
ec_point_formats
extension as part of ClientHello with the minimum required list, but does not for ServerHello.Per RFC 8422, section 5.1.2, it is perfectly fine not to send this extension, and most clients are fine with it:
However, some old (7 year old) client implementations are expecting this extension to be present if an ECC cipher is selected, and consider the lack of it to be an error and interrupt the handshake as a result.
Other server implementations like BoringSSL or OpenSSL implement this extension and always send it as part of an ECC ServerHello. There is no need to implement any of the compression format as RFC 8422, section 5.1.2 deprecates them all. Only the uncompressed format MUST be part of the list:
I propose to send this extension with the uncompressed format as part of all ServerHello with an ECC cipher selected.
A patch will follow.
The text was updated successfully, but these errors were encountered: