- कई प्लेटफ़ॉर्म पर आयु सत्यापन प्रक्रिया को अपने-आप वयस्क के रूप में पास करा देने वाली स्क्रिप्ट
- Discord कंसोल में कोड पेस्ट करके चलाने पर, यह अपने-आप
/age-verification/verify API अनुरोध भेजता है और सत्यापन पूर्ण पेज पर ले जाता है
- Twitch, Kick, Snapchat जैसे अन्य प्लेटफ़ॉर्म पर भी QR कोड URL दर्ज करके इसी तरीके से सत्यापन संभव
- यह टूल k-id सिस्टम की face data processing संरचना का दुरुपयोग करके, असली चेहरा बिना भी वैध metadata जनरेट करता है
- AES-GCM encryption और predictive data structure की नकल करके verification प्रक्रिया पास करने का तरीका अपनाता है, और इसे global age verification विस्तार के अनुरूप बनाया गया है
Discord में सत्यापन प्रक्रिया
- Discord web app के developer console (F12) में एक विशेष script पेस्ट करके चलाने का तरीका
- script Discord के webpack module cache को निकालता है, internal API client ढूंढता है, और
/age-verification/verify endpoint पर अनुरोध भेजता है
- अनुरोध के परिणाम में मिले
verification_webview_url को age-verifier.kibty.town पर redirect करता है
- उपयोगकर्ता को captcha हल करने के बाद पेज पर “success” दिखने तक इंतज़ार करना होता है
- इस प्रक्रिया से Discord account adult verified स्थिति में दिखाया जाता है
अन्य प्लेटफ़ॉर्म (Twitch, Kick, Snapchat आदि) पर सत्यापन तरीका
- हर प्लेटफ़ॉर्म के आयु सत्यापन पेज पर ‘selfie’ विकल्प चुनें, और दिख रहा QR code URL कॉपी करें
- उस URL को
age-verifier.kibty.town के input box में पेस्ट करें और ‘verify’ बटन क्लिक करें
- इसके बाद सत्यापन प्रक्रिया अपने-आप चलती है और success message दिखता है
काम करने का सिद्धांत
- Discord द्वारा इस्तेमाल किया जाने वाला k-id age verification system चेहरे का वीडियो सर्वर पर भेजता नहीं है, बल्कि चेहरे से जुड़ा metadata और process details ही भेजता है
- इसी संरचना की वजह से, वैध दिखने वाला metadata बदलकर भेजने पर असली चेहरा बिना भी सत्यापन पास किया जा सकता है
- पहले amplitudes का k-id verifier सार्वजनिक होने के बाद, partner कंपनी faceassure ने verification मज़बूत किया था, लेकिन यह टूल नए तरीके से उसे बायपास करता है
तकनीकी विस्तृत चरण
- चरण 1: encryption parameters की नकल
- वैध अनुरोध से तुलना करने पर, गायब
encrypted_payload, auth_tag, timestamp, iv की पहचान की गई
- AES-GCM encryption में key को
nonce + timestamp + transaction_id से HKDF(SHA-256) द्वारा derive किया जाता है
- उसी संरचना को दोबारा बनाकर गायब parameters तैयार किए जाते हैं
- चरण 2: prediction data में हेरफेर
- encryption को पूरी तरह कॉपी करने पर भी असफलता मिलने के बाद, यह पता चला कि verification ‘prediction arrays’(outputs, primaryOutputs, raws) पर निर्भर है
raws data के आधार पर z-score से outlier हटाकर outputs और primaryOutputs बनाए जाते हैं
- इसके अलावा नीचे दी गई शर्तों की भी जाँच होती है
xScaledShiftAmt, yScaledShiftAmt मान सिर्फ दो विकल्पों में से एक हो सकते हैं
- media name (camera) वास्तविक device list से मेल खाना चाहिए
- state completion time timeline से मेल खाना चाहिए
- इन सभी प्रक्रियाओं को लागू करने वाला open source code सार्वजनिक है, और कोई भी इसे देख सकता है
सार्वजनिक रिलीज़ और निर्माण पृष्ठभूमि
- निर्माता ने xyzeva और Dziurwa, तथा पहले संबंधित काम करने वाले amplitudes को धन्यवाद दिया
- बताया गया है कि Discord मार्च में global age verification को पूरी तरह लागू करने वाला है, इसलिए इसके अनुरूप नई verification bypass विधि की पड़ताल की गई
1 टिप्पणियां
Hacker News की राय
सच में मज़बूत तरीका यह है कि असली webcam की जगह artificial video input बनाया जाए
मुझे नहीं लगता कि कोई platform इसे रोक पाएगा
अगर platform mobile phone की तरह spoof करना मुश्किल camera input भी मांगे, तब भी high-resolution screen के सामने camera रख देने से काम हो जाएगा
ऐसा cat-and-mouse game ज़्यादा देर नहीं चलेगा
अधूरा video selfie आधारित age verification तो उल्टा सबके लिए फ़ायदेमंद है
समझदार लोगों को driving licence या passport upload नहीं करना पड़ता, और platform के लिए users को बनाए रखना आसान हो जाता है
porn sites user accounts बनाकर tracking और ad revenue बढ़ा सकती हैं
politicians कह सकते हैं कि उन्होंने “age restriction policy लागू कर दी”, और parents निश्चिंत हो जाते हैं कि उनके बच्चे porn नहीं देख रहे
आखिर में सबकी जीत होती है
लगता है कि ऐसे verification तरीके आखिरकार उसी दिशा में जाएंगे
शायद Google ने Play Store-only apps को push करने की एक वजह यह भी रखी होगी कि ऐसी verifiable software chain बनाई जा सके
आखिरकार यह बस एक switch बदलने जितनी बात है
3D mapping के साथ हो तो सिर्फ screen दिखाने वाला trick काम नहीं करेगा
असली समस्या यह है कि Discord जैसी age verification services इसे गंभीरता से आज़माती ही नहीं हैं
मैं तो बस वह खेल खेलूँगा ही नहीं और platform इस्तेमाल करना बंद कर दूँगा
इस तरीके में तीन समस्याएँ हैं
यह reverse engineering का शानदार उदाहरण है, जो दिखाता है कि privacy से समझौता किए बिना verification करना कितना मुश्किल है
code public है, इसलिए arbitrary code execution वाली समस्या (#3) यहाँ लागू नहीं होती
अगर कंपनियाँ जवाब में और intrusive तरीके (#2) अपनाती हैं, तो users कभी भी दूसरे platform पर जा सकते हैं
मुझे यह काफ़ी चालाक आइडिया लगा
लगता है Discord ने age verification को बस इतना ढीला रखा है कि regulators से कह सके कि “हम बच्चों की सुरक्षा के लिए कदम उठा रहे हैं”
लेकिन अगर सरकारें सच में निगरानी करें, तो ऐसा approach ज़्यादा दिन नहीं टिकेगा
कुछ देश पहले ही ज़्यादा मज़बूत biometric verification मांग रहे हैं, और कुछ services mobile app आधारित verification की ओर जा रही हैं
साधारण JavaScript आधारित tricks धीरे-धीरे काम करना बंद कर देंगी
code चलाते समय इसे IIFE में wrap करने की सलाह है
macOS Safari में top-level await support नहीं है, इसलिए यह काम नहीं करता
संबंधित जानकारी के लिए caniuse.com/wf-top-level-await देखें
वह पहले से ही 5 साल पीछे है
मैंने कोशिश की तो https://age-verifier.kibty.town/webview?url=null पर redirect हो गया
और
{"error":"error parsing webview url"}संदेश दिखालगता है मेरा Discord account A/B test में है, इसलिए वह किसी दूसरे verification provider Persona का इस्तेमाल कर रहा है
search करने पर इसके बारे में और जानकारी मिल जाएगी
यह सच में काम करता है
मुझे Discord से “adult group के रूप में classify कर दिया गया” वाला message मिला
(narration) और उसी पल, मुझे एहसास हुआ कि मेरा account hack हो चुका है ;)
उम्मीद है 11 साल पुराने account के साथ कोई समस्या नहीं होगी, लेकिन अगर face या ID मांगी गई तो मैं बस account छोड़ दूँगा
समझ नहीं आता कि युवा पीढ़ी उन services से इतनी चिपकी क्यों रहती है जो उनके ख़िलाफ़ लगती हैं
क्या नापसंद platform पर बने रहने की सुविधा, विकल्प खोजने की मेहनत से सच में बड़ी है?
आज की युवा पीढ़ी के लिए terminal या file path जैसी अवधारणाएँ भी अपरिचित हैं
वे search तो कर सकते हैं, लेकिन खुद alternatives set up करना अलग बात है
सबसे बढ़कर, यह एहसास ही कम है कि कोई विकल्प मौजूद भी हो सकता है
Matrix जैसे open platforms में अभी भी features कम हैं, और Discord फ़िलहाल सबसे कम बुरा विकल्प है
मेरे दोस्त वहाँ हैं, इसलिए मैं भी वहीं हूँ
हर बार platform बदलने पर members कम हो जाते हैं और community टूट जाती है
“हल्की-सी मेहनत” असल में community को मार देने जैसा काम बन जाती है
किसी और platform पर जाने पर आख़िर में आप अकेले ही रह जाते हैं
सबको एक साथ move करवाना लगभग असंभव है
मैंने Discord में captcha पार कर लिया,
लेकिन
{"error":"failed to execute k-id privately action (status=404)"}जैसी error आईमैं साफ़ तौर पर adult हूँ, और ऐसी प्रक्रिया बिलकुल बेतुकी है
block भी कर दें तो मुझे फ़र्क नहीं पड़ता
संबंधित खबरों का सार
digital age verification का cat-and-mouse game बहुत बड़ा regulatory burden है
अगर इसे इतनी आसानी से bypass किया जा सकता है, तो platform सिर्फ regulatory checkbox भर रहे हैं,
और असली trust base बहुत कमज़ोर है
लेकिन कंपनियाँ उसे पसंद नहीं करतीं क्योंकि तब उन्हें verified adult user data नहीं मिलेगा
संबंधित जानकारी के लिए Google का Age Assurance Europe ब्लॉग देखें
ऐसे systems का मकसद पूरी तरह रोकना नहीं, बल्कि इतना friction जोड़ना है कि आम लोग आसानी से bypass न कर सकें