返回更新列表
新发布Sep 1, 2026

ja4 v1.0.1

JA4+ 是一套网络指纹识别标准

分享

logo

JA4+™ 网络指纹识别

JA4+ 是由 FoxIO 开发的一套网络指纹识别方法,易于使用且易于共享。这些方法既适合人类阅读,也适合机器解析,有助于更有效地进行威胁狩猎和分析。这些指纹的用例包括扫描威胁行为者、恶意软件检测、会话劫持防护、合规自动化、位置追踪、DDoS 检测、威胁行为者分组、反向 Shell 检测等。

如需快速了解 JA4+ 并在分析时作为参考,请参阅:
JA4+ 速查表

如需深入了解,请阅读我们关于 JA4+ 工作原理、为何有效以及可检测/预防哪些内容的博客文章:
JA4+ 网络指纹识别 (JA4/S/H/L/X/SSH)
JA4T:TCP 指纹识别 (JA4T/TS/TScan)
使用 JA4T 调查 Surfshark 和 NordVPN (JA4T)
JA4D 和 JA4D6:DHCP 指纹识别 (JA4D/6)

如果您喜欢 JA4+,可以考虑购买一件 T 恤或连帽衫:
JA4+ T 恤、连帽衫和贴纸

目录

当前方法及实现细节

全名简称描述
JA4JA4TLS 客户端指纹识别
JA4ServerJA4STLS 服务器响应 / 会话指纹识别
JA4HTTPJA4HHTTP 客户端指纹识别
JA4LatencyJA4L客户端到服务器延迟测量 / 光距离
JA4LatencyServerJA4LS服务器到客户端延迟测量 / 光距离
JA4X509JA4XX509 TLS 证书指纹识别
JA4SSHJA4SSHSSH 流量指纹识别
JA4TCPJA4TTCP 客户端指纹识别
JA4TCPServerJA4TSTCP 服务器响应指纹识别
JA4TCPScanJA4TScan主动 TCP 指纹扫描器
JA4DHCPJA4DDHCP 指纹识别
JA4DHCPv6JA4D6DHCPv6 指纹识别
JA4NTPJA4NNTP 指纹识别
JA4Scan-TLSJA4Scan-TLS主动 TLS 服务器指纹扫描器
JA4Scan-QUICJA4Scan-QUIC主动 QUIC 服务器指纹扫描器

全名和简称可以互换使用。更多 JA4+ 方法正在开发中……

要了解如何解读 JA4+ 指纹,请参阅 技术细节

实现

本仓库包含以下语言的 JA4+ 实现

支持 JA4+ 的工具

工具/厂商JA4+ 支持
WiresharkJA4+
ZeekJA4+
ArkimeJA4+(我们推荐的开源 JA4+ 工具)
SuricataJA4+(开发中)
GreyNoiseJA4+
HuntJA4+
DriftnetJA4+
GoLang (1)JA4X
GoLang (2)JA4
nzymeJA4+(开发中)
Netresec 的 CapLoaderJA4+(开发中)
Netresec 的 NetworkMinerJA4+(开发中)
NGINXJA4+
F5 BIG-IPJA4+
nfdumpJA4+
ntop 的 ntopngJA4+
ntop 的 nDPIJA4
Team CymruJA4+
NetQuestJA4+
CensysJA4+
Exploit.org 的 NetryxJA4 和 JA4H
CloudflareJA4
FastlyJA4+(需申请)
MISPJA4+
OCSFJA4+
VercelJA4
SeikaJA4+
VirusTotalJA4
AWS CloudfrontJA4
ELLIOJA4+
WebscoutJA4+
RamaJA4 和 JA4H
VectraJA4+
AWS WAFJA4
TacticlyJA4+
Palo Alto NetworksJA4+
ngrokJA4
Vertex SynapseJA4 和 JA4S
Google Cloud ArmorJA4
FortinetJA4
AppOmniJA4+
IntelliGenesisJA4+
HAProxyJA4JA4H 插件,由 OXL 开发
SentinelOneJA4
AkamaiJA4
阿里云JA4
华为云JA4
Google Cloud LBsJA4
eSentireJA4+
Microsoft Azure Front Door CDNJA4
Synapse,由 Gen0Sec 开发JA4X
ZscalerJA4
ExtraHopJA4+
ValidinJA4+
Auth0JA4
Security OnionJA4+
bunny.netJA4
ENEAJA4+
F5 Distributed Cloud ServicesJA4+

更多支持即将公布……

示例

应用JA4+ 指纹
ChromeJA4=t13d1517h2_8daaf6152771_cb7bf5808d99 (TCP)
JA4=q13d0312h3_55b375c5d22e_178839b6cec1 (QUIC)
IcedID 恶意软件投放器JA4H=ge11cn020000_9ed1ff1f7b03_cd8dafe26982
IcedID 恶意软件JA4=t13d201100_2b729b4bf6f3_9e7b989ebec8
JA4S=t120300_c030_5e2616a54c73
Sliver 恶意软件JA4=t13d190900_9dc949149365_97f8aa674fd9
JA4S=t130200_1301_a56c5b993250
JA4X=000000000000_4f24da86fad6_bf0f0589fc03
JA4X=000000000000_7c32fa18c13e_bf0f0589fc03
Cobalt StrikeJA4H=ge11cn060000_4e59edc1297a_4da5efaf0cbd
JA4X=2166164053c1_2166164053c1_30d204a01551
SoftEther VPNJA4=t13d880900_fcb5b95cb75a_b0d3b4ac2a14 (客户端)
JA4S=t130200_1302_a56c5b993250
JA4X=d55f458d5a6c_d55f458d5a6c_0fc8c171b6ae
QakbotJA4X=2bab15409345_af684594efb4_000000000000
PikabotJA4X=1a59268f55e5_1a59268f55e5_795797892f9c
DarkgateJA4H=po10nn060000_cdb958d032b0
LummaC2JA4H=po11nn050000_d253db9d024b
EvilginxJA4=t13d191000_9dc949149365_e7c285222651
反向 SSH ShellJA4SSH=c76s76_c71s59_c0s70
Windows 11JA4T=64240_2-1-3-1-1-4_1460_8
Epson 打印机JA4TScan=28960_2-4-8-1-3_1460_3_1-4-8-16
Windows 11JA4D=disco0000in_61-12-60-55_1-3-6-15-31-33-43-44-46-47-119-121-249-252
Sony 接收器JA4D6=solct0010nn_8-1-3-6_24-23

更多示例,请参阅 ja4plus-mapping.csv
完整数据库,请访问 ja4db.com

插件

Wireshark
Zeek
Arkime

二进制文件

JA4 二进制文件基于该套件的 Rust 实现 构建。为确保完整功能,需要 tshark(4.0.6 或更高版本)。请从 Releases 页面下载最新的 JA4 二进制文件。Rust 实现的发布版本遵循 语义化版本控制,并标记为 vX.Y.Z,与 Wireshark 插件版本不同。

发布资产

发布资产根据组件和平台命名:

  • Rust:
    • ja4-vX.Y.Z-<架构>-<平台>.tar.gz(例如 ja4-v0.18.5-x86_64-unknown-linux-musl.tar.gz
  • Python:
    • ja4-python-vX.Y.Z.tar.gz(包含完整的 python/ 目录)
  • Wireshark:
    • ja4.so.linuxja4.so.macosja4.dll(附加到名为 wireshark-vX.Y.Z 的发布中)

请根据您的系统和组件选择相应的文件。

安装 tshark

Linux

使用您的包管理器进行安装(包名 tsharkwireshark-cli 取决于发行版)。例如,在 Ubuntu 上:```sh sudo apt install tshark

#### macOS

1. [下载](https://www.wireshark.org/download.html)并安装 Wireshark(包含 `tshark`)。
2. 将 `tshark` 添加到你的 `PATH` 中:   ```sh
   sudo ln -s /Applications/Wireshark.app/Contents/MacOS/tshark /usr/local/bin/tshark

Windows

  1. 下载并安装 Wireshark(包含 tshark.exe)。
  2. 找到 tshark.exe(通常位于 C:\Program Files\Wireshark\tshark.exe)。
  3. 将包含 tshark.exe 的文件夹添加到系统 PATH 中:
    • 打开 系统属性 > 环境变量 > 编辑 Path

运行 JA4+

一旦 tshark 和 JA4+ 二进制文件可用,请使用以下命令运行 JA4+:

  • 在 Linux 和 macOS 上: ```sh ./ja4 [options] [pcap]
  • 在 Windows 上,打开命令提示符并运行: ```cmd ja4 [options] [pcap]

如需了解运行 JA4+ 及其高级配置的更多详情,请参阅 Rust 实现 README,其中提供了有关其功能、使用场景和自定义选项的信息。

数据库

官方 JA4+ 指纹、相关应用及推荐检测逻辑数据库位于:ja4db.com
该数据库正处于非常活跃的开发阶段。预计未来几个月内,指纹组合和数据的数量将呈数量级增长。

另提供一份示例 ja4plus-mapping.csv 供快速参考。

发布流程

JA4+ 使用 GitHub Actions 来自动化其 Rust、Python、Wireshark 和 Zeek 组件的发布。发布通过向仓库推送带有特定前缀的标签来触发,但 Zeek 除外,它使用纯语义化版本(semver)标签。发布资产命名如下:

  • Rust: ja4-vX.Y.Z-<architecture>-<platform>.tar.gz
  • Python: ja4-python-vX.Y.Z.tar.gz
  • Wireshark: ja4.so.linuxja4.so.macosja4.dll(在类似 wireshark-vX.Y.Z 的发布中)

以下工作流可用:

  • Rust 发布:
    推送以 rust- 开头的标签,例如 rust-v0.18.5,以触发 Rust 二进制的发布。该工作流将自动构建并上传发布资产。

  • Python 发布:
    推送以 python- 开头的标签,例如 python-v0.1.0,以触发 Python 实现的发布。该工作流将创建 python/ 目录的压缩包,并将其作为发布资产发布。

  • Wireshark 插件发布:
    推送以 wireshark- 开头的标签,例如 wireshark-v0.1.1,以触发所有受支持平台的 Wireshark 插件二进制的发布。

  • Zeek 发布:
    推送一个无前缀的纯语义化版本标签(例如 v1.2.3),以触发 Zeek 发布。这将自动在 packages.zeek.org 上创建发布。

如何创建发布

  1. 确保你的更改已合并到 main 分支。

  2. 为你想要发布的组件创建并推送标签:

    • 对于 Rust、Python 或 Wireshark,使用相应的前缀(例如 rust-v0.18.5python-v0.1.0wireshark-v0.1.1)。
    • 对于 Zeek,使用纯 semver 标签(例如 v1.2.3)。

    示例: ```sh git tag v1.2.3 git push origin v1.2.3

(适用于 Zeek)

或者,对于 Rust: ```sh git tag rust-v0.18.5 git push origin rust-v0.18.5

3. 对应的 GitHub Actions 工作流将自动运行并发布发布资产。对于 Zeek,发布内容将出现在 [packages.zeek.org](https://packages.zeek.org/) 上。

## JA4+ 详情

JA4+ 是一组针对多种协议的简单而强大的网络指纹,既便于人类阅读,也便于机器解析,有助于改进威胁狩猎和安全分析。如果你对网络指纹不熟悉,我建议你阅读我发布的关于 JA3 [此处](https://medium.com/salesforce-engineering/tls-fingerprinting-with-ja3-and-ja3s-247362855967)、JARM [此处](https://medium.com/salesforce-engineering/easily-identify-malicious-servers-on-the-internet-with-jarm-e095edac525a) 的博客,以及 Fastly 撰写的这篇关于 [TLS 指纹识别现状](https://www.fastly.com/blog/the-state-of-tls-fingerprinting-whats-working-what-isnt-and-whats-next) 的优秀博客,其中概述了上述方法的历史及其存在的问题。JA4+ 提供了专门的支持,随着行业的变化保持这些方法的更新。

所有 JA4+ 指纹均采用 a_b_c 格式,以分隔构成指纹的不同部分。这使得仅利用 ab、ac 或仅 c 即可进行狩猎和检测。如果只想对进入应用的 cookie 进行分析,可以仅查看 JA4H_c。这种新的局部性保留格式有助于进行更深入、更丰富的分析,同时保持简单、易用,并支持可扩展性。

例如,GreyNoise 是一家识别互联网扫描器的互联网监听服务商,正在将 JA4+ 集成到其产品中。他们有一个行为者使用不断变化的单一 TLS 密码套件扫描互联网。这会生成大量完全不同的 JA3 指纹,但使用 JA4 时,只有 JA4 指纹的 b 部分会变化,a 和 c 部分保持不变。因此,GreyNoise 可以通过查看 JA4_ac 指纹(合并 a+c,丢弃 b)来追踪该行为者。

有关 JA4+ 方法及其描述的列表,请参阅 [当前方法及实现细节](#current-methods-and-implementation-details)。

要了解如何解读 JA4+ 指纹,请参阅 [技术细节](https://github.com/foxio-llc/ja4/blob/main/technical_details/README.md)。

## 许可

*JA4: TLS 客户端指纹识别* 是 [开源、BSD 3-Clause](https://github.com/foxio-llc/ja4/blob/main/LICENSE-JA4) 许可,与 JA3 相同。FoxIO 没有专利申请,也不计划为 JA4 TLS 客户端指纹识别申请专利覆盖。这使得任何目前使用 JA3 的公司或工具都能立即升级到 JA4,无需延迟。

**JA4S、JA4L、JA4LS、JA4L-Delta、JA4H、JA4X、JA4SSH、JA4T、JA4TS、JA4TScan、JA4D、JA4D6、JA4Scan-TLS、JA4Scan-QUIC、JA4N 以及所有未来的新增项(统称为 JA4+)** 均处于专利申请中,并根据 [FoxIO 许可证 1.1](https://github.com/foxio-llc/ja4/blob/main/LICENSE) 授权。该许可证对大多数使用场景是宽松的,包括学术和内部业务用途,但不允许商业化。例如,如果一家公司希望内部使用 JA4+ 来帮助保护自身公司安全,这是允许的。例如,如果一家供应商希望将 JA4+ 指纹识别作为其产品的一部分出售,则需要向我们申请 OEM 许可证。

JA4+ 是 FoxIO 的商标

JA4+ 可以并且正在被集成到开源工具中,详情请参阅 [许可证常见问题](https://github.com/foxio-llc/ja4/blob/main/License%20FAQ.md)。

这种许可方式使我们能够以开放且立即可用的方式向世界提供 JA4+,同时也为我们提供了一种资助持续支持、新方法研究以及 JA4+ 数据库开发的方式。我们希望每个人都能利用 JA4+,并乐于与供应商和开源项目合作,共同实现这一目标。

## 问答

问:为什么要对密码套件进行排序?顺序不重要吗?  
答:顺序确实重要,但在我们的研究中发现,应用程序和库选择独特密码套件列表的情况多于选择独特顺序的情况。这还降低了“密码套件截短”的有效性,这是一种通过随机化密码套件顺序来防止 JA3 检测的策略。

问:为什么要对扩展进行排序?  
答:2023 年初,Google [更新了 Chromium](https://chromestatus.com/feature/5124606246518784) 浏览器,使其扩展顺序随机化。与密码套件截短类似,这是一种防止 JA3 检测并“使 TLS 生态系统对变化更具鲁棒性”的策略。Google 担心服务器实现者会假设 Chrome 指纹永远不会改变,并围绕它构建逻辑,这会导致 Google 更新 Chrome 时出现问题。

所以我想明确一点:JA4 指纹会随着应用程序 TLS 库的更新而变化,大约每年一次。在应用程序会更新的环境中,不要假设指纹会保持不变。无论如何,对扩展进行排序可以绕过这个问题,而添加签名算法则保持了唯一性。

问:TLS 1.3 不是让 TLS 客户端指纹识别更难了吗?  
答:不,它让指纹识别更容易了!自 TLS 1.3 以来,客户端拥有更大范围的扩展,尽管 TLS 1.3 只支持少数密码套件,但浏览器和应用程序仍然支持更多。

## JA4+ 的创建者

[John Althouse](https://www.linkedin.com/in/johnalthouse/),并获得了以下人员的反馈:

Josh Atkins  
Jeff Atkinson  
Joshua Alexander  
W.  
Joe Martin  
Ben Higgins  
Andrew Morris  
Chris Ueland  
Ben Schofield  
Matthias Vallentin  
Valeriy Vorotyntsev  
Timothy Noel  
Gary Lipsky

Michael Barbine

以及来自 GreyNoise、Hunt、Google、ExtraHop、F5、Driftnet 等公司的工程师。

有关许可和问题,请联系 John Althouse:[email protected]。

<sub>JA4 和 JA4+ 是 FoxIO, Inc. 的商标。  
版权所有 (c) 2026, FoxIO</sup>

分类