تساعدك واجهة برمجة التطبيقات 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 على أفضل وجه عند استخدامها إلى جانب إشارات أخرى كجزء من استراتيجية منع إساءة الاستخدام الشاملة وليس كآلية منع إساءة الاستخدام الوحيدة. استخدِم واجهة برمجة التطبيقات هذه مع أفضل ممارسات الأمان المناسبة الأخرى لتطبيقك. يمكن لتطبيقك إرسال ما يصل إلى 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" و"رفض".
رصد حالات إساءة الاستخدام على نطاق واسع باستخدام ميزة "أحدث نشاط للجهاز"
استخدِم ميزة أحدث نشاط للجهاز في 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 مع البيانات.