أعلنّا مؤخرًا عن تحسين بيانات واجهة برمجة التطبيقات Play Integrity API لتكون أسرع وأكثر مقاومة للهجمات وأكثر حماية للخصوصية، بالإضافة إلى تحسينات أخرى على الأمان.
ملخص التغييرات
يمكنك العثور على ملخّص تفصيلي للتغييرات والأسئلة الشائعة في وقت لاحق من هذا المستند. في ما يلي التغييرات التي طرأت على الحكم في أيار (مايو) 2025:
المحتوى | التغييرات | التأثير المقدّر* | الأجهزة المعنيّة |
---|---|---|---|
التغييرات التي تؤثّر في جميع المطوّرين الذين يرسلون طلبات إلى واجهة برمجة التطبيقات Play Integrity API | |||
استجابة بيان سلامة الجهاز: meets-device-integrity | يجب أن يكون لدى الجهاز نتيجة إيجابية لميزة التشغيل المتحقَّق منه مستندة إلى الأجهزة. | تأثير بسيط لأنّ واجهة برمجة التطبيقات Play Integrity API تستخدم حاليًا إشارات أمان مستندة إلى الأجهزة على أجهزة Android 13 أو الإصدارات الأحدث (0.4% تقريبًا) | الإصدار 13 من Android والإصدارات الأحدث |
استجابة سلامة التطبيق: بيان التعرّف على التطبيق | لم يتغيّر موقفي | تأثير ضئيل، وسيؤدي ذلك إلى عكس التغيير في نتيجة الجهاز (0.4% تقريبًا) | الإصدار 13 من Android والإصدارات الأحدث |
الردّ بشأن تفاصيل الحساب: نتيجة ترخيص Play | يجب أن يكون التطبيق الذي يطلب التحديث مثبّتًا أو تم تحديثه من خلال Google Play. | انخفاض بسيط في الردود المرخّصة (2.5% تقريبًا) | الإصدار 6 من نظام التشغيل Android والإصدارات الأحدث |
التغييرات التي تؤثر فقط في مطوّري Play Console ومطوّري Play SDK Console الذين يستخدمون الميزات الاختيارية | |||
استجابة بيان سلامة الجهاز: meets-basic-integrity | يجب توفُّر شهادة مصادقة مفتاح نظام Android، ولكن يمكن أن تكون حالة التشغيل متحقَّقة منها أو غير متحقَّقة منها. | انخفاض طفيف في الردود الأساسية (0.4% تقريبًا) | الإصدار 13 من نظام التشغيل Android والإصدارات الأحدث |
استجابة بيان سلامة الجهاز: meets-strong-integrity | يجب أن يكون الجهاز قد تلقّى تحديثًا أمنيًا في العام الماضي | انخفاض في الردود القوية (14.5% تقريبًا) | الإصدار 13 من نظام التشغيل Android والإصدارات الأحدث |
جميع الإشارات الاختيارية | يجب أن يكون التطبيق الذي يطلب الإذن مثبّتًا أو محدّثًا من خلال Google Play. | انخفاض في النسبة المئوية للردود التي تتضمّن إشارات اختيارية (%7 تقريبًا) | الإصدار 13 من نظام التشغيل Android والإصدارات الأحدث |
*جميع النِسب المئوية المقدَّرة للتأثير المذكورة سابقًا استُندت إلى المتوسّطات، وقد شهدت التطبيقات المختلفة تغييرات أصغر أو أكبر استنادًا إلى عدد الأجهزة النشطة التي تم تثبيت التطبيق عليها.
الأسئلة الشائعة
نظرة عامة
ما هي واجهة برمجة التطبيقات Play Integrity API؟
تساعدك واجهة برمجة التطبيقات Play Integrity API في تقييم مدى موثوقية بيئة تطبيق المستخدم من خلال الحصول على معلومات عن الجهاز والتطبيق والمستخدم، ما يتيح لك رصد حالات إساءة الاستخدام والهجمات المحتملة والاستجابة لها.
ما هي الإشارات التي تقدّمها واجهة برمجة التطبيقات Play Integrity API؟
تتضمّن واجهة برمجة التطبيقات Play Integrity API هوية التطبيق الذي يطلب البيانات وما إذا كان تم تثبيت التطبيق الذي يطلب البيانات من خلال Google Play وما إذا كان الجهاز هو جهاز Android أصلي معتمَد من "Play للحماية". يتم توفير هذه الإشارات تلقائيًا. يمكنك قراءة هذه الإشارات على خادم الخلفية في تطبيقك وتحديد ما إذا كان يجب أن يستجيب تطبيقك لهذه الإشارات وكيفية الاستجابة لها. يمكن لمطوّري التطبيقات على Google Play تفعيل ميزة تلقّي إشارات إضافية في عمليات التثبيت على Play لعرض المزيد من المعلومات.
ما هي مصادقة مفتاح نظام التشغيل Android؟
تسمح مصادقة مفتاح نظام Android الأساسي للتطبيقات بالتحقّق من حالة الجهاز والحصول على إشارة قوية تشير إلى سلامة عملية التشغيل المستندة إلى الجهاز. ويعتمد ذلك على مفتاح تقدّمه Google في متجر المفاتيح المستند إلى الأجهزة في الجهاز. تستخدم واجهة برمجة التطبيقات Play Integrity API حاليًا ميزة إثبات ملكية المفتاح للحصول على إشارات أمان مستندة إلى الأجهزة على بعض الأجهزة، وستبدأ الآن في دمجها بشكلٍ أكثر شمولاً على جميع الأجهزة التي تعمل بنظام التشغيل Android 13 أو الإصدارات الأحدث.
تغييرات في البيان
ما هي التغييرات التي تم إجراؤها على بيانات السلامة في واجهة برمجة التطبيقات Play Integrity API على أجهزة Android 13 أو الإصدارات الأحدث؟
تتطلب واجهة برمجة التطبيقات Play Integrity API الآن إشارات أمان مستندة إلى الأجهزة لجميع بيانات السلامة:
- يشير قرار التعرّف على الجهاز
meets-device-integrity
إلى أنّه الجهاز الذي يعمل عليه التطبيق هو جهاز Android حقيقي معتمَد من "Play للحماية". سيتطلب هذا القرار قفل برنامج إقلاع الجهاز وتحميل نظام التشغيل Android من صورة مُعتمَدة من الشركة المصنّعة للجهاز. - يشير بيان التعرّف على الجهاز
meets-strong-integrity
إلى جهاز Android أصلي معتمَد من "Play للحماية" تم تثبيت تحديث أمان عليه مؤخرًا. سيتطلب هذا القرارmeets-device-integrity
و تحديثات الأمان في العام الماضي لجميع أقسام الجهاز، بما في ذلك تصحيح قسم نظام التشغيل Android وتصحيح قسم المورّد. وقد تتغيّر هذه العبارة في المستقبل. - يشير قرار التعرّف على الجهاز
meets-basic-integrity
إلى أنّه تم إجراء عملية التحقّق على جهاز Android فعلي. يمكن قفل أو فتح بوتloader للجهاز، ويمكن إثبات صحة حالة التشغيل أو عدم إثبات صحتها. قد لا يكون الجهاز معتمَدًا من "Play للحماية"، وفي هذه الحالة لا يمكن لشركة Google تقديم أي ضمانات متعلّقة بالأمان أو الخصوصية أو التوافق مع التطبيقات، ولا يمكنها ضمان أنّ الجهاز لا يعمل كوكيل، مثل مثيل افتراضي لنظام التشغيل Android. ويعني ذلك أيضًا أنّ الأجهزة الجذرية مؤهَّلة لإرجاعmeets-basic-integrity
طالما أنّ مصادقة المفتاح متوفّرة.
لا تؤثّر هذه التغييرات في واجهة برمجة التطبيقات Play Integrity API على تطبيق "ألعاب Play" للكمبيوتر الشخصي، وسيستمر الرمز meets-virtual-integrity
بالظهور.
لماذا تم تغيير بيانات السلامة في واجهة برمجة التطبيقات Play Integrity API على أجهزة Android 13 أو الإصدارات الأحدث؟
كانت واجهة برمجة التطبيقات Play Integrity API تستخدِم إشارات أمان مستندة إلى الأجهزة جزئيًا على الإصدار 12 من نظام التشغيل Android والإصدارات الأقدم. من خلال طلب أمان مستند إلى الأجهزة على Android 13 والإصدارات الأحدث، تصبح بيانات سلامة واجهة برمجة التطبيقات Play Integrity API أكثر مرونة في مواجهة هجمات المهاجمين، وأكثر فعالية للتطبيقات، وأكثر حماية للخصوصية للمستخدمين. يمكن للمطوّرين توقّع التحسينات التالية على الأجهزة التي تعمل بنظام Android 13 أو الإصدارات الأحدث:
- انخفاض بنسبة %90 تقريبًا في إشارات الجهاز التي يجب جمعها وتقييمها لتحديد النتيجة التلقائية على خوادم Google ستظل الإشارات الاختيارية تتطلّب جمع إشارات إضافية.
- تحسين وقت استجابة إصدار الحكم بنسبة تصل إلى% 80 للطلبات العادية في أسوأ الحالات وحتى% 80 لجميع الطلبات الكلاسيكية للحصول على الحكم التلقائي يمكن أن تزيد الإشارات الاختيارية من وقت الاستجابة.
- مستوى موثوق به ومتوافق مع جميع أشكال أجهزة Android مع شهادة إثبات ملكية المفتاح، بما في ذلك الهواتف الجوّالة والأجهزة اللوحية والأجهزة القابلة للطي وأجهزة التلفزيون وAndroid Auto وWear OS وChromeOS
- تمكّن من إجراء تمييز أكبر بين كل تصنيف جهاز في نتيجة
التعرّف على الجهاز:
meets-strong-integrity
وmeets-device-integrity
وmeets-basic-integrity
.
لن يتم تغيير بيان واجهة Play Integrity API في تطبيق "ألعاب 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 على الإصدار 13 من نظام التشغيل Android أو الإصدارات الأحدث. ويشمل ذلك
meets-strong-integrity
meets-basic-integrity
ونشاط الجهاز الأخير وتقييم مخاطر الوصول إلى التطبيق وتقييم Play Protect. لقد وحيدنا جميع طلبات واجهة برمجة التطبيقات Integrity API الأخرى لتلقّي بيانات التحقّق من الجهاز (مع علامةmeets-device-integrity
فقط)، وبيانات التحقّق من أداة التثبيت، وبيانات التحقّق من سلامة التطبيق. - تغييرات البيانات لأجهزة معيّنة: تغيّر واجهة برمجة التطبيقات Play Integrity API بيانات السلامة للأجهزة تلقائيًا في المزيد من السيناريوهات لحماية التطبيقات في وقت أبكر على جميع إصدارات حزمة تطوير البرامج (SDK) لنظام التشغيل Android، مثل عندما يكون هناك دليل على نشاط مفرط أو اختراق للمفتاح. ويشمل ذلك إمكانية استخدام Play لإشارات أخرى لإنشاء تقييمات مؤقتة للأجهزة للمستخدمين في حال عدم توفّر إشارات مستندة إلى الأجهزة. ننصح المطوّرين باستخدام مربّعات حوار حلّ المشاكل في Play داخل التطبيق أو توجيه المستخدمين إلى تطبيق "متجر 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 أحكامًا متعددة للأجهزة لتلبية احتياجات المطوّرين الذين لديهم حالات استخدام ومستويات مختلفة من المخاطر، ولإتاحة إمكانية وضع استراتيجية تنفيذ متعدّدة المستويات. على سبيل المثال، عندما يكون التطبيق والجهاز أكثر موثوقًا بهما، قد يبسّط المطوّر خطوات إثبات هوية المستخدم. في المقابل، عندما يكون الجهاز غير معروف، قد يطلب المطوّر من المستخدم إثبات هويته بشكل إضافي قبل تنفيذ إجراءات محمية أو حسّاسة. ويمكن أن يكون ذلك طريقة فعّالة للحدّ من إساءة الاستخدام والهجمات.
ما هو الجهاز المتوافق مع "Play للحماية" والمشغّل بنظام التشغيل Android؟
الجهاز المعتمَد من Play Protect الذي يعمل بنظام التشغيل Android (المعروف أيضًا باسم
جهاز Android مزوّد بخدمات Google (GMS)) هو جهاز يعمل ببرامج يمكن توقّعها واجتازت مئات
اختبارات التوافق من Google، ويتوافق مع نموذج أمان Android ومنح الأذونات، ويتم شحنه مع حزمة ميزات "Google Play للحماية" التي تهدف إلى منع البرامج الضارة. عندما تتمكّن واجهة برمجة التطبيقات Play Integrity API من التأكّد من أنّ الجهاز هو جهاز Android مُعتمَد من "Google Play للحماية"، ستُرسِل الردّ
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؟
يمكن للمستخدمين الانتقال إلى تطبيق "متجر Play" على أجهزتهم وفتح قائمة "الإعدادات"، ثم التمرير للأسفل إلى "لمحة"، ثم البحث ضمن "شهادة Play للحماية". إذا كان هناك مشكلة في شهادة اعتماد جهاز المستخدم من "Play للحماية"، سيظهر زر يمكن للمستخدم الضغط عليه لمحاولة حلّ المشكلة. سيؤدي ذلك إلى إعادة تحميل حالة اعتماد الجهاز وتقديم إرشادات محدّدة حول ما يجب إصلاحه.