ब्राउज़र फ़िंगरप्रिंटिंग: साइटें असल में क्या पढ़ती हैं

वेबसाइट द्वारा इकट्ठा किए जाने वाले मानों का फ़ील्ड-दर-फ़ील्ड दौरा, कैनवास और WebGL से लेकर ऑडियो, फ़ॉन्ट, स्क्रीन और टाइमज़ोन तक, और यह कि एकरूप पहचान रैंडम पहचान से बेहतर क्यों है।
ब्राउज़र फ़िंगरप्रिंटिंग किसी ब्राउज़र को इस आधार पर पहचानने की प्रथा है कि वह कौन से मान बताता है, न कि इस आधार पर कि उसने क्या सहेजा है। कुकी की ज़रूरत नहीं। ब्राउज़र बस वही सवाल जवाब देता है जो कोई भी वेब पेज पूछ सकता है, और जवाब मिलकर इतने विशिष्ट होते हैं कि दोबारा पहचाने जा सकें।
जो मान इकट्ठा किए जाते हैं
ज़्यादातर फ़िंगरप्रिंटिंग स्क्रिप्ट कुछ गिनी-चुनी एक ही सतहों से पढ़ती हैं।
स्पष्ट वाले
- यूज़र एजेंट में ब्राउज़र का नाम, वर्शन और प्लेटफ़ॉर्म होता है, और वह हर रिक्वेस्ट के साथ जाता है।
- स्क्रीन चौड़ाई, ऊँचाई, कलर डेप्थ, पिक्सेल रेशियो और उपलब्ध कार्य क्षेत्र बताती है।
- भाषा और टाइमज़ोन में ब्राउज़र जो लोकेल बताता है और जो ऑफ़सेट वह निकालता है, वे आते हैं।
- हार्डवेयर संकेत प्रोसेसरों की बताई गई संख्या देते हैं और, कुछ ब्राउज़रों पर, मेमोरी का एक अनुमानित आँकड़ा।
रेंडरिंग वाले
जब लोग फ़िंगरप्रिंटिंग कहते हैं तो इन्हीं मानों की बात करते हैं, क्योंकि ये अप्रत्यक्ष हैं। पेज ब्राउज़र से कुछ बनवाता है और फिर ठीक वही पढ़ लेता है जो बना।
- कैनवास के काम में टेक्स्ट और आकृतियाँ ऑफ़-स्क्रीन कैनवास पर रेंडर करके उनका हैश निकाला जाता है। नतीजा ग्राफ़िक्स स्टैक, फ़ॉन्ट और एंटी-एलियासिंग के साथ बदलता है।
- WebGL ग्राफ़िक्स अडैप्टर की वेंडर और रेंडरर स्ट्रिंग के साथ रेंडर किए गए दृश्य का हैश भी बताता है।
- ऑडियो एक ऑसिलेटर को ऑडियो प्रोसेसिंग ग्राफ़ से गुज़ारता है और आउटपुट का हैश निकालता है। फ़्लोटिंग-पॉइंट व्यवहार स्टैकों के बीच थोड़ा अलग होता है।
- फ़ॉन्ट पहचान उम्मीदवार फ़ॉन्टों में टेक्स्ट को नापती है और जिन नापों में फ़र्क आता है उनसे अनुमान लगाती है कि कौन से इंस्टॉल हैं।
नेटवर्क वाले
- वह पता जिससे रिक्वेस्ट आती है, और उसके बारे में जियोलोकेशन डेटाबेस क्या कहता है।
- WebRTC, जो ऐसे पते उजागर कर सकता है जो कनेक्शन अन्यथा न करता।
- TLS और HTTP हैंडशेक फ़ील्ड का क्रम और सामग्री, जो क्लाइंट के अनुसार बदलती है।
हर फ़ील्ड को रैंडम करना गलत सहज बोध क्यों है
सहज बचाव यह है कि हर विज़िट पर सब कुछ बदल दिया जाए। यह उल्टा पड़ता है, दो कारणों से।
पहला विरोधाभास है। रैंडम किए गए फ़ील्ड एक-दूसरे के बारे में नहीं जानते। Windows का दावा करने वाला यूज़र एजेंट ऐसी WebGL रेंडरर स्ट्रिंग के बगल में, जो सिर्फ़ Apple हार्डवेयर पर आती है, किसी भी एक मान से कहीं मज़बूत संकेत है। असली मशीनें भीतर से एकरूप होती हैं; सिर्फ़ बनावटी मशीनें खुद से असहमत होती हैं।
दूसरा अस्थिरता है। जो अकाउंट हर विज़िट पर अलग डिवाइस बताता है, वह ऐसी चीज़ का वर्णन कर रहा है जो किसी असली व्यक्ति के पास नहीं है। समय के साथ एकरूपता ही आम उपयोगकर्ता की पहचान है।
प्रोफ़ाइल की पहचान क्या ढकती है
| सतह | कैसे संभाला जाता है |
|---|---|
| यूज़र एजेंट और प्लेटफ़ॉर्म | साथ-साथ बनाए जाते हैं, ताकि बताया गया प्लेटफ़ॉर्म आसपास के मानों से मेल खाए |
| स्क्रीन और पिक्सेल रेशियो | प्रति प्रोफ़ाइल तय, उन आकारों में से चुने जो असली डिस्प्ले सचमुच बताते हैं |
| टाइमज़ोन और लोकेल | प्रति प्रोफ़ाइल सेट, और उसके इस्तेमाल किए नेटवर्क रास्ते से मिलाए गए |
| कैनवास, WebGL और ऑडियो | प्रति प्रोफ़ाइल स्थिर ट्रीटमेंट, हर बार खुलने पर एक जैसा |
| फ़ॉन्ट | प्रोफ़ाइल जिस प्लेटफ़ॉर्म का दावा करता है उससे मेल खाता प्रति प्रोफ़ाइल सेट |
| WebRTC | सीमित, ताकि वह प्रोफ़ाइल के नेटवर्क रास्ते का खंडन न करे |
अपना काम जाँचना
प्रोफ़ाइल खोलें और फ़िंगरप्रिंटिंग टेस्ट पेज पर जाएँ। कई पेज जो मान पढ़ते हैं उन्हें मुफ़्त प्रकाशित करते हैं। जाँचने लायक दो बातें वे नहीं हैं जिनकी आप उम्मीद करें:
- क्या मान आपस में मेल खाते हैं? प्लेटफ़ॉर्म, फ़ॉन्ट, ग्राफ़िक्स स्ट्रिंग और टाइमज़ोन को एक विश्वसनीय मशीन का वर्णन करना चाहिए।
- क्या वे पिछली बार जैसे ही हैं? प्रोफ़ाइल बंद करें, फिर खोलें, टेस्ट दोबारा लोड करें। जिस प्रोफ़ाइल के मान खुलने के बीच हिलते हैं वह स्थिर नहीं है, और स्थिरता ही वह गुण है जो मायने रखता है।
टेस्ट पेज पर दुर्लभता का स्कोर वहाँ सबसे कम काम का आँकड़ा है। वह आपको उस पेज के विज़िटरों के मुकाबले नापता है, जो भारी संख्या में एंटीडिटेक्ट ब्राउज़र टेस्ट करने वाले लोग होते हैं।


