diff --git a/README b/README index ed75825..31ca56b 100644 --- a/README +++ b/README @@ -292,11 +292,13 @@ names, each optionally preceded by an integer weight and `*`. ``` $ ./dnstt-client -utls '3*Firefox,2*Chrome,1*iOS' ... $ ./dnstt-client -utls Firefox ... +$ ./dnstt-client -utls random ... ``` Run `./dnstt-client -help` to see the available fingerprint names and -the default distribution. The special value `none` disables uTLS and -uses the native crypto/tls fingerprint, which is less covert but likely -to be compatible with more servers. +the default distribution. The `random` fingerprint is a randomized +fingerprint. The special value `none` disables uTLS and uses the native +crypto/tls fingerprint, which is less covert but likely to be compatible +with more servers. ## Encryption and authentication diff --git a/dnstt-client/utls.go b/dnstt-client/utls.go index e187b47..f043726 100644 --- a/dnstt-client/utls.go +++ b/dnstt-client/utls.go @@ -22,6 +22,7 @@ var utlsClientHelloIDMap = []struct { Label string ID *utls.ClientHelloID }{ + {"random", &utls.HelloRandomizedALPN}, {"Firefox", &utls.HelloFirefox_Auto}, {"Firefox_55", &utls.HelloFirefox_55}, {"Firefox_56", &utls.HelloFirefox_56}, diff --git a/man/dnstt-client.1 b/man/dnstt-client.1 index 9eb818d..0abb09e 100644 --- a/man/dnstt-client.1 +++ b/man/dnstt-client.1 @@ -159,6 +159,8 @@ Examples: .It -utls Firefox .It +-utls random +.It -utls none .El @@ -168,6 +170,9 @@ Use the option to see the default distribution and the set of available fingerprint labels. The special value +.Cm random +stands for a randomized fingerprint. +The special value .Cm none disables uTLS and uses the native Go crypto/tls fingerprint.