Open elpy1 opened 4 months ago
Thanks for bringing this up! We should add any additional JA4s seen in streams to the output as JA4.2, etc. like how we do with JA4X I think. Would that work?
Considering the core functionality currently involves extracting fingerprints from each stream, that makes sense to me.
I'm simply grepping for the JA4 pattern, so it doesn't matter where it is in the output for my use-case. Thanks.
Hi :wave: . While working on a personal project that implements JA4, I noticed some discrepancies when comparing JA4 (TCP) fingerprint output against some of the tls PCAP files in your repo.
For example, I get the following TLS fingerprints from tls-handshake.pcapng:
With ja4.py I get:
With tshark (
TShark (Wireshark) 4.2.6 (Git commit fca52ffc018f).
) I get:Upon looking at this a bit further I realised the caching functionality in common.py is based on streams. So, if there is more than one fingerprint in a stream, it gets overwritten in the cache? Examples stream:
I was able to resolve this locally by hacking together a change that uses a tuple containing the stream and frame number as the cache key, but this probably isn't suitable because it results in multiple outputs for a stream, instead of multiple fingerprints inside a single stream output.