Skip to content
This repository has been archived by the owner on Aug 19, 2022. It is now read-only.

use TLS 1.3 #3

Closed
marten-seemann opened this issue Nov 24, 2018 · 4 comments
Closed

use TLS 1.3 #3

marten-seemann opened this issue Nov 24, 2018 · 4 comments
Labels
kind/enhancement A net-new feature or improvement to an existing feature

Comments

@marten-seemann
Copy link
Collaborator

We have two options here:

  1. use tls-tris (with some minimal, trivial modifications, to make it work with the standard Go compiler)
  2. wait until the Go standard library adds support for TLS 1.3

Note that adding support for TLS 1.3 is inherently backwards compatible, since TLS handles version negotiation itself.

@marten-seemann marten-seemann added the kind/enhancement A net-new feature or improvement to an existing feature label Nov 24, 2018
@raulk
Copy link
Member

raulk commented Nov 24, 2018

Go master includes TLS 1.3 support, but with some features like 0-RTT missing and not making it for Go 1.12.

golang/go@30cc978

Does it make sense to develop this repo against master until 1.12 comes out?

@marten-seemann
Copy link
Collaborator Author

Go master includes TLS 1.3 support, but with some features like 0-RTT missing and not making it for Go 1.12.

Wonderful, I hadn't seen that so far! I don't really care about 0-RTT at this point, but this is really good news security-wise, as well as performance-wise (the TLS 1.3 handshake is 1 RTT faster than TLS 1.2).
This means that the payoff of using tls-tris is probably too small to justify the effort.

Does it make sense to develop this repo against master until 1.12 comes out?

If we want to deploy TLS 1.3 asap, that would require us to build releases against tip, and I'd be a bit worried about stability.
If we want to start phasing out secio as quickly as possible, we should start using TLS 1.2 now, and we'll get one round trip for free as soon as we build the first release using Go 1.12.

@raulk
Copy link
Member

raulk commented Nov 24, 2018

Makes sense, @marten-seemann.

@marten-seemann
Copy link
Collaborator Author

marten-seemann commented Feb 8, 2019

Update: TLS 1.3 was made opt-in for Go 1.12, and will become default with Go 1.13, see
golang/go#30055 and golang/go@5d9bc60#diff-0977a3b43ae53839ce25d758f24138f2.

It's activated via a GODEBUG flag. We can hack our way around this by manually setting this variable via os.Setenv.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
kind/enhancement A net-new feature or improvement to an existing feature
Projects
None yet
Development

No branches or pull requests

2 participants