主要可以设置密码套件的个数和顺序,这样能可以对抗一些使用JA3方法检测SSL指纹的网站。一般每个浏览器有相对固定的SSL指纹,在做多帐号或防关联项目时,可能SSL指纹的改变,会起到一定的权重作用,但是如果你不是很了解是什么SSL指纹,那么建议,还是不要乱设,因为可能会起反作用。
JA3是一种用于创建SSL / TLS客户端指纹的方法,该指纹应该易于在任何平台上生成,并且可以轻松共享以用于威胁情报。
SSL指纹是什么呢,可以说每款防关联浏览器一般都会有一个固定的SSL指纹。
JA3方法用于收集客户端Hello数据包中以下字段的字节的十进制值:版本,接受的密码,扩展名列表,椭圆曲线和椭圆曲线格式。然后,使用“,”分隔每个字段,使用“-”分隔每个字段中的值,按顺序将这些值连接在一起。
在Wireshark中查看的示例客户端Hello数据包
字段顺序如下:
TLSVersion,Ciphers,Extensions,EllipticCurves,EllipticCurvePointFormats
例:
769,47–53–5–10–49161–49162–49171–49172–50–56–19–4,0–10–11,23–24–25,0
如果客户端Hello中没有TLS扩展,则这些字段将保留为空。
769,4–5–10–9–100–98–3–6–19–18–99,,,
然后,对这些字符串进行MD5哈希处理,以生成易于使用和共享的32个字符的指纹。这是JA3 TLS客户端指纹。
769,47–53–5–10–49161–49162–49171–49172–50–56–19–4,0–10–11,23–24–25,0 → ada70206e40642a3e4461f35503241d5
769,4–5–10–9–100–98–3–6–19–18–99,,, → de350869b8c85de67a350c8d186f11e6
我们还需要引入一些代码来解释Google的GREASE(Generate Random Extensions And Sustain Extensibility),如这里所述。实际上,Google会使用这个机制来防止TLS生态系统中的可扩展性出现故障。不过,JA3会完全忽略这些值,以确保使用GREASE的程序仍然可以用单个JA3哈希值来完成指纹识别。
可以用于 SSL 指纹浏览器测试的网站:
https://browserleaks.com/ssl
小结
JA3和JA3S是一种基于TLS指纹的安全分析方法。JA3指纹能够指示客户端应用程序通过TLS通信的方式,而JA3指纹能够指示服务器响应。如果两者结合起来,实质上就生成了客户端和服务器之间的加密协商的指纹。虽然基于TLS的检测方法不一定是灵丹妙药,也不一定能保证映射到客户端应用程序,但它们始终是安全分析的轴心所在。
VMLogin设计SSL自定义方法,主要是为了改变浏览器的JA3指纹,算不上全面,但是也非常的简单高效。需要能帮助一些追求完美主义的用户。同时也希望能给我们提供更好的建议和帮助。
VMLogin官方网站:https://www.vmlogin.cc/