Skip to content

Come posso nascondere il sistema operativo che sto utilizzando dai siti Internet?

Ti suggeriamo di esaminare questa soluzione in un ambiente controllato prima di spostarla in produzione, saluti.

Soluzione:

Al momento non è possibile nascondere il tipo di sistema operativo da un sito web.

Una soluzione contro il fingerprinting generale e l'ottenimento di informazioni più specifiche sul sistema è quella di utilizzare Tor Browser con il cursore di sicurezza impostato su alto (per disabilitare JavaScript). È stato progettato per resistere alle impronte digitali, cercando di apparire identico a tutte le altre istanze del browser. Fornisce resistenza in diversi modi:

  • A differenza di una connessione normale o di una VPN, Tor espone lo stack di rete del nodo di uscita, non del proprio computer, per cui non è necessario utilizzare firewall avanzati per la manipolazione delle opzioni TCP o modificare il codice di rete di basso livello nel sistema operativo.

  • Con JavaScript disabilitato, i comportamenti specifici del sistema come le librerie matematiche ad alta risoluzione (alcune funzioni di trigonometria danno risultati unici per ogni sistema operativo) e le funzioni di formattazione dei dati (che formattano i dati in modo specifico per il sistema operativo).

  • L'interprete è standardizzato. Non c'è modo di sapere quale sia il sistema sottostante solo dall'interprete stesso. Cambiare l'interprete a caso fa sì che ci si distingua come una delle poche persone che lo fanno, quindi è preferibile usarne uno standard.

  • La dimensione predefinita della finestra è standardizzata, quindi le funzioni CSS e JS che ottengono la dimensione della finestra non possono indovinare il sistema operativo in base a elementi come la dimensione della barra delle applicazioni.

Tuttavia, il compito di impedire la conoscenza del tipo generale di sistema operativo è attualmente impossibile, anche su Tor Browser. Viene fornito un elenco di font whitelistati per prevenire lo sfruttamento del rendering dei font o il fingerprinting dei font, ma la whitelist è diversa per Linux, OSX e Windows a causa della necessità di utilizzare i font di sistema. Attualmente non c'è modo di aggirare questo problema. Finché non si troverà un modo per fornire i font di sistema senza rivelare il tipo di sistema operativo in uso, non si avrà alcun blocco.

Si noti inoltre che il Panopticlick dell'EFF ha il solo scopo di sensibilizzare l'opinione pubblica sul problema delle impronte digitali. È estremamente estremamente limitato nella ricerca delle firme e non analizza un campione rappresentativo. Si consiglia invece di esaminare https://amiunique.org/, che è stato progettato a partire dalle ricerche più approfondite sull'impronta digitale dei browser.

Come funziona il fingerprinting in generale?

Sebbene non sia possibile nascondere la classe generale del sistema operativo che si sta utilizzando, si può fare in modo di confondersi con il cosiddetto "set di anonimato". Un elenco di modi in cui è possibile eseguire il fingerprinting di un browser, con alcune note, nel caso sia utile:

  • Fingerprinting dello stack TCP/IP - Il protocollo TCP fornisce alcune estensioni extra che ne modificano il comportamento, come la dimensione della finestra (non correlata alla dimensione della finestra del browser), la dimensione massima del segmento (MSS), il time-to-live (TTL) e altre. Il protocollo è inoltre arricchito dall'opzione nop, che non fa altro che assicurare che le dimensioni delle opzioni siano coerenti. Diverse classi di sistemi operativi utilizzano valori diversi. Linux, per esempio, imposta il TTL a 64, mentre Windows utilizza 255. Inoltre, l'ordine di queste opzioni e il punto in cui vengono inseriti i nop differiscono da un sistema operativo all'altro.

  • Impostazioni generiche esposte dal browser - Alcuni elementi come l'ordine delle intestazioni e le intestazioni stesse possono identificare in modo univoco un browser. Questo include elementi come il locale del sistema, lo stato DNT, lo stato dei cookie, ecc. Questo è effettivamente tutto ciò che Panopticlick di EFF cerca, e per di più un piccolo sottoinsieme.

  • Fingerprinting WebGL - Quando sono abilitati alcuni tipi di accelerazione hardware, il browser ottiene un accesso di basso livello alla GPU. Dicendo alla GPU di generare determinate forme 3D con proprietà grafiche speciali (texture, luce, trasparenza, ecc.), applicandovi varie trasformazioni e quindi eseguendo l'hashing della pixmap risultante, è possibile identificare le peculiarità di una GPU specifica. Questo permette di identificare un browser indipendentemente dal sistema operativo con cui viene eseguito.

  • Fingerprinting dell'audiocontesto - Simile al fingerprinting di WebGL, si può dire al browser di generare un audio a onde triangolari, comprimerlo, aumentare il guadagno e creare un hash del buffer audio risultante. Questo hash sarà unico per il sistema in uso, indipendentemente dall'avvio. Non è necessario che l'audio venga effettivamente riprodotto perché questo funzioni.

  • Fingerprinting del fuso orario - Il fuso orario del sistema impostato nelle variabili ambientali è disponibile tramite JavaScript.

  • Fingerprinting della libreria matematica* - Quando si utilizzano alcune funzioni di trigonometria, come il calcolo del seno del valore 10, viene richiamata la libreria matematica del sistema, che differisce per ogni sistema operativo. Probabilmente sarà la stessa tra le varie classi di sistemi operativi.

  • Canvas fingerprinting** - Generando un elemento canvas visuale e sottoponendolo a hashing, è possibile ottenere risultati unici per il browser in uso.

  • Fingerprinting delle dimensioni della finestra** - Gli elementi CSS @media possono essere utilizzati per caricare selettivamente le risorse in base alle dimensioni (spesso uniche) della finestra del browser. Un sito web può creare un gran numero di risorse e vedere quali sono quelle caricate dal browser per determinare la dimensione della finestra.

  • Fingerprinting dell'elenco dei font - L'elenco dei font è spesso piuttosto unico e differisce tra i diversi sistemi operativi. Come già detto, non esiste un modo pratico per evitarlo. Mantenere un elenco di font di sistema inseriti nella lista bianca riduce l'accuratezza del fingerprinting alla classe generale del sistema operativo in uso.

  • Fingerprinting del formato della data* - Se si chiama Date().toLocaleFormat() nel browser, la stringa di output dipende dal sistema operativo in uso. L'output su Linux, OSX e Windows 7 è rispettivamente "Thu 26 Mar 2015 03:43:35 PM EDT", "Thu Mar 26 15:38:55 2015" e "Thursday, March 26, 2015 3:45:01 PM".

  • Fingerprinting dei core virtuali* - La funzione JavaScript hardwareConcurrency può essere utilizzata per generare automaticamente un certo numero di thread per ottenere prestazioni. Iniziando con uno e aumentandolo gradualmente, mentre si dà al browser un carico di lavoro pesante per la CPU, il numero di core virtuali può essere indovinato in base al punto in cui più thread non migliorano più le prestazioni.

* Tor Browser attenua questi problemi solo se JavaScript è disabilitato.

** Tor Browser attenua questi problemi con l'aiuto dell'utente, che deve quindi seguire le sue raccomandazioni.

Quindi, ci sono diverse informazioni che trapelano quando si richiede un sito web (dall'agente utente, alla porta di origine della connessione TCP, al TTL dei pacchetti TCP.

Alcuni buoni passi nella giusta direzione sono:

  • Modificare la stringa dell'agente utente che viene inviata con ogni richiesta del browser,
  • disabilitare JavaScript e altri linguaggi di script,
  • utilizzare un browser multipiattaforma,
  • utilizzare uno stack TCP che non consenta di identificare il sistema operativo.

Mentre l'ultimo punto è difficile da realizzare senza cambiare il sistema operativo, gli altri riducono "solo" l'usabilità.

L'impatto maggiore potrebbe essere causato dalla modifica della stringa dell'user-agent, perché spesso viene registrata dai server web, ma anche la disabilitazione dei linguaggi di scripting avrà un grande impatto.

Come sottolineato nei commenti, nascondere il sistema operativo non significa ottenere la privacy; è vero il contrario. Sebbene un server proxy possa risolvere la maggior parte di questo problema, non esiste un buon modo per ottenere la privacy senza perdere un sacco di comodità. I cookie e i JavaScript rendono facile l'identificazione dell'utente e la loro disattivazione rende il web un luogo piuttosto inutile.

L'EFF (Electronic Freedom Frontier) ha prodotto per diversi anni una pagina "quanto è unica la mia configurazione web", https://panopticlick.eff.org.

Potete vedere quanto siete unici. I risultati saranno piuttosto preoccupanti, sospetto.

Un server Web di solito cerca di capire quale sistema operativo si sta utilizzando utilizzando un impronta digitale del browser.

Può utilizzare del codice Javascript che sfrutta problemi noti, ad esempio, con Windows 7 e l'html, o con Mac e altre chiamate html.

Il server Web potrebbe anche utilizzare un cookie che identifica l'utente da una sessione precedente, oppure potrebbe tentare di indovinare l'intervallo IP (anche se sembra un po' improbabile, dato che il NAT per i client è molto più diffuso).

Questo problema esiste da almeno 3 anni e ci sono state diverse segnalazioni che suggeriscono che alcuni siti web commerciali fanno questo per alterare i prezzi.

Si veda https://www.cnet.com/news/mac-users-pay-more-than-pc-users-says-orbitz/

Si evince che agli utenti Mac viene addebitato un costo maggiore (circa 30 dollari) rispetto agli utenti Windows; immagino che il costo dell'hardware Mac indichi un maggiore reddito disponibile.

Infine, se si vuole scaricare e confondere i server Web, il meraviglioso wget vi permetterà di falsificare la vostra connessione.

Per saperne di più, consultare http://www.danielmayor.com/how-to-fake-a-browser-connection-with-wget



Utilizzate il nostro motore di ricerca

Ricerca
Generic filters

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.