PowerScan
HI

कैनवास फ़िंगरप्रिंटिंग की व्याख्या: एक जैसे दो ब्राउज़र अलग पिक्सेल क्यों बनाते हैं

ब्राउज़र फ़िंगरप्रिंट · 6 मिनट में पढ़ें · PowerScan द्वारा

फ़ोटो: Unsplash

कैनवास फ़िंगरप्रिंटिंग वह तकनीक है जिसके बारे में ज़्यादातर लोगों ने सुना है और बहुत कम लोग समझा सकते हैं। विचार सरल है: ब्राउज़र से कुछ बनवाएँ, पिक्सेल वापस पढ़ें और उनका हैश निकालें। दिलचस्प हिस्सा यह है कि मशीनों के बीच पिक्सेल अलग होते ही क्यों हैं।

चित्रांकन

फ़िंगरप्रिंटिंग स्क्रिप्ट एक ऑफ़-स्क्रीन <canvas> बनाती है, 2D कॉन्टेक्स्ट लेती है, और एक छोटा क्रम बनाती है: एक भरा हुआ आयत, किसी नामित फ़ॉन्ट में कुछ टेक्स्ट, शायद एक ग्रेडिएंट, एक वक्र, एक इमोजी। फिर वह नतीजा पढ़ने के लिए toDataURL() या getImageData() को कॉल करती है, और बाइटों को हैश से गुज़ारती है। आउटपुट एक छोटी स्ट्रिंग होती है, जैसे 71ae464e। वही स्ट्रिंग "कैनवास हैश" है।

चित्रांकन में कुछ भी गुप्त नहीं है, और GPU को ऐसा कुछ नहीं भेजा जाता जिसका वर्णन पेज पहले से न कर सकता हो। जानकारी रेंडरिंग में है, निर्देशों में नहीं।

पिक्सेल अलग क्यों होते हैं

टेक्स्ट बदलाव का मुख्य स्रोत है। एक ग्लिफ़ रेंडर करने में शामिल है असल में चुनी गई फ़ॉन्ट फ़ाइल (फ़ॉलबैक ऑपरेटिंग सिस्टम के अनुसार अलग होते हैं), हिंटिंग और एंटी-एलियासिंग की रणनीति (ग्रेस्केल या सब-पिक्सेल, और कौन सा सब-पिक्सेल क्रम), रैस्टराइज़र (FreeType, DirectWrite, CoreText, या ब्राउज़र का अपना), और यह कि कंपोज़िटिंग GPU ने की या CPU ने। इनमें से हर एक किनारे के पिक्सेल थोड़े अलग बनाता है। "e" के किनारे पर एक हल्का-धूसर पिक्सेल पूरा हैश बदलने के लिए काफ़ी है।

ग्रेडिएंट और वक्र और जोड़ते हैं: अलग ग्राफ़िक्स ड्राइवर और अलग एंटी-एलियासिंग पाथ बीच के मानों को अलग तरह से राउंड करते हैं। नतीजा यह कि एक ही ब्राउज़र वर्शन पर अलग GPU, ड्राइवर या ऑपरेटिंग सिस्टम वाली दो मशीनें आम तौर पर अलग हैश बनाएँगी, जबकि एक ही मशीन हर बार वही हैश बनाती है। स्थिर और विविध, ठीक वही जो ट्रैकर चाहता है।

हैश साइट को क्या बताता है

अपने आप में, आप कौन हैं इसके बारे में कुछ नहीं। वह साइट को बताता है कि यह ब्राउज़र इस चित्रांकन को इस तरह रेंडर करता है, जो मशीनों के किसी समूह के लिए सच है। उस समूह का आकार ही मायने रखता है। एकीकृत ग्राफ़िक्स और डिफ़ॉल्ट फ़ॉन्ट वाला आम लैपटॉप अपना हैश कई दूसरों के साथ साझा करता है। असामान्य सेटअप लगभग अद्वितीय हो सकता है। स्क्रीन आकार, भाषा सूची और रेंडरर स्ट्रिंग के साथ मिलकर आम हैश भी एक दुर्लभ संयोजन का हिस्सा बन जाता है।

ब्राउज़र इसके बारे में क्या करते हैं

Firefox, रेज़िस्ट-फ़िंगरप्रिंटिंग चालू होने पर, खाली या रैंडम कैनवास लौटाता है और कैनवास एक्सेस के लिए पूछ सकता है। Brave कैनवास रीड में छोटे रैंडम बदलाव जोड़ता है ताकि हैश साइटों और सेशनों के बीच बदले। Safari सीमित करता है कि कौन से फ़ॉन्ट दिखें और कुछ रीडबैक को बाधित करता है। Chromium खुद कैनवास को रैंडम नहीं करता; उस पर बने जो ब्राउज़र फ़िंगरप्रिंट नियंत्रित करना चाहते हैं, वे अपने पैच से ऐसा करते हैं, और उन पैचों की गुणवत्ता अलग-अलग होती है।

नॉइज़ मुफ़्त नहीं है। हर विज़िट पर बदलने वाला कैनवास हैश अपने आप में एक संकेत है, क्योंकि असली ब्राउज़र ऐसा नहीं करते। आइसोलेटेड ब्राउज़र प्रोफ़ाइल के लिए बेहतर रणनीति ऐसा हैश है जो विश्वसनीय और एकरूप हो, ताकि वह हर घंटे अलग मशीन की जगह एक आम मशीन जैसा दिखे।

डायग्नोस्टिक क्या दिखाता है

PowerScan अपनी एक छोटी इमेज बनाता है और आपको हैश दिखाता है। वह उसे कभी अपलोड नहीं करता; मान सिर्फ़ आपके टैब में रहता है। रीलोड करें और हैश एक जैसा होना चाहिए। अगर नहीं है, तो ब्राउज़र में कुछ नॉइज़ डाल रहा है, जो उस प्रोफ़ाइल पर भरोसा करने से पहले जानना अच्छा है।

सभी लेख · स्कैन चलाएँ