أعلنّا مؤخرًا عن تعزيز بيانات واجهة Play Integrity API لجعلها أسرع وأكثر مرونة في مواجهة الهجمات وأكثر حماية لخصوصية المستخدمين، بالإضافة إلى تحسينات أمنية أخرى.
ملخص التغييرات
يمكنك العثور على ملخّص مفصّل للتغييرات والأسئلة الشائعة في وقت لاحق في هذا المستند. في ما يلي التغييرات التي طرأت على القرارات في مايو 2025:
| ماذا | التغييرات التي أُجريت | التأثير المقدَّر* | الأجهزة |
|---|---|---|---|
| التغييرات التي تؤثر في جميع المطوّرين الذين يرسلون طلبات بيانات من واجهة برمجة التطبيقات إلى Play Integrity API | |||
| استجابة بيان الجهاز: meets-device-integrity | يجب أن يكون هناك قرار إيجابي بشأن التشغيل المتحقّق منه المستند إلى الأجهزة | تأثير ضئيل لأنّ واجهة Play Integrity API تستخدم حاليًا إشارات أمان مستندة إلى الأجهزة على أجهزة Android 13 أو الإصدارات الأحدث (~0.4%) | Android 13 والإصدارات الأحدث |
| استجابة سلامة التطبيق: بيان التعرّف على التطبيق | لا جديد | تأثير طفيف، سيعكس هذا التغيير في بيان الجهاز (~0.4%) | Android 13 والإصدارات الأحدث |
| الاستجابة لتفاصيل الحساب: بيان ترخيص Play | يجب تثبيت التطبيق الذي يطلب ذلك أو تحديثه من خلال Google Play | انخفاض طفيف في الردود المرخّصة (~2.5%) | الإصدار 6 من Android والإصدارات الأحدث |
| التغييرات التي تؤثر فقط في مطوّري Play Console ومطوّري Google Play SDK Console الذين يستخدمون ميزات اختيارية | |||
| استجابة بيان الجهاز: meets-basic-integrity | يجب أن يتوفّر تصديق المفاتيح في نظام Android الأساسي، ولكن يمكن أن تكون حالة التشغيل متحقَّق منها أو غير متحقَّق منها | انخفاض طفيف في الردود الأساسية (بنسبة %0.4 تقريبًا) | Android 13 والإصدارات الأحدث |
| استجابة بيان الجهاز: meets-strong-integrity | يجب أن يكون قد تم إجراء تحديث أمان في العام الماضي | انخفاض في الردود القوية (بنسبة %14.5 تقريبًا) | Android 13 والإصدارات الأحدث |
| جميع الإشارات الاختيارية (باستثناء سمات الجهاز)** | يجب تثبيت التطبيق الذي يطلب ذلك أو تحديثه من خلال Google Play | انخفاض في النسبة المئوية للردود التي تتضمّن إشارات اختيارية (بنسبة %7 تقريبًا) | Android 13 والإصدارات الأحدث |
*استندت جميع نِسب التأثير المقدَّرة المذكورة سابقًا إلى المتوسطات، وقد تكون بعض التطبيقات الأخرى قد شهدت تغييرات أصغر أو أكبر حسب عدد الأجهزة النشطة التي تم تثبيت التطبيق عليها.
**الإشارات الاختيارية (باستثناء سمات الجهاز) هي:
meets-basic-integrity وmeets-strong-integrity وأنشطة الجهاز الأخيرة
وتذكُّر الجهاز (إصدار تجريبي) وحالة "Play للحماية" واحتمالية اختراق التطبيق.
الأسئلة الشائعة
نظرة عامة
ما هي واجهة Play Integrity API؟
تساعدك واجهة Play Integrity API في تقييم مدى موثوقية بيئة تطبيق المستخدم من خلال الحصول على معلومات عن الجهاز والتطبيق والمستخدم، ما يتيح لك رصد أي إساءة استخدام أو هجمات محتملة والاستجابة لها.
ما هي الإشارات التي توفّرها واجهة Play Integrity API؟
تتضمّن واجهة Play Integrity API هوية التطبيق الذي يرسل الطلب، وما إذا كان هذا التطبيق قد تم تثبيته من خلال Google Play، وما إذا كان الجهاز حقيقيًا ومعتمَدًا ويعمل بنظام التشغيل Android. ويتم توفير هذه الإشارات تلقائيًا. يمكنك قراءة هذه الإشارات على خادم الخلفية في تطبيقك وتحديد ما إذا كان يجب أن يستجيب تطبيقك وكيفية ذلك. يمكن لمطوّري Google Play الموافقة على تلقّي إشارات إضافية في عمليات تثبيت تطبيقاتهم على Play للاطّلاع على مزيد من المعلومات.
ما هي ميزة "تصديق مفاتيح نظام Android الأساسي"؟
تتيح ميزة تصديق مفاتيح نظام Android الأساسي للتطبيقات التحقّق من حالة الجهاز والحصول على إشارة قوية لسلامة عملية التشغيل المستندة إلى الجهاز. ويعتمد على مفتاح توفّره Google في ملف تخزين المفاتيح المستند إلى الأجهزة. تستخدم واجهة Play Integrity API حاليًا ميزة "تصديق المفاتيح" للحصول على إشارات أمان مستندة إلى الأجهزة على بعض الأجهزة، وسيتم الآن دمجها بشكل أعمق على جميع الأجهزة التي تعمل بنظام التشغيل Android 13 أو الإصدارات الأحدث.
التغييرات في القرارات
ما هي التغييرات التي تم إجراؤها على بيانات السلامة في واجهة Play Integrity API على أجهزة Android 13 أو الإصدارات الأحدث؟
تتطلّب واجهة Play Integrity API الآن إشارات أمان مستندة إلى الأجهزة لجميع بيانات السلامة:
- بيان التعرّف على الجهاز
meets-device-integrityهو مؤشر على أنّ الجهاز الذي يعمل عليه التطبيق هو جهاز Android حقيقي ومعتمَد. ستتطلّب هذه النتيجة قفل برنامج إقلاع الجهاز وأن يكون نظام التشغيل Android المحمَّل هو نسخة من الشركة المصنّعة للجهاز المعتمَد. - بيان السلامة
meets-strong-integrityللتعرّف على الجهاز هو مؤشر على أنّ الجهاز أصلي ومعتمَد ويعمل بنظام التشغيل Android ومزوّد بآخر تحديث أمني. سيتطلّب هذا القرار توفُّرmeets-device-integrityوتحديثات أمان في العام الماضي لجميع أقسام الجهاز، بما في ذلك رمز تصحيح لقسم نظام التشغيل Android ورمز تصحيح لقسم المورّد. وقد يتغيّر هذا الشرط في المستقبل. - يشير بيان صحة الجهاز "
meets-basic-integrity" إلى أنّ عملية التحقّق تمّت على جهاز Android. يمكن أن يكون برنامج الإقلاع في الجهاز مقفلاً أو مفتوحًا، ويمكن أن تكون حالة التشغيل متحقَّقًا منها أو غير متحقَّق منها. قد لا يكون الجهاز معتمَدًا، وفي هذه الحالة لا يمكن لـ Google تقديم أي ضمانات بشأن الأمان أو الخصوصية أو توافق التطبيقات، ولا يمكنها ضمان أنّ الجهاز لا يعمل كخادم وكيل، مثل مثيل افتراضي لنظام التشغيل Android. ويعني ذلك أيضًا أنّ الأجهزة الجذرية مؤهلة لإرجاع الاستجابةmeets-basic-integrityطالما أنّ تصديق المفاتيح متاح.
لا تؤثّر هذه التغييرات في Play Integrity API على "ألعاب Google Play على الكمبيوتر"، والتي ستستمر في عرض meets-virtual-integrity.
لماذا تم تغيير بيانات السلامة في Play Integrity API على أجهزة Android 13 أو الإصدارات الأحدث؟
كانت واجهة Play Integrity API تستخدم جزئيًا إشارات الأمان المستندة إلى الأجهزة على Android 12 والإصدارات الأقدم. من خلال طلب الأمان المستند إلى الأجهزة على Android 13 والإصدارات الأحدث، تصبح بيانات السلامة في Play Integrity API أكثر مرونة في مواجهة المهاجمين، وأكثر كفاءة للتطبيقات، وأكثر حماية لخصوصية المستخدمين. يمكن للمطوّرين توقُّع التحسينات التالية على الأجهزة التي تعمل بنظام التشغيل Android 13 أو الإصدارات الأحدث:
- انخفاض بنسبة %90 تقريبًا في إشارات الجهاز التي يجب جمعها وتقييمها لإنشاء البيان التلقائي على خوادم Google ستستمر الإشارات الاختيارية في طلب جمع إشارات إضافية.
- تحسُّن في وقت استجابة القرار بنسبة تصل إلى %80 للطلبات العادية في أسوأ الحالات، وبنسبة تصل إلى %80 لجميع الطلبات الكلاسيكية للحصول على القرار التلقائي يمكن أن تؤدي الإشارات الاختيارية إلى زيادة وقت الاستجابة.
- مستوى متّسق من الموثوقية والدعم لجميع أشكال أجهزة Android مع ميزة تصديق المفاتيح، بما في ذلك الأجهزة الجوّالة والأجهزة اللوحية والأجهزة القابلة للطي وأجهزة التلفزيون والسيارات وأجهزة Wear OS وChromeOS.
- تمييز أكبر بين كل تصنيف جهاز في قرار التعرّف على الجهاز:
meets-strong-integrityوmeets-device-integrityوmeets-basic-integrity
لن يتم تغيير بيان السلامة في واجهة Play Integrity API على "ألعاب Google Play على الكمبيوتر"، وسيظل كما هو على أجهزة Android 12 والإصدارات الأقدم، وكذلك على أجهزة Android 13 والإصدارات الأحدث.
كيف يمكنني تعديل منطق الخلفية في تطبيقي لبيانات السلامة من أجل مراعاة إصدار حزمة تطوير البرامج (SDK) لنظام التشغيل Android؟
إذا أردت استخدام منطق مختلف على خادم الخلفية في تطبيقك استنادًا إلى إصدار حزمة تطوير البرامج (SDK) لنظام التشغيل Android، يمكنك استخدام حقل سمات الجهاز الجديد في البيان. إليك مثال على ذلك:
Kotlin
val deviceIntegrity =
JSONObject(payload).getJSONObject("deviceIntegrity")
val sdkVersion =
if (deviceIntegrity.has("deviceAttributes")) {
deviceIntegrity.getJSONObject("deviceAttributes").getInt("sdkVersion")
} else {
0
}
if (sdkVersion >= 30) {
// Provide Android R+ specific experience to the user.
}
Java
JSONObject deviceIntegrity =
new JSONObject(payload).getJSONObject("deviceIntegrity");
int sdkVersion =
deviceIntegrity.has("deviceAttributes")
? deviceIntegrity.getJSONArray("deviceAttributes").getInt("sdkVersion")
: 0;
if (sdkVersion >= 30) {
// Provide Android R+ specific experience to the user.
}
كيف يمكنني استخدام تعريف التصنيف القديم meets-strong-integrity في جميع إصدارات حزمة تطوير البرامج (SDK) لنظام التشغيل Android؟
يمكنك تحقيق ذلك من خلال تعديل منطق الخلفية في تطبيقك لاستخدام
meets-strong-integrity على الأجهزة التي تعمل بإصدارات أقدم من Android 13 و
meets-device-integrity على الأجهزة التي تعمل بنظام التشغيل Android 13 أو الإصدارات الأحدث باستخدام
حقل سمات الجهاز الجديد في البيان الذي يتضمّن إصدار حزمة تطوير البرامج (SDK) لنظام التشغيل Android. في ما يلي مثال على ذلك:
Kotlin
val deviceRecognitionVerdict =
if (deviceIntegrity.has("deviceRecognitionVerdict")) {
deviceIntegrity.getJSONArray("deviceRecognitionVerdict").toString()
} else {
""
}
val deviceIntegrityToCheckFor =
sdkVersion < 33 ? "MEETS_STRONG_INTEGRITY" : "MEETS_DEVICE_INTEGRITY";
if (deviceRecognitionVerdict.contains(deviceIntegrityToCheckFor)) {
// Looks good!
}
Java
JSONObject deviceIntegrity =
new JSONObject(payload).getJSONObject("deviceIntegrity");
String deviceRecognitionVerdict =
deviceIntegrity.has("deviceRecognitionVerdict")
? deviceIntegrity.getJSONArray("deviceRecognitionVerdict").toString()
: "";
String deviceIntegrityToCheckFor =
sdkVersion < 33 ? "MEETS_STRONG_INTEGRITY" : "MEETS_DEVICE_INTEGRITY";
if (deviceRecognitionVerdict.contains(deviceIntegrityToCheckFor)) {
// Looks good!
}
بما أنّ حقل سمات الجهاز هو أيضًا إشارة مستندة إلى الأجهزة، فإنّه يكون أكثر موثوقية على الأجهزة التي تعمل بنظام التشغيل Android 13 والإصدارات الأحدث.
ما هي التغييرات الأخرى التي تم إجراؤها على القرارات؟
نستثمر باستمرار في جعل الإشارات الحالية في Play Integrity API أكثر موثوقية، ونطلق ميزات جديدة بشكل دوري لمساعدة المطوّرين في التعامل مع التهديدات الناشئة وحالات الاستخدام الجديدة. تشمل التحسينات الأخرى التي أجريناها على البيانات ما يلي:
- ردّ مرخَّص من Play: لإرسال ردّ مرخَّص من Play، تتطلّب واجهة برمجة التطبيقات Play Integrity API الآن أن يكون التطبيق المرسِل للطلب قد تم تثبيته أو تحديثه من خلال Google Play. يؤدي ذلك إلى إصلاح بعض الحالات الاستثنائية ويسهّل على المطوّرين تفسير الاستجابة.
- توفُّر الإشارات الاختيارية: جميع الإشارات الاختيارية المتاحة للمطوّرين الذين يستخدمون Google Play Console أو Play SDK Console (باستثناء سمات الجهاز) تتطلّب الآن أن يكون التطبيق المرسِل للطلب قد تم تثبيته أو تحديثه من خلال Google Play على نظام التشغيل Android 13 أو الإصدارات الأحدث. ويشمل ذلك
meets-strong-integrityوmeets-basic-integrityوأحدث أنشطة الجهاز وتذكُّر الجهاز (ميزة تجريبية) وبيان احتمالية اختراق التطبيق وبيان "Play للحماية". لقد وحّدنا جميع طلبات البيانات من واجهة برمجة التطبيقات الأخرى من Play Integrity API لتلقّي بيانات التحقّق من الجهاز (مع التصنيفmeets-device-integrityفقط)، وبيانات التحقّق من أداة التثبيت، وبيانات التحقّق من سلامة التطبيق، وسمات الجهاز (في حال تفعيلها). - تغييرات في بيانات السلامة لأجهزة معيّنة: تعمل واجهة Play Integrity API على تغيير بيانات السلامة للأجهزة تلقائيًا في المزيد من السيناريوهات لحماية التطبيقات في وقت مبكر على جميع إصدارات حزمة تطوير البرامج (SDK) لنظام التشغيل Android، مثلاً عند توفّر دليل على نشاط مفرط أو اختراق المفاتيح. ويشمل ذلك قدرة Play على الرجوع إلى إشارات أخرى لإنشاء بيانات مؤقتة عن الأجهزة للمستخدمين في حال عدم توفّر الإشارات المستندة إلى الأجهزة. ننصح المطوّرين باستخدام مربّعات حوار حلّ المشاكل في Play داخل التطبيق أو توجيه المستخدمين إلى تطبيق "متجر Google Play" لحلّ المشاكل المتعلّقة ببيانات السلامة. بمرور الوقت، ستتعامل مربّعات الحوار هذه مع المزيد من السيناريوهات وستتضمّن إرشادات محدّدة للمستخدمين تخبرهم بما يحتاجون إلى إصلاحه استنادًا إلى أجهزتهم أو حساباتهم المحدّدة.
كيف يمكنني الإبلاغ عن مشاكل في بيانات السلامة؟
للإبلاغ عن مشاكل في الردود الواردة من Play Integrity API، سواء كانت المشكلة في البيانات السابقة أو الجديدة، يُرجى اتّباع التعليمات الواردة في صفحة الدعم.
مدى التوفّر
ما هي متطلبات عمل واجهة Play Integrity API؟
تتطلّب واجهة Play Integrity API تثبيت "متجر Google Play" و"خدمات Google Play" على الجهاز، بما في ذلك الأجهزة التي تعمل بنظام التشغيل Android وبرنامج "ألعاب Google Play" للكمبيوتر. تتطلّب الطلبات الكلاسيكية الإصدار 4.4 من نظام التشغيل Android (مستوى واجهة برمجة التطبيقات 19) أو إصدارًا أحدث، بينما تتطلّب الطلبات العادية الإصدار 5.0 من نظام التشغيل Android (مستوى واجهة برمجة التطبيقات 21) أو إصدارًا أحدث. على الأجهزة التي تعمل بنظام التشغيل Android 13 (المستوى 33 لواجهة برمجة التطبيقات) والإصدارات الأحدث، ستوفّر واجهة Play Integrity API الآن المستوى نفسه من الموثوقية والدعم على جميع أشكال أجهزة Android التي تتضمّن ميزة "تصديق المفاتيح"، بما في ذلك الأجهزة الجوّالة والأجهزة اللوحية والأجهزة القابلة للطي وأجهزة التلفزيون وAndroid Auto وWear OS وChromeOS.
لماذا تقدّم واجهة Play Integrity API بيانات سلامة مختلفة للأجهزة المختلفة؟
توفّر واجهة Play Integrity API بيانات متعدّدة عن الأجهزة لتلبية احتياجات المطوّرين في حالات الاستخدام المختلفة ومستويات تحمُّل المخاطر، ولإتاحة إمكانية وضع استراتيجية تنفيذ متعدّدة المستويات. على سبيل المثال، عندما يكون التطبيق والجهاز أكثر موثوقية، يمكن للمطوّر تبسيط خطوات التحقّق من المستخدم، بينما عندما يكون الجهاز غير معروف، قد يطلب المطوّر إجراء تحقّق إضافي من المستخدم قبل تنفيذ إجراءات محمية أو حساسة. ويمكن أن يكون ذلك طريقة فعّالة للحدّ من إساءة الاستخدام والهجمات.
ما هو جهاز Android المعتمد؟
جهاز Android المعتمَد (المعروف أيضًا باسم جهاز Android المعتمَد من "Play للحماية") هو جهاز يعمل ببرنامج يمكن توقّعه واجتاز مئات اختبارات التوافق من Google، ويلتزم بنموذج الأمان والأذونات في Android، وتم شحنه مع حزمة ميزات "Google Play للحماية" لمكافحة البرامج الضارة. عندما تتمكّن واجهة Play Integrity API من التحقّق من أنّ الجهاز
هو جهاز Android حقيقي ومعتمَد، ستعرض الردّ
meets-device-integrity في بيان التعرّف على الجهاز.
ما هو جهاز meets-basic-integrity؟
تعرض واجهة Play Integrity API أيضًا ردًا اختياريًا في بيان الجهاز،
meets-basic-integrity. إذا عرض الجهاز بيان السلامة meets-basic-integrity فقط بدون meets-device-integrity أو meets-strong-integrity، يعني ذلك أنّه لا يمكن التحقّق من نظام التشغيل Android، ولكنّ تصديق المفاتيح متاح. يشير ذلك إلى أنّ عملية التحقّق تمّت على جهاز Android فعلي، ولكن لا يمكن لـ Google تقديم ضمانات بشأن أمان الجهاز أو خصوصيته أو توافق التطبيقات معه، ولا يمكنها ضمان أنّ الجهاز لا يعمل كخادم وكيل، مثل مثيل افتراضي لنظام Android. ويمكن للمطوّرين تحديد طريقة تشغيل تطبيقاتهم على هذه الأجهزة، وذلك حسب حالات الاستخدام ومستويات تحمّل المخاطر.
هل يمكن لأي مطوّر استخدام واجهة Play Integrity API؟
نعم، يمكن لأي مطوّر برامج Android إرسال طلبات بيانات من واجهة برمجة التطبيقات إلى واجهة Play Integrity API لتلقّي بيانات السلامة التلقائية. يبلغ الحد الأقصى للاستخدام 10,000 طلب في اليوم بغض النظر عن قناة التوزيع. يمكن للمطوّرين الذين ينشرون تطبيقاتهم على Google Play بالإضافة إلى أي قنوات توزيع أخرى طلب زيادة حصتهم اليومية.
هل يمكن لأي مطوّر استخدام ميزة "تصديق مفاتيح نظام Android الأساسي"؟
نعم، يمكن لأي مطوّر برامج Android استخدام ميزة "تصديق مفتاح نظام Android الأساسي" للحصول على سجلّ تصديق المفتاح، والذي يمكنه التحقّق منه باستخدام الشهادة العامة لمفتاح الجذر الخاص بالتصديق من Google. توفّر واجهة Play Integrity API للمطوّرين مزايا تصديق المفاتيح وميزات إضافية بدون تعقيدات دمج تصديق المفاتيح بأنفسهم.
التنفيذ
كيف يستخدم المطوّرون بيانات Play Integrity API؟
يعود للمطوّرين قرار استخدام بيانات Play Integrity API وكيفية استخدامها. يجمع بعض المطوّرين الإشارات لإجراء تحليل داخلي لمكافحة إساءة الاستخدام، بينما يتّخذ مطوّرون آخرون قرارات بشأن سلوك تطبيقاتهم بناءً على النتيجة. على سبيل المثال، يمكن للمطوّرين أن يطلبوا من الأجهزة الأقل موثوقية تنفيذ خطوات إضافية لإثبات هوية المستخدم أثناء إنشاء الحساب، أو أن يقرروا أن تلعب الأجهزة الأقل موثوقية معًا على خادم واحد متعدّد اللاعبين.
هل تحظر واجهة Play Integrity API المستخدمين أو الأجهزة؟
لا، لا تحظر واجهة Play Integrity API الوصول إلى أي وظيفة بحد ذاتها. وهي خدمة اختيارية للمطوّرين توفّر إشارات، ويمكن للمطوّرين اختيار كيفية التعامل مع هذه الإشارات.
ما الذي يجب على المستخدمين فعله إذا لم تجتَز أجهزتهم عمليات التحقّق من الأجهزة في Play Integrity API؟
يمكن للمستخدمين الانتقال إلى تطبيق "متجر Google Play" على أجهزتهم، وفتح قائمة الإعدادات، واختيار لمحة، ثم الاطّلاع على شهادة "Play للحماية". إذا كانت هناك مشكلة في شهادة "Play للحماية" على جهاز المستخدم، سيظهر زر يمكنه النقر عليه لمحاولة حلّ المشكلة. سيؤدي ذلك إلى إعادة تحميل حالة اعتماد الجهاز وتقديم إرشادات محدّدة حول ما يجب إصلاحه.