JAR3算法
Last updated
Was this helpful?
Last updated
Was this helpful?
项目地址👉https://github.com/salesforce/ja3
JA3S是服务器的TLS指纹,是通过提取TLS握手协议的一些字段值,再进行md5哈希
JA3是客户端的TLS指纹,和JA3S的生成差不多一样。
The JA3 algorithm takes a collection of settings from the SSL “Client Hello” such as SSL/TLS version, accepted cipher suites, list of extensions, accepted elliptic curves, and elliptic curve formats.
JA3S: MD5(TLS version,Cipher Suite,Ext1-Ext2...)
JA3: md5(TLSVersion,Ciphers,Extensions,EllipticCurves,EllipticCurvePointFormats)
如这里版本号0x0303对应十进制771,密码套件0xc02f对应十进制49199,以及扩展类型
不同字段的值用,
分隔,同一字段的多个值用-
分隔,拼接起来刚好是JA3S Fullstring
再经过MD5哈希得到JA3S。
一般不同的客户端这些信息相同的概率都很小(包括顺序),所以服务端可能看某个JA3指纹的客户端高频率请求网站就把它封掉。
可以用这个网站来测试自己的JA3指纹:https://tls.peet.ws/
用无痕浏览器,每次刷新都得到不同的指纹,主要是每次扩展的顺序都变了
使用requests库发包,每次得到的也是相同的ja3指纹
https://engineering.salesforce.com/tls-fingerprinting-with-ja3-and-ja3s-247362855967/