SafetyNet Attestation API থেকে স্থানান্তর করা হচ্ছে

আপনি যদি ইতিমধ্যেই একটি বিশ্বস্ত সার্ভার ব্যবহার করে প্রতিক্রিয়া যাচাই করে থাকেন, তাহলে SafetyNet Attestation API থেকে Play Integrity API- এ স্থানান্তর করা সহজ। এআইডিএল-এর মাধ্যমে প্লে স্টোর অ্যাপের মাধ্যমে সরাসরি সম্পাদিত অ্যাপ লাইসেন্সিং চেকগুলির প্রতিস্থাপন হিসাবেও প্লে ইন্টিগ্রিটি API ব্যবহার করা যেতে পারে, যেমন লাইসেন্সিং ভেরিফিকেশন লাইব্রেরি (LVL) দ্বারা সম্পাদিত। প্রয়োজনীয় পরিবর্তনগুলির বেশিরভাগই বিশ্বস্ত সার্ভারের দিকে হবে, যার জন্য Play Integrity প্রতিক্রিয়া টোকেন পড়তে এবং বিশ্লেষণ করতে হবে। নোট করুন যে মাইগ্রেশনের সময়, অ্যাপ্লিকেশন এবং সার্ভার উভয়কেই একই সাথে উভয় API সমর্থন করতে হবে যাতে পুরানো ক্লায়েন্টদের সমর্থন করা যায় যেগুলি এখনও আপডেট হয়নি৷

আপনার অ্যাপটিকে SafetyNet Attestation API-এর জন্য বর্ধিত কোটা সীমা মঞ্জুর করা হলে, আপনাকে Play Integrity API-এর জন্য নির্ধারিত ব্যবহারের স্তর পরীক্ষা করা উচিত এবং প্রয়োজনে উত্থাপিত স্তরে যাওয়ার অনুরোধ করা উচিত।

Play Integrity API সমর্থন করার জন্য নিম্নলিখিত পরিবর্তনগুলি প্রয়োজনীয়:

অ্যান্ড্রয়েড ক্লায়েন্ট:

  • নিশ্চিত করুন যে কোডটি সঠিকভাবে ফরম্যাট করা ননসটি IntegrityTokenRequest নির্মাতাকে দিচ্ছে:
    • String (একটি বাইট অ্যারের পরিবর্তে)
    • URL-নিরাপদ
    • বেস 64 এবং নন-র্যাপিং হিসাবে এনকোড করা হয়েছে
    • ন্যূনতম ১৬টি অক্ষর
    • সর্বাধিক 500টি অক্ষর
  • পুনরায় চেষ্টা করার যুক্তি পর্যালোচনা করুন এবং নিশ্চিত করুন যে অ্যাপ্লিকেশনটি সঠিকভাবে ত্রুটিগুলি পরিচালনা করে৷
  • নিশ্চিত করুন যে বিশ্বস্ত সার্ভারে পাঠানো প্রতিক্রিয়া ডেটা SafetyNet Attestation API প্রতিক্রিয়া এবং Play Integrity API প্রতিক্রিয়াগুলির মধ্যে পার্থক্য করার অনুমতি দেয়৷

বিশ্বস্ত সার্ভার:

  • ননস জেনারেশন লজিক পর্যালোচনা করুন এবং নিশ্চিত করুন যে এটি Play Integrity API প্রয়োজনীয়তা পূরণ করে।
  • সার্ভার কোড SafetyNet Attestation API প্রতিক্রিয়া এবং Play Integrity API প্রতিক্রিয়াগুলির মধ্যে পার্থক্য করতে পারে তা নিশ্চিত করুন৷ নিশ্চিত করুন যে কোডটি পার্স করে এবং সেই প্রতিক্রিয়াগুলিকে সঠিকভাবে যাচাই করে।
  • Play Integrity API প্রতিক্রিয়া যাচাই ও পার্স করতে যুক্তি যোগ করুন।
  • যেহেতু নতুন Play Integrity API প্রতিক্রিয়া অতিরিক্ত বিবরণ প্রদান করে, তাই ক্লায়েন্ট ডিভাইসগুলিতে ফেরত পাঠানো সিদ্ধান্ত গ্রহণের যুক্তি এবং প্রতিক্রিয়া ডেটা উন্নত করার প্রয়োজন হতে পারে। আরও তথ্যের জন্য, এই বিষয়ের মধ্যে API প্রতিক্রিয়া ম্যাপিং বিভাগটি দেখুন।

ননস এনকোডিং

একটি অখণ্ডতা-সম্পর্কিত নন্স অবশ্যই প্লে ইন্টিগ্রিটি API-কে Base64 -এনকোডেড, URL-নিরাপদ এবং নন-র্যাপড String হিসাবে পাস করতে হবে। এই বিন্যাসটি SafetyNet Attestation API থেকে আলাদা, যার জন্য byte[]

  • "URL-নিরাপদ" মানে Base64 এর "URL এবং ফাইলের নাম-নিরাপদ" ভেরিয়েন্ট ব্যবহার করা (RFC 4648 বিভাগ 5 দেখুন), যেখানে '+' এবং '/'-এর জায়গায় '-' এবং '_' ব্যবহার করা হয়েছে। বেস64 এনকোডিং সম্পর্কে আরও তথ্যের জন্য, RFC 4648 দেখুন।
  • "নো-র্যাপ" মানে সব লাইন টার্মিনেটর বাদ দেওয়া। এর মানে হল আউটপুট একটি একক দীর্ঘ লাইন।
.setNonce(Base64.encodeToString(NONCE_BYTES,
        Base64.URL_SAFE | Base64.NO_WRAP))

এছাড়াও, নিশ্চিত করুন যে ননস জেনারেশন প্লে ইন্টিগ্রিটি API নির্দেশিকাগুলির সাথে সারিবদ্ধ হয়েছে৷

API প্রতিক্রিয়া ম্যাপিং

নিম্নলিখিত সারণীটি SafetyNet Attestation API ক্ষেত্রগুলিকে তাদের Play Integrity API সমতুল্যগুলির সাথে মানচিত্র করে৷

SafetyNet Attestation API Integrity API খেলুন নোট
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 Attestation API 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

আপনার অ্যাপ্লিকেশন একটি জটিল প্রয়োগ কৌশল ব্যবহার করে এবং সমস্ত সম্ভাব্য মান প্রয়োজন হলে আপনাকে ডিভাইসের অখণ্ডতা প্রতিক্রিয়াগুলির সেট কনফিগার করতে হতে পারে৷

প্লে ইন্টিগ্রিটি এপিআই রিট্রাই লজিক

নির্দিষ্ট ত্রুটি কোডের ক্ষেত্রে একটি অ্যাপের API কলগুলি পুনরায় চেষ্টা করা উচিত। আপনি সমস্ত ত্রুটি কোড পর্যালোচনা করেছেন তা নিশ্চিত করুন এবং নিশ্চিত করুন যে সূচকীয় ব্যাকঅফের সাথে প্রয়োজন হলে অ্যাপ্লিকেশনটি পুনরায় চেষ্টা করে। অনুগ্রহ করে নিশ্চিত করুন যে ন্যূনতম বিলম্বটি কমপক্ষে 5 সেকেন্ড, দ্রুতগতিতে বৃদ্ধি পাচ্ছে (5s, 10s, 20s, 40s, এবং তাই), ডিভাইস এবং অ্যাপ্লিকেশনের অখণ্ডতা মূল্যায়ন করার জন্য API-কে যথেষ্ট সময় প্রদান করতে।

ঐচ্ছিক অ্যাপ লাইসেন্সিং API প্রতিস্থাপন

আপনি যদি অ্যাপ লাইসেন্সিং এপিআই ব্যবহার করেন, তাহলে প্লে ইন্টিগ্রিটি এপিআই ব্যবহার করার জন্য আপনি ঐচ্ছিকভাবে স্থানান্তর করতে পারেন, কারণ একটি প্লে ইন্টিগ্রিটি এপিআই টোকেনে অ্যাপ্লিকেশনটির লাইসেন্সিং তথ্য অন্তর্ভুক্ত থাকে। SafetyNet Attestation API মাইগ্রেশনের মতো, আপনার আশা করা উচিত যে অনেকগুলি ডিভাইস অ্যাপ্লিকেশনটির একটি পুরানো সংস্করণ ধরে রাখবে৷ আপনার বিশ্বস্ত সার্ভার অ্যাপ লাইসেন্সিং API এবং প্লে ইন্টিগ্রিটি API প্রতিক্রিয়া উভয় প্রক্রিয়া করতে সক্ষম হওয়া উচিত।

সম্পূর্ণ টার্নডাউন পর্যন্ত প্রতিক্রিয়া পান

আপনি যদি এখনও Play Integrity API-এ স্থানান্তরিত না হয়ে থাকেন বা মাইগ্রেশনের সময়সীমার (জানুয়ারি 31, 2024) মধ্যে SafetyNet অ্যাটেস্টেশন সরিয়ে না ফেলে থাকেন, তাহলে আপনি একটি এক্সটেনশনের অনুরোধ করতে এই ফর্মটি পূরণ করতে পারেন। একটি এক্সটেনশনের জন্য অনুমোদিত হলে, সম্পূর্ণ টার্নডাউনের সময়সীমা (জানুয়ারী 31, 2025) পর্যন্ত আপনার অ্যাপ SafetyNet Attestation থেকে প্রতিক্রিয়া পেতে থাকবে।