SafetyNet को प्रमाणित करने वाले एपीआई से माइग्रेट करना

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

अगर आपके ऐप्लिकेशन को SafetyNet को प्रमाणित करने की सुविधा के लिए कोटा की सीमा बढ़ाई गई थी एपीआई के तौर पर, आपको Play Integrity के लिए असाइन किए गए इस्तेमाल के टीयर की जांच करनी होगी एपीआई और अगर अनुरोध करने की ज़रूरत हुई हो ज़्यादा से ज़्यादा 15% ज़्यादा हो.

Play Integrity API के साथ काम करने के लिए, ये बदलाव ज़रूरी हैं:

Android क्लाइंट:

  • पक्का करें कि कोड सही प्रारूप में IntegrityTokenRequest बिल्डर:
    • बाइट अरे के बजाय, String
    • यूआरएल की सुरक्षा
    • Base64 और नॉन-रैपिंग के तौर पर एन्कोड किया गया
    • कम से कम 16 वर्ण
    • ज़्यादा से ज़्यादा 500 वर्ण
  • फिर से कोशिश करने के लॉजिक की समीक्षा करें और पक्का करें कि ऐप्लिकेशन गड़बड़ियों को ठीक करता है सही तरीके से काम करना चाहिए.
  • पक्का करें कि भरोसेमंद सर्वर को भेजे गए रिस्पॉन्स डेटा की मदद से, SafetyNet को प्रमाणित करने वाले एपीआई से मिले जवाबों और Play Integrity API के बीच का अंतर जवाब.

भरोसेमंद सर्वर:

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

नॉन्स को कोड में बदलने का तरीका

इंटिग्रिटी से जुड़ी नॉन्स को Play Integrity API को, Base64-एन्कोडेड, यूआरएल के हिसाब से सुरक्षित, और नॉन-रैप किया गया String. यह फ़ॉर्मैट यह SafetyNet को प्रमाणित करने वाले एपीआई से अलग है. इसके लिए, byte[] की ज़रूरत होती है.

  • "यूआरएल की मदद से सुरक्षित" का मतलब है "यूआरएल और फ़ाइल नाम को सुरक्षित रखने की स्थिति" का इस्तेमाल करना Base64 का वैरिएंट (देखें RFC 4648 सेक्शन 5), जहां '-' का इस्तेमाल होता है और ‘_' ‘+' की जगह इस्तेमाल किया गया हो और ‘/'. Base64 एन्कोडिंग के बारे में ज़्यादा जानकारी के लिए, RFC देखें 4648 है.
  • "नो-रैप" इसका मतलब है कि लाइन टर्मिनेटर को छोड़ना. इसका मतलब है कि आउटपुट बस एक लंबी लाइन दिखेगी.
.setNonce(Base64.encodeToString(NONCE_BYTES,
        Base64.URL_SAFE | Base64.NO_WRAP))

इसके अलावा, पक्का करें कि नॉन्स जनरेट करने के लिए, Play Integrity का इस्तेमाल किया गया हो एपीआई के दिशा-निर्देश.

एपीआई रिस्पॉन्स मैपिंग

नीचे दी गई टेबल में, SafetyNet को प्रमाणित करने वाले एपीआई फ़ील्ड को उनके Play पर मैप किया गया है Integrity API के बराबर की वैल्यू.

SafetyNet प्रमाणित करने वाला एपीआई Play Integrity API Notes
timestampMs requestDetails.timestampMillis
nonce requestDetails.nonce
apkPackageName appIntegrity.packageName
apkCertificateDigestSha256 appIntegrity.certificateSha256Digest पक्का करें कि appRecognitionVerdict इस पर सेट है PLAY_RECOGNIZED
ctsProfileMatch इसमें मिलाया गया deviceIntegrity.deviceRecognitionVerdict अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
basicIntegrity इसमें मिलाया गया deviceIntegrity.deviceRecognitionVerdict अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
evaluationType इसमें मिलाया गया deviceIntegrity.deviceRecognitionVerdict अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
advice Not available
error Not available डिवाइस इंटिग्रिटी लेबल की सूची खाली रहेगा.

डिवाइस इंटिग्रिटी के नतीजे को मैप करने की सुविधा

SafetyNet को प्रमाणित करने वाला एपीआई Play Integrity API
ctsProfileMatch basicIntegrity evaluationType deviceRecognitionVerdict
FALSE FALSE कोई लेबल नहीं
FALSE TRUE MEETS_BASIC_INTEGRITY
TRUE FALSE कोई लेबल नहीं
TRUE TRUE BASIC MEETS_DEVICE_INTEGRITY, MEETS_BASIC_INTEGRITY
TRUE TRUE HARDWARE_BACKED MEETS_STRONG_INTEGRITY, MEETS_DEVICE_INTEGRITY, MEETS_BASIC_INTEGRITY

आपको डिवाइस इंटिग्रिटी के सेट को कॉन्फ़िगर करना पड़ सकता है प्रतिक्रियाएं मिल सकती हैं, अगर ऐप्लिकेशन, नीति उल्लंघन ठीक करने के तरीके (एनफ़ोर्समेंट) की एक जटिल रणनीति का इस्तेमाल करता है. इसलिए, इसके लिए सभी संभावित वैल्यू की ज़रूरत होती है.

Play Integrity API का फिर से कोशिश करने का लॉजिक

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

ऐप्लिकेशन लाइसेंसिंग एपीआई को बदलना (ज़रूरी नहीं)

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

पूरी तरह से बंद किए जाने तक जवाब पाएं

अगर आपने अब तक Play Integrity API पर माइग्रेट नहीं किया है या SafetyNet को हटाया नहीं है माइग्रेशन की आखिरी तारीख (31 जनवरी, 2024) से पहले, सर्टिफ़िकेट देने के बाद इसे पूरा किया जा सकता है फ़ॉर्म एक्सटेंशन का अनुरोध करने के लिए. अगर एक्सटेंशन के लिए मंज़ूरी मिल जाती है, तो आपका ऐप्लिकेशन जारी रहेगा पूरी तरह से बंद करने की समयसीमा तक, SafetyNet को प्रमाणित करने की प्रक्रिया से जवाब मिल रहे हैं (31 जनवरी, 2025).