-
-
Notifications
You must be signed in to change notification settings - Fork 610
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
go1.22: Prepare for RSA Key Exchange removal by default #7321
Comments
As discussed in standup, better approach than the above:
Difficulty: there's no easy way to exfiltrate extra metadata from the individual verify functions up to the top level of the VA where the logEvent lives. |
Add a new field to the structured JSON object logged by the VA indicating whether the HTTP-01 or TLS-ALPN-01 requests ended up negotiating a TLS cipher suite which uses RSA key exchange. This is useful for measuring how many servers we reach out to are RSA-only, so we can determine the deprecation timeline for RSA key exchange (which has been removed from go1.22). The go TLS library always prefers ECDHE key exchange over RSA, so we should only be negotiating RSA key exchange if the server we're reaching out to doesn't support ECDHE at all. Part of #7321
Add a new field to the structured JSON object logged by the VA indicating whether the HTTP-01 or TLS-ALPN-01 requests ended up negotiating a TLS cipher suite which uses RSA key exchange. This is useful for measuring how many servers we reach out to are RSA-only, so we can determine the deprecation timeline for RSA key exchange (which has been removed from go1.22). The go TLS library always prefers ECDHE key exchange over RSA, so we should only be negotiating RSA key exchange if the server we're reaching out to doesn't support ECDHE at all. Part of letsencrypt#7321
Add a new field to the structured JSON object logged by the VA indicating whether the HTTP-01 or TLS-ALPN-01 requests ended up negotiating a TLS cipher suite which uses RSA key exchange. This is useful for measuring how many servers we reach out to are RSA-only, so we can determine the deprecation timeline for RSA key exchange (which has been removed from go1.22). The go TLS library always prefers ECDHE key exchange over RSA, so we should only be negotiating RSA key exchange if the server we're reaching out to doesn't support ECDHE at all. Part of #7321
This work is complete and we have the relevant (moderate in absolute terms, minuscule in relative terms) numbers. The plan from here is to set the |
In Go 1.22, the cipher suites using RSA kex are disabled in clients by default.
This may affect outgoing validation requests for TLS-ALPN-01 and HTTP-01 (with https redirects).
We likely want a way to measure how many RSA key exchanges we're doing to decide how long a deprecation period we want.
We can re-enable them in
crypto/tls#Config.CipherSuites
. If that's not feasible for some reason, we can also use the GODEBUGtlsrsakex=1
variable, though it would be better to have that in Boulder's own code I think.The text was updated successfully, but these errors were encountered: