Canvas फ़िंगरप्रिंट क्या है? वेबसाइट ब्राउज़र ड्रॉइंग से डिवाइस कैसे पहचानती है
सार बात: Canvas फ़िंगरप्रिंट एक असली ड्रॉइंग ऑपरेशन से बनता है, और उसका नतीजा GPU, सिस्टम, फ़ॉन्ट और ब्राउज़र इंजन सब मिलकर तय करते हैं; अकेले इससे पहचान नहीं होती, पर कई पैरामीटर आपस में मिलाकर जाँचे जाएँ तो यह एनवायरनमेंट की असली बनावट उजागर कर देता है। मैनेजमेंट के दो सूत्र हैं: एक ही एनवायरनमेंट की रीडिंग स्थिर रहे, और अलग-अलग एनवायरनमेंट के बीच फ़र्क साफ़ हो। आगे हम क्रम से देखेंगे: पहले सिद्धांत, फिर प्रभावित करने वाले कारक, पहचान की सीमा, जाँच, और MostMate के दो मोड की सेटिंग।
एक ही वेबसाइट, दो अलग डिवाइस पर खोलें, तो पेज की वही सिस्टम-ड्रॉन तस्वीर दोनों जगह पिक्सेल-स्तर पर अलग निकलती है। यह पेज की गड़बड़ नहीं है; ड्रॉइंग के दौरान हर डिवाइस अपने निशान छोड़ जाती है। वेबसाइट यही निशान इकट्ठा करके एक मान में बदल देती है, और यही Canvas फ़िंगरप्रिंट कहलाता है। ब्राउज़र फ़िंगरप्रिंट के सभी पैरामीटर में इसकी पहचान क्षमता सबसे ऊँची मानी जाती है। MostMate एक एंटी-डिटेक्ट ब्राउज़र है, और Canvas इसकी फ़िंगरप्रिंट सेटिंग के बुनियादी पैरामीटर में से एक है। इस लेख में हम पूरा रास्ता देखेंगे: यह पैरामीटर बनता कैसे है और कॉन्फ़िगर कैसे करते हैं।
वेबसाइट Canvas से डिवाइस का "सिग्नेचर चित्र" कैसे बनाती है
Canvas फ़िंगरप्रिंट एक असली ड्रॉइंग ऑपरेशन से आता है: वेबसाइट ब्राउज़र से तय सामग्री बनवाती है, फिर नतीजा पढ़कर एक फ़ीचर मान में बदल देती है। ड्रॉइंग के लिए ब्राउज़र का Canvas इंटरफ़ेस इस्तेमाल होता है; वेब गेम, चार्ट और इमेज एडिटर सभी इसी 2D कैनवस क्षमता पर चलते हैं। इंटरफ़ेस की जानकारी MDN का Canvas API दस्तावेज़ में मिलेगी। यह पूरा काम यूज़र को बिल्कुल खटता नहीं। तीन कदम में समझिए:
- ड्रॉइंग: पेज की स्क्रिप्ट कैनवस पर एक तय सामग्री बनाती है, आमतौर पर कुछ लाइनें टेक्स्ट, कुछ ज्यामितीय आकार और ग्रेडिएंट वाले ब्लॉक।
- पढ़ना: स्क्रिप्ट toDataURL() या getImageData() जैसे इंटरफ़ेस से कैनवस को स्ट्रिंग या पिक्सेल ऐरे में निकाल लेती है।
- तुलना: निकाला गया नतीजा हैश मान में बदला जाता है और इस एनवायरनमेंट के पुराने रिकॉर्ड या दूसरे सिग्नल से मिली अपेक्षा के साथ मिलाया जाता है।

दो डिवाइस पर एक जैसी तस्वीर क्यों नहीं बनती
ड्रॉइंग का नतीजा पूरी रेंडरिंग चेन से तय होता है; कोई भी एक कड़ी अलग हो तो पिक्सेल में फ़र्क आ जाता है। एक ही निर्देश दो डिवाइस पर जाता है: पहले सिस्टम तय करता है कि कौन-से फ़ॉन्ट लगेंगे और टेक्स्ट के किनारे कैसे रेंडर होंगे, फिर ब्राउज़र इंजन ड्रॉइंग चलाता है, और आखिर में GPU और ड्राइवर आउटपुट देते हैं। चार कड़ियों का काम बँटा है:
- GPU और ड्राइवर। एक ही ड्रॉइंग निर्देश अलग GPU और अलग ड्राइवर वर्ज़न पर थोड़ा अलग पिक्सेल देता है; नतीजों में फ़र्क की सबसे बड़ी वजह यही है।
- ऑपरेटिंग सिस्टम और टेक्स्ट रेंडरिंग। Windows, macOS और Linux का रेंडरिंग तरीका और एंटी-एलियासिंग नीति अलग है, तो वही लाइन भी हर जगह अलग चिकनाई पर निकलती है।
- फ़ॉन्ट माहौल। कैनवस का टेक्स्ट मशीन के फ़ॉन्ट से ही रेंडर होता है, इसलिए कौन-से फ़ॉन्ट इंस्टॉल हैं और कौन-सा वर्ज़न है, दोनों नतीजे में घुल जाते हैं; फ़ॉन्ट लिस्ट की जाँच का तरीका हमने फ़ॉन्ट फ़िंगरप्रिंट कैसे पकड़ा जाता है लेख में तोड़ा था, दोनों का स्रोत एक ही है।
- ब्राउज़र इंजन और वर्ज़न। Chromium, Firefox और WebKit की ड्रॉइंग इम्प्लीमेंटेशन आपस में अलग है, और बड़े वर्ज़न अपडेट भी बारीकियाँ साथ लाते हैं।

चारों कड़ियाँ मिलकर Canvas की पहचान क्षमता तय करती हैं: अकेले फ़र्क बहुत छोटा होता है, पर हैश बनने के बाद दो डिवाइस के मिलने की संभावना काफ़ी कम रह जाती है। एक छोटी सी तस्वीर के पीछे पूरे डिवाइस की रेंडरिंग चेन एक साथ सामने आती है।
Canvas फ़िंगरप्रिंट कहाँ तक पहचान सकता है
Canvas फ़िंगरप्रिंट पहचान क्षमता ऊँची वाली डिवाइस विशेषता है, पर अकेले इससे पहचान तय नहीं होती। इसकी सीमा तीन हैं, पहले वे साफ़ कर लें।
पहली, हैश एक जैसा होना इस बात का सबूत नहीं कि डिवाइस भी एक है: दो डिवाइस की रेंडरिंग चेन कभी-कभी हूबहू मिल जाती है, और बाज़ार के आम कॉन्फ़िगरेशन वैसे भी बड़ी संख्या में दोहराए जाते हैं।
दूसरी, वेबसाइट इसे अकेले सहारा नहीं बनाती: Canvas रीडिंग UA, स्क्रीन, फ़ॉन्ट और भाषा के साथ मिलाकर जाँची जाती है; इस पैरामीटर समूह में यही वह "कठिन सबूत" है जो खुद नहीं बताता, सिर्फ़ जाँच पर दीज़ मिलता है।
तीसरी, यह Cookie से बिल्कुल अलग तंत्र है: Cookie लोकल स्टोर में रहती है और मिटाई या रोकी जा सकती है; Canvas हर विज़िट पर तुरंत गिना जाता है, इसलिए Cookie साफ़ करने का उस पर कोई असर नहीं।
तीनों सीमाएँ मिलकर एक निष्कर्ष देती हैं: Canvas अकेले अकाउंट की किस्मत नहीं तय करता, पर एक ही बैच के एनवायरनमेंट का हैश हूबहू एक हो तो क्रॉस-वेरिफिकेशन में यह अपने आप ही हाथ उठा लेता है।
तीन कदम में अपने एनवायरनमेंट का Canvas फ़िंगरप्रिंट देखें
Canvas जाँचने के लिए कोई टूल इंस्टॉल नहीं करना पड़ता; एक टेस्ट पेज और दो बार दोहराया टेस्ट काफ़ी है। इसी क्रम में करें:
- मौजूदा रीडिंग नोट करें। एनवायरनमेंट में BrowserLeaks का Canvas टेस्ट पेज खोलें; पेज मौजूदा हैश मान और इमेज प्रीव्यू दिखाएगा, उसे नोट कर लें।
- उसी एनवायरनमेंट में फिर टेस्ट करें। पेज बंद करके दोबारा खोलें या एक-दो दिन बाद फिर चेक करें: एक ही एनवायरनमेंट का हैश नहीं बदलना चाहिए। दोनों बार मेल न खाए तो कोई अतिरिक्त प्रोसेसिंग रीडिंग में घुसपैठ कर रही है।
- अलग एनवायरनमेंट से तुलना करें। दूसरा एनवायरनमेंट खोलकर वही टेस्ट चलाएँ; दोनों हैश में साफ़ फ़र्क होना चाहिए, और जितना बड़ा फ़र्क, एनवायरनमेंट के बीच की बँट उतनी साफ़।
रीडिंग देखते समय "स्थिर है या नहीं, फ़र्क है या नहीं" यही काफ़ी है; कोई खास संख्या पाने की ज़रूरत नहीं। अलग-अलग टेस्ट साइट का हैश मेल नहीं खा सकता: हर साइट अलग चित्र बनवाती है, निकालने का तरीका और हैश एल्गोरिद्म भी अलग है। साइटों के बीच तुलना बेमानी है; एक ही टूल में पहले-बाद की तुलना काम की है।

MostMate में Canvas के दो मोड में से कौन-सा चुनें
MostMate की फ़िंगरप्रिंट सेटिंग Canvas को दो मोड में रखती है: Real और Noise (इंटरफ़ेस पर Real/Noise लिखा आता है), डिफ़ॉल्ट Real है। उत्पाद की पूरी तस्वीर MostMate क्या है में है; साइट की मैनुअल फ़िंगरप्रिंट सेटिंग सूची में Canvas, ऑडियो और WebGL जैसे पैरामीटर के साथ एक ही जगह रहता है, एनवायरनमेंट बनाते समय उसी फ़िंगरप्रिंट सेक्शन में सेट होता है। दोनों मोड का फ़र्क पहले तालिका से देखें:
| पहलू | Real | Noise |
|---|---|---|
| रीडिंग का स्रोत | होस्ट पर लाइव रेंडर, मैन्युअल ब्राउज़र जैसी | असली रेंडरिंग के नतीजे पर नॉइज़ चढ़ाना |
| डिटेक्शन में चेहरा | होस्ट की असली रेंडरिंग चेन दिखाता है | होस्ट से अलग, हर एनवायरनमेंट का अपना मान |
| कब काम आता है | पर्सना और होस्ट सिस्टम का इलाका एक हो | बैच में बनाना, आपस में फ़र्क चाहिए |
| ध्यान रखें | एक मशीन के कई एनवायरनमेंट की रीडिंग एक जैसी | नॉइज़ की मात्रा सीमा में रखें |
Real मोड उन मौकों के लिए है जहाँ होस्ट मशीन का "आधार" साफ़ है: जैसे मशीन पर अंग्रेज़ी Windows है और आप अमेरिका के एनवायरनमेंट चला रहे हैं, तो असली रेंडरिंग इस्तेमाल करने पर रीडिंग मैन्युअल ब्राउज़र जैसी ही रहती है और जोड़-तोड़ का कोई निशान नहीं बचता। सीमा भी साफ़ है: एक ही मशीन के सभी एनवायरनमेंट Real पर रहें तो Canvas रीडिंग एक ही मान होगी, एनवायरनमेंट के बीच कोई फ़र्क नहीं।
Noise मोड ठीक यही खाई भरता है: Canvas रीडिंग पर नॉइज़ चढ़ाकर उसे होस्ट की असली रेंडरिंग से अलग कर दिया जाता है, तो बैच में बने एनवायरनमेंट आपस में अलग दिखते हैं। शर्त यह है कि नॉइज़ क़ाबू में रहे: नॉइज़ के बाद की रीडिंग असली डिवाइस की सामान्य रेंज में ही रहनी चाहिए, वरना यह "अलग" खुद ही चुभती हुई अजीब चीज़ बन जाती है; एक ही एनवायरनमेंट की दो रीडिंग मेल न खाएँ तो वह भी असामान्य निशान है। पूरा तर्क फ़िंगरप्रिंट रैंडमाइज़ेशन ख़तरनाक क्यों है लेख में मिलेगा।
Canvas को अपने समूह के पैरामीटर के साथ भी मिलाकर देखना चाहिए। कैनवस रेंडरिंग OS, फ़ॉन्ट और GPU के बिना नहीं चलती, इसलिए ये पैरामीटर एक ही डिवाइस प्रोफ़ाइल की तरफ़ इशारा करने चाहिए: macOS प्रोफ़ाइल चुना है तो ऑडियो और WebGL इमेज जैसे उसी समूह के पैरामीटर भी macOS की तर्कसंगत रेंज में जाँच लें; सिर्फ़ Canvas देखने से समूह के भीतर की गड़बड़ छूट जाती है। ऑडियो के मोड का तर्क AudioContext फ़िंगरप्रिंट कैसे सेट करें लेख में आया था, वही सोच यहाँ भी लागू होती है।
कॉन्फ़िगरेशन के बाद एक दौर जाँच ज़रूरी है: फ़िंगरप्रिंट सेटिंग में Canvas का मोड देख लें; दाईं ओर फ़िंगरप्रिंट प्रीव्यू पैनल का Canvas फ़ील्ड Noise[3LR450] जैसा कोड दिखाएगा। यह कोड इसी नॉइज़ कॉन्फ़िगरेशन की पहचान है, हर एनवायरनमेंट का अपना अलग कोड होता है, और टेस्ट पेज से निकले हैश से इसका कोई लेना-देना नहीं; कोड और हैश को मिलाकर न देखें। असली रीडिंग देखने के लिए एनवायरनमेंट खोलकर टेस्ट पेज जाएँ और अपेक्षा से मिलाएँ; इसके बाद हर बार प्रॉक्सी बदलें या फ़िंगरप्रिंट सेटिंग छेड़ें, इस्तेमाल से पहले एक बार फिर टेस्ट कर लें।

अक्सर पूछे जाने वाले सवाल
क्या Canvas फ़िंगरप्रिंट और ब्राउज़र फ़िंगरप्रिंट एक ही चीज़ हैं?
नहीं। ब्राउज़र फ़िंगरप्रिंट दर्जनों पैरामीटर से बना पूरा चित्र है; Canvas उसमें बस एक रेंडरिंग-क्लास विशेषता है, WebGL और फ़ॉन्ट लिस्ट उसी क़िस्म में आते हैं। कुल नतीजा सब पैरामीटर का जोड़ है; Canvas अकेले की पहचान क्षमता ऊँची हो, इसका मतलब यह नहीं कि पूरा फ़िंगरप्रिंट दुर्लभ हो।
क्या Canvas बंद कर देने से पहचान से बचा जा सकता है?
सलाह नहीं। Canvas पर बहुत सारे वेब फ़ीचर निर्भर करते हैं, बंद करने से सामान्य इस्तेमाल पर असर पड़ता है; लगभग हर सामान्य ब्राउज़र Canvas सपोर्ट करता है, तो "सपोर्ट नहीं करता" खुद ही दुर्लभ विशेषता बन जाता है और चुनना और आसान हो जाता है। समझदारी यह है कि रीडिंग का स्रोत और एकरूपता क़ाबू में रखें, इंटरफ़ेस बंद न करें।
क्या Canvas फ़िंगरप्रिंट ब्राउज़र अपडेट के साथ बदलता है?
हाँ, पर उसकी रफ़्तार रैंडमाइज़ेशन से बिल्कुल अलग है। ब्राउज़र के बड़े वर्ज़न अपडेट से आई रेंडरिंग बदलाव पूरे नेटवर्क पर एक साथ आते हैं, सभी यूज़र एक साथ बदलते हैं; प्लेटफ़ॉर्म ने यह ताल पहले भी देखी है। असली एनवायरनमेंट का Canvas मान साल में कुछ बार बदलना सामान्य है; बार-बार और बेतरतीब बदलना ही असामान्य है।
क्या फ़िंगरप्रिंट ब्राउज़र हर एनवायरनमेंट का Canvas अलग कर सकता है?
कर सकता है; Noise मोड यही काम करता है: Canvas रीडिंग पर नॉइज़ चढ़ाकर बैच के एनवायरनमेंट आपस से अलग कर देता है। शर्त यह कि नॉइज़ की मात्रा सही रहे और रीडिंग संबंधित सिस्टम की सामान्य रेंज में ही रहे।
निष्कर्ष
Canvas फ़िंगरप्रिंट का सार यही है: डिवाइस की पूरी रेंडरिंग चेन एक कैनवस पर एक साथ उभर आती है; अकेले पहचान तय नहीं होती, पर यही वह पैरामीटर है जो खुद नहीं बताता और सिर्फ़ जाँच पर मिलता है। मैनेजमेंट के दो सूत्र रखें: एक एनवायरनमेंट की रीडिंग दोबारा टेस्ट सहे, एनवायरनमेंट के हैश आपस में दूर रहें, और एक ही स्रोत के पैरामीटर एक ही डिवाइस प्रोफ़ाइल बताएँ। शुरुआत से एनवायरनमेंट चलाने के लिए MostMate डाउनलोड करें, एनवायरनमेंट बनाने के बाद हर एक की Canvas रीडिंग जाँच लें, फिर इस्तेमाल में लाएँ।
MOSTMATE
कई खातों का सुरक्षित प्रबंधन, अब आसान
पहले खाते से शुरुआत करें और MostMate के साथ कई खातों का अधिक सुरक्षित, स्मार्ट और कुशल संचालन बनाएँ।
- अलग प्रोफ़ाइल। सुसंगत पहचान।
- AI ऑटोमेशन · खाते की स्थिति · टीम संचालन



