Kako vas PRATE na internetu pomoću digitalnog otiska?
Svaki čovek ima unikatni otisak prsta, a isto tako i skoro svaki uređaj preko kojeg posećujete sajtove.
Naime, sajtovi preko veb pregledača (browser) mogu pristupiti nekim informacijama o vašem sistemu i na osnovu toga kreirati digitalni otisak. Kasnije se ti podaci prodaju agencijama za oglašavanje i oni vas prate na internetu i plasiraju reklame.
Naravno, ova metoda identifikovanja pojedinaca na internetu je i korisna jer je moguće lakše pronaći i pratiti kriminalce, ili detektovati sumnjive prijave na recimo bankovne naloge.
Kako se kreira device fingerprint?
Postoje dve metode koje se koriste, a često se koriste i zajedno. Objasniću obe na što jednostavniji način mogu.
Canvas
Da biste razumeli kako ova metoda radi prvo moram objasniti šta je hešovanje, tj. na engleskom – hashing.
Hashing
Hashing vam omogućava da pomoću određenih algoritama konvertujete neke podatke u unikatni kompresovani string.
Recimo, reč „saznajnovo“ ima MD5 hash „3f11bdee3c8ed316a1991a94c21f9a80“.
Ne deluje kompresovano? U ovom slučaju nije jer je izvorni podatak dosta mali, svega nekoliko slova. Ali vi možete hash-ovati čitavu sliku, audio fajl, poduži tekst, zip arhivu… i dobiti za rezultat jedan običan string nasumičnih znakova.
E taj string je unikatan! Ako u izvornom podatku izmenite makar jedan bit, hash se u potpunosti menja.
Dakle, iako „na oko“ dva parčeta informacija deluju identično hash će izgledati skroz drugačije.
Recimo, reč „saznajnovo “ ima hash „46f427e78caa0ee3184dde31df182c4c“. Kao što vidite jedina razlika u izvornoj informaciji je razmak na kraju ali je hash potpuno drugačiji. Kroz hash ne može ni da se nasluti da se radi o dve skoro pa identične informacije.
Druga bitna stvar je da ne možete iz hash-a izvući izvornu informaciju. Dakle, hashing radi samo u jednom smeru.
Canvas fingerprint
Cela ova priča oko hashing-a je bitna jer se ta metoda koristi za čuvanje vašeg Canvas fingerprint-a.
Moderni veb pregledači koriste HTML5 standard i uz to dolazi i Canvas element za crtanje po veb stranici.
Korisno: testirajte svoj Canvas fingerprint.
U suštini možete uz nekoliko linija koda reći veb pregledaču da nacrta nešto na ekranu, kao po platnu (otuda reč canvas).
E sad, skripte za praćenje koriste JavaScript jezik kako bi zadale instrukcije veb pregledaču da nacrta nešto po nekom nevidljivom Canvas-u na veb stranici. Isto to biste i vi radili ali u ovom slučaju skripte to same rade i vi to ne vidite.
Te skripte zadaju veb pregledaču zadatak da nacrtaju tačno određenu sliku. Na toj slici se mogu naći razni oblici, tekst, boje, linije… i svaki računar će ih isto iscrtati.
Napisao sam „isto“? Ne, samo nama će to delovati isto ali računaru neće! I ovo je ključna stvar kod kreiranja Canvas FP-a.
Naime, na oko identična slika se može razlikovati na nivou piksela u zavisnosti od nekoliko faktora kao što su sam veb pregledač, verzija veb pregledača, grafički procesor…
Te razlike u pikselima je ono što je unikatno kod svakog uređaja i upravo to skripte za praćenje koriste.
Te skripte konvertuju nacrtane slike na Canvas-u u jedan Hash string koji je unikatan, lako se prenose na udaljene servere i zauzima znatno manje mesta prilikom skladištenja od čitave slike.
Sećate se da ako se izvorna informacija promeni i najmanje hash će biti skroz drugačiji? Isto i ovde važi: ako se makar jedan piksel razlikuje na toj Canvas slici hash će biti skroz drugačiji. Ako je hash isti – sliku je nacrtao isti uređaj.
Primer u praksi: posetite online prodavnicu XYZ i taj sajt koristi skriptu neke kompanije za praćenje. Ta skripta za praćenje naredi vašem veb pregledaču da nacrta neku sliku. Kada to uradi, skripta uzima hash te slike. Vi posetite drugi sajt XYW koji koristi istu tu skriptu za praćenje i normalno skripta zada veb pregledaču da nacrta isti sliku. Pošto vaš računar crta tu sliku na svoj unikatni način hash će biti isti. I sada skripta na sajtu XYW zna da ste ranije posetili sajt XYZ jer se dva hash-a podudaraju.
Kao što vidite, ova metoda ne zahteva od korisnika ni da ima omogućene kolačiće (cookie), što se inače koristi za praćenje korisnika kroz sajtove.
Naravno, desi se da još neko u svetu ima istu grafičku karticu i browser pa se hash poklopi, ali zato se ova tehnika koristi u kombinaciji sa drugim kako bi vas još preciznije identifikovali.
Device info
Kako bi se suzio izbor korisnika skripte za praćenje koriste još informacija do kojih mogu doći veoma lako.
Naime, browser ima pristup velikom broju informacija o vašem uređaju kao što su user-agent, instalirani fontovi, jezik sistema, verzija sistema, plugini, WebGL podaci, dostupni i uključeni senzori… lista je predugačka.
Vi posetite sajt koji ima skriptu za kreiranje fingerprint-a i ona pokupi sve te informacije.
Pošto informacija ima mnogo, velika je verovatnoća da će vaš računar biti unikatan jer koja je šansa da još neko ima sve te informacije iste kao i vi?
Zapravo, istraživanje je pokazalo da svega 1 u 286.777 veb pregledača deli isti Browser fingerprint.
Na OVOM sajtu možete videti svoj fingerprint i saznati da li je unikatan. Možete kroz neko vreme opet posetiti sajt, obrisati kolačiće i cache, pa uraditi novi test. Zatim otvorite History stranicu na sajtu i vidite da li se tamo nalaze prethodni rezultati. Ako se nalaze znači da vam se fingerprint nije menjao i da vas mogu lako pratiti na internetu ovom metodom.
Kako se zaštititi?
U suštini morate se odreći dosta toga da biste sakrili svoj digitalni otisak jer biste morali da blokirate ili randomizujete sve te dodatke i API-e koje koristite za redovan surf.
Postoje razni dodaci za veb pregledače koji to sve rade umesto vas, ali pitanje je da li i oni prikupljaju informacije.
Najsigurniji i najlakši metod jeste korišćenje Tor veb pregledača. Jedina mana je što, zbog prevelike sigurnosti i privatnosti, morate čekati malo duže dok se stranice učitaju.
Drugi najbolji metod jeste Brave veb pregledač jer ima ugrađenu fingerprint zaštitu te vam toplo preporučujem da ga instalirate. Saznaj Novo blog je zvanični Brave kreator tako da ćete usput pomoći rad ovog bloga ako ga posećujete preko Brave-a.