نظرة عامة حول Play Integrity API

تساعدك واجهة برمجة التطبيقات Play Integrity API في التحقّق من أنّ إجراءات المستخدمين وطلبات الخادم تتم باستخدام تطبيقك الحقيقي الذي تم تثبيته من خلال Google Play ويتم تشغيله على جهاز Android حقيقي ومعتمَد. من خلال رصد التفاعلات المحفوفة بالمخاطر، مثل التفاعلات من إصدارات التطبيق التي تم التلاعب بها أو الأجهزة غير الموثوق بها أو البيئات المحاكية، يمكن لخادم الخلفية الاستجابة من خلال اتّخاذ الإجراءات المناسبة لمنع إساءة الاستخدام والوصول غير المصرّح به، ومكافحة الاحتيال والغش، وحماية المستخدمين من الهجمات.

نظرة عامة على عملية Play Integrity API

تعرض واجهة برمجة التطبيقات بيانات سلامة تساعدك في رصد التهديدات المحتملة، بما في ذلك:

  • الوصول غير المصرّح به: تساعدك نتيجة accountDetails في تحديد ما إذا كان المستخدم قد ثبَّت تطبيقك أو لعبتك أو دفع رسومهما على Google Play.
  • التلاعب بالرمز: تساعدك نتيجة appIntegrity في تحديد ما إذا كنت تتفاعل مع برنامجك الثنائي غير المعدّل الذي يتعرّف عليه Google Play.
  • الأجهزة المحفوفة بالمخاطر والبيئات المحاكية: يساعدك deviceIntegrity قرار التحقّق في تحديد ما إذا كان تطبيقك يعمل على جهاز Android حقيقي معتمد أو نسخة حقيقية من برنامج "ألعاب Google Play" على الكمبيوتر.

يمكن لمطوّري Google Play أيضًا الموافقة على تلقّي بيانات سلامة إضافية لرصد مجموعة أكبر من التهديدات المحتملة، بما في ذلك:

  • الأجهزة التي لم يتم تطبيق رموز تصحيح الأمان عليها: تساعدك الاستجابة MEETS_STRONG_INTEGRITY في بيان deviceIntegrity على تحديد ما إذا كان الجهاز قد طبّق آخر تحديثات الأمان (للأجهزة التي تعمل بالإصدار Android 13 والإصدارات الأحدث).
  • الوصول الخطير من خلال تطبيقات أخرى: تساعدك appAccessRiskVerdict في تحديد ما إذا كانت هناك تطبيقات قيد التشغيل يمكنها أخذ لقطات للشاشة أو عرض المحتوى على سطح الصفحة أو التحكم في الجهاز (على سبيل المثال، من خلال إساءة استخدام إذن تسهيل الاستخدام).
  • البرامج الضارة المعروفة: يساعدك playProtectVerdict في تحديد ما إذا كانت خدمة "Google Play للحماية" مفعَّلة واكتشفت تطبيقات خطيرة أو ضارة تم تثبيتها على الجهاز.
  • النشاط المفرط: يساعدك المستوى recentDeviceActivity في تحديد ما إذا كان الجهاز قد أجرى عددًا كبيرًا بشكل غير طبيعي من الطلبات مؤخرًا، ما قد يشير إلى زيارات مبرمَجة وقد يكون علامة على هجوم.
  • إساءة الاستخدام المتكرّرة والأجهزة المعاد استخدامها: تساعدك واجهة برمجة التطبيقات deviceRecall (إصدار تجريبي) في تحديد ما إذا كنت تتفاعل مع جهاز سبق لك الإبلاغ عنه، حتى إذا تمت إعادة تثبيت تطبيقك أو إعادة ضبط الجهاز.

يمكن استخدام واجهة برمجة التطبيقات على جميع أشكال أجهزة Android، بما في ذلك الهواتف والأجهزة اللوحية والهواتف القابلة للطي وAndroid Auto وAndroid TV وAndroid XR وChromeOS وWear OS، وكذلك على "ألعاب Google Play على الكمبيوتر".

اعتبارات الأمان

توفّر واجهة برمجة التطبيقات Play Integrity API أكبر قيمة لتطبيقك عند اتّباع الممارسات المقترَحة التالية:

وضع استراتيجية لمكافحة إساءة الاستخدام

تعمل واجهة برمجة التطبيقات Play Integrity API بشكل أفضل عند استخدامها إلى جانب إشارات أخرى كجزء من استراتيجيتك الشاملة لمكافحة إساءة الاستخدام، وليس كآلية وحيدة لمكافحة إساءة الاستخدام. استخدِم واجهة برمجة التطبيقات هذه مع أفضل ممارسات الأمان المناسبة الأخرى لتطبيقك. يمكن لتطبيقك تلقائيًا إرسال ما يصل إلى 10,000 طلب إجمالي يوميًا في جميع عمليات التثبيت. يمكنك طلب زيادة الحد الأقصى اليومي.

جمع بيانات القياس عن بُعد وفهم جمهورك قبل اتّخاذ أي إجراء

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

تحديد طريقة طلب بيانات السلامة

توفّر واجهة برمجة التطبيقات Play Integrity API خيارَين لطلب بيانات السلامة وتلقّيها. سواء كنت تستخدم الطلبات العادية أو الكلاسيكية أو مزيجًا من النوعين، سيتم عرض الردّ على بيانات السلامة بالتنسيق نفسه.

تتوفّر طلبات واجهة برمجة التطبيقات العادية لأي تطبيق أو لعبة، ويمكن إجراؤها عند الطلب للتحقّق من صحة أي إجراء يتخذه المستخدم أو أي طلب يرسله الخادم. تتميّز الطلبات العادية بأقل وقت استجابة (بضع مئات من الملّي ثانية في المتوسط) وبموثوقية عالية في الحصول على نتيجة صالحة للاستخدام. تستفيد الطلبات العادية من التخزين المؤقت الذكي على الجهاز فقط مع تفويض الحماية من أنواع معيّنة من الهجمات إلى Google Play.

ستبقى الطلبات الكلاسيكية للبيانات من واجهة برمجة التطبيقات متاحة أيضًا، وهي الطريقة الأصلية لطلب بيانات السلامة. تتضمّن الطلبات الكلاسيكية وقت استجابة أطول (بضع ثوانٍ في المتوسط)، وتتحمّل أنت مسؤولية الحدّ من خطر أنواع معيّنة من الهجمات. تستخدم الطلبات الكلاسيكية المزيد من بيانات المستخدمين وطاقة البطارية مقارنةً بالطلبات العادية، لأنّها تبدأ بتقييم جديد، لذا يجب تقديمها بشكل غير متكرّر كإجراء لمرة واحدة للتحقّق مما إذا كان الإجراء الحساس أو القيّم للغاية حقيقيًا. إذا كنت تفكّر في تقديم طلب كلاسيكي وتخزينه مؤقتًا لاستخدامه لاحقًا، ننصحك بتقديم طلب عادي بدلاً من ذلك للحدّ من خطر الهجمات.

يوضّح الجدول التالي بعض الاختلافات الرئيسية بين نوعَي الطلبات:

طلب عادي لواجهة برمجة التطبيقات طلب بيانات من واجهة برمجة التطبيقات القديمة
الحد الأدنى المطلوب من حزمة تطوير البرامج (SDK) لنظام التشغيل Android* الإصدار 6.0 من نظام التشغيل Android (المستوى 23 لواجهة برمجة التطبيقات) أو إصدار أحدث الإصدار 6.0 من نظام التشغيل Android (المستوى 23 لواجهة برمجة التطبيقات) أو إصدار أحدث
يجب إعداد واجهة برمجة التطبيقات ✔️ (بضع ثوانٍ)
وقت الاستجابة المعتاد للطلبات بضع مئات من الملّي ثانية بضع ثوانٍ
معدّل تكرار الطلبات المحتملة متكرّر (التحقّق عند الطلب من أي إجراء أو طلب) غير متكرّر (عملية تحقّق لمرة واحدة من الإجراءات ذات القيمة الأعلى أو الطلبات الأكثر حساسية)
التخفيف من هجمات إعادة الإرسال والهجمات المشابهة إجراءات التخفيف التلقائية من Google Play استخدام الحقل nonce مع منطق من جهة الخادم

* بالنسبة إلى مكتبة Play Integrity API الإصدار 1.4.0 والإصدارات الأحدث، يكون الحد الأدنى من حزمة تطوير البرامج (SDK) المتوافقة مع نظام التشغيل Android هو نفسه لكلا نوعَي الطلبات ويتم تحديده من خلال minSdkVersion في المكتبة. بالنسبة إلى الإصدار 1.3.0 والإصدارات الأقدم، الحد الأدنى من حزمة تطوير البرامج (SDK) لنظام التشغيل Android المطلوب هو Android 5.0 (مستوى واجهة برمجة التطبيقات 21) لطلبات Standard API وAndroid 4.4 (مستوى واجهة برمجة التطبيقات 19) لطلبات Classic API.

يمكنك الاطّلاع على جدول يتضمّن المزيد من الاختلافات في اعتبارات الطلبات الكلاسيكية.

طلب بيان السلامة في الوقت المناسب

يجب طلب الحصول على نتيجة تقييم لاحتمالية اختراق التطبيق في أقرب وقت ممكن من وقت الإجراء أو طلب الخادم الذي تريد الحماية من الوصول إليه، وذلك لمنع المخادعين من التحايل على عملية التحقّق من صحة البيانات التي يجريها تطبيقك.

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

تتضمّن طلبات واجهة برمجة التطبيقات العادية حقلًا يُسمى requestHash يُستخدَم للحماية من التلاعب والهجمات المشابهة. في هذا الحقل، يجب تضمين ملخّص لجميع القيم ذات الصلة من طلب تطبيقك. اتّبِع الإرشادات حول كيفية استخدام ربط المحتوى لحماية الطلبات العادية في تطبيقك.

تتضمّن طلبات Classic API حقلًا يُسمى nonce (اختصارًا للعبارة number once)، ويُستخدم هذا الحقل للحماية من أنواع معيّنة من الهجمات، مثل هجمات إعادة التشغيل وهجمات التلاعب. اتّبِع الإرشادات حول كيفية إنشاء أرقام عشوائية غير متكرّرة لحماية الطلبات التقليدية في تطبيقك.

تجنُّب تخزين بيانات السلامة مؤقتًا

تزيد عمليات التخزين المؤقت لبيانات سلامة الجهاز من مخاطر استخدام الخوادم الوكيلة، وهو نوع من الهجمات يعيد فيه المخترق استخدام بيانات من جهاز سليم لأغراض مسيئة في بيئة أخرى. بدلاً من تخزين الردود مؤقتًا، يمكنك إجراء طلب عادي من واجهة برمجة التطبيقات للحصول على قرار عند الطلب.

وضع استراتيجية تنفيذ على مستويات

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

قبل تقييم مدى موثوقية الجهاز، من الضروري التحقّق من الإشارات الأساسية الأخرى في ردّ واجهة برمجة التطبيقات:

  • تفاصيل الطلب: تأكَّد من أنّ requestDetails تتطابق مع القيم المتوقّعة، وتأكَّد بشكل خاص من requestHash أو nonce لمنع هجمات إعادة الإرسال.
  • سلامة التطبيق: التحقّق من أنّ قيمة appRecognitionVerdict هي PLAY_RECOGNIZED، ما يؤكّد أنّ شهادة توقيع التطبيق معترف بها من قِبل Play وأنّها لم يتم التلاعب بها.
  • تفاصيل الحساب: تحقَّق من أنّ appLicensingVerdict هو LICENSED، ما يؤكّد أنّ المستخدم ثبَّت التطبيق أو حدَّثه من Google Play.

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

بعد اجتياز عمليات التحقّق الأساسية، يمكنك تقسيم استراتيجية التنفيذ إلى مستويات استنادًا إلى مدى موثوقية الجهاز من خلال الموافقة على تلقّي تصنيفات إضافية للأجهزة في الردّ الذي تتلقّاه من واجهة برمجة التطبيقات في Play Console. سيعرض كل جهاز جميع التصنيفات التي تستوفي معاييره. للحصول على إصدار حزمة تطوير البرامج (SDK) لنظام التشغيل Android، عليك استخدام الحقل deviceAttributes المضمّن في الردّ من واجهة برمجة التطبيقات. تتراوح مستويات الثقة بالأجهزة من الأجهزة الأكثر موثوقية إلى الأجهزة الأقل موثوقية:

  • MEETS_STRONG_INTEGRITY (الإصدار 13 من نظام التشغيل Android والإصدارات الأحدث): هي أعلى فئة من فئات موثوقية الجهاز، وتتطلّب إشارات أمان مستندة إلى الأجهزة وتحديث أمان حديث.
  • MEETS_DEVICE_INTEGRITY (الإصدار 13 من نظام التشغيل Android والإصدارات الأحدث) وMEETS_STRONG_INTEGRITY (الإصدارات الأقدم من Android 13): مستوى الثقة التالي ويعتمد كلاهما على إشارات الأمان المستندة إلى الأجهزة.
  • MEETS_DEVICE_INTEGRITY (الإصدارات الأقدم من Android 13): هي الفئة التالية، وتستخدم خدمة "التصديق المستند إلى الأجهزة" عندما تكون متاحة، وخدمة "التصديق المستند إلى البرامج" كخيار احتياطي.
  • MEETS_BASIC_INTEGRITY: هو مستوى الثقة الأضعف، ويسبق عدم تلقّي أي تصنيفات للأجهزة.

على سبيل المثال، بعد الموافقة على تلقّي جميع تصنيفات الأجهزة، يمكنك اختيار الوثوق بجهاز يعرض MEETS_STRONG_INTEGRITY وMEETS_DEVICE_INTEGRITY وMEETS_BASIC_INTEGRITY أكثر من جهاز يعرض MEETS_BASIC_INTEGRITY فقط. يمكنك الردّ بشكل مختلف عن الخادم في كل سيناريو.

يمكنك بعد ذلك إضافة إشارات أخرى إلى استراتيجية التنفيذ على مستويات، مثل اعتبار الأجهزة التي تعرض مستويات أعلى في recentDeviceActivity أقل موثوقية.

إرسال مجموعة من الردود من الخادم إلى تطبيقك

من الصعب تكرار مجموعة من نتائج القرارات مقارنةً بإرسال ردّ ثنائي بالسماح أو الرفض من الخادم إلى التطبيق لكل ردّ. على سبيل المثال، يمكنك استخدام سلسلة من الردود ذات الصلة، مثل "السماح" و"السماح مع فرض قيود" و"السماح مع فرض قيود بعد إكمال اختبار CAPTCHA" و"الرفض".

رصد حالات إساءة الاستخدام المتكرّرة باستخدام ميزة "تذكُّر الجهاز" مع الحفاظ على خصوصية المستخدم

تمنح ميزة تذكُّر الجهاز التطبيقات إمكانية تخزين بعض البيانات المخصّصة المرتبطة بجهاز معيّن واستردادها بطريقة تحافظ على خصوصية المستخدم. يتم تخزين البيانات على خوادم Google، ما يسمح لتطبيقك باسترداد بيانات كل جهاز بشكل موثوق به حتى بعد إعادة تثبيت التطبيق أو إعادة ضبط الجهاز. يوفّر لك ذلك طريقة موثوقة لإعادة تحديد هوية جهاز سبق أن رصدت فيه إساءة استخدام، ما يتيح لك اتّخاذ إجراءات لمنع استخدامه في إساءة الاستخدام مرة أخرى. يمكنك تحديد المعنى الخاص بك للقيم الثلاث التي تتكوّن منها بيانات ميزة "تذكُّر الجهاز":

  • يمكنك استخدامها كحد أقصى ثلاث علامات أو قيم منطقية منفصلة. على سبيل المثال، يمكن أن تشير القيم إلى ما إذا كان الجهاز قد أنشأ حسابًا أو لم ينشئ، أو ما إذا كان قد استفاد من فترة تجريبية مجانية أو لم يستفد، أو ما إذا كان معروفًا بإساءة الاستخدام الشديدة أو لا.
  • بدلاً من ذلك، يمكنك دمج جميع حالات القيم في ما يصل إلى ثمانية تصنيفات مخصّصة، مثلاً تصنيف واحد للحالة التلقائية عندما تكون جميع القيم الثلاث غير معدَّلة وسبعة تصنيفات ذات معانٍ مخصّصة. يتيح لك ذلك تقسيم جميع الأجهزة إلى ما يصل إلى ثماني مجموعات استنادًا إلى السلوكيات أو الإجراءات التي تحدّدها. في هذه الحالة، يشير writeDates الذي تم تعديله مؤخرًا من بين الثلاثة إلى تاريخ آخر تعديل أجريته على التصنيف.

يُرجى أيضًا مراعاة المتطلبات الأساسية والاعتبارات الأخرى عند العمل مع بيانات تذكُّر الجهاز.

رصد حالات إساءة الاستخدام على نطاق واسع باستخدام ميزة "أنشطة الجهاز الأخيرة"

استخدِم ميزة أحدث نشاط للجهاز في Play Integrity API للعثور على الأجهزة التي تطلب أعدادًا كبيرة من الرموز المميزة للسلامة. يُنشئ المسيئون الذين يمارسون أنشطة ذات معدّل تكرار مرتفع نتائج إثبات صحة صالحة من أجهزة حقيقية، ويقدّمونها إلى برامج التتبُّع لأتمتة الهجمات على الأجهزة التي تم الوصول إلى جذرها والمحاكيات. يمكنك استخدام مستوى "أحدث نشاط للجهاز" للتحقّق من عدد بيانات الاعتماد التي أنشأها تطبيقك على هذا الجهاز خلال آخر ساعة.

عرض رسائل الخطأ التي تتضمّن إجراءات

قدِّم للمستخدم رسائل خطأ مفيدة عند الإمكان وأخبِره بالإجراءات التي يمكنه اتّخاذها لحلّ المشكلة، مثل إعادة المحاولة أو تفعيل الاتصال بالإنترنت أو التأكّد من أنّ تطبيق "متجر Play" محدَّث.

وضع خطة للتعامل مع المشاكل أو الانقطاعات غير المتوقّعة

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

الاستعانة بحلول شاملة لمكافحة الاحتيال في المؤسسات

يمكن لعملاء المؤسسات الذين يبحثون عن حلّ كامل لإدارة الاحتيال وروبوتات الدردشة شراء reCAPTCHA Enterprise للأجهزة الجوّالة، والذي يتضمّن حِزم تطوير البرامج (SDK) لنظام التشغيل Android التي توفّر للمطوّرين نتائج تقييم لمخاطر الاحتيال. تتضمّن reCAPTCHA Enterprise تلقائيًا إشارات Play Integrity API، وتجمعها مع إشارات شبكة reCAPTCHA وإشارات التطبيقات للعملاء، ما يوفّر حلّاً سلسًا وغير مرئي لإدارة الاحتيال بدون الحاجة إلى إجراء أي إعدادات. ويمكنها أيضًا توفير الحماية لتطبيقات Android التي لا تتوفّر فيها واجهة Play Integrity API.

التحقّق من صحة الزيارات المحفوفة بالمخاطر عند الوصول إلى ميزات حساسة أو عالية القيمة

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

بنود الخدمة وأمان البيانات

إذا وصلت إلى واجهة برمجة التطبيقات Play Integrity API أو استخدمتها، فإن هذا يعني أنّك توافق على بنود خدمة واجهة برمجة التطبيقات Play Integrity API. يُرجى قراءة وفهم جميع الأحكام والسياسات السارية قبل الوصول إلى واجهة برمجة التطبيقات.

يتضمّن Google Play قسم "أمان البيانات" الذي يتيح للمطوّرين الإفصاح عن ممارسات جمع البيانات ومشاركتها والحفاظ على أمانها في تطبيقاتهم لإبقاء المستخدمين على اطّلاع دائم. لمساعدتك في إكمال نموذج البيانات، يمكنك الاطّلاع على هذه المعلومات حول طريقة معالجة البيانات في واجهة Play Integrity API.