Created
March 8, 2021 06:22
-
-
Save wongsyrone/8cbefb6e847b0af9aa194f0440200bac to your computer and use it in GitHub Desktop.
top TLS fingerprint
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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_AES_128_GCM_SHA256, | |
tls.TLS_AES_256_GCM_SHA384, | |
tls.TLS_CHACHA20_POLY1305_SHA256, | |
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 |
#1 TLS fingerprint of all the time https://tlsfingerprint.io/id/e47eae8f8c4887b6
see also: https://gist.github.com/klzgrad/25b2612d266a450abca6129a7ca595a4
Hey guys, how can I convert this https://tlsfingerprint.io/id/bbf04e5f1881f506 back to JA3 String like this
ja3_string = "771,49196-49195-49200-49199-159-158-49188-49187-49192-49191-49162-49161-49172-49171-157-156-61-60-53-47-10,0-10-11-13-35-23-65281,29-23-24,0"
Is there a quick and dirty way to do that ?
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
https://tlsfingerprint.io/id/9c673fd64a32c8dc