-
Notifications
You must be signed in to change notification settings - Fork 10
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
Add support for disabling PQ key exchanges to avoid TLS failures #714
Comments
v1.11.1
ALL_PROXY
) from v1.11.1
Thanks for the report @olii. We've seen another unusual problem with the Cloud SQL Proxy when using Go 1.23. See:
In short, Go 1.23 introduces a new curve in the default TLS config (golang/go#67061) which we've seen to break VPN connections. Your issue looks the same (handshake fails on EOF). As a workaround, would you mind reporting if this works for you?
Meanwhile, we're working on tracking down whether this is something wrong with Go, something we can do in the Proxy, or a common configuration problem we'll have to deal with. Right now, I don't know what the root issue is. |
I confirm that I can successfully connect to the SOCKS5 proxy by adding this ENV var Thank you. |
Glad to hear it -- we'll be exploring how to remove the need to set |
ALL_PROXY
) from v1.11.1
For reference here is a link to the code that sets curve preferences: |
Talking with some folks on the Go team about this, I've learned this is actually a bug in some TLS servers described in http://tldr.fail/. Basically, some servers incorrectly assume the TLS ClientHello will always be sent in a single TCP packet. With Post-Quantum (PQ) cryptography, that ClientHello is often larger than a single packet. In Go 1.24, there will be explicit curve IDs for the PQ key exchanges, such that we in the Proxy code can easily disable them. Whether we should surface that as a flag, or continue using I'm going to convert this to a feature request in the meantime and leave it open so we can explore options as the ecosystem (and Go) evolves. |
Bug Description
In Readme there is an example how to connect to the AlloyDB instance using SOCKS5 proxy:
The above command works in version
1.11.0
but it fails in the1.11.1
and1.11.2
.Looking in the commitlog I think that the update to golang 1.23 broke it.
Example code (or command)
No response
Stacktrace
The text was updated successfully, but these errors were encountered: