DescriptionShard the SSL session cache by version fallback.
This addresses two issues:
- NSS clamps client_version to the session version. This means that a
successful fallback connection is effectively cached, despite our fallback
being stateless. This causing our metrics to be under-reported and, more
problematic, makes spurious fallbacks stick.
- BoringSSL does not clamp, but many versions of OpenSSL on the server will
happily resume older sessions at newer protocol versions, rather than doing a
full handshake at the newer protocol version. This means a successful
spurious fallback causes us later resume with a weaker cipher than we should.
Moreover, this mismatch is forbidden by every other client implementation.
The metrics are reporting 0.06% of connections on beta channel hit this case.
I expect it to go down after this change.
Note: this will also increase traffic to version-intolerant servers on NSS
ports. But that's only Linux/CrOS/iOS now and the BoringSSL switch did the same
thing by losing the version clamp.
BUG=459690, 441456
Committed: https://crrev.com/21ea1b4ef8d6c111605866108c7dac1b31440114
Cr-Commit-Position: refs/heads/master@{#317605}
Patch Set 1 #Patch Set 2 : be more clever #
Total comments: 1
Messages
Total messages: 13 (2 generated)
|