6fa545aa08698b4d

Seen (all time)
(past week)
< 100 times (0.00%)
< 100 times (0.00%)
Rank (all time)
(past week)
2192 / 10310
2192 / 2971
TLS VersionTLS 1.0
Handshake VersionTLS 1.2
Cipher Suites
exact match
GREASE (0x0a0a)
TLS_CHACHA20_POLY1305_SHA256 (0x1303)
TLS_AES_128_GCM_SHA256 (0x1301)
TLS_AES_256_GCM_SHA384 (0x1302)
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b)
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f)
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (0xc02c)
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (0xc030)
TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 (0xcca9)
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (0xcca8)
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013)
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014)
TLS_RSA_WITH_AES_128_GCM_SHA256 (0x009c)
TLS_RSA_WITH_AES_256_GCM_SHA384 (0x009d)
TLS_RSA_WITH_AES_128_CBC_SHA (0x002f)
TLS_RSA_WITH_AES_256_CBC_SHA (0x0035)
Compression Methodsnull (0x00)
Extensions
exact match
GREASE (0x0a0a)
server_name (0x0000)
extended_master_secret (0x0017)
renegotiation_info (0xff01)
supported_groups (0x000a)
ec_point_formats (0x000b)
SessionTicket TLS (0x0023)
application_layer_protocol_negotiation (0x0010)
status_request (0x0005)
signature_algorithms (0x000d)
signed_certificate_timestamp (0x0012)
key_share (0x0033)
psk_key_exchange_modes (0x002d)
supported_versions (0x002b)
compressed_certificate (0x001b)
GREASE (0x0a0a)
padding (0x0015)
Supported Groups
exact match
GREASE (0x0a0a)
x25519 (0x001d)
secp256r1 (0x0017)
secp384r1 (0x0018)
Signature Algorithmsecdsa_secp256r1_sha256 (0x0403)
rsa_pss_rsae_sha256 (0x0804)
rsa_pkcs1_sha256 (0x0401)
ecdsa_secp384r1_sha384 (0x0503)
rsa_pss_rsae_sha384 (0x0805)
rsa_pkcs1_sha384 (0x0501)
rsa_pss_rsae_sha512 (0x0806)
rsa_pkcs1_sha512 (0x0601)
EC Point Formatsuncompressed (0x00)
ALPNh2
http/1.1
Key Share GREASE (0x0a0a) - 1-byte key
x25519 (0x001d) - 32-byte key
PSK Key Exchange Modes psk_dhe_ke (0x01)
Supported Versions
exact match
GREASE (0x0a0a)
TLS 1.3 (0x0304)
TLS 1.2 (0x0303)
TLS 1.1 (0x0302)
TLS 1.0 (0x0301)
Certificate Compression Algorithms brotli (0x0002)
Record Size Limit
nid8044912905955150669
Related 9c673fd64a32c8dc (compare) Seen 79320 times (1.87%)
5408690af1e08199 (compare) Seen 23258 times (0.55%)
256c61ee90fe805f (compare) Seen 321424 times (7.57%)
aba0c0035182dcd5 (compare) Seen 71378 times (1.68%)
bbf04e5f1881f506 (compare) Seen 19334 times (0.46%)
8466c4390d4bc355 (compare) Seen 993138 times (23.38%)
405355b41ba80aed (compare) Seen 27220 times (0.64%)
87a0230ae2f624cf (compare) Seen 14105 times (0.33%)
aa2815186a8ff66a (compare) Seen 13014 times (0.31%)
34821122db257295 (compare) Seen 20767 times (0.49%)
e0bfc6ef97116168 (compare) Seen 37064 times (0.87%)
Labels
uTLS generated code
// import tls "github.com/refraction-networking/utls"
tcpConn, err := net.Dial("tcp", "tlsfingerprint.io:443")
if err != nil {
	fmt.Printf("net.Dial() failed: %+v\n", err)
	return
}

config := tls.Config{ServerName: "tlsfingerprint.io"}
tlsConn := tls.Client(tcpConn, &tlsConfig, utls.HelloCustom)
clientHelloSpec := tls.ClientHelloSpec {
	CipherSuites: []uint16{
		tls.GREASE_PLACEHOLDER,
		tls.TLS_CHACHA20_POLY1305_SHA256,
		tls.TLS_AES_128_GCM_SHA256,
		tls.TLS_AES_256_GCM_SHA384,
		tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
		tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
		tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
		tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
		tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,
		tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305,
		tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
		tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
		tls.TLS_RSA_WITH_AES_128_GCM_SHA256,
		tls.TLS_RSA_WITH_AES_256_GCM_SHA384,
		tls.TLS_RSA_WITH_AES_128_CBC_SHA,
		tls.TLS_RSA_WITH_AES_256_CBC_SHA,
	},
	CompressionMethods: []byte{
		0x00, // compressionNone
	},
	Extensions: []tls.TLSExtension{
		&tls.UtlsGREASEExtension{},
		&tls.SNIExtension{},
		&tls.UtlsExtendedMasterSecretExtension{},
		&tls.RenegotiationInfoExtension{renegotiation: tls.RenegotiateOnceAsClient},
		&tls.SupportedCurvesExtension{[]tls.CurveID{
			tls.CurveID(tls.GREASE_PLACEHOLDER),
			tls.X25519,
			tls.CurveP256,
			tls.CurveP384,
		}},
		&tls.SupportedPointsExtension{SupportedPoints: []byte{
			0x00, // pointFormatUncompressed
		}},
		&tls.SessionTicketExtension{},
		&tls.ALPNExtension{AlpnProtocols: []string{"h2","http/1.1"}},
		&tls.StatusRequestExtension{},
		&tls.SignatureAlgorithmsExtension{SupportedSignatureAlgorithms: []SignatureScheme{
			tls.ECDSAWithP256AndSHA256,
			tls.PSSWithSHA256,
			tls.PKCS1WithSHA256,
			tls.ECDSAWithP384AndSHA384,
			tls.PSSWithSHA384,
			tls.PKCS1WithSHA384,
			tls.PSSWithSHA512,
			tls.PKCS1WithSHA512,
		},},
		&tls.SCTExtension{},
		&tls.KeyShareExtension{[]tls.KeyShare{
			{Group: tls.CurveID(tls.GREASE_PLACEHOLDER), Data: []byte{0}},
			{Group: tls.X25519},
		}},
		&tls.PSKKeyExchangeModesExtension{[]uint8{
			tls.PskModeDHE,
		}},
		&tls.SupportedVersionsExtension{[]uint16{
			tls.GREASE_PLACEHOLDER,
			tls.VersionTLS13,
			tls.VersionTLS12,
			tls.VersionTLS11,
			tls.VersionTLS10,
		}},
		&tls.FakeCertCompressionAlgsExtension{[]tls.CertCompressionAlgo{
			tls.CertCompressionBrotli,
		}},
		&tls.UtlsGREASEExtension{},
		&tls.UtlsPaddingExtension{GetPaddingLen: BoringPaddingStyle},
	},
}
tlsConn.ApplyPreset(clientHelloSpec)
        
n, err = tlsConn.Write("Hello, World!")
// or tlsConn.Handshake() for better control

Times seen (per hour)

Percent seen (24 hour averaged)

User Agents