النقل من واجهة برمجة التطبيقات SafetyNet Attestation API

إذا كنت تتحقّق من الردود باستخدام خادم موثوق به، يمكنك نقل البيانات من SafetyNet Attestation API إلى تتميّز واجهة Play Integrity API ببساطتها. تشير رسالة الأشكال البيانية يمكن أيضًا استخدام واجهة برمجة التطبيقات Play Integrity API كبديل للتطبيق عمليات فحص الترخيص التي يتم إجراؤها مباشرةً من خلال تطبيق "متجر Play" من خلال AIDL، مثل التطبيقات التي يتم تنفيذها من خلال الترخيص مكتبة التحقّق (LVL) وستكون معظم التغييرات المطلوبة من جانب الخادم الموثوق به، والذي يحتاج إلى قراءة وتحليل رمز الاستجابة المميّز Play Integrity لاحظ أنه أثناء الترحيل، ويحتاج كل من التطبيق والخادم إلى دعم واجهات برمجة التطبيقات في وقت واحد دعم العملاء الأقدم التي لم يتم تحديثها بعد.

في حال منح تطبيقك حدودًا متزايدة للحصة القصوى لبروتوكول الأمان ( SafetyNet Attestation) واجهة برمجة التطبيقات، يجب التحقّق من فئة الاستخدام المحدَّدة في Play Integrity. API، وإذا لزم الأمر طلب نقل إلى المستوى المرتفع.

يجب إجراء التغييرات التالية لإتاحة استخدام واجهة برمجة التطبيقات Play Integrity API:

برنامج Android:

  • تأكد من أن الرمز يمرّر القيمة الخاصة بالتنسيق الصحيح إلى أداة إنشاء IntegrityTokenRequest:
    • String (بدلاً من صفيف بايت)
    • عدم أمان عنوان URL
    • تم ترميزه كـ Base64 وغير قابل للالتفاف
    • 16 حرفًا كحدّ أدنى
    • 500 حرف كحدّ أقصى
  • راجِع منطق إعادة المحاولة وتأكَّد من معالجة التطبيق للأخطاء. بشكل مناسب.
  • تأكَّد من أن بيانات الاستجابة المُرسَلة إلى الخادم الموثوق به تسمح بالتمييز بين الردود من SafetyNet Attestation API وواجهة برمجة التطبيقات Play Integrity API الردود.

خادم موثوق به:

  • راجِع منطق إنشاء الرسائل غير المرغوب فيها وتأكَّد من توافقه مع Play Integrity API. متطلبات المشروع.
  • التأكّد من أنّ رمز الخادم يمكنه التمييز بين SafetyNet Attestation API الردود والردود من واجهة برمجة التطبيقات Play Integrity API. تأكد من أن التعليمة البرمجية تقوم بتحليل ويتحقق من صحة هذه الاستجابات بشكل صحيح.
  • إضافة منطق إلى التحقّق من الصحة والتحليل الردود من واجهة برمجة التطبيقات Play Integrity API
  • وبما أنّ ردّ واجهة برمجة التطبيقات Play Integrity API الجديدة يوفّر تفاصيل إضافية، قد تكون ضرورية لتحسين منطق اتخاذ القرار والملاحظات البيانات المرسلة مرة أخرى إلى أجهزة العميل. لمزيد من المعلومات، يُرجى الاطّلاع على واجهة برمجة التطبيقات تعيين الردود ضمن هذا الموضوع.

ترميز الرقم الخاص

يجب إرسال رقم خاص متعلّق بالسلامة إلى واجهة برمجة التطبيقات Play Integrity API بترميز Base64، آمن عنوان URL غير مغلَّف String هذا التنسيق تختلف عن واجهة SafetyNet Attestation API التي تتطلّب byte[].

  • "آمن عنوان URL" استخدام العنوان "عنوان URL واسم الملف-الآمن" نسخة Base64 (راجع RFC 4648 القسم 5)، حيث "-" و"_" تُستخدم بدلاً من "+" و'/'. للحصول على مزيد من المعلومات حول ترميز Base64، يمكنك الاطّلاع على RFC. 4648.
  • "عدم الالتفاف" يعني حذف جميع فاصلات الخط. هذا يعني أن الناتج سطر طويل واحد.
.setNonce(Base64.encodeToString(NONCE_BYTES,
        Base64.URL_SAFE | Base64.NO_WRAP))

بالإضافة إلى ذلك، احرص على توافق الإنشاء غير القابل للتطبيق مع معيار Play Integrity. إرشادات واجهة برمجة التطبيقات

تعيين استجابة واجهة برمجة التطبيقات

يربط الجدول التالي حقول SafetyNet Attestation API بخدمة Play مكافئات واجهة برمجة التطبيقات Integrity API

أمان الشبكة واجهة برمجة التطبيقات للمصادقة واجهة 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 ثوانٍ، 10s و20s و40s وما إلى ذلك)، لتوفير وقت كافٍ لواجهة برمجة التطبيقات لتقييم الجهاز سلامة التطبيق.

الاستبدال الاختياري لواجهة برمجة التطبيقات لترخيص التطبيق

إذا كنت تستخدم واجهة برمجة تطبيقات ترخيص التطبيق، يمكنك اختيار نقل البيانات لاستخدام واجهة برمجة التطبيقات Play Integrity API، وهي رمز مميّز لواجهة برمجة التطبيقات Play Integrity API، ويضم ومعلومات حول الترخيص. وكما هو الحال مع نقل واجهة برمجة التطبيقات SafetyNet Attestation API، عدد من الأجهزة للاحتفاظ بإصدار أقدم من التطبيق. يجب أن يكون الخادم الموثوق به قادرًا على معالجة كل من واجهة برمجة تطبيقات ترخيص التطبيق الردود من واجهة برمجة التطبيقات Play Integrity API

تلقّي الردود إلى حين إيقاف الخدمة بالكامل

إذا لم يسبق لك نقل البيانات إلى واجهة برمجة التطبيقات Play Integrity API أو إزالة SafetyNet الإقرار بحلول الموعد النهائي لنقل البيانات (31 كانون الثاني/يناير 2024)، يمكنك إكمال هذا الإجراء النموذج لطلب تمديد الموعد النهائي. في حال الموافقة على تمديد الموعد النهائي، سيستمر تطبيقك تلقّي ردود من SafetyNet Attestation حتى الموعد النهائي لإيقاف الميزة بالكامل (31 كانون الثاني/يناير 2025)