Skip to content

Add jax_fingerprint plugin#12995

Open
maskit wants to merge 35 commits intoapache:masterfrom
maskit:jax
Open

Add jax_fingerprint plugin#12995
maskit wants to merge 35 commits intoapache:masterfrom
maskit:jax

Conversation

@maskit
Copy link
Copy Markdown
Member

@maskit maskit commented Mar 18, 2026

This adds an experimental plugin jax_fingerprint. The basic functionality is the same as ja3_fingerprint and ja4_fingerprint, but the configuration is more flexible.

jax_fingerprint plugin supports multiple fingerprinting methods, JA4 and JA3. The code to generate fingerprint was copied from the existing plugins. It partially supports JA4H as well. I only implemented the JA4H_a and JA4H_b. JA4H_c and JA4H_d are filled with 0s.

All the outputs, HTTP headers and logging, are disabled by default. You can selectively enable them by specifying header names or a log file name. Also you can choose how the plugin deal with headers from clients. You can keep the original header intact, overwrite it, or append a new value.

A completely new feature is generating fingerprints only for specified server names (SNI). You can pass a list of server names. And of course you can set headers only on specified paths (remap rules) by setting up the plugin as a remap plugin.

The plugin can be used with either OpenSSL or BoringSSL (the existing ja3 plugin does not work with BoringSSL).

All the features are available regardless of fingerprinting methods.

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants