PowerScan
HI

WebGL रेंडरर स्ट्रिंग और हार्डवेयर संकेत: आपका GPU आपके बारे में कितना बताता है

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

फ़ोटो: Unsplash

जिस हार्डवेयर पर ब्राउज़र चलता है वह कई छोटे तरीक़ों से पेज में रिस जाता है। इनमें से कोई मशीन का नाम नहीं बताता, पर साथ मिलकर वे उसे इतना क़रीब से बयान करते हैं कि उसे ज़्यादातर दूसरों से अलग किया जा सके।

रेंडरर स्ट्रिंग

WebGL WEBGL_debug_renderer_info नाम का एक एक्सटेंशन देता है जिसमें दो मान हैं: अनमास्क्ड वेंडर और अनमास्क्ड रेंडरर। Chromium के साथ Windows पर रेंडरर आम तौर पर कुछ ऐसा पढ़ा जाता है ANGLE (NVIDIA, NVIDIA GeForce RTX 2060 SUPER (0x00001F06) Direct3D11 vs_5_0 ps_5_0, D3D11)। वह एक पंक्ति GPU वेंडर, ठीक-ठीक मॉडल, उसकी PCI डिवाइस आईडी, ग्राफ़िक्स API और शेडर मॉडल बताती है, जो ऑपरेटिंग सिस्टम का भी मज़बूत इशारा है, क्योंकि वह स्ट्रिंग केवल Windows पर होती है।

Firefox और Safari ने अलग-अलग समय पर इस स्ट्रिंग को मास्क या सामान्य किया है; Chromium उसे उजागर करता है। जो ब्राउज़र उसे मास्क करता है वह सामान्य मान लौटाता है, और डायग्नोस्टिक अंदाज़ा लगाने के बजाय “renderer info masked” दिखाता है।

गिनतियाँ और आकार

navigator.hardwareConcurrency लॉजिकल CPU थ्रेड की संख्या लौटाता है। navigator.deviceMemory RAM की अनुमानित मात्रा लौटाता है, जो मानों के छोटे सेट में पूर्णांकित होती है और Chromium में 8 पर सीमित है, इसलिए 32 GB वाली मशीन 8 बताती है। screen.width और screen.height डिस्प्ले का आकार देते हैं, availWidth और availHeight टास्कबार घटाते हैं, और devicePixelRatio स्केलिंग उजागर करता है। screen.colorDepth लगभग हमेशा 24 होता है। navigator.maxTouchPoints टच डिवाइस को बाक़ियों से अलग करता है।

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

मीडिया डिवाइस

navigator.mediaDevices.enumerateDevices() सिस्टम के कैमरे, माइक्रोफ़ोन और स्पीकर लौटाता है। अनुमति के बिना, आधुनिक ब्राउज़र प्रकार और संख्या लौटाते हैं पर लेबल ख़ाली, इसलिए पेज को “एक कैमरा, एक माइक्रोफ़ोन, एक आउटपुट” पता चलता है और इससे ज़्यादा नहीं। किसी साइट को एक्सेस देने पर लेबल उजागर हो जाते हैं। जो डायग्नोस्टिक सिर्फ़ संख्या दिखाता है, वह वैसे व्यवहार करता है जैसे अनुमति के बिना कोई पेज करता।

फिर से संगति का पहलू

हार्डवेयर संकेत वह जगह हैं जहाँ स्पूफ़िंग सबसे अक्सर बिगड़ती है। जो प्रोफ़ाइल NVIDIA Direct3D रेंडरर, 24 थ्रेड और 1366×768 स्क्रीन वाला MacBook होने का दावा करे, वह ऐसी मशीन बता रहा है जो है ही नहीं। इसे भाँपने के लिए साइटों को डेटाबेस नहीं चाहिए; कुछ नियम इसे पकड़ लेते हैं। अगर प्रोफ़ाइल इनमें से कोई भी मान बदलता है, तो उसे सबको ऐसे संयोजन में बदलना होगा जो असली डिवाइस सचमुच लेकर आता है, और विज़िटों में उन्हें वैसा ही रखना होगा।

क्या जाँचें

रेंडरर स्ट्रिंग पढ़ें और पूछें कि क्या वह यूज़र एजेंट के ऑपरेटिंग सिस्टम से मेल खाती है। स्क्रीन का आकार पढ़ें और पूछें कि क्या वह पिक्सल रेशियो और उपलब्ध ऊँचाई से मेल खाता है। थ्रेड संख्या और मेमोरी पढ़ें और पूछें कि क्या वह जोड़ी उस GPU के लिए विश्वसनीय है। डायग्नोस्टिक इन्हें ठीक इसी मक़सद से साथ-साथ रखता है; फ़ैसला आपका है।

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