]> Cypherpunks repositories - gostls13.git/commit
crypto/tls: reduce session ticket linkability
authorFilippo Valsorda <filippo@golang.org>
Fri, 19 May 2023 21:28:43 +0000 (23:28 +0200)
committerFilippo Valsorda <filippo@golang.org>
Wed, 24 May 2023 23:56:24 +0000 (23:56 +0000)
commit6b020be648960440b1f02d28889a6e050f59c31c
treef0dd84974d380b780a3b006d96e83b889f06ee00
parent08458804fb6591397fe1c58f4e04fd490e70fbcb
crypto/tls: reduce session ticket linkability

Ever since session ticket key rotation was introduced in CL 9072, we've
been including a prefix in every ticket to identify what key it's
encrypted with. It's a small privacy gain, but the cost of trial
decryptions is also small, especially since the first key is probably
the most frequently used.

Also reissue tickets on every resumption so that the next connection
can't be linked to all the previous ones. Again the privacy gain is
small but the performance cost is small and it comes with a reduction in
complexity.

For #60105

Change-Id: I852f297162d2b79a3d9bf61f6171e8ce94b2537a
Reviewed-on: https://go-review.googlesource.com/c/go/+/496817
Reviewed-by: Damien Neil <dneil@google.com>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Run-TryBot: Damien Neil <dneil@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
34 files changed:
src/crypto/tls/common.go
src/crypto/tls/handshake_client_test.go
src/crypto/tls/handshake_server.go
src/crypto/tls/handshake_server_tls13.go
src/crypto/tls/testdata/Server-TLSv10-ExportKeyingMaterial
src/crypto/tls/testdata/Server-TLSv12-ALPN
src/crypto/tls/testdata/Server-TLSv12-ALPN-Fallback
src/crypto/tls/testdata/Server-TLSv12-ALPN-NotConfigured
src/crypto/tls/testdata/Server-TLSv12-ExportKeyingMaterial
src/crypto/tls/testdata/Server-TLSv12-IssueTicket
src/crypto/tls/testdata/Server-TLSv12-IssueTicketPreDisable
src/crypto/tls/testdata/Server-TLSv12-Resume
src/crypto/tls/testdata/Server-TLSv13-AES128-SHA256
src/crypto/tls/testdata/Server-TLSv13-AES256-SHA384
src/crypto/tls/testdata/Server-TLSv13-ALPN
src/crypto/tls/testdata/Server-TLSv13-ALPN-Fallback
src/crypto/tls/testdata/Server-TLSv13-ALPN-NotConfigured
src/crypto/tls/testdata/Server-TLSv13-CHACHA20-SHA256
src/crypto/tls/testdata/Server-TLSv13-ClientAuthRequestedAndECDSAGiven
src/crypto/tls/testdata/Server-TLSv13-ClientAuthRequestedAndEd25519Given
src/crypto/tls/testdata/Server-TLSv13-ClientAuthRequestedAndGiven
src/crypto/tls/testdata/Server-TLSv13-ClientAuthRequestedNotGiven
src/crypto/tls/testdata/Server-TLSv13-ECDHE-ECDSA-AES
src/crypto/tls/testdata/Server-TLSv13-Ed25519
src/crypto/tls/testdata/Server-TLSv13-ExportKeyingMaterial
src/crypto/tls/testdata/Server-TLSv13-HelloRetryRequest
src/crypto/tls/testdata/Server-TLSv13-IssueTicket
src/crypto/tls/testdata/Server-TLSv13-IssueTicketPreDisable
src/crypto/tls/testdata/Server-TLSv13-P256
src/crypto/tls/testdata/Server-TLSv13-RSA-RSAPSS
src/crypto/tls/testdata/Server-TLSv13-Resume
src/crypto/tls/testdata/Server-TLSv13-Resume-HelloRetryRequest
src/crypto/tls/testdata/Server-TLSv13-X25519
src/crypto/tls/ticket.go