व्यवहार परत
प्रोग्राम इस बात से पकड़ा जाता है कि वह कैसे चलता है, न कि क्या करता है
हर विज़िट गति पैदा करती है: कर्सर बटन की ओर बढ़ता है, कुंजियाँ दबती और छूटती हैं, पेज स्क्रॉल होता है, स्क्रीन छुई जाती है। TRACIO इस गति को लगातार स्कोर करता है और बताता है कि वह किसी हाथ से आई या सॉफ़्टवेयर से।
हम क्या देखते हैं
इनपुट के चार चैनल, और भार उस डिवाइस के हिसाब से जो विज़िटर के हाथ में है
हर चैनल पहले अलग से स्कोर होता है, फिर सब मिलाए जाते हैं। भार तय नहीं हैं — वे उस डिवाइस के पीछे चलते हैं जिसे विज़िटर असल में इस्तेमाल कर रहा है। फ़ोन पर टच वर्डिक्ट संभालता है और कर्सर का न होना कोई मायने नहीं रखता। डेस्कटॉप पर कर्सर सबसे मज़बूत चैनल है और टच स्ट्रीम का न होना बिल्कुल अपेक्षित है।
माउस और कर्सर
डेस्कटॉप पर प्रमुखरफ़्तार और उसमें कितना उतार-चढ़ाव है, हर दूरी पर दिशा बदलने की संख्या, लक्ष्य की ओर पथ कैसे मुड़ता है, क्लिक से पहले की गति और ब्रेक, और इंसानी हाथ की वह बारीक कँपकँपी जिसे स्क्रिप्ट से चलाई गई गति दोहरा नहीं पाती।
कीबोर्ड की लय
सिर्फ़ टाइमिंगहर कुंजी कितनी देर दबी रही, एक कुंजी छूटने और अगली दबने के बीच का अंतराल, ओवरलैप जब अगली कुंजी पिछली के उठने से पहले ही दब जाए, झोंके और ठहराव, सुधार और बैकस्पेस। सिर्फ़ टाइमिंग — अक्षर कभी नहीं। नीचे प्राइवेसी वाला भाग देखें।
स्क्रॉल
दोनों फ़ॉर्म फ़ैक्टरगति में उतार-चढ़ाव, दिशा कितनी बार पलटती है, वह गति-जड़ता जो भौतिक झटके की तरह धीमी पड़ती है, और वे ठहराव जो स्क्रीन पर मौजूद टेक्स्ट की मात्रा से मेल खाते हैं।
टच
मोबाइल पर प्रमुखसंपर्क क्षेत्र और वह टैप के दौरान कैसे बदलता है, दबाव जहाँ डिवाइस उसे बताता है, उँगली का वह हल्का खिसकाव जो दो बार एक ही पिक्सेल पर नहीं पड़ता, और कई संपर्कों के बीच की टाइमिंग।
वही सेशन, दो अलग तरीक़ों से तौला गया
भार माउस और कीबोर्ड उठाते हैं। यहाँ टच स्ट्रीम की अपेक्षा ही नहीं है, इसलिए उसका न होना विज़िटर को कुछ भी महँगा नहीं पड़ता।
भार टच और डिवाइस मोशन उठाते हैं। फ़ोन पर बिना किसी कर्सर मूवमेंट वाली विज़िट सामान्य है, संदिग्ध नहीं।
अनुपस्थिति सबूत नहीं है
जो चैनल डिवाइस ने कभी दिया ही नहीं, उसे विज़िटर के खिलाफ़ गिनने के बजाय स्कोर से बाहर रखा जाता है। यह बात स्पष्ट लगती है, और यही वह सबसे आम तरीक़ा है जिससे कच्चा व्यवहार-स्कोरिंग असली ग्राहकों को संदिग्ध बना देता है: फ़ोन पर माउस नहीं होता, स्क्रीन रीडर इस्तेमाल करने वाले का कर्सर-पथ चिकना नहीं होता, और इनमें से कोई भी बात बॉट होने का संकेत नहीं है।
सबूत
तीन चीज़ें जो सॉफ़्टवेयर करता है और हाथ नहीं कर सकते
ये पूरे नियम-सेट के बजाय उदाहरण हैं, पर इनसे उस सबूत का आकार दिखता है जिस पर हम काम करते हैं। हर एक हाथ के लिए भौतिक रूप से असंभव है, और हर एक पर ऐसा गेट लगा है कि एक अकेला अजीब पल कभी वर्डिक्ट न बन जाए।
मेट्रोनोम जैसी की-होल्ड
हम क्या मापते हैं
पूरे इनपुट में हर कुंजी लगभग ठीक उतने ही मिलीसेकंड दबी रहती है।
हाथ ऐसा क्यों नहीं कर सकता
उँगली कुंजी पर कितनी देर टिकेगी यह इस पर निर्भर करता है कि कुंजी कौन-सी है, वह किस हाथ की है, और वह हाथ कितना थका हुआ है। इंसानी होल्ड-समय बिखरा हुआ होता है। इंजेक्ट की गई कीस्ट्रोक किसी स्थिरांक से बनती हैं, और यह बिखराव लगभग शून्य पर सिमट जाता है।
इसे ईमानदार क्या रखता है
नियम गिनती में तभी आता है जब विंडो में पर्याप्त कीस्ट्रोक हों। चार अक्षर का इनपुट नमूना नहीं है, और उसे नमूने की तरह स्कोर भी नहीं किया जाता।
टेलीपोर्ट करने वाले क्लिक
हम क्या मापते हैं
क्लिक ऐसे कंट्रोल पर पड़ता है जहाँ तक कर्सर कभी गया ही नहीं — पॉइंटर बस उन निर्देशांकों पर प्रकट होता है और चल पड़ता है।
हाथ ऐसा क्यों नहीं कर सकता
व्यक्ति लक्ष्य की ओर बढ़ता है: पथ मुड़ता हुआ आता है, अंत के पास रफ़्तार गिरती है, और दबाने से पहले आमतौर पर एक क्षण का ठहराव होता है। ऑटोमेशन निर्देशांक सेट करके इवेंट भेज देता है; कोई पहुँच नहीं होती, क्योंकि भौतिक रूप से कुछ हिला ही नहीं।
इसे ईमानदार क्या रखता है
अकेला टेलीपोर्ट क्लिक कीबोर्ड-नेविगेशन या ट्रैकपैड का सामान्य नतीजा हो सकता है। वह तभी गिना जाता है जब ऐसे क्लिक उस सेशन के अधिकांश क्लिक हों और सेशन में जाँचने लायक़ पर्याप्त क्लिक हुए हों।
छिपे हुए टैब में टाइपिंग
हम क्या मापते हैं
कीस्ट्रोक तब भी आते रहते हैं जब पेज बैकग्राउंड में है और उसे कभी सामने लाया ही नहीं गया।
हाथ ऐसा क्यों नहीं कर सकता
जिस पेज को व्यक्ति देख ही नहीं रहा, उसमें वह टाइप नहीं कर सकता। फ़ार्म सॉफ़्टवेयर दर्जनों टैब एक साथ चलाता है और फ़ॉर्म भरना शुरू करने से पहले हर टैब को फ़ोकस करने की ज़हमत नहीं उठाता।
इसे ईमानदार क्या रखता है
टैब बदलने के ठीक उसी क्षण का एक इवेंट ब्राउज़र इवेंट्स की आपसी दौड़ है, सबूत नहीं। यह तब गिना जाता है जब इनपुट बार-बार आए और पेज फिर भी कभी दिखाई न दिया हो।
प्राइवेसी
हम लय मापते हैं। टेक्स्ट दोबारा नहीं बना सकते।
व्यवहार संग्रह पेज पर हर जगह चलता है, पासवर्ड, ईमेल और कार्ड नंबर फ़ील्ड में भी। यह सोच-समझकर लिया गया फ़ैसला है, और इसे किसी नीति दस्तावेज़ में दबा देने के बजाय पूरा समझाया जाना चाहिए।
संवेदनशील फ़ील्ड ही क्यों सबसे ज़्यादा मायने रखते हैं
क्रेडेंशियल स्टफ़िंग, कार्ड टेस्टिंग और अकाउंट टेकओवर — सब ठीक उन्हीं इनपुट के भीतर होते हैं। जो डिटेक्टर वहाँ खुद को बंद कर लेता है, वह ठीक उसी जगह अंधा है जहाँ हमला असल में रहता है। पहले यही होता था: संवेदनशील फ़ील्ड में संग्रह पूरी तरह बंद रहता था, इसलिए विज़िट के सबसे जोखिम भरे सेकंडों से एक भी माप नहीं मिलता था।
क्या रखा जाता है
टाइमिंग। कुंजी कब दबी, कितनी देर दबी रही, अगली तक कितना समय लगा, दो दबावों में ओवरलैप था या नहीं। हाथ और जनरेटर में फ़र्क करने के लिए इतना काफ़ी है, और डिटेक्टर ने कभी इससे ज़्यादा माँगा भी नहीं।
क्या नहीं रखा जाता
कौन-सी कुंजी थी। संवेदनशील फ़ील्ड के भीतर हर कीस्ट्रोक की पहचान ब्राउज़र में ही, पेज से कुछ भी बाहर जाने से पहले, एक मोटे विकल्प-मान से बदल दी जाती है — मुट्ठी भर बकेट में से एक, अक्षर नहीं। वापस लौटने का कोई रास्ता नहीं है। हमारे सर्वर तक पहुँचने वाली स्ट्रीम में न टेक्स्ट होता है, न टेक्स्ट का कोई हिस्सा, और न ही कुछ ऐसा जिससे टेक्स्ट दोबारा जोड़ा जा सके।
इसका जो नतीजा हमें संभालना पड़ा
चूँकि उन फ़ील्ड में कुंजी की पहचान सचमुच मिट जाती है, इसलिए हर वह नियम जो कुंजियों में फ़र्क करने पर टिका है, उन कीस्ट्रोक को अपनी गिनती से बाहर रखता है — वरना सामान्य पासवर्ड ऐसा दिखता जैसे एक ही कुंजी बार-बार दबाई गई हो, और हम लोगों को सही टाइप करने के लिए फ़्लैग कर बैठते। टाइमिंग पर आधारित नियम इससे अछूते हैं और पूरी स्ट्रीम पर काम करते रहते हैं।
संग्रह बंद करने से सामग्री की रक्षा कभी हुई ही नहीं
दोनों में से किसी भी डिज़ाइन में अक्षर कभी इकट्ठे नहीं किए गए। पुरानी सामूहिक रोक ने सिर्फ़ सबूत हटाए — उसने डिटेक्टर को अंधा किया, किसी की प्राइवेसी नहीं बढ़ाई। विकल्प-मान वाला तरीक़ा आपके टेक्स्ट के बारे में ठीक वही गारंटी बनाए रखता है और डिटेक्टर को उसके माप लौटा देता है। मज़बूत डिटेक्शन और बेहतर प्राइवेसी एक ही फ़ैसले से निकले, जो इतना दुर्लभ है कि साफ़-साफ़ कहने लायक़ है।
नियम कैसे रिलीज़ होते हैं
नया नियम पहले अंधेरे में चलता है, तभी उसे वर्डिक्ट छूने की इजाज़त मिलती है
डिटेक्शन उसी क्षण बिगड़ने लगती है जब वह सबूत के बिना चतुर हो जाती है। हर व्यवहार-नियम पहले शैडो में जोड़ा जाता है: उसे लाइव प्रोडक्शन ट्रैफ़िक पर परखा जाता है और उसका नतीजा दर्ज होता है, पर जो स्कोर किसी को दिखता है उसमें उसका कोई योगदान नहीं होता।
शैडो में रिलीज़
नियम पहले दिन से ही असली ट्रैफ़िक पर चलता है। उसका आउटपुट सिर्फ़ एनालिटिक्स तक जाता है — नियम जुड़ने भर से किसी ग्राहक का वर्डिक्ट नहीं हिलता।
दोनों आबादियों पर मापा गया
हम देखते हैं कि वह उन सेशनों पर कितनी बार चलता है जिन्हें स्वतंत्र रूप से इंसानी माना गया, और उन पर कितनी बार जिन्हें स्वतंत्र रूप से स्वचालित माना गया — और यह इतने लाइव ट्रैफ़िक पर कि आँकड़े का मतलब बने।
दो थ्रेशोल्ड तय करते हैं
उसे कम से कम दस गुना अंतर दिखाना होता है — यानी लोगों की तुलना में ऑटोमेशन पर कम से कम दस गुना अधिक बार चलना — और लाइव इंसानी सेशनों पर उसकी फ़ायरिंग दर 0.5% से नीचे रहनी चाहिए।
प्रमोट किया गया, या अंधेरे में ही छोड़ा गया
जो नियम दोनों गेट पार करता है उसे स्कोर में भार मिलता है। जो नहीं करता वह शैडो में रहता है या पूरी तरह हटा दिया जाता है। प्रमोशन एक सोचा-समझा, समीक्षित बदलाव है — कुछ भी अपने आप चालू नहीं होता।
यही आपको उस डिटेक्टर से बचाता है जो रातोंरात चतुर होकर आपके अपने ग्राहकों को लौटाना शुरू कर दे। किसी को शुक्रवार दोपहर कोई विचार आ गया, इससे आपकी फ़ॉल्स-पॉज़िटिव दर नहीं हिलती।
आपको क्या मिलता है
तीन फ़ील्ड, आइडेंटिफ़िकेशन इवेंट के साथ ही
व्यवहार वर्डिक्ट बाक़ी इवेंट के साथ ही आता है — न दूसरी कॉल, न पोलिंग, न कोई अलग एंडपॉइंट जोड़ना।
इवेंट का अंश
{
"visitorId": "X7fh2Hg9LkMn3pQr",
"behavior": {
"score": 87.4,
"verdict": "human",
"confidence": 0.82
}
}Business प्लान और उससे ऊपर उपलब्ध। वेबहुक में भेजा जाता है और Data API से भी लिया जा सकता है।
व्यवहार ब्लॉक एक सिग्नल है, कार्रवाई नहीं। वह अपने आप कुछ भी ब्लॉक नहीं करता — आप उसे बाक़ी इवेंट और अपनी नीति के साथ मिलाते हैं, और फ़ैसला वहीं होना चाहिए।
सीमाएँ
व्यवहार आपको क्या नहीं बताता
व्यवहार एक सवाल का जवाब अच्छी तरह देता है: इंसान या प्रोग्राम। वह “कौन-सा इंसान” का जवाब नहीं देता, और हम उसे ऐसा बताकर बेचते भी नहीं।
यह पहचान का सिग्नल नहीं है
हम यह दावा नहीं करते कि टाइपिंग या माउस से लौटते हुए व्यक्ति को पहचान लेते हैं। हमने इसे लाइव ट्रैफ़िक पर मापा: एक ही व्यक्ति को उसके दो ब्राउज़रों के बीच मिलाने का नतीजा संयोग से बेहतर नहीं निकला। जो भी वेंडर “यूज़र को पहचानने वाली बिहेवियरल बायोमेट्रिक्स” बेचता है, उससे यही आँकड़ा प्रकाशित करने को कहा जाना चाहिए।
यह आइडेंटिफ़िकेशन की जगह नहीं लेता
डिवाइस कौन है, यह डिवाइस और ब्राउज़र परत से आता है। व्यवहार बताता है कि उस डिवाइस को किस तरह का कर्ता चला रहा है। दोनों अलग सवालों के जवाब देते हैं और एक दूसरे की जगह नहीं ले सकता।
इसे काम करने के लिए इनपुट चाहिए
जो विज़िटर आकर दो सेकंड में चला जाए, वह स्कोर करने लायक़ लगभग कुछ नहीं छोड़ता। वहाँ ईमानदार आउटपुट कम भरोसे के साथ “uncertain” है — वर्डिक्ट का लिबास पहनाया गया अंदाज़ा नहीं।
अक्सर पूछे जाने वाले प्रश्न
अपने ही ट्रैफ़िक पर व्यवहार वर्डिक्ट देखिए
एजेंट इंस्टॉल कीजिए, हर आइडेंटिफ़िकेशन इवेंट के साथ स्कोर आते हुए देखिए, और खुद तय कीजिए कि उसकी क़ीमत क्या है।