Skip to content

Releases: refraction-networking/utls

v1.3.3 Compatibility and Optimization

14 Jul 20:04
v1.3.3
c062ac9
Compare
Choose a tag to compare

What's Changed

Full Changelog: v1.3.2...v1.3.3

v1.3.2 bug fixes, robustness, and new (beta) ClientHelloSpecs

07 Apr 03:25
v1.3.2
c785bd3
Compare
Choose a tag to compare

What's Changed

Note

Added HelloChrome_100_PSK and HelloChrome_112_PSK_Shuf, which includes PreSharedKey automatically instead of Padding as the last TLS extensions.

To use them correctly, you are required to use (*UConn).ApplyPreset():

conn := utls.UClient(plainConn, utlsConfig, utls.HelloCustom)
preset, err := utls.UTLSIdToSpec(utls.HelloChrome_112_PSK_Shuf) // correct
if err != nil {
	return nil, err
}
if pskExt, ok := preset.Extensions[len(preset.Extensions)-1].(*utls.FakePreSharedKeyExtension); ok {
	pskExt.PskIdentities = []utls.PskIdentity{ // must set identity
		{
			Label:               []byte("blahblahblah"), // change this
			ObfuscatedTicketAge: 0, // change this
		},
	}
	// each fake binder is 32 bytes of zeros
	pskExt.PskBinders = [][]byte{ // must set psk binders
		{
			0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  // change this
		},
	} // byte slices
}
conn.ApplyPreset(&preset) // make sure to apply preset to the connection

Instead of

conn := utls.UClient(plainConn, utlsConfig, utls.HelloChrome_112_PSK_Shuf) // incorrect! PSK extension will use empty payload!

New Contributors

Full Changelog: v1.3.1...v1.3.2

v1.3.1 Hotfix: InsecureServerNameToVerify for loadSession

12 Mar 20:14
v1.3.1
17e2929
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.3.0...v1.3.1

v1.3.0 Update: Security, and Compatibility

10 Mar 05:46
v1.3.0
dae72ad
Compare
Choose a tag to compare

What's Changed

  • build(deps): bump golang.org/x/net from 0.5.0 to 0.7.0 by @dependabot in #165
  • crypto/tls: reject change_cipher_spec record after handshake in TLS 1.3 by @RPRX in #170
  • crypto/tls: set const maxUselessRecords to 32 (the same with OpenSSL) by @RPRX in #171
  • Sync with upstream: Go 1.19.6 (no new change in 1.19.7) by @gaukas in #172
  • feat: Convert raw bytes or tlsfingerprint record to ClientHelloSpec by @gaukas and @gfw-report in #168

New Contributors

Important Notice

#170 and #171 patched vulnerabilities allowing a strong attacker to detect and break uTLS (and Go's crypto/tls) connections. Please consider updating your go.mod to use the latest version of uTLS.

Full Changelog: v1.2.2...v1.3.0

v1.2.2 Hotfix: Allow custom weights in generateRandomizedSpec()

10 Feb 19:07
v1.2.2
a75a4b4
Compare
Choose a tag to compare

What's Changed

  • Customable weights used in generateRandomizedSpec() by @RPRX in #163

Full Changelog: v1.2.1...v1.2.2

v1.2.1 Improvements and Fix

05 Feb 18:46
v1.2.1
559ed14
Compare
Choose a tag to compare

What's Changed

  • Fix Client Certificate Verification when Using Extended Master Secret by @DunyaKokoschka in #143
  • Bugfix: FingerprintClientHello should work when the dump contains the… by @svmk in #121
  • Misspelling ? by @githuu5y5u in #154
  • Add randomized clientHello generation in UTLSIdToSpec. by @fedosgad in #155
  • Support randomized with non-nil seed in UTLSIdToSpec by @RPRX in #157
  • add InsecureSkipServerNameVerify to tls.Config by @TNQOYxNU in #158
  • Replace InsecureSkipServerNameVerify with InsecureServerNameToVerify by @RPRX in #161
  • update go.mod by @gaukas in #153
  • Bump HelloChrome_Auto version by @gaukas in #162

New Contributors

Full Changelog: v1.2.0...v1.2.1

We will not sync with upstream crypto/tls until the next tagged version.

v1.2.0 Refactored and Made Anew

17 Nov 22:34
fb99df2
Compare
Choose a tag to compare

TL;DR

This update includes some major refactorizations and improvements, ALPS (ApplicationSettingsExtension) support, and included a new experimental anti-fingerprinting fingerprint from Chrome/Chromium.

What's Changed

Minimum Go version: 1.16 -> 1.19

New Contributors

Full Changelog: v1.1.5...v1.2.0

v1.1.5 Sync & New Architecture

17 Oct 21:28
v1.1.5
862fe37
Compare
Choose a tag to compare

Note: this is the last tagged version in which we support old Go versions.

From next release, we will support go 1.19 and above only.

What's Changed

New Contributors

Full Changelog: v1.1.3...v1.1.5

v1.1.3 ClientHello Diversity

12 Oct 18:21
v1.1.3
35e5b05
Compare
Choose a tag to compare

What's Changed

Full Changelog: v1.1.2...v1.1.3

v1.1.2

07 Sep 02:06
f781b69
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.1.1...v1.1.2