Înapoi la blog

Verifică expunerea amprentei browserului: șase teste de coerență

Paginile de testare a amprentei afișează multe date pe care site-urile le pot citi oricum. Aceste șase verificări ajută la găsirea contradicțiilor dintre browser, sistem, regiune, rețea și randare, deoarece semnalele neconcordante ies adesea mai mult în evidență decât o singură valoare neobișnuită.

Deschide orice pagină de testare a amprentei browserului și vei vedea o listă lungă de câmpuri: UA, ecran, fus orar, fonturi, rezultate de randare Canvas și parametri hardware. Mulți se uită mai întâi la „unicitate”, dar acesta este, de fapt, cel mai puțin important aspect. Mai important este dacă toate aceste date sunt coerente între ele.

浏览器指纹暴露自查:六项核对与自洽判断的关键步骤与判断维度示意图

Ce pot citi site-urile în mod normal

O amprentă nu este stocată ca un cookie. Cookie-urile pot fi șterse, blocate sau ocolite prin navigare privată; amprenta provine din configurația browserului și a dispozitivului. UA conține tipul și versiunea browserului, plus sistemul de operare și versiunea acestuia. Se adaugă pluginurile instalate, rezoluția și adâncimea de culoare a ecranului, lista de fonturi, fusul orar și limba preferată, tipul CPU, modelul GPU și memoria, adresa IP, furnizorul și tipul conexiunii, precum și rezultatele de randare returnate de interfețe HTML5 precum Canvas și WebGL. Împreună, aceste câmpuri formează un identificator care, în general, se schimbă foarte puțin când schimbi IP-ul, ștergi cookie-urile sau folosești modul privat. Platformele folosesc același principiu de bază pentru a evalua dacă mai multe conturi pot fi asociate.

Compară mai întâi trei elemente cu sistemul

User Agent este cel mai bun punct de plecare, deoarece acesta este modul în care browserul se descrie. Copiază UA de pe pagina de test, verifică versiunea browserului în setările acestuia și versiunea sistemului de operare în setările sistemului. Dacă sistemul sau versiunea kernelului declarate de UA nu corespund mașinii reale ori sunt în mod evident în urma versiunilor curente folosite pe scară largă, aceasta este una dintre cele mai ușor de observat neconcordanțe.

Fusul orar ar trebui să corespundă regiunii ieșirii de rețea. Paginile de test afișează de obicei direct fusul curent, iar un script simplu de citire a fusului va returna aceeași valoare. Folosește și o pagină de verificare IP pentru a vedea regiunea atribuită IP-ului de ieșire. Dacă cele două indică regiuni diferite, neconcordanța trebuie corectată.

Limba și regiunea sunt semnale slabe separat, dar utile împreună. Verifică lista returnată de navigator.language și navigator.languages și compar-o cu limbile folosite în mod obișnuit în regiunea ieșirii. Un fus orar din SUA, limba chineză și o ieșire în Europa ies mai mult în evidență împreună decât fiecare element separat.

Ecran, ieșire de rețea și caracteristici de randare

Pentru parametrii ecranului și ai hardware-ului, verifică două lucruri: cât de obișnuite sunt valorile și dacă se potrivesc cu tipul de dispozitiv declarat de UA. Rezoluția, raportul de pixeli, suprafața disponibilă, numărul de nuclee CPU și memoria pot fi analizate împreună. O rezoluție de dimensiunea unui telefon asociată cu un UA de desktop este o contradicție tipică.

WebRTC trebuie verificat separat, deoarece poate dezvălui informații reale despre rețea. Paginile de test îi rezervă de obicei o secțiune separată. Verifică dacă apare o adresă locală a dispozitivului, de exemplu una care începe cu 192.168 sau 10, ori chiar adresa publică reală de ieșire. Dacă un proxy este activ, dar adresa reală tot apare, acel trafic nu trece prin proxy. Acest punct are prioritatea cea mai mare.

Pentru Canvas și WebGL, verifică dacă rezultatele sunt stabile și dacă se potrivesc cu modelul GPU declarat. Un detaliu este important: dacă mai multe medii deschise în paralel pe aceeași mașină returnează exact aceleași valori de randare, ele pot fi asociate mai ușor decât atunci când valorile conțin puțină variație sau zgomot.

Contradicțiile ies mai mult în evidență decât lipsa de realism

Platformele nu cer ca fiecare dispozitiv să fie complet unic. Ele încearcă să stabilească dacă întregul set de informații pare să provină de la o mașină normală. O singură valoare mai puțin „realistă”, cum ar fi o rezoluție rară, este de obicei doar un semnal slab. Când mai multe câmpuri se contrazic, neconcordanța devine mult mai ușor de observat. UA spune Windows, dar lista de fonturi pare de macOS; fusul este în SUA, limba este chineză, iar ieșirea în Europa; rezoluția este de telefon, dar UA indică un browser desktop. Oricare dintre aceste combinații poate anula multe ajustări fine făcute în alte părți. De aceea, la o autoevaluare trebuie căutate mai întâi contradicțiile clare și abia apoi rafinate detaliile parametrilor.

Dacă vrei să corectezi doar trei lucruri

Scurgerile WebRTC sunt pe primul loc, deoarece expun informații reale de rețea. În al doilea rând, fusul orar și limba trebuie să fie coerente cu regiunea ieșirii, deoarece astfel de neconcordanțe se pot acumula ușor într-un profil neobișnuit. În al treilea rând vine gestionarea Canvas și WebGL, pentru a evita expunerea directă a unei valori de randare stabile și unice de pe aceeași mașină.

Există și o limită practică: dezactivarea sau restricționarea JavaScript poate bloca o parte din colectare, dar reduce vizibil funcționalitatea multor site-uri. Browserele axate pe confidențialitate includ unele protecții și sunt adesea suficiente pentru navigarea de zi cu zi, dar sunt mai puțin flexibile când trebuie menținute pe termen lung mai multe identități fără legătură între ele.

Cum menții mai multe medii

Scopul nu este să generezi de fiecare dată o amprentă complet aleatorie. Fiecare mediu ar trebui să rămână stabil intern și, în același timp, diferit de celelalte. Cu PurpleMark, creează câte un mediu de browser separat pentru fiecare cont, gestionează individual parametri precum Canvas și apoi folosește o pagină de test pentru a verifica coerența fiecărui mediu. Un mediu care trece această verificare este potrivit pentru utilizare pe termen lung.

În final, testarea amprentei are doar două scopuri: să vezi ce informații expui și să confirmi că ele sunt coerente între ele. Unicitatea este aspectul pentru care merită să-ți faci cele mai puține griji.