पर्यावरण को सुरक्षित रखें

Google, एपीआई और सेवाओं का एक सेट उपलब्ध कराता है. इससे यह पता लगाने में मदद मिलती है कि आपका ऐप्लिकेशन, सुरक्षित और भरोसेमंद एनवायरमेंट में चल रहा है या नहीं. Play Integrity API, इस सेट का अहम हिस्सा है. इसकी मदद से, यह पता लगाया जा सकता है कि इंटरैक्शन सही हैं या नहीं. इसके लिए, यह एपीआई, जोखिम भरे और धोखाधड़ी वाले इंटरैक्शन का पता लगाता है. Play Integrity API, अब ऐप्लिकेशन और डिवाइस की इंटिग्रिटी के साथ-साथ, ऐक्सेस और सुलभता से जुड़े जोखिम, Google Play Protect, और डिवाइस पर हाल ही में की गई गतिविधि के बारे में भी जानकारी देता है. Android प्लैटफ़ॉर्म, धोखाधड़ी रोकने की अपनी रणनीति को और मज़बूत करने के लिए, खास स्थितियों के लिए एपीआई उपलब्ध कराता है. ये एपीआई, आपके ऐप्लिकेशन के लिए काम के हो सकते हैं.

Play Integrity API

Play Integrity API की सुविधाएं

Play Integrity API की मदद से, यह जाना जा सकता है कि आपका ऐप्लिकेशन जिस डिवाइस पर चल रहा है वह कितना सुरक्षित है. इससे आपको यह पक्का करने में मदद मिलती है कि संवेदनशील जानकारी को सही उपयोगकर्ता ऐक्सेस कर रहा है.

इसकी मदद से, यह पता लगाया जा सकता है कि इंटरैक्शन और सर्वर के अनुरोध, भरोसेमंद एनवायरमेंट में मौजूद आपके ऐप्लिकेशन की असल बाइनरी से किए गए हैं या नहीं:

  • ऐप्लिकेशन बाइनरी सही है या नहीं: इससे यह पता चलता है कि आपका इंटरैक्शन, आपकी उस असल बाइनरी से हो रहा है या नहीं जिसे Google Play ने मंज़ूरी दी है.
  • ऐप्लिकेशन या गेम, Play से इंस्टॉल किया गया है या नहीं: इससे आपको पता चलता है कि मौजूदा उपयोगकर्ता खाते के लिए लाइसेंस दिया गया है या नहीं. इसका मतलब है कि या तो उपयोगकर्ता ने Google Play से ऐप्लिकेशन या गेम इंस्टॉल किया है या उसके लिए पैसे चुकाए हैं.
  • Android डिवाइस भरोसेमंद है या नहीं: इससे आपको यह पता चलता है कि आपका ऐप्लिकेशन, Google Play services वाले किसी भरोसेमंद Android डिवाइस पर चल रहा है या नहीं.
  • ऐसा मैलवेयर जिसके बारे में जानकारी नहीं है: इससे आपको यह पता चलेगा कि क्या डिवाइस में Google Play Protect की सुविधा चालू है और क्या उसे डिवाइस पर जोखिम भरे या खतरनाक ऐप्लिकेशन मिले हैं.
  • अन्य ऐप्लिकेशन से ऐक्सेस करने का जोखिम कम है या नहीं: इससे आपको यह पता चलेगा कि क्या आपके डिवाइस में ऐसे कोई दूसरे ऐप्लिकेशन चल रहे हैं जो स्क्रीन कैप्चर कर सकते हैं या डिवाइस को कंट्रोल कर सकते हैं. साथ ही, यह भी पता चलेगा कि क्या वे आपके ऐप्लिकेशन में इनपुट को कंट्रोल कर सकते हैं.

धोखाधड़ी को कम करने में यह सुविधा कैसे मदद करती है

जब कोई उपयोगकर्ता आपके ऐप्लिकेशन में कोई ज़रूरी कार्रवाई करता है, तो Play Integrity API को कॉल किया जा सकता है. अगर ऐसा नहीं किया जाता है, तो आपके ऐप्लिकेशन का बैकएंड सर्वर यह तय कर सकता है कि हमलों और धोखाधड़ी से बचने के लिए क्या करना चाहिए. उदाहरण के लिए, उपयोगकर्ता की पहचान की पुष्टि करने के लिए, अतिरिक्त जानकारी का अनुरोध किया जा सकता है या संवेदनशील सुविधाओं को ऐक्सेस करने की अनुमति नहीं दी जा सकती.

Play Integrity API के फ़ैसले का फ़्लो

ऐप्लिकेशन को ऐक्सेस करने से जुड़ा जोखिम

ऐप्लिकेशन को ऐक्सेस करने से जुड़े जोखिम की जानकारी देने वाली सुविधा, आपको यह आकलन करने में मदद करती है कि किसी डिवाइस पर मौजूद अन्य ऐप्लिकेशन, आपका ऐप्लिकेशन चलने के दौरान स्क्रीन देख और कैप्चर कर सकते हैं या नहीं. साथ ही, यह भी आकलन करने में मदद करती है कि वे सुलभता की अनुमतियों का इस्तेमाल करके, आपके ऐप्लिकेशन को ऐक्सेस कर सकते हैं या नहीं. सुलभता की अनुमति वाले पुष्टि किए गए ऐप्लिकेशन, इन नतीजों में शामिल नहीं होते. ऐप्लिकेशन को ऐक्सेस करने से जुड़े जोखिम की जानकारी देने वाली सुविधा, डेवलपर को अपने ऐप्लिकेशन को सुरक्षित रखने में मदद करती है. साथ ही, यह सुविधा, उपयोगकर्ता की निजता को भी बनाए रखती है. ऐसा इसलिए, क्योंकि अनुरोध करने वाले ऐप्लिकेशन को इंस्टॉल किए गए ऐप्लिकेशन की पहचान नहीं मिलती. साथ ही, नतीजे को उपयोगकर्ता या डिवाइस की पहचान से नहीं जोड़ा जाता.

फ़ोन का स्क्रीनशॉट, जिसमें उपयोगकर्ता को कुछ ऐप्लिकेशन बंद करने के लिए कहा जा रहा है.

इस साझेदारी की वजह से, हमें ऐसे सिग्नल मिल पाते हैं जिनकी मदद से, अपने ग्राहकों को बेहतर तरीके से सुरक्षा दी जा सकती है.
—Nubank, अर्ली ऐक्सेस पार्टनर

ऐप्लिकेशन को ऐक्सेस करने से जुड़े जोखिम के अलग-अलग लेवल होते हैं:

  • स्क्रीन कैप्चर करने की अनुमति का मतलब है कि ऐसे अन्य ऐप्लिकेशन चल रहे हैं जो स्क्रीन कैप्चर कर सकते हैं.
  • डिवाइस को कंट्रोल करने की अनुमति का मतलब है कि ऐसे अन्य ऐप्लिकेशन चल रहे हैं जो डिवाइस को कंट्रोल कर सकते हैं. इसलिए, वे स्क्रीन कैप्चर करने के साथ-साथ, आपके ऐप्लिकेशन में इनपुट को भी कंट्रोल कर सकते हैं.

ऐप्लिकेशन को ऐक्सेस करने से जुड़े जोखिम की जानकारी देने वाली सुविधा को लागू करना

अपने ऐप्लिकेशन या गेम में, ज़्यादा वैल्यू वाली या संवेदनशील कार्रवाइयों की पहचान करें, ताकि उन्हें सीधे तौर पर ऐक्सेस करने से रोकने के बजाय, Play Integrity API की मदद से सुरक्षित किया जा सके. जब मुमकिन हो, तो ज़्यादा वैल्यू वाली कार्रवाइयों को आगे बढ़ने की अनुमति देने से पहले, जोखिम भरे ट्रैफ़िक को चुनौती दें. उदाहरण के लिए, जब ऐप्लिकेशन को ऐक्सेस करने से जुड़े जोखिम की जानकारी से यह पता चलता है कि कोई ऐसा ऐप्लिकेशन चल रहा है जो स्क्रीन कैप्चर कर सकता है, तो उपयोगकर्ता से उन ऐप्लिकेशन को बंद या अनइंस्टॉल करने के लिए कहें जो स्क्रीन कैप्चर कर सकते हैं. इसके बाद ही, उन्हें उस सुविधा को ऐक्सेस करने की अनुमति दें जिसे आपको सुरक्षित रखना है.

इस टेबल में, नतीजों के कुछ उदाहरण दिए गए हैं:

ऐप्लिकेशन को ऐक्सेस करने से जुड़े जोखिम की जानकारी देने वाले नतीजे का उदाहरण परिभाषा
appsDetected:
["KNOWN_INSTALLED"]
डिवाइस पर सिर्फ़ वे ऐप्लिकेशन इंस्टॉल हैं जिन्हें Google Play ने मंज़ूरी दी है या जिन्हें डिवाइस बनाने वाली कंपनी ने सिस्टम के पार्टिशन पर पहले से लोड किया है. डिवाइस पर ऐसे कोई ऐप्लिकेशन नहीं चल रहे हैं जिनकी वजह से स्क्रीन कैप्चर करने, डिवाइस को कंट्रोल करने या ओवरले दिखाने से जुड़े नतीजे मिलें.
appsDetected:
["KNOWN_INSTALLED",
"UNKNOWN_INSTALLED",
"UNKNOWN_CAPTURING"]
डिवाइस पर, Google Play से इंस्टॉल किए गए ऐप्लिकेशन या डिवाइस बनाने वाली कंपनी ने सिस्टम के पार्टिशन पर पहले से लोड किए गए ऐप्लिकेशन मौजूद हैं. डिवाइस पर अन्य ऐप्लिकेशन भी चल रहे हैं. साथ ही, उनके पास ऐसी अनुमतियां हैं जिनका इस्तेमाल, स्क्रीन देखने या अन्य इनपुट और आउटपुट कैप्चर करने के लिए किया जा सकता है.
appsDetected:
["KNOWN_INSTALLED",
"KNOWN_CAPTURING",
"UNKNOWN_INSTALLED",
"UNKNOWN_CONTROLLING"]
डिवाइस पर Play या सिस्टम के ऐसे ऐप्लिकेशन चल रहे हैं जिनके पास ऐसी अनुमतियां हैं जिनका इस्तेमाल, स्क्रीन देखने या अन्य इनपुट और आउटपुट कैप्चर करने के लिए किया जा सकता है. डिवाइस पर अन्य ऐप्लिकेशन भी चल रहे हैं. साथ ही, उनके पास ऐसी अनुमतियां हैं जिनका इस्तेमाल, डिवाइस को कंट्रोल करने और आपके ऐप्लिकेशन में सीधे तौर पर इनपुट को कंट्रोल करने के लिए किया जा सकता है.
appAccessRiskVerdict: {} ऐप्लिकेशन को ऐक्सेस करने से जुड़े जोखिम की जांच नहीं की गई, क्योंकि एक ज़रूरी शर्त पूरी नहीं हुई थी. उदाहरण के लिए, डिवाइस भरोसेमंद नहीं था.

Play Protect सिग्नल

Play Protect सिग्नल से आपके ऐप्लिकेशन को यह पता चलता है कि Play Protect की सुविधा चालू है या नहीं. साथ ही, यह भी पता चलता है कि Play Protect को डिवाइस पर नुकसान पहुंचाने वाले ऐप्लिकेशन मिले हैं या नहीं.

environmentDetails:{
  playProtectVerdict: "NO_ISSUES"
}

अगर आपके ऐप्लिकेशन या उपयोगकर्ताओं के डेटा के लिए मैलवेयर एक बड़ी समस्या है, तो इस नतीजे की जांच करें. साथ ही, अपने उपयोगकर्ताओं से कहें कि वे आगे बढ़ने से पहले, Play Protect की सुविधा चालू करें या नुकसान पहुंचाने वाले ऐप्लिकेशन हटाएं.

Play Protect चालू करने का डायलॉग

playProtectVerdict की वैल्यू इनमें से कोई एक हो सकती है:

फ़ैसला जानकारी सुझाई गई कार्रवाई

NO_ISSUES

Play Protect चालू है और उसे डिवाइस पर ऐप्लिकेशन से जुड़ी कोई समस्या नहीं मिली है. डिवाइस पर.

Play Protect चालू है और उसे कोई समस्या नहीं मिली है. इसलिए, उपयोगकर्ता को कोई कार्रवाई करने की ज़रूरत नहीं है.

NO_DATA

Play Protect चालू है, लेकिन अब तक कोई स्कैन नहीं किया गया है. ऐसा हो सकता है कि डिवाइस या Play Store ऐप्लिकेशन को हाल ही में रीसेट किया गया हो.

Play Protect चालू है और उसे कोई समस्या नहीं मिली है. इसलिए, उपयोगकर्ता को कोई कार्रवाई करने की ज़रूरत नहीं है.

POSSIBLE_RISK

Play Protect बंद है.

Play Protect चालू है और उसे कोई समस्या नहीं मिली है. इसलिए, उपयोगकर्ता को कोई कार्रवाई करने की ज़रूरत नहीं है.

MEDIUM_RISK

Play Protect चालू है और उसे डिवाइस पर नुकसान पहुंचाने वाले ऐप्लिकेशन डिवाइस पर मिले हैं.

जोखिम को बर्दाश्त करने की आपकी क्षमता के हिसाब से, उपयोगकर्ता से Play Protect लॉन्च करने और Play Protect की चेतावनियों पर कार्रवाई करने के लिए कहा जा सकता है. अगर उपयोगकर्ता इन ज़रूरी शर्तों को पूरा नहीं कर पाता है, तो उसे सर्वर की कार्रवाई से ब्लॉक किया जा सकता है.

HIGH_RISK

Play Protect चालू है और उसे डिवाइस पर खतरनाक ऐप्लिकेशन मिले हैं डिवाइस पर.

जोखिम को बर्दाश्त करने की आपकी क्षमता के हिसाब से, उपयोगकर्ता से Play Protect लॉन्च करने और Play Protect की चेतावनियों पर कार्रवाई करने के लिए कहा जा सकता है. अगर उपयोगकर्ता इन ज़रूरी शर्तों को पूरा नहीं कर पाता है, तो उसे सर्वर की कार्रवाई से ब्लॉक किया जा सकता है.

UNEVALUATED

Play Protect के नतीजों की जांच नहीं की गई.

ऐसा कई वजहों से हो सकता है. इनमें ये वजहें शामिल हैं:

  • डिवाइस भरोसेमंद नहीं है.
  • सिर्फ़ गेम के लिए: उपयोगकर्ता खाते के लिए लाइसेंस नहीं दिया गया है.

डिवाइस पर हाल ही में की गई गतिविधि

डिवाइस पर हाल ही में की गई गतिविधि की जानकारी पाने के लिए, ऑप्ट-इन किया जा सकता है. इससे आपको यह पता चलता है कि आपके ऐप्लिकेशन ने पिछले एक घंटे में किसी खास डिवाइस पर इंटिग्रिटी टोकन के लिए कितनी बार अनुरोध किया है. डिवाइस पर हाल ही में की गई गतिविधि की जानकारी का इस्तेमाल करके, अपने ऐप्लिकेशन को उन डिवाइसों से सुरक्षित रखा जा सकता है जो उम्मीद से ज़्यादा और तेज़ी से काम करते हैं. ऐसा हो सकता है कि ये डिवाइस, किसी सक्रिय हमले की वजह से ऐसा कर रहे हों. यह तय किया जा सकता है कि डिवाइस पर हाल ही में की गई गतिविधि के हर लेवल पर कितना भरोसा करना है. इसके लिए, यह देखा जा सकता है कि आपके ऐप्लिकेशन को किसी सामान्य डिवाइस पर इंस्टॉल करने के बाद, हर घंटे इंटिग्रिटी टोकन के लिए कितनी बार अनुरोध किया जाता है.

अगर recentDeviceActivity की जानकारी पाने के लिए ऑप्ट-इन किया जाता है, तो deviceIntegrity फ़ील्ड में दो वैल्यू होंगी:

deviceIntegrity: {
  deviceRecognitionVerdict: ["MEETS_DEVICE_INTEGRITY"]
  recentDeviceActivity: {
    // "LEVEL_2" is one of several possible values.
    deviceActivityLevel: "LEVEL_2"
  }
}

सबसे पहले, आपको डेटा की जांच करनी चाहिए, ताकि यह पता चल सके कि आपके सभी डिवाइसों पर, आपके ऐप्लिकेशन के लिए डिवाइस की सामान्य गतिविधि के लेवल क्या हैं. इसके बाद, यह तय किया जा सकता है कि जब कोई डिवाइस बहुत ज़्यादा अनुरोध कर रहा हो, तो आपका ऐप्लिकेशन कैसे जवाब दे. अगर गतिविधि थोड़ी ज़्यादा है, तो उपयोगकर्ता से कुछ समय बाद फिर से कोशिश करने के लिए कहा जा सकता है. अगर गतिविधि बहुत ज़्यादा है, तो ज़्यादा सख्त कार्रवाई की जा सकती है.

स्टैंडर्ड और क्लासिक अनुरोधों में अंतर

Play Integrity को लागू करते समय, दो तरह के अनुरोधों के बारे में जानना ज़रूरी है. ज़्यादातर मामलों में, स्टैंडर्ड अनुरोधों का इस्तेमाल करना चाहिए, ताकि सबसे तेज़ जवाब मिल सके. वहीं, क्लासिक अनुरोधों का इस्तेमाल तब करना चाहिए, जब डिवाइस के एटेस्टेशन रिकॉर्ड के लिए, नया अनुरोध जनरेट करने की ज़रूरत हो.

क्लासिक अनुरोध

स्टैंडर्ड अनुरोध

इन अनुरोधों में ज़्यादा समय लगता है. इसलिए, इन्हें कम बार करना चाहिए.

उदाहरण के लिए, कभी-कभी यह जांचने के लिए कि ज़्यादा वैल्यू वाली या संवेदनशील कार्रवाई सही है या नहीं.

इनका इस्तेमाल कम से कम करें.

इन अनुरोधों में कम समय लगता है. साथ ही, इनका इस्तेमाल कभी भी किया जा सकता है.

स्टैंडर्ड अनुरोध के दो हिस्से होते हैं:

  • इंटिग्रिटी टोकन उपलब्ध कराने वाले को तैयार करना (सिर्फ़ एक बार)
  • इंटिग्रिटी टोकन का अनुरोध करना (कभी भी)

इनका इस्तेमाल कभी भी किया जा सकता है.

स्टैंडर्ड और क्लासिक अनुरोधों के बारे में ज़्यादा जानने के लिए, Play Integrity का दस्तावेज़ पढ़ें.

लागू करना

Play Integrity API का इस्तेमाल शुरू करने के लिए:

Play Integrity API, डिफ़ॉल्ट रूप से हर ऐप्लिकेशन के लिए, हर दिन 10,000 अनुरोधों की अनुमति देता है. हर दिन किए जाने वाले अनुरोधों की संख्या बढ़ाने के लिए, यहां दिए गए निर्देशों का पालन करें. हर दिन किए जाने वाले अनुरोधों की संख्या बढ़ाने के लिए, यह ज़रूरी है कि आपका ऐप्लिकेशन, Play Integrity API को सही तरीके से लागू करे. साथ ही, यह भी ज़रूरी है कि आपका ऐप्लिकेशन किसी अन्य डिस्ट्रिब्यूशन चैनल के साथ-साथ, Google Play पर भी उपलब्ध हो.

Play Integrity API के लिए ध्यान रखने वाली बातें

  • यह ज़रूरी है कि Play Integrity API के जवाबों में आने वाली गड़बड़ियों को सही तरीके से मैनेज किया जाए. गड़बड़ी कोड के आधार पर, फिर से कोशिश करने और लागू करने की रणनीतियों के बारे में जानने के लिए, यहां दिया गया गाइड पढ़ें.
  • Play Integrity API, जवाबों की जांच करने के लिए टूल उपलब्ध कराता है.
  • अपने डिवाइस से इंटिग्रिटी का नतीजा देखने के लिए, यह तरीका अपनाएं.
  • Play Integrity API का इस्तेमाल करने के सबसे सही तरीकों के लिए, सुरक्षा से जुड़ी इन बातों को ध्यान में रखें.

ऑटोमैटिक इंटिग्रिटी प्रोटेक्शन (एपीआई >= 23)

ऑटोमैटिक इंटिग्रिटी प्रोटेक्शन, कोड में छेड़छाड़ से सुरक्षा की सुविधा है. यह आपके ऐप्लिकेशन को, बिना अनुमति के बदलाव करने और उसे फिर से उपलब्ध कराने जैसी गतिविधियों से सुरक्षित रखती है. यह सुविधा, इंटरनेट कनेक्शन के बिना काम करती है. साथ ही, इसे टेस्ट करने के लिए डेवलपर के तौर पर आपको कुछ भी नहीं करना होता. इसके अलावा, इसे बैकएंड सर्वर इंटिग्रेशन की ज़रूरत भी नहीं होती.

धोखाधड़ी को कम करने में यह सुविधा कैसे मदद करती है

ऑटोमैटिक इंटिग्रिटी प्रोटेक्शन की सुविधा चालू करने पर, Google Play आपके ऐप्लिकेशन के कोड में जांचें जोड़ता है. साथ ही, एंटी-रिवर्स इंजीनियरिंग और कोड को अस्पष्ट बनाने की बेहतर तकनीकों की मदद से, यह पक्का किया जाता है कि कोई इन जांचों को हटा न पाए. इस्तेमाल के दौरान, प्रोटेक्शन की सुविधा यह जांचती है कि आपके ऐप्लिकेशन में छेड़छाड़ की गई है या उसे फिर से उपलब्ध कराया गया है या नहीं:

  • अगर इंस्टॉलर की जांच में यह पाया जाता है कि ऐप्लिकेशन को अनधिकृत स्रोत से डाउनलोड करने का प्रयास किया गया है, तो उपयोगकर्ताओं को यह सूचना दी जाएगी कि वे आपके ऐप्लिकेशन को Google Play से डाउनलोड करें
  • अगर इंस्टॉलर की जांच में यह पाया जाता है कि आपकी अनुमति के बिना बदलाव किया गया है, तो ऐप्लिकेशन काम नहीं करेगा

इससे, आपके ऐप्लिकेशन के बदले गए वर्शन से लोगों को सुरक्षा मिलती है.

लागू करना

फ़िलहाल, ऑटोमैटिक इंटिग्रिटी प्रोटेक्शन की सुविधा, Play के सिर्फ़ चुनिंदा पार्टनर के लिए उपलब्ध है. अगर यह सुविधा आपके Google Play Console में उपलब्ध नहीं है और आपको इसे ऐक्सेस करने में दिलचस्पी है, तो Google Play डेवलपर सहायता टीम से संपर्क करें.

ऑटोमैटिक प्रोटेक्शन की सुविधा, कोई रिलीज़ बनाते समय या Google Play की सुरक्षा सुविधाएं लागू पेज पर जाकर चालू की जा सकती है. ऑटोमैटिक इंटिग्रिटी प्रोटेक्शन की सुविधा का इस्तेमाल करने के लिए, यह ज़रूरी है कि आपका ऐप्लिकेशन, Play ऐप्लिकेशन साइनिंगका इस्तेमाल करे.

रिलीज़ को प्रोडक्शन के लिए प्रमोट करने से पहले, सुरक्षित किए गए अपने ऐप्लिकेशन को टेस्ट करना न भूलें.

ध्यान रखने वाली बातें

  • ऐप्लिकेशन के असुरक्षित वर्शन रिलीज़ न करना
  • छेड़छाड़ से सुरक्षा की सुविधा में आने वाली रुकावटें ठीक करने के तरीके जोड़ते समय सावधानी बरतें
  • सुरक्षित किए गए अपने ऐप्लिकेशन को प्रोडक्शन के लिए रिलीज़ करने से पहले, उसे टेस्ट करें
  • क्रैश (ऐप्लिकेशन के बंद होने की गड़बड़ियों) की संख्या बढ़ने पर, सामान्य तरीके से आंकड़ों की निगरानी करें
  • Google Play को, अपने ऐप्लिकेशन के क्रैक्ड वर्शन की शिकायत की जा सकती है