Meta-Conclusione (2026-07-08)
Dopo un'analisi completa del fingerprinting del browser, esaminando FingerprintJS (44 vettori), BrowserLeaks (15+ strumenti), EFF Cover Your Tracks, fingerprint a livello di rete (TCP, TLS, HTTP/2, QUIC) e vettori a livello hardware, le seguenti conclusioni informano il design di Obscura.
Riepilogo Inventario Vettori
| Categoria | Vettori Totali | Controllabili dal Proxy | Parziali | Incontrollabili |
|---|---|---|---|---|
| Rete e Protocollo | 13 | 3 | 6 | 4 |
| HTTP e Header | 12 | 11 | 1 | 0 |
| API JavaScript / DOM | 44 | 29 | 13 | 2 |
| Funzionalità Browser | ~100+ | 0 | ~10 | ~90+ |
| Sistema e Hardware | 15 | 6 | 4 | 5 |
| Comportamentale | 8 | 1 | 4 | 3 |
| Totale Distinto | ~60+ unici | ~50 | ~38 | ~100+ |
Copertura realistica: Il proxy controlla ~55% della superficie di fingerprint. Il restante ~45% è hardware, comportamentale o funzionalità intrinseche del browser.
Valutazione dell'Impatto per Livello
Livello 1: Rete e Protocollo: ALTO IMPATTO, Controllabile
| Vettore | Controllabile | Priorità per Obscura | Metodo |
|---|---|---|---|
| Fingerprint TLS (JA3/JA4) | Sì | Critica | utls (Go) / Rust TLS personalizzato |
| Fingerprint HTTP/2 | Parziale | Alta | Controllo frame SETTINGS personalizzato |
| Header HTTP (12 vettori) | Sì | Alta | Riscrittura header al proxy |
| DNS | Sì | Alta | Resolver locale + blocklist |
| WebRTC IP leak | Sì | Alta | Iniezione JS per bloccare RTCPeerConnection |
| Stack TCP/IP | No | Bassa | Stack del container ereditato |
| QUIC/HTTP/3 | Blocca | Media | Blocca UDP 443 |
| Attacchi di temporizzazione | Parziale | Bassa | Arrotonda performance.now() |
Livello 2: API JavaScript: IMPATTO MEDIO, Parzialmente Controllabile
29 vettori completamente falsificabili tramite iniezione JS:
navigator.userAgent,platform,language,languagesnavigator.hardwareConcurrency,deviceMemoryscreen.width,height,colorDepth,pixelDepth,availTop/Leftnavigator.cookieEnabled,webdriverIntl.DateTimeFormatfuso orarionavigator.vendor,vendorFlavorsnavigator.architecture,pdfViewerEnabled- Apple Pay, Private Click Measurement
- Media query (prefers-reduced-motion, color-gamut, ecc.)
localStorage,sessionStorage,indexedDB,openDatabase
13 vettori parzialmente falsificabili:
- Canvas: l'iniezione di rumore è rilevabile
- WebGL: può bloccare
debug_renderer_info, non il rendering - Audio: può appiattire l'output, la variazione hardware rimane
- Font: può arrotondare le misurazioni, non eliminare l'enumerazione
- Plugin: può sovrascrivere, ma limitato
- DOM blockers: rilevabile
2 vettori non falsificabili:
- Fingerprint matematico FPU: comportamento hardware in virgola mobile
- Latenza base audio: stack audio hardware
Livello 3: Funzionalità Browser: BASSO IMPATTO, Incontrollabile
~100+ test di supporto funzionalità (WebGL, WebGPU, WebUSB, Service Workers, ecc.) sono inerenti al browser. Non possono essere modificati a livello di proxy.
Mitigazione: Il blocco DNS dei domini di fingerprinting noti impedisce il caricamento di molti script di rilevamento funzionalità.
Livello 4: Hardware e Sistema: BASSO IMPATTO, Incontrollabile
Modello GPU, funzionalità CPU, hardware audio, layout tastiera, font installati: queste sono proprietà del sistema locale che il proxy non può modificare.
Livello 5: Comportamentale: FUORI SCOPO
Movimenti del mouse, dinamiche di battitura, pattern di scroll, durata sessione: la biometria comportamentale è al di fuori del controllo di qualsiasi proxy.
Risultati Chiave
1. Lo Spoofing del Fingerprint TLS è Non Negoziabile
Se Obscura termina TLS (richiesto per MITM), il server vede lo stack TLS del proxy. Senza spoofing, la destinazione rileva immediatamente che un proxy è in uso. Questa è la funzionalità singolarmente più critica.
2. La Coerenza Interna è Obbligatoria
Ogni segnale deve corrispondere allo stesso profilo:
Profilo: "Chrome 120 / Windows 11"
User-Agent: Chrome 120 su Win11
Sec-CH-UA-Platform: "Windows"
JA3: Chrome 120 Win11
HTTP/2 SETTINGS: valori di Chrome
fuso orario: corrisponde alla locale Win11
schermo: risoluzione tipica Win11
platform: "Win32"
L'incoerenza è di per sé un fingerprint.
3. Il Blocco DNS ha il Miglior Rapporto Costo-Beneficio
Bloccare fingerprintjs.com, *.metrics.*, e i domini di tracciamento impedisce del tutto il caricamento degli script di fingerprinting. Questa è la protezione più semplice ed efficace.
4. Canvas/WebGL/WebGPU sono i Problemi Difficili
Questi vengono renderizzati sull'hardware locale. Il proxy può:
- Bloccare le API di informazioni di debug (modello GPU nascosto)
- Iniettare rumore nell'output canvas (rilevabile dal confronto)
- Non controllare il rendering effettivo dei pixel
Tor Browser risolve a questo rendendo tutti gli utenti identici (rompe completamente WebGL). Obscura non può eguagliarlo a livello di rete.
5. QUIC/HTTP/3 Deve Essere Bloccato
QUIC è crittografato end-to-end. Se consentito, il traffico bypassa completamente il proxy. Blocca UDP 443.
6. WebRTC Deve Essere Bloccato
WebRTC bypassa il proxy tramite STUN. Blocca tramite override di RTCPeerConnection con iniezione JS.
Principi di Design
Coerenza sopra completezza: Un insieme più piccolo di segnali perfettamente coerenti batte una protezione ampia ma incoerente.
Blocca piuttosto che falsificare: Se un vettore non può essere falsificato in modo affidabile (canvas, audio), bloccalo invece di perdere dati parziali. Bloccare è rilevabile ma perde meno informazioni.
Difesa in profondità: Blocco DNS (impedisce il caricamento degli script) + spoofing header (livello HTTP) + spoofing TLS (livello trasporto) + iniezione JS (livello API browser): ogni livello aggiunge protezione.
Chiudi in caso di fallimento: Quando incerto, blocca. Dai sempre la priorità alla prevenzione della perdita di privacy rispetto alla funzionalità.
Aggiornamenti regolari del profilo: I browser rilasciano nuove versioni mensilmente, cambiando i fingerprint. I profili devono essere aggiornati o Obscura diventa rilevabile.
Diversità dei profili: Profili diversi per contesti diversi (lavoro, personale, simile a incognito) previene la correlazione tra contesti.
Ambito per Obscura v1
[MVP]
Spoofing header HTTP (tutti gli header, 12 vettori)
Spoofing fingerprint TLS (JA3/JA4 tramite utls)
Blocco DNS (gestione blocklist)
Blocco WebRTC (iniezione JS)
Spoofing API Navigator (29 vettori JS)
Blocco QUIC (drop UDP 443)
3-5 profili identità (Chrome, Firefox, Safari)
Interfaccia Web (TS + CSS, gestione profili)
[Post-MVP]
Iniezione rumore Canvas (best effort)
Blocco WebGL debug_info (parziale)
Blocco AudioContext (parziale)
Spoofing fingerprint HTTP/2 (SETTINGS personalizzati)
Editor profili personalizzato (funzionalità UI)
Statistiche traffico (dashboard)
Riduzione enumerazione font (arrotondamento misurazioni)
Valutazione Finale
| Aspetto | Verdetto |
|---|---|
| Fattibilità | Realizzabile come miglioramento significativo della privacy |
| Definitività | Non definitivo: nessuno strumento può esserlo |
| Unicità | Unico: nessuno strumento esistente a livello di rete offre anti-fingerprinting multi-livello |
| Copertura Vettori | ~55% controllabile, ~45% fuori ambito |
| Manutenzione | Medio-Alta: i profili TLS/HTTP necessitano aggiornamenti |
| Impatto sulle Prestazioni | Basso-Medio: il MITM aggiunge latenza |
| Esperienza Utente | Alta: trasparente per i dispositivi finali |
| Distribuzione | Semplice: container Docker, configurazione una tantum |
Parola Finale
Obscura vale la pena di essere costruito come livello pratico di privacy che aumenta significativamente il costo del fingerprinting, non come un proiettile d'argento. Il suo valore unico è la protezione multi-livello su tutta la rete senza configurazione per dispositivo: qualcosa che nessuno strumento esistente fornisce.
"La privacy perfetta è impossibile. La privacy significativa no."