- ब्राउज़र फिंगरप्रिंटिंग (browser fingerprinting) एक गंभीर ट्रैकिंग तकनीक है जिसे कुकी या VPN से भी रोकना मुश्किल है, और यह उपयोगकर्ता के वातावरण की जानकारी को मिलाकर एक यूनिक पहचानकर्ता बनाती है
- ऑपरेटिंग सिस्टम, ब्राउज़र वर्ज़न, भाषा, टाइमज़ोन, फ़ॉन्ट, एक्सटेंशन, canvas rendering result जैसी कई चीज़ों को मिलाकर किसी व्यक्ति की पहचान की संभावना बढ़ जाती है
- JavaScript को निष्क्रिय करना, ब्राउज़र spoofing, canvas manipulation जैसे साधारण बचाव उपाय उल्टा पहचान के संकेत छोड़ सकते हैं या वेबसाइट की कार्यक्षमता बिगाड़ सकते हैं
- Brave, Mullvad, Librewolf जैसे कुछ ब्राउज़रों में फिंगरप्रिंट प्रतिरोध फीचर बिल्ट-इन हैं, लेकिन पूरी सुरक्षा संभव नहीं है और इससे usability कम होना, CAPTCHA बढ़ना जैसी असुविधाएँ होती हैं
- GDPR जैसे मौजूदा क़ानूनों में इसके नियमन का आधार स्पष्ट नहीं है, इसलिए नए विधायी हस्तक्षेप की ज़रूरत उठती है
ब्राउज़र फिंगरप्रिंटिंग के उभरने की पृष्ठभूमि
- पहले third-party cookies प्राइवेसी के लिए मुख्य खतरा थीं
- कुकी मूल रूप से ब्राउज़र और सर्वर के बीच लगातार संवाद का साधन थीं, लेकिन ad network ने इनका इस्तेमाल कई साइटों के बीच उपयोगकर्ता जानकारी को जोड़ने के लिए किया
- यूरोप में इसके लिए कानूनी सूचना देने की अनिवार्यता लागू की गई
- जैसे-जैसे ब्राउज़रों ने कुकी अलगाव की सुविधाएँ बेहतर कीं, कुकी-आधारित ट्रैकिंग का जोखिम घटा, लेकिन फिंगरप्रिंटिंग एक नए खतरे के रूप में उभरी
ब्राउज़र फिंगरप्रिंटिंग कैसे काम करती है
- यह कुकी के बिना भी काम करती है, और VPN के इस्तेमाल पर भी कुछ हद तक पहचान की क्षमता बनी रहती है
- ब्राउज़र द्वारा सर्वर को दी जाने वाली बुनियादी जानकारी (ब्राउज़र वर्ज़न, OS, भाषा, टाइमज़ोन आदि) को मिलाकर एक यूनिक संख्यात्मक पहचानकर्ता बनाया जाता है
- JavaScript के ज़रिए फ़ॉन्ट, एक्सटेंशन, हार्डवेयर जानकारी जैसी अतिरिक्त जानकारी भी इकट्ठी की जा सकती है
- Canvas fingerprint में ब्राउज़र द्वारा टेक्स्ट ड्रॉ करते समय पिक्सेल के अंतर का उपयोग कर सिस्टम-विशेष की सूक्ष्म भिन्नताओं को पहचाना जाता है
- इसकी यूनिकनेस इतनी ज़्यादा हो सकती है कि लगभग 1,000 ब्राउज़रों में सिर्फ़ एक के पास ही वही canvas fingerprint हो
- विंडो साइज़, थीम, रिज़ॉल्यूशन जैसी छोटी सेटिंग्स भी अतिरिक्त पहचान संकेत के रूप में इस्तेमाल की जा सकती हैं
बचाव के प्रयासों की सीमाएँ
- JavaScript को निष्क्रिय करना canvas fingerprint को रोक सकता है, लेकिन “JavaScript बंद है” यह खुद एक दुर्लभ विशेषता बनकर नया fingerprinting संकेत बन जाता है
- अगर ब्राउज़र खुद को किसी दूसरे प्लेटफ़ॉर्म के रूप में spoof भी करे, तो सर्वर दूसरे संकेतों से असली वातावरण का अनुमान लगा सकता है
- canvas manipulation जैसी उन्नत छद्म तकनीकें वेबसाइट malfunction पैदा कर सकती हैं या अतिरिक्त निशान छोड़ सकती हैं
- नतीजतन, फिंगरप्रिंटिंग रोकना बेहद मुश्किल है, और ट्रैकिंग कंपनियाँ इसे लगातार अधिक परिष्कृत बना रही हैं
आंशिक उपाय और व्यावहारिक सीमाएँ
- amiunique.org जैसी टेस्ट साइटें वास्तविक ट्रैकिंग की तुलना में बहुत सरल वातावरण में काम करती हैं, इसलिए उनकी वास्तविकता से मेल कम है
- कोई fingerprint “यूनिक” हो तब भी समय के साथ बदल सकता है, इसलिए यह पूर्ण ट्रैकिंग संकेतक नहीं है
- Brave, Mullvad, Librewolf जैसे कुछ ब्राउज़र बिल्ट-इन फिंगरप्रिंट प्रतिरोध फीचर देते हैं
- Librewolf में Firefox की प्रतिरोध सुविधाएँ डिफ़ॉल्ट रूप से सक्रिय होती हैं
- Brave और Mullvad अलग-अलग तरीक़ों से इस समस्या से निपटते हैं
- लेकिन फिंगरप्रिंटिंग करने वाले भी तकनीक को लगातार उन्नत कर रहे हैं, इसलिए पूरी सुरक्षा संभव नहीं है
उपयोगकर्ता क्या कर सकते हैं
- लंबे समय तक रहने वाली कुकी हटाना और VPN का इस्तेमाल बुनियादी कदम हैं
- VPN IP उजागर होने से बचाता है, लेकिन VPN का इस्तेमाल करना भी fingerprinting का एक संकेत बन सकता है
- ब्राउज़र को डिफ़ॉल्ट अवस्था में रखें, और एक्सटेंशन, फ़ॉन्ट, थीम में बदलाव कम से कम करें
- लोकप्रिय वातावरण (Windows 11 + Chrome आदि) इस्तेमाल करने पर पहचान की संभावना कम होती है
- Mullvad, Librewolf, Firefox (फिंगरप्रिंट प्रतिरोध सक्रिय करके) जैसे बिल्ट-इन सुरक्षा फीचर का उपयोग करें
- ये सब करने पर भी ट्रैक होने की संभावना लगभग 99% से घटकर 50% तक ही आती है
फिंगरप्रिंट प्रतिरोध के दुष्प्रभाव
- Firefox या Librewolf में फिंगरप्रिंट प्रतिरोध चालू करने पर विंडो साइज़ फिक्स हो सकता है, थीम बदली नहीं जा सकती, UI पर सीमाएँ लग सकती हैं
- सर्वर ब्राउज़र को ठीक से पहचान नहीं पाता, इसलिए CAPTCHA की आवृत्ति बढ़ सकती है
- कुछ वेबसाइटों पर रंग संबंधी गड़बड़ी, टेक्स्ट की स्थिति बिगड़ना जैसी विज़ुअल समस्याएँ हो सकती हैं
कानूनी अनिश्चितता और नियमन की ज़रूरत
- GDPR में कुकी को लेकर प्रावधान हैं, लेकिन फिंगरप्रिंटिंग पर स्पष्ट नियम नहीं हैं
- यूके का ICO (Information Commissioner’s Office) फिंगरप्रिंटिंग को नकारात्मक नज़र से देखता है
- इसकी वैधता अस्पष्ट है, और सुरक्षा उद्देश्यों के लिए उचित उपयोग का तर्क भी दिया जा सकता है
- फिलहाल निष्कर्ष यही है कि नए क़ानून बनाने की ज़रूरत है
- फिंगरप्रिंटिंग ऐसी चीज़ है जिसे उपयोगकर्ता पहचान नहीं पाता, और एकत्रित डेटा का स्वभाव अल्पकालिक और सांख्यिकीय होता है,
लेकिन इसे विज्ञापन उद्योग की अति-ट्रैकिंग प्रवृत्ति को सहारा देने वाले प्रमुख साधन के रूप में देखा जाता है
निष्कर्ष
- ब्राउज़र फिंगरप्रिंटिंग एक ऐसा प्राइवेसी खतरा है जिसे तकनीकी रूप से पहचानना कठिन है और जो कानूनी रूप से भी ग्रे ज़ोन में है
- मौजूदा तकनीकी स्तर पर इससे पूरी तरह बचाव संभव नहीं है, इसलिए विधायी नियमन और ब्राउज़र-स्तरीय सुरक्षा को मज़बूत करने की ज़रूरत है
- जब तक विज्ञापन उद्योग की ट्रैकिंग प्रथाएँ जारी रहेंगी, इंटरनेट वातावरण में प्राइवेसी हनन का जोखिम बना रहेगा
1 टिप्पणियां
Hacker News राय
पहले मैंने देखा था कि Chrome में जब भी “इस भाषा का अनुवाद न करें” पर क्लिक किया जाता है, तो वह भाषा अपने-आप Accept-Language header में जुड़ जाती थी
मैंने इसे मैन्युअली सेट नहीं किया था, फिर भी Chrome उस चयन को हर request में लगातार शामिल करता रहा
लगा कि यह संयोजन मेरी अपनी अनोखी language order बना देता है, जो fingerprinting के लिए बहुत उपयोगी signal हो सकता है
इस पर एक संबंधित प्रस्ताव भी था, लेकिन उसे अपनाया नहीं गया → reduce-accept-language proposal
संबंधित लेख: HN discussion
मुझे लगता है Firefox + Arkenfox user.js का combination privacy के लिहाज़ से सबसे ताकतवर है
यह auto cookie deletion, canvas fingerprint spoofing, timezone को UTC पर फिक्स करना जैसी Tor browser-स्तर की सुरक्षा देता है
DNS स्तर पर ads·tracking domains को block करता है, और uBlock Origin या uMatrix के साथ 3rd-party content को default रूप से block करता है
Tor की तरह, इसका मतलब तभी है जब बहुत लोग एक जैसी settings इस्तेमाल करें
अगर सिर्फ आप ही ऐसा masking इस्तेमाल करते हैं, तो आप और ज़्यादा अलग दिखते हैं
ऊपर से, बहुत सारे fingerprint scripts 1st-party domain से load होते हैं, इसलिए पूरी तरह block करना मुश्किल है
संदर्भ: Orion privacy guide
privacy.resistFingerprintingflag से ज़्यादा ताकतवर हैं। लगता है बताए गए features पहले से उसी flag से enable हो जाते हैंfingerprint tracking में अक्सर identifying characteristics और tracking को गड्डमड्ड कर दिया जाता है
timezone को UTC में बदल देने से tracking असंभव नहीं हो जाती
IP, GeoIP जैसे और भी ज़्यादा ताकतवर signals मौजूद हैं
अगर परिवार के लोग एक ही IP इस्तेमाल करें लेकिन हर किसी की browser settings अलग हों, तो उल्टा tracking और आसान हो जाती है
सच में tracking से बचना हो तो VPN rotation और request header randomization दोनों साथ करने होंगे
अगर बस anonymity चाहिए, तो Tor browser इस्तेमाल करना सबसे असरदार है
अगर browser fingerprint collection के सिद्धांत को और समझना चाहते हैं, तो मेरा लिखा यह लेख देख सकते हैं
Browser Fingerprinting Explained
लेख में नहीं था, लेकिन शुरुआती fingerprint diagnostic tools में Cover Your Tracks (EFF) भी है
मैं लेख के मुख्य point से सहमत हूँ। fingerprint tracking व्यक्तिगत स्वतंत्रता के लिए बड़ा खतरा है
साथ ही, मेरा मानना है कि content creators को उचित compensation मिलना चाहिए
ad-based model efficient है, लेकिन इसकी कीमत privacy है
ज़्यादातर bloggers बड़ी कमाई नहीं करते, और पैसा सिर्फ ad companies कमाती हैं
मुझे लगता है पहले वाला free content-केंद्रित internet ज़्यादा healthy था
मुझे track करने से ad efficiency बढ़ती भी नहीं है
उल्टा वही बेकार product ads बार-बार दिखते रहते हैं
यह वैसा ही creepy experience है जैसे offline store में face recognition से personalized ads दिखाना
अगर ad cost product price में शामिल न हो, तो कुल मिलाकर चीज़ें सस्ती भी हो सकती हैं
मैं ऐसी संरचना की कल्पना करता हूँ जहाँ हर pageview पर 1 cent दिया जाए, और server load के हिसाब से price बढ़े
data classification class में खेला गया एक game याद आ गया
“इस कमरे के सभी लोगों की पहचान करने के लिए कितने yes/no questions चाहिए होंगे?”
इसी तरह browser fingerprint भी कुछ signals से लोगों को धीरे-धीरे सीमित करता है
उदाहरण के लिए “Linux + Firefox + left-side monitor” का combination ही लोगों की संख्या को पहले से ही दसियों हज़ार तक सीमित कर देता है
जैसे “लंबे बाल?” और “महिला?” लगभग एक जैसी जानकारी देते हैं, इसलिए अतिरिक्त bits लगभग नहीं मिलतीं
दूसरी तरफ “metalhead?” जैसा सवाल, जब कभी ‘हाँ’ आता है, तो बहुत जानकारी देता है
समस्या की जड़ यह है कि हमने ऐसी संरचना को default बना दिया जिसमें JavaScript दूसरी JavaScript को बुलाकर चलाती है
Stallman सही था
browser कौन-कौन सी जानकारी expose करता है, यह देखने के लिए Am I Unique? साइट उपयोगी है
fingerprint उपयोगी होने के लिए uniqueness के साथ-साथ persistence भी चाहिए
अगर हर बार fonts को random तरीके से install·delete किया जाए, तो क्या आज वाले मुझे कल वाले मुझसे जोड़ा नहीं जा सकेगा?
संदर्भ: EFF research PDF, Mullvad explanation
Chrome का
queryLocalFontsAPI permission popup मांगता हैसंबंधित comic: xkcd 1105
आजकल page load के दौरान 5ms के भीतर तय हो जाता है कि user किस persona में आता है
हालाँकि ज़्यादातर data platforms GDPR compliance बनाए रखने के लिए 90 दिनों के बाद data अपने-आप हटा देते हैं