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

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

عند استخدام تطبيقك أو لعبتك على جهاز Android مزوّد بـ "متجر Google Play" وتدعم "خدمات Google Play"، ستوفّر واجهة برمجة التطبيقات Play Integrity API ردًّا يساعدك في تحديد ما إذا كنت تتفاعل مع ما يلي:

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

يمكنك أيضًا اختيار تلقّي معلومات حول البيئة في ردّك من واجهة برمجة التطبيقات Play Integrity API، بما في ذلك:

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

نظرة عامة

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

خطوات الاطّلاع على نظرة
نظرة عامة على واجهة برمجة التطبيقات Play Integrity API

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

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

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

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

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

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

تحديد كيفية طلب بيانات السلامة

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

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

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

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

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

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

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

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

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

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

أمّا الطلبات الكلاسيكية للبيانات من واجهة برمجة التطبيقات، فتحتوي على حقل "nonce" (اختصاره للرقم مرة واحدة) يُستخدم للحماية من أنواع معيّنة من الهجمات، مثل هجمات إعادة التشغيل والتلاعب. اتبع الإرشادات حول كيفية إنشاء أرقام غير صحيحة لحماية طلبات تطبيقك الكلاسيكية.

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

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

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

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

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

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

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

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

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

عرض رسائل خطأ قابلة للتنفيذ

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

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

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

تجربة حلول شاملة للاحتيال على مستوى المؤسسات

يمكن لعملاء المؤسسات الذين يبحثون عن حلّ متكامل لإدارة برامج التتبّع والاحتيال شراء إصدار 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 للبيانات.