]> Cypherpunks repositories - gostls13.git/commit
crypto/tls: support TLS_FALLBACK_SCSV as a server.
authorAdam Langley <agl@golang.org>
Thu, 16 Oct 2014 00:54:04 +0000 (17:54 -0700)
committerAdam Langley <agl@golang.org>
Thu, 16 Oct 2014 00:54:04 +0000 (17:54 -0700)
commite5624edc7e011b71237ba4713878b4b6ae0cab87
tree8eacdc0b70fa9e34ca2ac1e81a09ea67b1bedfa8
parent3c40ee0fe08f95147af9cf7099041f1a4642653d
crypto/tls: support TLS_FALLBACK_SCSV as a server.

A new attack on CBC padding in SSLv3 was released yesterday[1]. Go only
supports SSLv3 as a server, not as a client. An easy fix is to change
the default minimum version to TLS 1.0 but that seems a little much
this late in the 1.4 process as it may break some things.

Thus this patch adds server support for TLS_FALLBACK_SCSV[2] -- a
mechanism for solving the fallback problem overall. Chrome has
implemented this since February and Google has urged others to do so in
light of yesterday's news.

With this change, clients can indicate that they are doing a fallback
connection and Go servers will be able to correctly reject them.

[1] http://googleonlinesecurity.blogspot.com/2014/10/this-poodle-bites-exploiting-ssl-30.html
[2] https://tools.ietf.org/html/draft-ietf-tls-downgrade-scsv-00

LGTM=rsc
R=rsc
CC=golang-codereviews
https://golang.org/cl/157090043
src/crypto/tls/alert.go
src/crypto/tls/cipher_suites.go
src/crypto/tls/handshake_server.go
src/crypto/tls/handshake_server_test.go
src/crypto/tls/testdata/Server-TLSv11-FallbackSCSV [new file with mode: 0644]