WebGPU फिंगरप्रिंटिंग: Canvas और WebGL के बाद अगली पीढ़ी
WebGPU, Canvas और WebGL से मिलकर भी अधिक गहरी हार्डवेयर क्षमताएँ उजागर करता है — और Chrome, Edge तथा Firefox में पहले से उपलब्ध है। यह क्या दिखा सकता है और क्यों अगले 2–3 वर्षों में पुरानी तकनीकों की जगह लेगा।
WebGPU 2023 में Chrome 113 के साथ आया। 2026 तक यह सभी बड़े प्लेटफ़ॉर्म के सभी बड़े ब्राउज़रों में उपलब्ध है। WebGL एक ब्राउज़र API था जो OpenGL ES 2.0 को लपेटता था; WebGPU इससे अलग है — यह आधुनिक GPU API से सीधा इंटरफ़ेस है: Linux पर Vulkan, macOS पर Metal, Windows पर DirectX 12।
इससे बदल जाता है कि ब्राउज़र नीचे मौजूद हार्डवेयर के बारे में क्या पूछ सकता है। Canvas और WebGL फिंगरप्रिंटिंग रेंडरिंग के नतीजों पर टिकी थी। WebGPU सीधे GPU से क्षमताएँ पूछने देता है और वे स्थापत्य विवरण उजागर करता है जिनका रेंडरिंग आउटपुट केवल संकेत दे सकता है।
फिंगरप्रिंटिंग के लिए यह संकेत की गुणवत्ता में सीढ़ीनुमा छलांग है।
WebGPU क्या उजागर करता है जो WebGL नहीं करता
WebGL की नैदानिक सतह सीमित है। इसमें सबसे उपयोगी है WEBGL_debug_renderer_info एक्सटेंशन, जो वेंडर और रेंडरर स्ट्रिंग लौटाता है — जिन्हें एंटीडिटेक्ट ब्राउज़र अक्सर बदल देते हैं या प्राइवेसी सुविधाएँ हटा देती हैं।
WebGPU कहीं समृद्ध डेटा के साथ GPUAdapter और GPUAdapterInfo ऑब्जेक्ट देता है:
- Vendor — GPU निर्माता का पहचानकर्ता (NVIDIA, AMD, Intel, Apple, Qualcomm)।
- Architecture — GPU स्थापत्य परिवार (Ampere, RDNA 2, Xe-LP, Apple M2, Adreno)।
- Device — उपलब्ध होने पर विशिष्ट मॉडल।
- Description — मनुष्य के पढ़ने योग्य स्ट्रिंग।
पहचान से आगे बढ़कर WebGPU GPU की सीमाएँ उजागर करता है — हार्डवेयर की सटीक संख्यात्मक क्षमताएँ। इन्हें GPUSupportedLimits इंटरफ़ेस से पूछा जा सकता है और इनमें 30 से अधिक संख्यात्मक गुण शामिल हैं:
- अधिकतम टेक्सचर आयाम —
maxTextureDimension2D - अधिकतम बफ़र आकार —
maxBufferSize - अधिकतम बाइंड ग्रुप —
maxBindGroups - अधिकतम कंप्यूट वर्कग्रुप आयाम
- अधिकतम वर्टेक्स एट्रिब्यूट
- स्टोरेज बफ़र के संरेखण की आवश्यकताएँ
इनमें से हर मान GPU ड्राइवर हार्डवेयर की क्षमता के आधार पर तय करता है। GPU की अलग-अलग पीढ़ियों में — एक ही वेंडर के भीतर भी — सीमाओं के संयोजन अलग होते हैं। 2019 के GPU की सीमाएँ उसी परिवार के 2023 के GPU से भिन्न होती हैं।
इसकी नक़ल करना क्यों कठिन है
एंटीडिटेक्ट ब्राउज़र API कॉल बीच में पकड़कर और नतीजे बदलकर Canvas और WebGL की नक़ल करते हैं। Canvas जो लौटाता है वे रेंडर किए गए पिक्सेल के हैश हैं — ब्राउज़र रेंडर कर सकता है, फिर हैश बदल सकता है। WebGL से थोड़ी-सी स्ट्रिंग पूछी जाती हैं, जिन्हें पूरा का पूरा बदला जा सकता है।
WebGPU अलग है। API सतह बड़ी है — सैकड़ों मेथड और गुण। हर कॉल को विश्वसनीय लौटाया गया मान चाहिए। नक़ल करने वाली परत को यह करना होगा:
- सभी संख्यात्मक सीमाओं पर एक संगत पहचान दिखाना — NVIDIA RTX 4090 होने का दावा करने वाले GPU को उस हार्डवेयर से मेल खाता हर सीमा-मान लौटाना होगा।
- वास्तविक कंप्यूट निष्पादन सँभालना। WebGPU कंप्यूट शेडर चलाने देता है। यदि नक़ल परत उच्च प्रदर्शन का दावा करे पर धीमा कंप्यूट दे, तो यह बेमेल समय-मापन से पकड़ में आता है।
- ड्राइवर अपडेट के साथ बदलाव पर नज़र रखना। GPU ड्राइवर के हर संस्करण में सीमाएँ थोड़ी भिन्न होती हैं। स्थिर नक़ल-तालिकाएँ नए ड्राइवर आते ही पुरानी पड़ जाती हैं।
असली हार्डवेयर यह सब मुफ़्त देता है। हार्डवेयर की नक़ल के लिए हर GPU मॉडल और हर ड्राइवर संस्करण के सच्चे सीमा-संयोजनों का डेटाबेस बनाए रखना पड़ता है — एक सतत रखरखाव बोझ, जो अधिकांश एंटीडिटेक्ट ब्राउज़रों ने अभी नहीं उठाया।
फिंगरप्रिंट के रूप में कंप्यूट प्रदर्शन
WebGPU ब्राउज़र में मनचाहे कंप्यूट शेडर चलाने देता है। इसका अर्थ है कि डिटेक्शन सिस्टम मानकीकृत वर्कलोड चलाकर उनका समय माप सकते हैं।
हैश-क्रैकिंग बेंचमार्क, मैट्रिक्स गुणन या रेंडरिंग से मिलता-जुलता कंप्यूट कार्य — सभी उसी गति से चलते हैं जो नीचे का हार्डवेयर तय करता है। एक ही GPU मॉडल का दावा करने वाले दो विज़िटर यदि अलग-अलग कंप्यूट प्रदर्शन दें, तो कोई एक हार्डवेयर के बारे में झूठ बोल रहा है।
यह तकनीक स्थिर फिंगरप्रिंट नक़ल को पूरी तरह किनारे कर देती है। विज़िटर कोई भी GPU स्ट्रिंग बता सकता है। वह ऐसा कंप्यूट प्रदर्शन नहीं बता सकता जो उसके पास नहीं है।
इसका मोल उपयोगकर्ता अनुभव है। पृष्ठभूमि में कंप्यूट शेडर चलाने से GPU चक्र खर्च होते हैं और यह सुस्ती जैसा लग सकता है। इससे तय होता है कि तकनीक कितनी आक्रामकता से इस्तेमाल हो सकती है — आमतौर पर लगातार निगरानी के बजाय संदिग्ध सत्रों पर एक बार की जाँच के रूप में।
संकेत के रूप में फ़ीचर उपलब्धता
WebGPU वैकल्पिक फ़ीचर GPUAdapter.features के ज़रिए उजागर करता है। कुछ GPU विशिष्ट एक्सटेंशन का समर्थन करते हैं:
timestamp-query— प्रदर्शन काउंटर वाले आधुनिक GPU की आवश्यकताshader-f16— आधी परिशुद्धता वाला फ़्लोटिंग पॉइंट, मोबाइल GPU में आमtexture-compression-bc— Block Compression, डेस्कटॉप पर मानकtexture-compression-etc2— मोबाइल टेक्सचर फ़ॉर्मैटtexture-compression-astc— मोबाइल टेक्सचर फ़ॉर्मैट
फ़ीचर सेट हर GPU मॉडल के लिए निर्धारित होता है। मोबाइल Adreno फ़ीचर का दावा करने वाली Windows मशीन पकड़ी जाती है। केवल डेस्कटॉप पर मिलने वाले कंप्रेशन फ़ॉर्मैट का दावा करने वाला मोबाइल उपकरण पकड़ा जाता है।
WebGL के साथ संगति
WebGPU से पहले ब्राउज़रों के पास GPU से पूछताछ की एक ही मुख्य सतह थी: WebGL। अब दो हैं, और दोनों में सहमति होनी चाहिए।
WebGL और WebGPU एक ही GPU उजागर करते हैं। उनके उत्तर संगत होने चाहिए। WebGL से NVIDIA RTX 4080 बताने वाला, पर एकीकृत Intel GPU से मेल खाती WebGPU सीमाएँ लौटाने वाला ब्राउज़र असली हार्डवेयर पर असंभव है।
API के बीच संगति डिटेक्शन का एक और संकेत है। एक API की नक़ल सीधी बात है। दो API की परस्पर संगत नक़ल कहीं कठिन है — और मौजूदा एंटीडिटेक्ट ब्राउज़र अधिकांशतः यह नहीं करते।
OS और ड्राइवर के बारे में WebGPU क्या बताता है
GPU पहचान से आगे, WebGPU ग्राफ़िक्स स्टैक का संदर्भ भी उजागर करता है:
- Windows पर WebGPU बता सकता है कि Direct3D 11 चल रहा है या Direct3D 12, जो OS संस्करण और ड्राइवर के दौर से जुड़ा होता है।
- macOS पर समर्थित Metal संस्करण macOS संस्करण खोल देता है — क्योंकि Metal संस्करण OS अपडेट के साथ आते हैं।
- Linux पर Vulkan समर्थन के स्तर वितरण और ड्राइवर का स्रोत बताते हैं (उदाहरण के लिए, प्रोप्राइटरी NVIDIA बनाम ओपन-सोर्स Mesa)।
इनमें से कोई भी संकेत सीधा नहीं है — हर एक की व्याख्या करनी पड़ती है। पर मिलकर वे नीचे के सॉफ़्टवेयर स्टैक की तस्वीर बनाते हैं, जिसका बताए गए ब्राउज़र फिंगरप्रिंट से मेल बैठना चाहिए। बेमेल नक़ल की ओर इशारा करता है।
डिटेक्शन स्टैक में अपनाने की समयरेखा
2026 में WebGPU फिंगरप्रिंटिंग अभी मुख्यधारा की डिटेक्शन तकनीक नहीं है, तीन कारणों से:
- ब्राउज़र समर्थन अभी स्थिर हो रहा है। Firefox में WebGPU 2024 में आया, पर सीमित फ़ीचर कवरेज के साथ। Safari में WebGPU 2024 में आया, पर Chrome से अलग सीमाओं के साथ। WebGPU संकेतों पर टिकने से पहले डिटेक्शन सिस्टम को व्यापक कवरेज चाहिए।
- असली उपयोगकर्ताओं में WebGPU समर्थन अभी अधूरा है। पुराने उपकरणों में ऐसे GPU नहीं हैं जो WebGPU फ़ीचर समर्थित करें। WebGPU रहित विज़िटर को दंडित करने वाला सिस्टम पाँच साल पुराने हार्डवेयर पर वैध उपयोगकर्ताओं को रोकने का जोखिम उठाता है।
- एंटीडिटेक्ट ब्राउज़रों ने अभी पूर्ण WebGPU नक़ल नहीं बनाई है, इसलिए WebGPU आधारित संकेत फ़िलहाल उन दक्ष हमलावरों के विरुद्ध कारगर हैं जो मानते हैं कि उन्होंने अपने निशान मिटा दिए। डिटेक्शन का चलन बढ़ने और नक़ल-उपकरणों के जवाब देने के साथ यह बदलेगा।
2–3 वर्ष का क्षितिज यथार्थवादी है। 2027–2028 तक WebGPU संकेत बॉट डिटेक्शन के लिए उतने ही केंद्रीय होंगे जितना आज WebGL है। डिटेक्शन टीमों के लिए सवाल यह है कि WebGPU डेटा जुटाना कब शुरू करें — उत्तर है अभी, ताकि जब ये संकेत प्रमुख बनें तब ऐतिहासिक आधार मौजूद हो।
बचाव करने वालों के लिए इसका अर्थ
Canvas फिंगरप्रिंटिंग परिपक्व तकनीक है। WebGL फिंगरप्रिंटिंग परिपक्व तकनीक है। दोनों की नक़ल एंटीडिटेक्ट उपकरण सक्रियता से और ठीक-ठाक सफलता के साथ कर रहे हैं।
WebGPU फिंगरप्रिंटिंग नई तकनीक है। नक़ल-उपकरण अभी पीछे हैं। इससे एक खिड़की बनती है — संभवतः 18–36 महीने — जिसमें WebGPU संकेत असली उपयोगकर्ताओं को दक्ष बॉट से साफ़-साफ़ अलग करते हैं। इस खिड़की में निवेश सार्थक है।
इससे बनने वाले संकेत Canvas या WebGL की तुलना में संरचनात्मक रूप से भी अधिक कठिन हैं। रेंडरिंग को बीच में पकड़ा जा सकता है। कंप्यूट प्रदर्शन को नहीं। फ़ीचर सेट के बारे में झूठ बोला जा सकता है, पर पूरी API सतह पर संगत रूप से नहीं। फिंगरप्रिंटिंग तकनीक की हर पीढ़ी नक़ल की लागत बढ़ाती है। WebGPU इसे काफ़ी बढ़ा देता है।
2026 और उसके बाद बॉट डिटेक्शन को गंभीरता से लेने वाले प्लेटफ़ॉर्म के लिए संकेत WebGPU की ओर बढ़ रहा है।