简单来说
JA3 是计算 TLS 指纹 的一种流行方式。它从客户端的 ClientHello 中收集特定字段——TLS 版本、密码套件的有序列表、扩展、椭圆曲线及其点格式——将它们连接起来并将结果哈希为一个短的 MD5 字符串。由于不同的客户端以不同的方式排序和填充这些字段,JA3 哈希充当签名:许多 Chrome 安装共享一个值,特定的 Python HTTP 库共享另一个值。服务器端对应的 JA3S 则对服务器的响应进行指纹识别。
为什么这很重要
安全和反机器人平台维护已知浏览器、工具和恶意软件的JA3哈希库,然后将传入连接与之进行比较。一个JA3显示为"脚本库"但其User-Agent显示为\"Chrome\"的请求会被标记为不一致。JA3有一个已知的弱点——TLS扩展顺序可能会有所不同——这促使了更强大的JA4的出现。请记住,使用代理更改您的出口IP不会影响JA3;只有构建握手的客户端决定它,因此如果目标同时检查网络层和客户端层的措施,请结合使用这两种措施。
实用说明
实际上,如果目标检查JA3,您无法通过更改IP来修复它——一个代理会保持哈希不变。重要的是,构建握手的客户端与您声称的浏览器相似,并且您的User-Agent、JA3和行为一致。由于JA3的扩展顺序弱点导致了JA4,因此预计严格的网站也会检查较新的方案,因此请追求真正的浏览器级软件,而不是表面上伪造的头信息。
FAQ
问题,已解答
JA3和JA3S之间有什么区别?
JA3 从其 ClientHello 中指纹识别客户端,识别连接的软件。JA3S 从其 ServerHello 中指纹识别服务器。JA3/JA3S 配对可以共同表征 TLS 会话的两端,以便进行检测或威胁分析。