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

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 का फ़ैसला लेने का फ़्लो

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

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

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

इस तरह मिलकर काम करने की वजह से, हमें ज़रूरी सिग्नल मिल रहे हैं. इनसे हमें अपने ग्राहकों को ज़्यादा असरदार तरीके से सुरक्षित रखने के लिए, अहम जानकारी मिल रही है.
—Nubank, रिलीज़ होने से पहले ऐप्लिकेशन इस्तेमाल करने की सुविधा देने वाला पार्टनर

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

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

ऐप्लिकेशन को ऐक्सेस करने से जुड़े जोखिम से जुड़ी नीति का उल्लंघन ठीक करना

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

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

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

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 हज़ार अनुरोधों की अनुमति देता है. हर दिन किए जाने वाले अनुरोधों की संख्या बढ़ाने के लिए, इन निर्देशों का पालन करें. हर दिन किए जाने वाले अनुरोधों की संख्या बढ़ाने के लिए, यह ज़रूरी है कि आपके ऐप्लिकेशन में Play Integrity API सही तरीके से लागू हो. साथ ही, वह किसी अन्य डिस्ट्रिब्यूशन चैनल के साथ-साथ, Google Play पर भी उपलब्ध हो.

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

अपने-आप पूरी सुरक्षा देने की सुविधा (एपीआई 23 और इसके बाद के वर्शन)

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

इससे धोखाधड़ी को कम करने में कैसे मदद मिलती है

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

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

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

लागू करना

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

रिलीज़ बनाते समय या ऐप्लिकेशन के लिए पूरी सुरक्षा देने की सुविधा पेज (रिलीज़ > ऐप्लिकेशन के लिए पूरी सुरक्षा देने की सुविधा) पर जाकर, सुरक्षा देने की सुविधा चालू की जा सकती है. अपने-आप पूरी सुरक्षा देने की सुविधा का इस्तेमाल करने के लिए, आपके ऐप्लिकेशन को Play ऐप्लिकेशन साइनिंग का इस्तेमाल करना होगा.

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

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

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