TRACIO की पहचान प्रणाली 130+ ब्राउज़र संकेतों से एक स्थिर आगंतुक पहचानकर्ता उत्पन्न करती है। यह पहचानकर्ता सत्रों, इनकॉग्निटो मोड, VPN परिवर्तनों और कुकी हटाने के बावजूद बना रहता है। यह पृष्ठ संपूर्ण पहचान पाइपलाइन की व्याख्या करता है।
क्लाइंट 10 श्रेणियों में 130+ अलग-अलग ब्राउज़र संकेत एकत्र करता है। प्रत्येक संकेत ब्राउज़र और डिवाइस के एक अलग पहलू की जाँच करता है — हार्डवेयर विशेषताओं से लेकर रेंडरिंग व्यवहार तक।
| समूह | संकेत | स्थिरता | उदाहरण |
|---|---|---|---|
| Hardware | 12 | बहुत उच्च | स्क्रीन रिज़ॉल्यूशन, डिवाइस मेमोरी, हार्डवेयर समवर्तीता, टच समर्थन |
| Rendering | 9 | उच्च | Canvas फ़िंगरप्रिंट (टेक्स्ट + ज्यामिति), WebGL रेंडरर, ऑडियो प्रोसेसिंग |
| Fonts | 5 | उच्च | उपलब्ध सिस्टम फ़ॉन्ट (69 फ़ैमिली परीक्षित), फ़ॉन्ट प्राथमिकताएँ, MathML रेंडरिंग |
| Platform | 25 | मध्यम | User-Agent, navigator गुण, समय क्षेत्र, भाषा, विक्रेता |
| CSS Engine | 10 | मध्यम | Media query प्रतिक्रियाएँ (रंग योजना, HDR, कम गति, बलपूर्वक रंग) |
| Storage | 10 | मध्यम | Cookie समर्थन, localStorage, sessionStorage, स्टोरेज कोटा |
| WebGL | 9 | उच्च | GPU विक्रेता, रेंडरर (अनमास्क्ड), शेडर परिशुद्धता, एक्सटेंशन समर्थन |
| Network | 3 | निम्न | कनेक्शन RTT, TURN प्रोब, ऐप संस्करण |
| Bot Indicators | 15 | लागू नहीं | Webdriver फ़्लैग, ऑटोमेशन फ़्रेमवर्क, eval लंबाई, हेडलेस मार्कर |
| Custom | 14 | परिवर्तनशील | Math फ़िंगरप्रिंट, WASM सुविधाएँ, आर्किटेक्चर पहचान |
पहचान के लिए सभी संकेत समान रूप से उपयोगी नहीं होते। संकेतों को स्थिरता के अनुसार वर्गीकृत किया जाता है:
स्तर 1 (फ़्रोज़न): हार्डवेयर और रेंडरिंग संकेत जो लगभग कभी नहीं बदलते। Canvas फ़िंगरप्रिंट, WebGL रेंडरर, ऑडियो फ़िंगरप्रिंट, GPU पैरामीटर, फ़ॉन्ट गणना, गणितीय संक्रियाएँ, आर्किटेक्चर बाइट।
स्तर 2 (अर्ध-स्थिर): वे संकेत जो ब्राउज़र अपडेट या कॉन्फ़िगरेशन परिवर्तनों के साथ बदलते हैं। User-Agent, Client Hints, प्लगइन, CSS media query, स्टोरेज क्षमताएँ।
स्तर 3 (अस्थिर): वे संकेत जो अक्सर बदलते हैं। स्क्रीन रिज़ॉल्यूशन (मॉनिटर परिवर्तन), समय क्षेत्र (यात्रा), भाषा प्राथमिकताएँ, कनेक्शन गुण।
आगंतुक ID की गणना एक तीन-स्तरीय हैशिंग प्रणाली से की जाती है, जो स्थिरता और विस्तार-योग्यता के बीच संतुलन बनाती है:
Visitor ID = [Tier1Hash][Tier2Hash][Tier3Hash] 20 chars 10 chars 10 chars ──────── ──────── ──────── base62 base62 base62स्तर 1 केवल उन फ़्रोज़न संकेतों का उपयोग करता है जो हार्डवेयर और रेंडरिंग इंजन में अंतर्निहित हैं। ये संकेत केवल तभी बदलते हैं जब उपयोगकर्ता किसी भिन्न भौतिक डिवाइस पर स्विच करता है या महत्वपूर्ण हार्डवेयर परिवर्तन करता है।
शामिल संकेत: Canvas फ़िंगरप्रिंट हैश, WebGL रेंडरर (अनमास्क्ड), WebGL विक्रेता (अनमास्क्ड), ऑडियो फ़िंगरप्रिंट, फ़ॉन्ट गणना हैश, WebGL पैरामीटर हैश, गणितीय संक्रियाओं का हैश, आर्किटेक्चर बाइट (ARM बनाम x86)।
एल्गोरिथम:
key1=value1|key2=value2|... (कुंजियाँ वर्णानुक्रम में क्रमबद्ध)स्तर 1 जानबूझकर फ़्रोज़न है। स्तर 1 में कभी नए संकेत नहीं जोड़े जाते, जिससे यह सुनिश्चित होता है कि पहचान कोर सर्वर अपडेट के बावजूद स्थिर रहे।
स्तर 2 ब्राउज़र और OS परिवेश को कैप्चर करता है। ये संकेत तब बदलते हैं जब उपयोगकर्ता अपना ब्राउज़र अपडेट करता है, एक्सटेंशन इंस्टॉल करता है या सिस्टम सेटिंग्स संशोधित करता है।
शामिल संकेत: User-Agent डेटा, Client Hints (ब्रांड, प्लेटफ़ॉर्म, आर्किटेक्चर), navigator गुण (विक्रेता, प्लेटफ़ॉर्म, भाषाएँ), प्लगइन सूची, स्क्रीन रंग गहराई, डिवाइस मेमोरी, हार्डवेयर समवर्तीता।
स्तर 3 उन अस्थिर संकेतों को कैप्चर करता है जो सत्रों के बीच बदल सकते हैं। इनका उपयोग कॉन्फ़िडेंस स्कोरिंग और फ़ज़ी मिलान के लिए किया जाता है, लेकिन ये कोर पहचान को प्रभावित नहीं करते।
शामिल संकेत: स्क्रीन रिज़ॉल्यूशन, समय क्षेत्र, भाषा, DOM ब्लॉकर, स्टोरेज क्षमताएँ, CSS media query प्रतिक्रियाएँ, कनेक्शन गुण।
प्रत्येक स्तर को MurmurHash3-x64-128 का उपयोग करके हैश किया जाता है, जो एक तेज़, गैर-क्रिप्टोग्राफ़िक हैश फ़ंक्शन है और 128-बिट आउटपुट उत्पन्न करता है। एल्गोरिथम:
MurmurHash3 उत्कृष्ट वितरण प्रदान करता है (इनपुट का प्रत्येक बिट आउटपुट के प्रत्येक बिट को प्रभावित करता है) और वास्तविक-समय गणना के लिए पर्याप्त तेज़ है। यह क्रिप्टोग्राफ़िक रूप से सुरक्षित नहीं है, लेकिन फ़िंगरप्रिंट हैशिंग के लिए इसकी आवश्यकता नहीं है।
Input: "canvas=abc123|webgl_renderer=ANGLE|audio=0.04852" ↓ MurmurHash3-x64-128Output: 0x7f4a8c2d1e3b5f6a 0x9d8c7b6a5e4f3d2c ↓ base62 encodeResult: "X7fh2Hg9LkMn3pQr5tBv"कॉन्फ़िडेंस स्कोर (0.0 से 1.0) दर्शाता है कि सिस्टम आगंतुक पहचान के बारे में कितना निश्चित है:
जब _vid_t कुकी किसी ज्ञात आगंतुक से मेल खाती है, तो कॉन्फ़िडेंस 1.0 पर सेट होता है। कुकी में आगंतुक की UID होती है, जिसे सर्वर अपने रिकॉर्ड के विरुद्ध सत्यापित करता है। यह सबसे तेज़ और सबसे विश्वसनीय पहचान पथ है।
बिना किसी पूर्व रिकॉर्ड वाले नए आगंतुकों को 0.90 का कॉन्फ़िडेंस स्कोर मिलता है। ग़लत मिलान का कोई जोखिम नहीं है, क्योंकि तुलना के लिए कोई मौजूदा रिकॉर्ड नहीं होता।
बिना Cookie मिलान वाले लौटने वाले आगंतुकों के लिए, सिस्टम कॉन्फ़िडेंस की गणना इनसे करता है:
संकेत आवृत्ति भारण (IDF): जो संकेत वैश्विक जनसंख्या में अधिक अद्वितीय होते हैं, उन्हें अधिक भार मिलता है। एक दुर्लभ WebGL रेंडरर एक सामान्य स्क्रीन रिज़ॉल्यूशन की तुलना में अधिक पहचान-योग्य होता है।
फ़ज़ी मिलान: सिस्टम बिट-स्तरीय हैमिंग दूरी का उपयोग करके वर्तमान फ़िंगरप्रिंट की तुलना संग्रहीत फ़िंगरप्रिंट से करता है। संकेतों को स्तर के अनुसार समूहित किया जाता है, और प्रत्येक स्तर के मिलान स्कोर को स्वतंत्र रूप से भारित किया जाता है।
ऐतिहासिक संगति: यदि किसी आगंतुक के संकेत कई विज़िट में स्थिर रहे हैं, तो कॉन्फ़िडेंस बढ़ता है। यदि संकेत बार-बार उतार-चढ़ाव करते हैं, तो कॉन्फ़िडेंस घटता है।
| परिदृश्य | विशिष्ट स्कोर | व्याख्या |
|---|---|---|
| Cookie मिलान | 1.000 | _vid_t कुकी UID सर्वर-साइड सत्यापित |
| पहली विज़िट | 0.900 | तुलना के लिए कोई पूर्व रिकॉर्ड नहीं |
| मजबूत फ़िंगरप्रिंट मिलान | 0.990-0.999 | सभी स्तर 1 संकेत मेल खाते हैं, अधिकांश स्तर 2 मेल |
| आंशिक मिलान (ब्राउज़र अपडेट) | 0.950-0.989 | स्तर 1 मेल खाता है, स्तर 2 बदला (नया UA) |
| कमज़ोर मिलान (महत्वपूर्ण परिवर्तन) | 0.850-0.949 | कुछ स्तर 1 संकेत बदल गए |
| अस्पष्ट | 0.500-0.849 | डेटाबेस में कई संभावित मिलान |
TRACIO सत्रों के बीच आगंतुक पहचान बनाए रखने के लिए एक फ़र्स्ट-पार्टी कुकी (_vid_t) का उपयोग करता है:
_vid_tSameSite=Lax, और HTTPS पर Secure (HttpOnly नहीं — एजेंट इसे क्लाइंट-साइड पढ़ता है)कुकी सर्वर-साइड (Set-Cookie रिस्पॉन्स हेडर के माध्यम से) और एजेंट द्वारा क्लाइंट-साइड, दोनों तरीकों से जारी की जाती है, और कुकी ब्लॉक होने की स्थिति में फ़ॉलबैक के रूप में UID को localStorage में भी मिरर किया जाता है।
सर्वर उत्तरोत्तर व्यापक डोमेन स्कोप पर कुकी सेट करने का प्रयास करता है:
app.example.com → example.com → comवह सबसे व्यापक डोमेन उपयोग किया जाता है जिस पर कुकी सफलतापूर्वक सेट हो जाती है। यह सुनिश्चित करता है कि कुकी सबडोमेन में बनी रहे।
TRACIO एक ही डिवाइस पर विभिन्न ब्राउज़रों में एक ही व्यक्ति की पहचान कर सकता है, जब स्तर 1 संकेत मेल खाने वाले हैश उत्पन्न करते हैं। चूँकि स्तर 1 हार्डवेयर और रेंडरिंग विशेषताओं (canvas, WebGL, ऑडियो, फ़ॉन्ट) पर निर्भर करता है, ये संकेत एक ही मशीन पर Chromium-आधारित ब्राउज़रों में अक्सर समान होते हैं और विभिन्न इंजनों (Chromium बनाम Firefox बनाम Safari) में कमज़ोर हो जाते हैं। किसी डेस्कटॉप आगंतुक को किसी मोबाइल आगंतुक से मिलाने की अपेक्षा नहीं की जाती — हार्डवेयर और रेंडरिंग सतहें भिन्न होती हैं।
क्रॉस-ब्राउज़र मिलान स्वाभाविक रूप से एक कम-कॉन्फ़िडेंस संक्रिया है और स्कोरिंग में इसे उसी रूप में माना जाता है।