Skip to main content

JA4S FINGERPRINT

Counts TLS ServerHello messages by JA4S fingerprint, keyed by the full JA4S string.

PropertyValue
GUID{D8D4E3C2-AE5F-4B90-C7F6-234567890BCD}
LayerL7 Application
InputPackets
Key typeJA4S string (a_b, 20 chars)
ImplementationLua — ja4shash.lua (apps/analyzers/tls-print)
Trisul Apptls-print (install from Trisul Apps)
Bucket / Topper60 s / 300 s
Enabled by defaultYes, after the app is installed

What it measures​

  • You must set //Reassembly/TCPReassembly/Applications/EnableSSLRecordExtraction to true in the probe config. Otherwise the script does not load.
  • The script reads TLS:RECORD attributes from TCP reassembly. It parses only handshake records (type 22). It skips a record when the handshake length does not match the record length.
  • Only ServerHello (handshake type 2) is used. A hello with no extensions is not counted.
  • Each ServerHello adds 1 to both meters and adds a flow → JA4S edge. No labels are set.
  • Set LogHashes=true in config/trisulnsm_tls-fingerprint.lua to print each flow and fingerprint to the log.

Keys​

One key is <ja4s_a>_<ja4s_b>, as built by build_ja4s():

  • ja4s_a (7 chars): t, then the TLS version (from the supported_versions extension when present, else the hello version: 13, 12, 11, 10, s3, s2, else 00). Then the extension count (2 digits, no GREASE). Then the first two characters of the chosen ALPN, or 00.
  • ja4s_b: first 12 uppercase hex chars of SHA-256 over <chosen cipher as 4 hex>_<extensions>. The code sorts the extensions as 4-digit hex, comma separated.
KeyMeaning
t120400_<12 HEX>TLS 1.2, 4 extensions, no ALPN
t1302h2_<12 HEX>TLS 1.3, 2 extensions, ALPN h2

Special keys​

KeyMeaning
SYS:GROUP_TOTALSSum of every update made to this group in the interval. Hits in the totals is the number of ServerHello records fingerprinted.

Meter list​

IDNameTypeUnitsTopBottomDescription
0hitsVT_COUNTERhits2040Short name Hits. 1 per ServerHello.
1svr-hitsVT_COUNTERhits2040Short name Server Hits. 1 per ServerHello. Always equal to meter 0.
2uniqsVT_GAUGEUniques2020Reserved cardinality slot. Not populated.
3uniqsVT_GAUGEUniques2020Reserved cardinality slot. Not populated.