تساعدك واجهة برمجة التطبيقات Play Integrity API في التحقّق من أنّ التفاعلات وطلبات الخادم تتم باستخدام البرنامج الثنائي الحقيقي لتطبيقك الذي يتم تشغيله على جهاز Android حقيقي. من خلال رصد عمليات التفاعل الخطيرة والاحتيالية المحتمَلة، مثل التفاعلات التي تأتي من إصدارات التطبيقات التي تم العبث بها والبيئات غير الموثوق بها، يمكن لخادم الخلفية في تطبيقك الاستجابة من خلال اتّخاذ الإجراءات المناسبة لمنع الهجمات والحدّ من إساءة الاستخدام. توفّر واجهة برمجة التطبيقات Play Integrity API أيضًا ميزات اختيارية لمساعدتك في رصد التهديدات الأخرى والاستجابة لها، مثل البرامج الضارة المعروفة وعمليات التقاط الشاشة ووضع الصور عليها المجهولة المصدر، والتطبيقات التي تسيء استخدام إذن تسهيل الاستخدام، والنشاط المفرط، وحالات إساءة الاستخدام المتكررة المصدرة من الجهاز نفسه.
عند استخدام تطبيقك أو لعبتك على جهاز Android مزوّد بشهادة اعتماد من "Play للحماية"، تقدّم واجهة برمجة التطبيقات Play Integrity API ردًا يساعدك في تحديد ما إذا كنت تتفاعل مع ما يلي:
- البرنامج الثنائي الحقيقي للتطبيق: يمكنك تحديد ما إذا كنت تتفاعل مع البرنامج الثنائي غير المعدّل الذي يتعرّف عليه Google Play.
- التثبيت الحقيقي من Play: يمكنك تحديد ما إذا كان حساب المستخدم الحالي مرخَّصًا، وهذا يعني أنّ المستخدِم ثبَّت تطبيقك أو لعبتك على Google Play أو دفع الرسوم المستحقّة لهما.
- جهاز Android حقيقي: يمكنك تحديد ما إذا كان تطبيقك يعمل على جهاز Android حقيقي معتمد من "Play للحماية" (أو نسخة حقيقية من برنامج "ألعاب Google Play" على الكمبيوتر).
يمكنك اختيار تلقّي معلومات عن البيئة في ردّ واجهة برمجة التطبيقات Play Integrity API، بما في ذلك:
- احتمالية اختراق التطبيق: يمكنك تحديد ما إذا كانت هناك تطبيقات قيد التشغيل يمكن استخدامها لالتقاط الشاشة أو عرض المحتوى على سطح الصفحة أو التحكّم في الجهاز (على سبيل المثال، من خلال إساءة استخدام إذن تسهيل الاستخدام).
- التعرّض لخطر من برامج ضارة معروفة: يمكنك تحديد ما إذا كانت خدمة "Google Play للحماية" مفعَّلة وإذا كان قد تم رصد تطبيقات خطيرة أو ضارة تم تثبيتها على الجهاز.
يمكنك أيضًا اختيار تفعيل الميزات التي تساعدك في رصد النشاط المفرط وحالات إساءة الاستخدام المتكررة:
- أحدث نشاط للجهاز: يمكنك تحديد ما إذا كان أحد الأجهزة قد أرسل عددًا كبيرًا بشكل غير معتاد من الطلبات مؤخرًا، ما قد يشير إلى زيارات مبرَجة وقد يشكّل علامة على تعرُّض تطبيقك لهجوم.
- تذكُّر الجهاز (إصدار تجريبي): لتحديد ما إذا كنت تتفاعل مع جهاز تفاعلت معه سابقًا، حتى إذا تمت إعادة تثبيت تطبيقك أو إعادة ضبط الجهاز.
نظرة عامة
عندما ينفِّذ مستخدم إجراءً في تطبيقك، يمكنك طلب بيانات من واجهة برمجة التطبيقات Play Integrity API للتحقّق من أنّه تم تنفيذ الإجراء في البرنامج الثنائي الأصلي لتطبيقك الذي تم تثبيته من خلال Google Play ويتم تشغيله على جهاز Android أصلي. يمكنك أيضًا الموافقة على تلقّي معلومات إضافية في الردّ، بما في ذلك عدد الطلبات التي قدّمها الجهاز في الآونة الأخيرة والإشارات حول البيئة، بما في ذلك بيان خطر الوصول إلى التطبيق وبيان "Play للحماية". إذا كان هناك أي خطأ في الأحكام، يمكن لخادم الخلفية في تطبيقك أن يقرّر ما يجب فعله لحماية التطبيق من المشاكل، مثل إساءة الاستخدام والاحتيال والغش والوصول غير المصرّح به والهجمات.
اعتبارات الأمان
توفّر واجهة برمجة التطبيقات Play Integrity API أكبر قيمة لتطبيقك عند اتّباع الممارسات التالية:
وضع استراتيجية لمنع إساءة الاستخدام
تعمل واجهة برمجة التطبيقات Play Integrity API على أفضل وجه عند استخدامها إلى جانب إشارات أخرى كجزء من استراتيجية منع إساءة الاستخدام الشاملة وليس كآلية منع إساءة الاستخدام الوحيدة. استخدِم واجهة برمجة التطبيقات هذه مع أفضل ممارسات الأمان المناسبة الأخرى لتطبيقك. يمكن لتطبيقك تلقائيًا إرسال ما يصل إلى 10,000 طلب في اليوم في جميع عمليات التثبيت. يمكنك طلب زيادة الحد الأقصى اليومي.
جمع بيانات القياس وفهم جمهورك قبل اتّخاذ إجراء
قبل تغيير سلوك تطبيقك استنادًا إلى نتائج واجهة برمجة التطبيقات Play Integrity API، يمكنك معرفة الوضع الحالي لجمهورك الحالي من خلال تنفيذ واجهة برمجة التطبيقات بدون فرضها. بعد معرفة النتائج التي يعرضها عدد الأجهزة النشطة الحالية التي تم تثبيت التطبيق عليها، يمكنك تقدير تأثير أي إجراءات تنفيذية تخطّط لها وتعديل استراتيجية مكافحة إساءة الاستخدام وفقًا لذلك.
تحديد طريقة طلب بيانات السلامة
توفّر واجهة برمجة التطبيقات Play Integrity API خيارَين لطلب بيانات السلامة وتلقّيها. سواء أكنت تُجري طلبات عادية أو طلبات كلاسيكية أو مزيجًا من كلا النوعَين من الطلبات، سيتم عرض ردّ على نتيجة السلامة بالتنسيق نفسه.
طلبات البيانات العادية من واجهة برمجة التطبيقات مناسبة لأي تطبيق أو لعبة ويمكن إجراؤها عند الطلب للتحقّق من صحة أي إجراء للمستخدِم أو طلب من الخادم. تتميّز الطلبات العادية بوقت استجابة منخفض جدًا (بضع مئات من المللي ثانية في المتوسط) وبدرجة عالية من الموثوقية في الحصول على نتيجة صالحة. وتستفيد الطلبات العادية من ميزة التخزّن المؤقت الذكي على الجهاز، مع تفويض Google Play بحماية الجهاز من أنواع معيّنة من هجمات.
ولا تزال الطلبات الكلاسيكية للبيانات من واجهة برمجة التطبيقات متاحة أيضًا، وهي الطريقة الأصلية لطلب بيانات السلامة. تتميز الطلبات الكلاسيكية بوقت استجابة أعلى (بضع ثوانٍ في المتوسط)، وتكون أنت المسؤول عن الحد من خطر أنواع معيّنة من هجمات. تستهلك الطلبات الكلاسيكية بيانات المستخدم وبطاريته أكثر من الطلبات العادية، لأنّها تبدأ عملية تقييم جديدة، لذا يجب إجراؤها بشكلٍ غير متكرّر كإجراء لمرة واحدة للتحقّق مما إذا كان إجراءً حساسًا أو ذا قيمة عالية. إذا كنت تفكر في تقديم طلب عادي وتخزينه مؤقتًا لاستخدامه لاحقًا، عليك تقديم طلب عادي بدلاً من ذلك للحد من خطر التعرض للاختراق.
يوضّح الجدول التالي بعض الاختلافات الرئيسية بين نوعَي الطلبات:
طلب البيانات العادي من واجهة برمجة التطبيقات | الطلبات الكلاسيكية للبيانات من واجهة برمجة التطبيقات | |
---|---|---|
الحد الأدنى لإصدار حزمة تطوير البرامج (SDK) لنظام التشغيل Android | الإصدار 5.0 من نظام التشغيل Android (المستوى 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" و"رفض".
رصد حالات إساءة الاستخدام المتكرّرة باستخدام ميزة "تذكُّر الجهاز" مع الحفاظ على خصوصية المستخدم
تمنح ميزة تذكُّر الجهاز التطبيقات إمكانية تخزين بعض البيانات المخصّصة المرتبطة بجهاز معيّن واستردادها بطريقة تحافظ على خصوصية المستخدم. يتم تخزين البيانات على خوادم 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 مع البيانات.