Τα cookies τα σβήνουμε, τα trackers τα μπλοκάρουμε, κι όμως ένα site μπορεί να μας αναγνωρίσει ξανά χωρίς να αποθηκεύσει τίποτα στη συσκευή μας. Αυτό είναι το fingerprinting: ο συνδυασμός δεκάδων χαρακτηριστικών του browser και του συστήματος σε ένα αναγνωριστικό που μένει σταθερό από επίσκεψη σε επίσκεψη. Παρακάτω θα δούμε τι ακριβώς διαρρέει, γιατί οι “έξυπνες” ρυθμίσεις συχνά κάνουν τα πράγματα χειρότερα, και ποια στρατηγική ταιριάζει σε ποιο threat model.
Η λογική της εντροπίας
Κάθε χαρακτηριστικό προσθέτει bits πληροφορίας. Με περίπου 33 bits εντροπίας μπορεί θεωρητικά να ξεχωρίσει κάθε άνθρωπος στη Γη (2^33 ≈ 8,6 δισεκατομμύρια). Ένα μεμονωμένο χαρακτηριστικό, όπως η ζώνη ώρας, δίνει λίγα bits. Ο συνδυασμός τους όμως αθροίζεται γρήγορα, και αυτό εκμεταλλεύεται ο tracker.
Τι διαρρέει
-
Canvas και WebGL: η ίδια εικόνα σχεδιάζεται ελαφρώς διαφορετικά ανάλογα με GPU, driver και fonts. Το hash του αποτελέσματος είναι εξαιρετικά σταθερό.
-
AudioContext: η επεξεργασία ενός ηχητικού σήματος παράγει μικροδιαφορές ανά σύστημα.
-
Fonts: η λίστα των εγκατεστημένων γραμματοσειρών μετριέται έμμεσα, από τις διαστάσεις του κειμένου.
-
Οθόνη και παράθυρο: ανάλυση, devicePixelRatio, μέγεθος του viewport. Ένα παράθυρο με «περίεργο» μέγεθος είναι από μόνο του αναγνωριστικό.
-
Client Hints και User-Agent: μοντέλο, έκδοση, αρχιτεκτονική, όταν ο server τα ζητήσει.
-
Ζώνη ώρας, γλώσσες, locale: ειδικά οι μη συνηθισμένοι συνδυασμοί.
-
WebRTC: μπορεί να αποκαλύψει τοπικές ή και δημόσιες διευθύνσεις IP, ακόμη και πίσω από VPN, αν δεν είναι ρυθμισμένο σωστά.
-
Δίκτυο: το TLS handshake (JA3/JA4) και οι ρυθμίσεις του HTTP/2 αποκαλύπτουν την οικογένεια και την έκδοση του browser, πριν καν φορτώσει η σελίδα.
Σημαντικό: το VPN κρύβει τη διεύθυνση IP, όχι το fingerprint. Ένας μοναδικός browser παραμένει μοναδικός, όποια IP κι αν έχει.
Τρεις στρατηγικές, και γιατί δεν συνδυάζονται
-
Ομοιομορφία: όλοι οι χρήστες μοιάζουν ίδιοι. Είναι η προσέγγιση του Tor Browser και του Mullvad Browser, και του resistFingerprinting του Firefox. Δουλεύει μόνο αν δεν την «προσωποποιήσετε».
-
Τυχαιότητα: οι τιμές αλλάζουν ανά site ή ανά session, ώστε το fingerprint να μη μένει σταθερό. Είναι η προσέγγιση του Brave («farbling»).
-
Μπλοκάρισμα: απενεργοποίηση APIs όπως το WebGL ή το WebRTC. Μειώνει την επιφάνεια, αλλά η ίδια η απουσία ενός API είναι επίσης χαρακτηριστικό.
Το κλασικό λάθος είναι να ανακατεύετε στρατηγικές: ένας Firefox με resistFingerprinting και δέκα επεκτάσεις που αλλάζουν τιμές γίνεται πιο μοναδικός από έναν απλό Firefox. Κάθε επέκταση, κάθε αλλαγμένη ρύθμιση, κάθε μη στρογγυλό μέγεθος παραθύρου βγάζει τον browser από το «πλήθος».
Μια ρύθμιση για τον Firefox
Για όσους θέλουν ομοιομορφία στον καθημερινό τους Firefox, ένα user.js στον φάκελο του προφίλ (ή οι ίδιες ρυθμίσεις στο about:config):
// Ομοιομορφία: ζώνη ώρας UTC, γενικός User-Agent, στρογγυλεμένες τιμές οθόνης
user_pref(“privacy.resistFingerprinting”, true);
// Το περιεχόμενο εμφανίζεται σε «κουτιά» τυποποιημένου μεγέθους
user_pref(“privacy.resistFingerprinting.letterboxing”, true);
// Χωρίς WebRTC: τέλος οι διαρροές IP (σπάει τις βιντεοκλήσεις στον browser)
user_pref(“media.peerconnection.enabled”, false);
// Πρώτο κόμμα απομόνωση: cookies και cache χωριστά ανά site
user_pref(“privacy.firstparty.isolate”, true);
Τρεις παρατηρήσεις: το resistFingerprinting αλλάζει και τη ζώνη ώρας σε UTC, οπότε οι ώρες στα sites θα φαίνονται «λάθος». Το first-party isolation είναι αυστηρότερο από τη νεότερη Total Cookie Protection, που ήδη απομονώνει τα cookies ανά site, και μπορεί να σπάσει κάποια logins. Και για ένα ολοκληρωμένο, συντηρούμενο σετ ρυθμίσεων, το arkenfox user.js είναι το σημείο αναφοράς: διαβάστε τα σχόλιά του πριν το εφαρμόσετε.
Μετρήστε, μην υποθέτετε
-
Cover Your Tracks (EFF): δείχνει πόσα bits εντροπίας δίνει κάθε χαρακτηριστικό, σε σύγκριση με τους υπόλοιπους επισκέπτες του.
-
CreepJS: πιο επιθετικό, εντοπίζει και ασυνέπειες, για παράδειγμα όταν μια επέκταση «ψεύδεται» με τρόπο που προδίδει την ύπαρξή της.
Μετρήστε πριν και μετά από κάθε αλλαγή. Αν μια ρύθμιση αυξάνει την εντροπία, δεν σας προστατεύει.
Ποια στρατηγική για ποιον
-
Ανωνυμία απέναντι σε ισχυρό αντίπαλο: Tor Browser, χωρίς αλλαγές, χωρίς επεκτάσεις.
-
Καθημερινή ιδιωτικότητα χωρίς Tor: Mullvad Browser, ή Firefox με resistFingerprinting, με προσοχή στις επεκτάσεις.
-
Ευκολία με λογική προστασία: Brave με τις προεπιλογές του.
-
Διαχωρισμός ταυτοτήτων: ξεχωριστά προφίλ ή browsers για διαφορετικούς ρόλους, π.χ. ένα για λογαριασμούς με το πραγματικό σας όνομα και ένα για όλα τα άλλα.
Για συζήτηση
-
Ποια στρατηγική χρησιμοποιείτε, και τι σας έδειξαν οι μετρήσεις στο Cover Your Tracks ή στο CreepJS;
-
Πόσο σας ενοχλούν στην πράξη οι συμβιβασμοί του resistFingerprinting (ζώνη ώρας, letterboxing, CAPTCHAs);
-
Έχει νόημα το fingerprinting σε επίπεδο δικτύου (JA4) για τον μέσο χρήστη, ή μόνο για όποιον αντιμετωπίζει στοχευμένη παρακολούθηση;