JA4+ è una suite di standard di fingerprinting di rete
<p align="center">
<img src="https://assets.kitploit.com/production/public/readmes/6520/8c33d49cec0b788f1dbf683023b315183230f23b75d0b45004c116a43f4e8996.png" alt="logo" width="250"/>
</p>
# Fingerprinting di rete JA4+™ <!-- omit from toc -->
JA4+ è una suite di metodi di fingerprinting di rete di [FoxIO](https://foxio.io/) che è facile da usare e facile da condividere. Questi metodi sono sia leggibili dall'uomo che dalla macchina per facilitare una più efficace caccia alle minacce e analisi. I casi d'uso per queste impronte digitali includono la scansione per attori delle minacce, rilevamento malware, prevenzione del dirottamento di sessione, automazione della conformità, tracciamento della posizione, rilevamento DDoS, raggruppamento di attori delle minacce, rilevamento di reverse shell e molti altri.
Per una spiegazione rapida su JA4+ e da usare come riferimento durante l'analisi vedi:
[JA4+ Cheat Sheet](https://x.com/4A4133/status/1887269972545839559)
Per dettagli approfonditi, ti preghiamo di leggere i nostri blog su come funziona JA4+, perché funziona, ed esempi di cosa può essere rilevato/prevenuto con esso:
[JA4+ Network Fingerprinting](https://foxio.io/blog/ja4-network-fingerprinting) (JA4/S/H/L/X/SSH)
[JA4T: TCP Fingerprinting](https://foxio.io/blog/ja4t-tcp-fingerprinting) (JA4T/TS/TScan)
[Investigating Surfshark and NordVPN with JA4T](https://foxio.io/blog/investigating-surfshark-and-nordvpn-with-ja4t) (JA4T)
[JA4D and JA4D6: DHCP Fingerprinting](https://foxio.io/blog/ja4d-and-ja4d6-dhcp-fingerprinting) (JA4D/6)
Se ami JA4+, considera di acquistare una t-shirt o una felpa:
[JA4+ Shirts, Hoodies, and Stickers](https://store.foxio.io/)
## Sommario <!-- omit from toc -->
- [Metodi attuali e dettagli di implementazione](#current-methods-and-implementation-details)
- [Implementazioni](#implementations)
- [Strumenti che supportano JA4+](#tools-that-support-ja4)
- [Esempi](#examples)
- [Plugin](#plugins)
- [Binari](#binaries)
- [Asset di rilascio](#release-assets)
- [Installazione di tshark](#installing-tshark)
- [Linux](#linux)
- [macOS](#macos)
- [Windows](#windows)
- [Esecuzione di JA4+](#running-ja4)
- [Database](#database)
- [Processo di rilascio](#release-process)
- [Come creare un rilascio](#how-to-create-a-release)
- [Dettagli JA4+](#ja4-details)
- [Licenze](#licensing)
- [Domande e risposte](#qa)
- [JA4+ è stato creato da](#ja4-was-created-by)
## Metodi attuali e dettagli di implementazione
| Nome completo | Nome breve | Descrizione |
|---|---|---|
| JA4 | JA4 | Fingerprinting client TLS |
| JA4Server | JA4S | Fingerprinting risposta server TLS / sessione |
| JA4HTTP | JA4H | Fingerprinting client HTTP |
| JA4Latency | JA4L | Misurazione latenza client-server / distanza luce |
| JA4LatencyServer | JA4LS | Misurazione latenza server-client / distanza luce |
| JA4X509 | JA4X | Fingerprinting certificato TLS X509 |
| JA4SSH | JA4SSH | Fingerprinting traffico SSH |
| JA4TCP | JA4T | Fingerprinting client TCP |
| JA4TCPServer | JA4TS | Fingerprinting risposta server TCP |
| [JA4TCPScan](https://github.com/FoxIO-LLC/ja4tscan) | [JA4TScan](https://github.com/FoxIO-LLC/ja4tscan) | [Scanner attivo di fingerprint TCP](https://github.com/FoxIO-LLC/ja4tscan) |
| JA4DHCP | JA4D | Fingerprinting DHCP |
| JA4DHCPv6 | JA4D6 | Fingerprinting DHCPv6 |
| JA4NTP | JA4N | Fingerprinting NTP |
| JA4Scan-TLS | JA4Scan-TLS | Scanner attivo di fingerprint server TLS |
| JA4Scan-QUIC | JA4Scan-QUIC | Scanner attivo di fingerprint server QUIC |
Il nome completo o il nome breve possono essere usati in modo intercambiabile. Ulteriori metodi JA4+ sono in lavorazione...
Per capire come leggere le impronte digitali JA4+, vedi [Dettagli tecnici](https://github.com/foxio-llc/ja4/blob/main/technical_details/README.md)
## Implementazioni
Questo repository include JA4+ in
- [Python](https://github.com/foxio-llc/ja4/blob/main/python/README.md)
- [Rust](https://github.com/foxio-llc/ja4/blob/main/rust/README.md)
- [C, come plugin Wireshark](https://github.com/foxio-llc/ja4/blob/main/wireshark/README.md).
- [Zeek](https://github.com/foxio-llc/ja4/blob/main/zeek/README.md)
## Strumenti che supportano JA4+
| Strumento/Fornitore | Supporto JA4+ |
|-------------|--------------|
| [Wireshark](https://github.com/FoxIO-LLC/ja4/tree/main/wireshark) | JA4+ |
| [Zeek](https://github.com/FoxIO-LLC/ja4/tree/main/zeek) | JA4+ |
| [Arkime](https://arkime.com/) | JA4+ (il nostro strumento open source JA4+ consigliato) |
| [Suricata](https://docs.suricata.io/en/latest/rules/ja-keywords.html#ja4-hash) | JA4+ (in sviluppo) |
| [GreyNoise](https://www.greynoise.io/) | JA4+ |
| [Hunt](https://hunt.io/) | JA4+ |
| [Driftnet](https://driftnet.io/) | JA4+ |
| [GoLang (1)](https://github.com/driftnet-io/go-ja4x) | JA4X |
| [GoLang (2)](https://github.com/exaring/ja4plus) | JA4 |
| [nzyme](https://www.nzyme.org/) | JA4+ (in sviluppo) |
| [Netresec's CapLoader](https://www.netresec.com/?page=Blog&month=2023-11&post=CapLoader-1-9-6-Released) | JA4+ (in sviluppo) |
| [Netresec's NetworkMiner](https://www.netresec.com/?page=NetworkMiner) | JA4+ (in sviluppo) |
| [NGINX](https://github.com/FoxIO-LLC/ja4-nginx-module) | JA4+ |
| [F5 BIG-IP](https://github.com/f5devcentral/f5-ja4) | JA4+ |
| [nfdump](https://github.com/phaag/nfdump) | JA4+ |
| [ntop's ntopng](https://github.com/ntop/ntopng) | JA4+ |
| [ntop's nDPI](https://github.com/ntop/nDPI) | JA4 |
| [Team Cymru](https://www.team-cymru.com/) | JA4+ |
| [NetQuest](https://netquestcorp.com/) | JA4+ |
| [Censys](https://censys.com/) | JA4+ |
| [Exploit.org's Netryx](https://github.com/OWASP/www-project-netryx) | JA4 e JA4H |
| [Cloudflare](https://developers.cloudflare.com/bots/concepts/ja3-ja4-fingerprint/) | JA4 |
| [Fastly](https://www.fastly.com/documentation/reference/vcl/variables/client-connection/tls-client-ja4/) | JA4+ (richiedilo) |
| [MISP](https://www.misp-project.org/) | JA4+ |
| [OCSF](https://schema.ocsf.io/1.3.0-dev/objects/ja4_fingerprint?extensions=) | JA4+ |
| [Vercel](https://vercel.com/docs/security/tls-fingerprints) | JA4 |
| [Seika](https://seika.io/) | JA4+ |
| [VirusTotal](https://www.virustotal.com/) | JA4 |
| [AWS Cloudfront](https://aws.amazon.com/about-aws/whats-new/2024/10/amazon-cloudfront-ja4-fingerprinting/) | JA4 |
| [ELLIO](https://ellio.tech/) | JA4+ |
| [Webscout](https://webscout.io/) | JA4+ |
| [Rama](https://github.com/plabayo/rama) | JA4 e JA4H |
| [Vectra](https://www.vectra.ai/) | JA4+ |
| [AWS WAF](https://aws.amazon.com/about-aws/whats-new/2025/03/aws-waf-ja4-fingerprinting-aggregation-ja3-ja4-fingerprints-rate-based-rules/) | JA4 |
| [Tacticly](https://tactic.ly/) | JA4+ |
| [Palo Alto Networks](https://www.paloaltonetworks.com/) | JA4+ |
| [ngrok](https://ngrok.com/docs/traffic-policy/variables/connection/#conntlsja4_fingerprint) | JA4 |
| [Vertex Synapse](https://vertex.link/) | JA4 e JA4S |
| [Google Cloud Armor](https://cloud.google.com/armor/docs/rules-language-reference#allow_or_deny_traffic_based_on_a_known_ja4_fingerprint) | JA4 |
| [Fortinet](https://docs.fortinet.com/document/fortindr-cloud/25.2.c/user-guide/393114/event-fields#SSL) | JA4 |
| [AppOmni](https://appomni.com/) | JA4+ |
| [IntelliGenesis](https://intelligenesisllc.com/) | JA4+ |
| [HAProxy](https://www.haproxy.org/) | [JA4](https://github.com/O-X-L/haproxy-ja4-fingerprint) e [JA4H](https://github.com/O-X-L/haproxy-ja4h-fingerprint) plugin di [OXL](https://www.o-x-l.com/) |
| [SentinelOne](https://www.sentinelone.com/) | JA4 |
| [Akamai](https://techdocs.akamai.com/application-security/reference/get-ja4-fingerprint-settings) | JA4 |
| [Alibaba Cloud](https://www.alibabacloud.com/help/en/anti-ddos/anti-ddos-pro-and-premium/user-guide/fields-included-in-full-logs) | JA4 |
| [Huawei Cloud](https://support.huaweicloud.com/intl/en-us/usermanual-waf/waf_01_3157.html) | JA4 |
| [Google Cloud LBs](https://cloud.google.com/release-notes#July_28_2025) | JA4 |
| [eSentire](https://www.esentire.com/) | JA4+ |
| [Microsoft Azure Front Door CDN](https://learn.microsoft.com/en-us/azure/frontdoor/front-door-http-headers-protocol) | JA4 |
| [Synapse](https://github.com/gen0sec/synapse) di [Gen0Sec](https://gen0sec.com) | JA4X |
| [Zscaler](https://www.zscaler.com/blogs/product-insights/zscaler-endpoint-context-endpoint-cloud-visibility-and-enforcement-secops) | JA4 |
| [ExtraHop](https://www.extrahop.com/) | JA4+ |
| [Validin](https://www.validin.com/) | JA4+ |
| [Auth0](https://auth0.com/changelog#40upcFBPuFxKG7nacgSlQc) | JA4 |
| [Security Onion](https://blog.securityonion.net/2026/03/security-onion-300-now-available-with.html) | JA4+ |
| [bunny.net](https://docs.bunny.net/cdn/security/ja4-fingerprinting) | JA4 |
| [ENEA](https://www.enea.com/) | JA4+ |
| [F5 Distributed Cloud Services](https://www.f5.com/products/distributed-cloud-services) | JA4+ |
con altri in arrivo...
## Esempi
| Applicazione |Impronte digitali JA4+ |
|----|----|
| Chrome | ```JA4=t13d1517h2_8daaf6152771_cb7bf5808d99``` (TCP) <br/> ```JA4=q13d0312h3_55b375c5d22e_178839b6cec1``` (QUIC) |
| Dropper malware IcedID | ```JA4H=ge11cn020000_9ed1ff1f7b03_cd8dafe26982``` |
| Malware IcedID | ```JA4=t13d201100_2b729b4bf6f3_9e7b989ebec8``` <br/> ```JA4S=t120300_c030_5e2616a54c73``` |
| Malware Sliver | ```JA4=t13d190900_9dc949149365_97f8aa674fd9``` <br/> ```JA4S=t130200_1301_a56c5b993250``` <br/> ```JA4X=000000000000_4f24da86fad6_bf0f0589fc03``` <br/> ```JA4X=000000000000_7c32fa18c13e_bf0f0589fc03``` |
| Cobalt Strike | ```JA4H=ge11cn060000_4e59edc1297a_4da5efaf0cbd``` <br/> ```JA4X=2166164053c1_2166164053c1_30d204a01551``` |
| SoftEther VPN | ```JA4=t13d880900_fcb5b95cb75a_b0d3b4ac2a14``` (client) <br/> ```JA4S=t130200_1302_a56c5b993250``` <br/> ```JA4X=d55f458d5a6c_d55f458d5a6c_0fc8c171b6ae``` |
| Qakbot | ```JA4X=2bab15409345_af684594efb4_000000000000``` |
| Pikabot | ```JA4X=1a59268f55e5_1a59268f55e5_795797892f9c``` |
| Darkgate | ```JA4H=po10nn060000_cdb958d032b0``` |
| LummaC2 | ```JA4H=po11nn050000_d253db9d024b``` |
| Evilginx | ```JA4=t13d191000_9dc949149365_e7c285222651``` |
| Reverse SSH Shell | ```JA4SSH=c76s76_c71s59_c0s70``` |
| Windows 11 | ```JA4T=64240_2-1-3-1-1-4_1460_8``` |
| Stampante Epson | ```JA4TScan=28960_2-4-8-1-3_1460_3_1-4-8-16``` |
| Windows 11 | ```JA4D=disco0000in_61-12-60-55_1-3-6-15-31-33-43-44-46-47-119-121-249-252``` |
| Ricevitore Sony | ```JA4D6=solct0010nn_8-1-3-6_24-23``` |
Per più esempi, vedi [ja4plus-mapping.csv](https://github.com/foxio-llc/ja4/blob/main/ja4plus-mapping.csv)
Per un database completo, vedi [ja4db.com](https://ja4db.com/)
## Plugin
[Wireshark](https://github.com/FoxIO-LLC/ja4/tree/main/wireshark)
[Zeek](https://github.com/FoxIO-LLC/ja4/tree/main/zeek)
[Arkime](https://arkime.com/settings#ja4plus)
## Binari
I binari JA4 sono compilati dall'[implementazione Rust](https://github.com/foxio-llc/ja4/blob/main/rust/README.md) della suite. Per garantire la piena funzionalità, è richiesto `tshark` (versione 4.0.6 o successiva). Scarica gli ultimi binari JA4 dalla pagina [Releases](https://github.com/FoxIO-LLC/ja4/releases). Le versioni di rilascio per l'implementazione Rust seguono il [Versionamento Semantico](https://semver.org/) e sono contrassegnate come `vX.Y.Z`, a differenza dei rilasci del plugin Wireshark.
### Asset di rilascio
Gli asset di rilascio sono denominati in base al componente e alla piattaforma:
- **Rust:**
- `ja4-vX.Y.Z-<architettura>-<piattaforma>.tar.gz` (es., `ja4-v0.18.5-x86_64-unknown-linux-musl.tar.gz`)
- **Python:**
- `ja4-python-vX.Y.Z.tar.gz` (contiene l'intera directory `python/`)
- **Wireshark:**
- `ja4.so.linux`, `ja4.so.macos`, `ja4.dll` (allegati a un rilascio denominato come `wireshark-vX.Y.Z`)
Scegli il file appropriato per il tuo sistema e componente.
### Installazione di tshark
#### Linux
Installalo usando il tuo gestore di pacchetti (il nome del pacchetto `tshark` o `wireshark-cli` dipende dalla distribuzione). Ad esempio, su Ubuntu:```sh
sudo apt install tshark
```
#### macOS
1. [Scarica](https://www.wireshark.org/download.html) e installa Wireshark (include `tshark`).
2. Aggiungi `tshark` al tuo `PATH`: ```sh
sudo ln -s /Applications/Wireshark.app/Contents/MacOS/tshark /usr/local/bin/tshark
```
#### Windows
1. [Scarica](https://www.wireshark.org/download.html) e installa Wireshark (include `tshark.exe`).
2. Individua `tshark.exe` (di solito in `C:\Program Files\Wireshark\tshark.exe`).
3. Aggiungi la cartella che contiene `tshark.exe` al `PATH` di sistema:
- Apri **Proprietà del sistema** > **Variabili d'ambiente** > **Modifica Path**.
### Esecuzione di JA4+
Una volta disponibili `tshark` e i binari JA4+, esegui JA4+ usando il seguente comando:
- Su Linux e macOS: ```sh
./ja4 [options] [pcap]
```
- Su Windows, apri il **Prompt dei comandi** ed esegui: ```cmd
ja4 [options] [pcap]
```
Per maggiori dettagli sull'esecuzione di JA4+ e sulle sue configurazioni avanzate, fare riferimento al [README dell'implementazione Rust](https://github.com/foxio-llc/ja4/blob/main/rust/README.md), che fornisce informazioni sulle sue funzionalità, scenari d'uso e opzioni di personalizzazione.
## Database
Il database ufficiale JA4+ delle impronte digitali, delle applicazioni associate e della logica di rilevamento consigliata è disponibile qui: [ja4db.com](https://ja4db.com/)
Questo database è in fase di sviluppo molto attivo. Nei prossimi mesi ci si aspettano ordini di grandezza in più di combinazioni di impronte digitali e dati.
È disponibile anche un esempio di [ja4plus-mapping.csv](https://github.com/foxio-llc/ja4/blob/main/ja4plus-mapping.csv) per una rapida consultazione.
## Processo di rilascio
JA4+ utilizza GitHub Actions per automatizzare i rilasci dei suoi componenti Rust, Python, Wireshark e Zeek. I rilasci vengono creati inviando un tag con un prefisso specifico al repository, ad eccezione di Zeek, che utilizza un tag di versione semantica (semver) pura. Gli asset di rilascio sono denominati come segue:
- **Rust:** `ja4-vX.Y.Z-<architettura>-<piattaforma>.tar.gz`
- **Python:** `ja4-python-vX.Y.Z.tar.gz`
- **Wireshark:** `ja4.so.linux`, `ja4.so.macos`, `ja4.dll` (in un rilascio denominato come `wireshark-vX.Y.Z`)
Sono disponibili i seguenti workflow:
- **Rilascio Rust:**
Inviare un tag che inizia con `rust-`, ad es., `rust-v0.18.5`, per attivare un rilascio dei binari Rust. Il workflow compilerà e caricherà automaticamente gli asset di rilascio.
- **Rilascio Python:**
Inviare un tag che inizia con `python-`, ad es., `python-v0.1.0`, per attivare un rilascio dell'implementazione Python. Il workflow creerà un archivio della directory `python/` e lo pubblicherà come asset di rilascio.
- **Rilascio Plugin Wireshark:**
Inviare un tag che inizia con `wireshark-`, ad es., `wireshark-v0.1.1`, per attivare un rilascio dei binari del plugin Wireshark per tutte le piattaforme supportate.
- **Rilascio Zeek:**
Inviare un tag che sia una versione semantica pura (ad es., `v1.2.3`), senza prefisso, per attivare un rilascio Zeek. Questo creerà automaticamente un rilascio su [packages.zeek.org](https://packages.zeek.org/).
### Come creare un rilascio
1. Assicurarsi che le modifiche siano state unite nel ramo `main`.
2. Creare e inviare un tag per il componente che si desidera rilasciare:
- Per Rust, Python o Wireshark, utilizzare il prefisso appropriato (ad es., `rust-v0.18.5`, `python-v0.1.0`, `wireshark-v0.1.1`).
- Per Zeek, utilizzare un tag semver puro (ad es., `v1.2.3`).
Esempio: ```sh
git tag v1.2.3
git push origin v1.2.3
```
(Per Zeek)
Oppure, per Rust: ```sh
git tag rust-v0.18.5
git push origin rust-v0.18.5
```
3. Il workflow GitHub Actions corrispondente verrà eseguito e pubblicherà automaticamente gli asset della release. Per Zeek, la release apparirà su [packages.zeek.org](https://packages.zeek.org/).
## Dettagli su JA4+
JA4+ è un insieme di fingerprint di rete semplici ma potenti per più protocolli, sia leggibili dall'uomo che dalla macchina, che facilita un miglior threat-hunting e un'analisi di sicurezza più efficace. Se non hai familiarità con il fingerprinting di rete, ti incoraggio a leggere i miei blog sulla pubblicazione di JA3 [qui](https://medium.com/salesforce-engineering/tls-fingerprinting-with-ja3-and-ja3s-247362855967), JARM [qui](https://medium.com/salesforce-engineering/easily-identify-malicious-servers-on-the-internet-with-jarm-e095edac525a), e questo eccellente blog di Fastly sullo [Stato del Fingerprinting TLS](https://www.fastly.com/blog/the-state-of-tls-fingerprinting-whats-working-what-isnt-and-whats-next) che delinea la storia dei suddetti insieme ai loro problemi. JA4+ offre un supporto dedicato, mantenendo i metodi aggiornati man mano che il settore evolve.
Tutti i fingerprint JA4+ hanno un formato a_b_c, che delimita le diverse sezioni che compongono il fingerprint. Ciò consente di effettuare ricerche e rilevamenti utilizzando solo ab o ac o solo c. Se si volesse fare un'analisi solo sui cookie in ingresso nella propria applicazione, si guarderebbe solo a JA4H_c. Questo nuovo formato che preserva la località facilita un'analisi più profonda e ricca, rimanendo al contempo semplice, facile da usare e consentendo l'estensibilità.
Ad esempio, GreyNoise è un ascoltatore internet che identifica gli scanner internet e sta implementando JA4+ nel proprio prodotto. Hanno un attore che scansiona internet con un singolo cipher TLS in continua evoluzione. Questo genera una quantità enorme di fingerprint JA3 completamente diversi, ma con JA4, solo la parte b del fingerprint JA4 cambia, mentre le parti a e c rimangono le stesse. Pertanto, GreyNoise può tracciare l'attore guardando il fingerprint JA4_ac (unendo a+c, eliminando b).
Per un elenco dei metodi JA4+ e delle loro descrizioni, vedi [Metodi attuali e dettagli di implementazione](#current-methods-and-implementation-details).
Per capire come leggere i fingerprint JA4+, vedi [Dettagli tecnici](https://github.com/foxio-llc/ja4/blob/main/technical_details/README.md).
## Licenza
*JA4: TLS Client Fingerprinting* è [open-source, BSD 3-Clause](https://github.com/foxio-llc/ja4/blob/main/LICENSE-JA4), come JA3. FoxIO non ha rivendicazioni di brevetto e non prevede di perseguire una copertura brevettuale per JA4 TLS Client Fingerprinting. Ciò consente a qualsiasi azienda o strumento che attualmente utilizza JA3 di passare immediatamente a JA4 senza ritardi.
**JA4S, JA4L, JA4LS, JA4L-Delta, JA4H, JA4X, JA4SSH, JA4T, JA4TS, JA4TScan, JA4D, JA4D6, JA4Scan-TLS, JA4Scan-QUIC, JA4N e tutte le future aggiunte (collettivamente denominate JA4+)** sono in attesa di brevetto e concessi in licenza sotto la [FoxIO License 1.1](https://github.com/foxio-llc/ja4/blob/main/LICENSE). Questa licenza è permissiva per la maggior parte dei casi d'uso, inclusi scopi accademici e interni aziendali, ma non è permissiva per la monetizzazione. Se, ad esempio, un'azienda volesse utilizzare JA4+ internamente per contribuire a proteggere la propria azienda, ciò è consentito. Se, ad esempio, un fornitore volesse vendere il fingerprinting JA4+ come parte della propria offerta di prodotti, dovrebbe richiederci una licenza OEM.
JA4+ è un marchio di FoxIO
JA4+ può essere ed è implementato in strumenti open source, vedi le [FAQ sulla licenza](https://github.com/foxio-llc/ja4/blob/main/License%20FAQ.md) per i dettagli.
Questa licenza ci consente di fornire JA4+ al mondo in modo aperto e immediatamente utilizzabile, ma ci fornisce anche un modo per finanziare il supporto continuo, la ricerca su nuovi metodi e lo sviluppo del Database JA4+. Vogliamo che tutti abbiano la possibilità di utilizzare JA4+ e siamo felici di collaborare con fornitori e progetti open source per contribuire a realizzare questo obiettivo.
## Domande e risposte
D: Perché ordinate i cipher? L'ordine non ha importanza?
R: Sì, ma nella nostra ricerca abbiamo scoperto che le applicazioni e le librerie scelgono un elenco di cipher unico più che un ordinamento unico. Questo riduce anche l'efficacia del "cipher stunting", una tattica di randomizzazione dell'ordine dei cipher per prevenire il rilevamento JA3.
D: Perché ordinate le estensioni?
R: All'inizio del 2023, Google ha [aggiornato i browser Chromium](https://chromestatus.com/feature/5124606246518784) per randomizzare l'ordine delle loro estensioni. Proprio come il cipher stunting, questa era una tattica per prevenire il rilevamento JA3 e "rendere l'ecosistema TLS più robusto ai cambiamenti". Google temeva che gli implementatori di server assumessero che il fingerprint di Chrome non sarebbe mai cambiato e finissero per costruire logica attorno ad esso, il che avrebbe causato problemi ogni volta che Google avesse aggiornato Chrome.
Quindi voglio essere chiaro: i fingerprint JA4 cambieranno man mano che le librerie TLS delle applicazioni vengono aggiornate, circa una volta all'anno. Non dare per scontato che i fingerprint rimangano costanti in un ambiente in cui le applicazioni vengono aggiornate. In ogni caso, l'ordinamento delle estensioni aggira questo problema e l'aggiunta degli Algorithmi di Firma preserva l'unicità.
D: TLS 1.3 non rende più difficile il fingerprinting dei client TLS?
R: No, lo rende più facile! Dal TLS 1.3, i client hanno un insieme molto più ampio di estensioni e anche se TLS 1.3 supporta solo pochi cipher, i browser e le applicazioni ne supportano ancora molti di più.
## JA4+ è stato creato da
[John Althouse](https://www.linkedin.com/in/johnalthouse/), con feedback di:
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
E ingegneri che lavorano presso GreyNoise, Hunt, Google, ExtraHop, F5, Driftnet e altri.
Contatta John Althouse all'indirizzo [email protected] per licenze e domande.
<sub>JA4 e JA4+ sono marchi di FoxIO, Inc.
Copyright (c) 2026, FoxIO</sup>