Ce semnale supraviețuiesc actualizărilor de browser? O analiză a stabilității
Am analizat stabilitatea semnalelor pe parcursul a 50 de actualizări Chrome, Firefox și Safari. Iată cele mai stabile și cele mai instabile semnale de fingerprinting.
Actualizările de browser sunt dușmanul natural al fingerprintingului de dispozitiv. La fiecare 4-6 săptămâni, Chrome, Firefox și Safari lansează versiuni noi care pot modifica valorile semnalelor — schimbând șirurile user-agent, modificând comportamentul de randare, adăugând sau eliminând API-uri. Așa cum se menționează în Ghidul W3C privind fingerprintingul, browserele lucrează activ pentru a limita suprafața care poate fi folosită la fingerprinting. Pentru sistemele de fingerprinting care tratează toate semnalele în mod egal, fiecare actualizare reprezintă o potențială ruptură de identitate pentru milioane de vizitatori.
Am realizat o analiză cuprinzătoare a stabilității pe parcursul a 50 de actualizări de browser pentru a răspunde la întrebarea fundamentală: pe ce semnale te poți baza și care te vor trăda?
Metodologie
Am instrumentat 200 de dispozitive fizice pe 5 sisteme de operare (Windows 10, Windows 11, macOS Ventura, macOS Sonoma, Ubuntu 22.04) și 3 browsere (Chrome, Firefox, Safari). Fiecare dispozitiv a rulat colectarea automată a semnalelor zilnic timp de 14 luni, acoperind 50 de actualizări majore de versiune de browser: 24 de lansări Chrome, 16 lansări Firefox și 10 lansări Safari.
Pentru fiecare semnal am urmărit: cât de des se schimba valoarea, dacă schimbarea se corela cu o actualizare de browser sau cu un factor extern (actualizare de driver, patch de sistem de operare) și amploarea schimbării (înlocuirea completă a valorii vs. variație minoră).
Nivelurile de stabilitate
Nivelul 1: Extrem de solid (stabilitate 99,5%+)
Aceste semnale se schimbau doar când se modifica hardware-ul fizic sau când erau actualizate driverele — niciodată doar din cauza actualizărilor de browser.
Hardware Concurrency (navigator.hardwareConcurrency): 99,97% stabil. S-a schimbat doar pe 1 dispozitiv care a avut o actualizare BIOS ce afecta hyperthreadingul. Device Memory (navigator.deviceMemory): 99,98% stabil. Un dispozitiv a fost trecut de la 8GB la 16GB în timpul studiului. Rezoluția ecranului și adâncimea de culoare: 99,92% stabil. Schimbările s-au corelat cu înlocuiri de monitor și evenimente legate de stații de andocare. WebGL Max Texture Size: 99,99% stabil. Zero schimbări legate de browser. S-a schimbat o singură dată pe un dispozitiv care a primit o actualizare de driver NVIDIA. Rata de eșantionare audio: 100% stabil. Zero schimbări pe toate cele 200 de dispozitive și 50 de actualizări. Acesta este cel mai stabil semnal pe care îl urmărim.
Nivelul 2: Preponderent stabil (95-99,5%)
Aceste semnale se schimbă ocazional odată cu actualizările de browser, dar rămân stabile pe parcursul majorității lansărilor.
Amprenta Canvas 2D: 97,8% stabil. Schimbările au apărut în Chrome 118 (actualizare a motorului de randare a fonturilor), Chrome 122 (schimbare de anti-aliasing la nivel de sub-pixel) și Firefox 121 (actualizare a modelării textului). Fiecare schimbare a afectat simultan toate dispozitivele de pe acel browser — un tipar detectabil pe care îl gestionăm prin potrivire conștientă de versiunea browserului. Șirul WebGL Renderer: 98,1% stabil. Chrome reformatează ocazional șirul wrapper ANGLE. Informațiile GPU subiacente rămân neschimbate, dar reprezentarea sub formă de șir se modifică. Extragem modelul GPU din șir în loc să hashuim direct șirul. Lista de fonturi: 96,4% stabil. Actualizările de sistem de operare adaugă sau elimină ocazional fonturi de sistem. Actualizările de browser afectează rareori enumerarea fonturilor, dar Chrome 120 a schimbat ordinea în care sunt raportate fonturile, ceea ce a spart fingerprintingul de fonturi bazat pe hash. Folosim comparație bazată pe seturi (similaritate de seturi) în loc de hashing ordonat.
Nivelul 3: Stabilitate moderată (80-95%)
Aceste semnale se schimbă cu o frecvență notabilă, dar tot oferă valoare utilă de identificare între schimbări.
Pluginuri instalate: 89,2% stabil. Reducerea continuă a matricei de pluginuri de către Chrome (navigator.plugins) a eliminat complet vizibilitatea pluginurilor în unele contexte. Firefox a menținut enumerarea pluginurilor. Safari a restrâns-o la un set standard. Detectarea funcțiilor CSS: 91,7% stabil. La fiecare lansare de browser sunt adăugate funcții CSS noi, ceea ce schimbă setul de funcții detectate de sondarea noastră CSS. Ponderăm funcțiile noi mai puțin decât pe cele consacrate pentru a reduce impactul. Suport pentru touch: 93,1% stabil. Browserele desktop își schimbă ocazional suportul touch raportat atunci când Chrome își ajustează detectarea de emulare a dispozitivelor.
Nivelul 4: Volatil (<80%)
Aceste semnale se schimbă frecvent și nu ar trebui niciodată să fie ancore principale de identificare.
Șirul User Agent: 42,3% stabil. Inițiativa de reducere a User-Agent-ului din Chrome a schimbat formatul șirului de mai multe ori. Firefox actualizează numărul de versiune la fiecare lansare. Safari modifică regulat șirul de versiune WebKit. Acesta era coloana vertebrală a sistemelor simple de fingerprinting — acele sisteme sunt acum sparte. Tipul de conexiune (navigator.connection): 68,4% stabil. Se schimbă odată cu comutarea rețelei (WiFi la celular, rețele WiFi diferite). Battery API: 71,2% stabil. Variază în funcție de starea de încărcare și de disponibilitatea API-ului în browser. Chrome a restricționat accesul la Battery API în unele contexte. Suprafața disponibilă a ecranului: 76,8% stabil. Se schimbă odată cu vizibilitatea barei de activități, gestionarea ferestrelor și ajustările de scalare a afișajului.
Comparație între browsere
Chrome este cel mai volatil browser din punctul de vedere al stabilității fingerprintingului. Google lucrează activ pentru a reduce posibilitatea de fingerprinting, ceea ce înseamnă că actualizările Chrome sparg mai multe semnale decât actualizările Firefox sau Safari. Pe parcursul perioadei studiului nostru:
Chrome a provocat schimbări de semnal în 3,2% dintre sesiunile de colectare. Firefox a provocat schimbări de semnal în 1,8% dintre sesiunile de colectare. Safari a provocat schimbări de semnal în 1,1% dintre sesiunile de colectare.
Volatilitatea mai scăzută a Safari se datorează parțial faptului că Apple lansează mai puține versiuni pe an și parțial faptului că contramăsurile de fingerprinting ale Safari (Intelligent Tracking Prevention) operează la nivel de rețea, în loc să schimbe valorile returnate de API-uri.
Recomandări practice
Pe baza acestei analize, facem cinci recomandări pentru sistemele de fingerprinting în producție:
Nu folosi niciodată user-agent ca ancoră de identificare. Este cel mai instabil semnal distinctiv. Folosește-l doar pentru detectarea browserului și scoringul de încredere de Nivel 3.
Separă semnalele hardware de semnalele software. Semnalele hardware (GPU, ecran, audio) sunt de 40 de ori mai stabile decât semnalele software (user agent, pluginuri, funcții CSS). Ponderează-le în consecință.
Folosește comparația bazată pe seturi pentru semnalele enumerabile. Listele de fonturi, listele de pluginuri și rezultatele detectării de funcții ar trebui comparate folosind similaritatea de seturi sau metrici similare de distanță între seturi, nu hashing ordonat. Schimbările de ordine sunt frecvente; schimbările de conținut sunt rare.
Implementează potrivire conștientă de versiunea browserului. Când Chrome 118 schimbă randarea canvas pentru toți utilizatorii Chrome simultan, sistemul tău ar trebui să recunoască acest lucru ca pe o actualizare de browser, nu ca pe o ruptură de identitate în masă. Urmărește versiunile de browser și aplică toleranțe de potrivire specifice fiecărei versiuni.
Monitorizează continuu stabilitatea semnalelor. Procentele noastre de stabilitate se bazează pe date istorice. Actualizările viitoare de browser pot schimba profilul de stabilitate al oricărui semnal. Rulăm monitorizare continuă și ajustăm automat ponderile semnalelor când stabilitatea se schimbă.
Impactul asupra tracio.ai
Arhitectura noastră de identificare V3 pe mai multe niveluri reflectă direct această analiză a stabilității. Semnalele de Nivel 1 (hardware) au o pondere de 60%. Semnalele de Nivel 2 (randare, fonturi) au o pondere de 30%. Semnalele de Nivel 3 (metadate de browser, conexiune) au o pondere de 10%. Această ponderare asigură că cele mai stabile semnale conduc identificarea, în timp ce semnalele volatile contribuie la scoringul de încredere fără a provoca rupturi de identitate.
Rezultatul: 99,5% stabilitate a identificării pe 50 de actualizări de browser, față de 69% pentru sistemele care folosesc fingerprinting plat bazat pe hash. Diferența nu constă în ingeniozitatea algoritmică — este analiza empirică a semnalelor aplicată deciziilor arhitecturale.