Un gruppu di circadori di l'Università Tecnica di Graz (Austria), cunnisciutu prima per u sviluppu di metudi d'attaccu , и , L'infurmazione nantu à una nova tecnica d'analisi di u canali di terzu chì permette di determinà a versione esatta di u navigatore, u sistema operatore utilizatu, l'architettura CPU è l'usu di add-ons per cumbatte l'identificazione oculta.
Per determinà questi paràmetri, hè abbastanza per eseguisce codice JavaScript preparatu da i circadori in u navigatore. In a pratica, u metudu pò esse usatu micca solu com'è una fonte addiziale per l'identificazione indiretta di l'utilizatore, ma ancu per determinà i paràmetri di l'ambienti di u sistema per l'usu miratu di sfruttamenti, tenendu in contu u SO, l'architettura è u navigatore. U metudu hè ancu efficace quandu utilizate navigatori chì implementanu meccanismi di bloccamentu d'identificazione oculati, cum'è Tor Browser. Prototipu di codice fonte cù implementazione di u metudu sottu a licenza MIT.
A determinazione hè fatta nantu à a basa di identificà i mudelli di u statu di pruprietà in JavaScript chì sò caratteristiche di diversi navigatori è e caratteristiche di u tempu d'esekzione di l'operazioni, secondu e caratteristiche di u JIT, CPU è i meccanismi di assignazione di memoria. A definizione di pruprietà hè fatta generendu una lista di tutti l'uggetti accessibili da JavaScript. Cum'è s'hè risultatu, u numeru di l'uggetti direttamente correlate cù u mutore di u navigatore è a so versione.
funzione getProperties(o) {
var result = [];
mentri (o !== null) {
result = result.concat(Reflect.ownKeys(o));
o = Object.getPrototypeOf(o);
}
riturnà u risultatu;
}
Per esempiu, per Firefox, a ducumentazione dichjara u supportu per 2247 pruprietà, mentre chì u numeru reale di pruprietà definite, cumprese quelle senza documentazione, hè 15709 (in Tor Browser - 15639), per Chrome, 2698 pruprietà sò dichjarate, mentre chì 13570 sò in realtà offerte (in Chrome per Android — 13119). U numeru è i valori di e pruprietà varianu da versione di navigatore à versione di navigatore è quandu si utilizanu diversi sistemi operativi.
I valori è a presenza di certe proprietà ponu esse aduprati per determinà u tipu di sistema operativu. Per esempiu, in Kubuntu A pruprietà window.innerWidth hè impostata à 1000, è in Windows 10 - in 1001. In Windows A pruprietà window.navigator.activeVRDisplays hè dispunibile, è in Linux ùn hè micca quì. Perchè Android Parechje chjamate specifiche sò furnite, ma manca window.SharedWorker. Per identificà u sistema operativu, hè ancu suggeritu d'analizà i parametri WebGL, u statu di i quali dipende da i driver. Inoltre, chjamà WEBGL_debug_renderer_infoextension furnisce informazioni nantu à u mutore di rendering OpenGL, chì hè diversu per ogni sistema operativu.
Per determinà u CPU, hè aduprata una valutazione di e differenze in u tempu d'esekzione di diversi blocchi di codice tipici, u processu di quale dipende di l'architettura di u set di struzzioni, tenendu in contu u cumpurtamentu JIT (hè determinatu quanti registri CPU seranu utilizati). è in quali casi JIT genererà codice efficiente cù ottimisazioni è l'usu di struzzioni estesi, è quandu micca). Per determinà u tipu di sistema d'allocazione di memoria è u sistema operatore, a diffarenza in u tempu di assignazione di memoria per diverse strutture hè ancu misurata, chì pò esse usata per ghjudicà a dimensione di blocchi di memoria.
I paràmetri determinati durante l'esecuzione di u script sò paragunati cù i valori di riferimentu tipici per l'ambienti testati prima. Durante a prova, a tecnica sviluppata hà permessu di identificà accuratamente 40 ambienti di prova differenti, identificendu e versioni di i navigatori utilizati, u fabricatore di CPU, u sistema operatore utilizatu, è u fattu chì era in esecuzione nantu à hardware reale o in una macchina virtuale.
Separatamente, hè nutatu chì hè pussibule di definisce add-ons di navigatore è ancu paràmetri add-on individuali, cumpresi add-ons pensati per bluccà i metudi d'identificazione nascosti o l'attività di modu di navigazione privata. In u cuntestu di u metudu prupostu, tali aghjunte diventanu una altra fonte di dati per l'identificazione. L'addizioni sò determinate da evaluendu e distorsioni di i paràmetri di l'ambiente originale introduttu da l'aghjunghje.
Altri metudi di identificazione includenu piglià in contu tali dati indiretti cum'è , lista di tipi MIME supportati, paràmetri specifichi in headers ( и ), analisi di stallati , dispunibilità di certe API Web, specifiche à e carte video rendering cù WebGL è , cù CSS, analisi di funziunalità di travaglià cù и .
Source: opennet.ru
