-
Notifications
You must be signed in to change notification settings - Fork 18k
x/net/http2: The server should not select a banned cipher if it selects h2 #12895
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
Labels
Comments
/cc @agl, as this might require more cooperation between the http2 and crypto/tls packages. |
The intended configuration for this is that the server sets |
CL https://golang.org/cl/15860 mentions this issue. |
bradfitz
added a commit
that referenced
this issue
Oct 20, 2015
… error In https://golang.org/cl/15860 http2.ConfigureServer was changed to return an error if explicit CipherSuites are listed and they're not compliant with the HTTP/2 spec. This is the net/http side of the change, to look at the return value from ConfigureServer and propagate it in Server.Serve. h2_bundle.go will be updated in a future CL. There are too many other http2 changes pending to be worth updating it now. Instead, h2_bundle.go is minimally updated by hand in this CL so at least the net/http change will compile. Updates #12895 Change-Id: I4df7a097faff2d235742c2d310c333bd3fd5c08e Reviewed-on: https://go-review.googlesource.com/16065 Reviewed-by: Andrew Gerrand <adg@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
c3mb0
pushed a commit
to c3mb0/net
that referenced
this issue
Apr 2, 2018
…rrors Fixes golang/go#12895 Change-Id: I7cf6e63b1bbdf1f4e8974c00bdaed69b74f6db49 Reviewed-on: https://go-review.googlesource.com/15860 Reviewed-by: Adam Langley <agl@golang.org>
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
An HTTP/2 capable server that enforces the optional TLS 1.2 cipher suite blacklist from RFC 7540 should not select one of those ciphers if the protocol selection is h2. A client may advertise both h2 and blacklisted ciphers because it doesn't know anything about the server.
For example consider a client such as libcurl that uses nghttp2 and OpenSSL 1.0.2. If HTTP2 is enabled it will send a ClientHello that advertises protocols h2, http/1.1 and ciphers such as [... TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA ...]. The go server currently replies with a ServerHello selecting h2 and the aforementioned blacklisted cipher, which it later bans by default.
Ref curl/curl#406
The text was updated successfully, but these errors were encountered: