हर ब्राउज़र वेबसाइट को उस मशीन के बारे में कुछ सौ छोटी-छोटी बातें सौंप देता है जिस पर वह चल रहा है: स्क्रीन का आकार, फ़ॉन्ट सूची, ग्राफ़िक्स कार्ड, ऑडियो हिस्सा। मिलकर ये उस मशीन को इतना पक्का पहचान लेती हैं कि वहाँ से लॉग इन हुआ दूसरा अकाउंट भी वही आदमी मान लिया जाता है। एंटीडिटेक्ट ब्राउज़र इसीलिए है कि हर प्रोफ़ाइल किसी और मशीन जैसी दिखे। वह यह काम कैसे करता है, पूरा फ़र्क़ वहीं है, और ज़्यादातर प्रोडक्ट पेज यही हिस्सा छोड़ देते हैं।
फ़्री शुरू करेंवैल्यू पेज का कोई स्क्रिप्ट चलने से पहले ही C++ में लिख दी जाती है, बाद में Chrome पर इंजेक्ट नहीं की जाती।
चौड़ाई की माप, नाम से खोज और लोकल फ़ॉन्ट API - तीनों एक ही सूची से जवाब देते हैं, इसलिए तीनों मेल खाते हैं।
HTTP और SOCKS5 प्रमाणीकरण के साथ, आसपास कोई DNS लीक नहीं, टाइम ज़ोन उसी के देश से।
स्क्रीन, कोर, मेमोरी और ग्राफ़िक्स कार्ड सब एक ही मापी गई मशीन से आते हैं, कभी मिलाए नहीं जाते।
एक ही प्रोफ़ाइल हर बार खुलने पर वही कैनवस बनाती है। खिसकता फ़िंगरप्रिंट न होने से भी बुरा है।
उसी मशीन पर असली Chrome से मिलाकर मापा गया, डिज़ाइन से तर्क करके निकाला नहीं।
एंटीडिटेक्ट ब्राउज़र एक ही कंप्यूटर पर कई ब्राउज़र प्रोफ़ाइल चलाता है और हर एक को अपनी अलग पहचान देता है: अपना फ़िंगरप्रिंट, अपनी कुकीज़, अपनी प्रॉक्सी, डिस्क पर अपना फ़ोल्डर। इनमें से कुछ भी आपस में शेयर नहीं होता, इसलिए जो साइट प्रोफ़ाइल A को देखती है उसके पास उसे प्रोफ़ाइल B से जोड़ने का कोई रास्ता नहीं रहता।
फ़िंगरप्रिंट कोई एक वैल्यू नहीं है। यह उन जवाबों का पूरा सेट है जो ब्राउज़र उन सवालों पर देता है जो कोई भी पेज पूछ सकता है: User-Agent क्या कहता है, स्क्रीन कितनी बड़ी है, कितने CPU कोर बताए जाते हैं, कौन-से फ़ॉन्ट मिलते हैं, ग्राफ़िक्स ड्राइवर कौन-सी स्ट्रिंग लौटाता है, कैनवस पिक्सेल-दर-पिक्सेल क्या बनाता है। SigoLogin हर प्रोफ़ाइल के लिए ऐसी पंद्रह सतहें लिखता है, वही जिन पर पहचान का सारा बोझ टिका होता है।
ख़तरा किसी एक जवाब में नहीं है। वह मेल में है। जो मशीन अपने User-Agent में macOS बताती है और उसका WebGL रेंडरर Direct3D ड्राइवर का नाम लेता है, वह मशीन है ही नहीं, और जो मशीन है ही नहीं वह किसी आम मशीन से कहीं जल्दी पकड़ में आती है।
प्रॉक्सी वह पता बदलती है जहाँ से रिक्वेस्ट आती है। ब्राउज़र के अंदर वह कुछ नहीं बदलती। दो अलग प्रॉक्सी के पीछे बैठे दो अकाउंट फिर भी वही स्क्रीन, वही फ़ॉन्ट सूची, वही ग्राफ़िक्स कार्ड और वही कैनवस पिक्सेल बताते हैं, और उन्हें आपस में जोड़ने के लिए इतना काफ़ी है।
उल्टा भी सही है। जो प्रोफ़ाइल जकार्ता का टाइम ज़ोन बताती है जबकि उसका पता अमेरिका में है, वह किसी के फ़िंगरप्रिंट पढ़ने से पहले ही ख़ुद से उलट पड़ चुकी है। SigoLogin टाइम ज़ोन और भाषा प्रॉक्सी के अपने देश से लेता है, ताकि दोनों आपस में न टकराएँ।
ज़्यादातर एंटीडिटेक्ट ब्राउज़र आम Chrome ही हैं, जिनमें हर पेज पर JavaScript इंजेक्ट करके navigator, canvas और WebGL ओवरराइड किए जाते हैं। यह बनाने में सस्ता है और आसान जाँचों को पार कर जाता है। यह निशान भी छोड़ता है।
हमारे तरीके की क़ीमत सीधे कह देनी चाहिए: हम पूरा ब्राउज़र कंपाइल करते हैं, इसलिए Chrome के नए वर्ज़न तक पहुँचने में हमें मिनट नहीं, दिन लगते हैं, और कर्नेल कुछ मेगाबाइट नहीं, डाउनलोड करने को क़रीब 2 GB का है।
हर प्रोफ़ाइल को एक सीड से बना फ़िंगरप्रिंट मिलता है, इसलिए एक ही प्रोफ़ाइल हर बार खुलने पर बिल्कुल वही रहती है। सेशन-दर-सेशन खिसकता फ़िंगरप्रिंट कुछ भी न छिपाने से ज़्यादा शक पैदा करता है। हर वैल्यू किसी एक असली डिवाइस परिवार से आती है, और फ़ील्ड कभी दो मशीनों के बीच मिलाए नहीं जाते।
इंस्टॉल फ़ॉन्ट की सूची उन सबसे मज़बूत संकेतों में है जो कोई पेज पढ़ सकता है, और पेज इसे तीन तरह से गिनते हैं: टेक्स्ट कितना चौड़ा बनता है यह मापकर, फ़ॉन्ट को नाम से माँगकर, और लोकल फ़ॉन्ट API से। तीनों कर्नेल में छाने जाते हैं, इसलिए तीनों जवाब आपस में मेल खाते हैं।
Windows प्रोफ़ाइल क़रीब 300 फ़ॉन्ट बताती है, असली मशीनों पर मापे गए, किसी सूची से नक़ल किए नहीं। macOS का फ़ॉन्ट संग्रह उसी तरीके से मापने पर क़रीब 1,185 पर आता है। यहाँ एक पक्की सीमा है और हम उसे छिपाने के बजाय कह देना बेहतर समझते हैं: कर्नेल फ़ॉन्ट छिपा सकता है, बना नहीं सकता। जो फ़ॉन्ट ऑपरेटिंग सिस्टम हमेशा इंस्टॉल करता है उसे छिपाना ऐसी मशीन गढ़ देता है जो किसी के पास नहीं है, और इसीलिए यह सूची अंदाज़े से नहीं, मापकर बनाई जाती है।
कैनवस, ऑडियो और टेक्स्ट-रेक्टैंगल की रीडिंग में प्रोफ़ाइल के सीड से निकला तयशुदा नॉइज़ जोड़ा जाता है: एक प्रोफ़ाइल हमेशा वही पिक्सेल बनाती है, और अलग सीड अलग पिक्सेल बनाता है। WebGL और WebGPU एक ही कार्ड बताते हैं, क्योंकि पेज दोनों से पूछकर मिला सकता है। यह जाँच हमने तब जोड़ी जब एक बिल्ड मिला जिसमें WebGL तो GeForce RTX 3060 बता रहा था, पर WebGPU अडैप्टर डेवलपर मशीन की Intel चिप का नाम ले रहा था।
स्क्रीन का आकार, उपलब्ध ऊँचाई, पिक्सेल रेशियो, CPU कोर, बताई गई मेमोरी, टच पॉइंट, और माइक्रोफ़ोन, स्पीकर व कैमरे के नाम, सब एक ही डिवाइस परिवार से आते हैं। छोटी-छोटी बातें ही यहाँ फ़ैसला करती हैं। macOS पर Chrome थ्रेड नहीं, फ़िज़िकल कोर बताता है, और बताई गई मेमोरी की ऊपरी हद Chrome के वर्ज़न बदलने के साथ बदली है। इनमें से कोई एक भी ग़लत रखना ऐसा कंप्यूटर बयान करता है जो कोई बेचता ही नहीं।
WebRTC क्लासिक लीक है: प्रॉक्सी के पीछे होते हुए भी यह असली लोकल पता बता सकता है। प्रॉक्सी वाली प्रोफ़ाइल पर वह रास्ता बंद कर दिया जाता है, इसलिए असली पते के बाहर आने की जगह ही नहीं बचती — हम लीक को प्रॉक्सी का भेस पहनाते नहीं, बंद करते हैं। बिना प्रॉक्सी वाली प्रोफ़ाइल बहाना करने के बजाय सच बताती है, क्योंकि बहुत कम असली मशीनों में WebRTC बंद होता है और उसे बंद करना ख़ुद एक पहचान है। टाइम ज़ोन और स्वीकार की गई भाषाएँ मशीन की सेटिंग नहीं, प्रॉक्सी के देश के पीछे चलती हैं।
हैंडशेक HTML के पहले बाइट से भी पहले होता है और पेज का कोई स्क्रिप्ट उस तक पहुँच ही नहीं सकता, ठीक इसीलिए उसे बदलना काम का है, और ठीक इसीलिए इंजेक्ट किए JavaScript पर बना टूल उसे छू नहीं सकता। यह अभी बन रहा है और मौजूदा रिलीज़ में नहीं है। हम इसे यहाँ अधूरा लिखना बेहतर समझते हैं, बजाय इसके कि आप मान लें कि हो चुका है।
हम नहीं चाहते कि आप डिज़ाइन पर यूँ ही भरोसा करें। हर सतह उसी मशीन पर असली Chrome से मिलाकर मापी जाती है, और प्रोफ़ाइल सार्वजनिक डिटेक्शन साइटों से गुज़ारी जाती हैं।
जहाँ दोनों में फ़र्क़ निकलता है, वह फ़र्क़ ठीक किया जाता है या लिख दिया जाता है - गोल नहीं किया जाता। इस पेज पर जो आपको नहीं मिलेगा वह है स्कोर: उन साइटों के बताए नंबर हर बार बदलते हैं और एक-दूसरे से उलटे पड़ते हैं, इसलिए यहाँ कोई नंबर छापना किसी और के एल्गोरिदम के बारे में वादा करना होगा। वे असल में जिस काम की हैं वह है हमारी ही ख़राबियाँ ढूँढ़ना।
मापना ही हमारी अपनी ग़लतियाँ भी पकड़ता है। फ़ॉन्ट फ़िल्टर जब पहली बार निकला, एक डिटेक्शन साइट पलट गई: जो प्रोफ़ाइल भरोसेमंद पढ़ी जा रही थी वह संदिग्ध पढ़ी जाने लगी। वजह यह थी कि फ़िल्टर ऐसे ग्यारह फ़ॉन्ट छिपा रहा था जो ख़ुद Windows 11 के साथ आते हैं, इसलिए प्रोफ़ाइल ऐसी Windows मशीन बयान कर रही थी जो हो ही नहीं सकती। सूची ठीक करते ही यह साफ़ हो गया। यह बात कोई तर्क नहीं ढूँढ़ पाता; सिर्फ़ चलाकर देखने से मिली।
फ़िंगरप्रिंट कई संकेतों में से एक है, और बाक़ी के बारे में साफ़ कह देना उस वादे से ज़्यादा क़ीमती है जो हम निभा नहीं सकते।
यह सॉफ़्टवेयर एक ब्राउज़र है, और अपने ही कंप्यूटर पर कई ब्राउज़र प्रोफ़ाइल चलाना अपने आप में ग़ैरक़ानूनी नहीं है। नियम इस बात पर लगते हैं कि आप उनसे करते क्या हैं: जहाँ आप रहते हैं वहाँ का क़ानून, और जिन साइटों पर जाते हैं उनकी शर्तें। धोखाधड़ी या किसी और का रूप धरने में हम मदद नहीं करते, और हमारी शर्तों में यह लिखा है।
नहीं। Chrome की प्रोफ़ाइल कुकीज़ और हिस्ट्री अलग रखती हैं, जिससे सबसे साफ़ दिखने वाली कड़ी हट जाती है, लेकिन हर प्रोफ़ाइल वही स्क्रीन, वही फ़ॉन्ट, वही ग्राफ़िक्स कार्ड और वही कैनवस पिक्सेल बताती है, क्योंकि सब एक ही मशीन पर चलती हैं। अलग स्टोरेज अलग पहचान नहीं है।
प्रॉक्सी या VPN सिर्फ़ वह पता बदलती है जहाँ से रिक्वेस्ट आती है, और बस; ब्राउज़र फिर भी वही कंप्यूटर बयान करता रहता है। दोनों एक-दूसरे की जगह नहीं, एक-दूसरे के साथ चलते हैं। SigoLogin हर प्रोफ़ाइल के लिए एक प्रॉक्सी माँगता है, और टाइम ज़ोन तथा भाषा उसी प्रॉक्सी के देश से लेता है ताकि वे पते से न टकराएँ।
तीन प्रोफ़ाइल फ़्री, वही फ़िंगरप्रिंट इंजन जो पेड प्लान में है। फ़्री प्लान की सीमा इस बात में है कि कितनी प्रोफ़ाइल मिलती हैं, इस बात में नहीं कि वे कितनी अच्छी तरह बचाई जाती हैं। पेड प्लान प्रोफ़ाइल की संख्या और सक्रिय किए जा सकने वाले डिवाइस की संख्या बढ़ाते हैं।
प्रोफ़ाइल आपकी अपनी डिस्क पर फ़ोल्डर हैं, और उनके अंदर की कुकीज़, सहेजे गए लॉगिन और हिस्ट्री वहीं रहती हैं। ऐप प्रबंधन के कुछ ही फ़ील्ड भेजता है ताकि आप अपनी प्रोफ़ाइल इस साइट पर देख सकें, साथ में एक एरर लॉग। टीम के किसी साथी के साथ प्रोफ़ाइल शेयर करना इकलौता अपवाद है, क्योंकि वह किसी और मशीन पर बैठा है। प्राइवेसी पेज हर फ़ील्ड का नाम गिनाता है।
Windows 10 और 11, और macOS 13 या उसके बाद, 64-बिट। Intel और Apple silicon दोनों के लिए बिल्ड हैं। Linux शुरू ही नहीं हुआ। प्लैटफ़ॉर्म पेज बताता है कि क्या है और क्या नहीं।
यह पेज जो सवाल उठाता है, उनके लंबे जवाब।
ऐसे असिस्टेंट से पूछिए जिसका जवाब में कोई फ़ायदा नहीं है।
Windows पर इंस्टॉल कीजिए, ऐप खोलिए, और वह बटन दबाइए जो उसे यहाँ साइन इन कर देता है। कर्नेल एक ही बार डाउनलोड होता है।
नाम दीजिए और एक प्रॉक्सी जोड़िए। फ़िंगरप्रिंट एक सीड से बनता है और उसके बाद वही बना रहता है।
हर बार खुलने पर वही पहचान दोबारा इस्तेमाल होती है। प्रोफ़ाइल शेयर कीजिए तो टीम का साथी अपनी मशीन पर वही डिवाइस खोलता है।
Windows 10 और 11, या फिर macOS 13 या उसके बाद, 64-बिट। शुरू करने के लिए कार्ड नहीं चाहिए।