اخیراً اعلام کردهایم که در حال تقویت احکام Play Integrity API هستیم تا آنها را سریعتر، انعطافپذیرتر در برابر حملات و خصوصیتر کردن کاربران را همراه با سایر پیشرفتهای امنیتی کنیم.
خلاصه تغییرات
می توانید خلاصه ای دقیق از تغییرات و تأثیرات مورد انتظار را در ادامه این سند بیابید. احکام جدید به شرح زیر در دسترس خواهد بود:
ادغام های جدید: همه ادغام های جدید به طور خودکار احکام جدید را دریافت می کنند.
ادغامهای موجود تا ماه مه ۲۰۲۵ : برنامهنویسهایی با ادغامهای موجود میتوانند در صفحه تنظیمات Play Integrity API در Play Console شرکت کنند تا هماکنون احکام جدید را در کنار احکام قدیمی دریافت کنند، و به شما فرصت میدهد تا بررسی کنید و تغییراتی را در نحوه عملکرد برنامهتان ایجاد کنید. . قبل از اینکه شرکت کنید، میتوانید تغییر مورد انتظار را در درصد دستگاههایی که هر حکم را برمیگردانند و یک نمونه JSON از حکم جدید را مشاهده کنید. وقتی شرکت میکنید، دو فیلد اضافی در پاسخ با نسخه Android SDK و احکام قدیمی دریافت خواهید کرد.
ادغامهای موجود پس از می 2025: بهبودها برای همه ادغامها بدون نیاز به کار توسعهدهنده فعال خواهند شد. برنامههایی که قبل از می 2025 شرکت کردهاند، فیلد موقت حاوی احکام قدیمی را دریافت نخواهند کرد.
چی | چه چیزی در حال تغییر است | تاثیر تخمینی* | کدام دستگاه ها |
---|---|---|---|
تغییراتی که بر همه برنامهنویسانی که درخواستهای Play Integrity API میدهند تأثیر میگذارد | |||
پاسخ حکم دستگاه: ملاقات-دستگاه-یکپارچگی | داشتن یک حکم بوت تایید شده با پشتوانه سخت افزاری و مثبت الزامی است | تأثیر کمتری دارد زیرا Play Integrity API قبلاً از سیگنالهای امنیتی مبتنی بر سختافزار در دستگاههای Android 13 یا جدیدتر استفاده میکند (~0.4%) | اندروید 13 به بعد |
پاسخ یکپارچگی برنامه: حکم تشخیص برنامه | بدون تغییر | تاثیر حداقلی، این تغییر در حکم دستگاه (~0.4٪) را منعکس می کند. | اندروید 13 به بعد |
پاسخ جزئیات حساب: حکم مجوز پخش | برنامه درخواستی باید توسط Google Play نصب یا بهروزرسانی شود | کاهش جزئی در پاسخ های مجوز (~2.5٪) | اندروید 11 و جدیدتر (این تغییر به تدریج اعمال خواهد شد) |
تغییراتی که فقط بر توسعه دهندگان کنسول Play و توسعه دهندگان کنسول SDK Play با استفاده از ویژگی های اختیاری تأثیر می گذارد | |||
پاسخ حکم دستگاه: meets-basic-integrity | برای داشتن تأییدیه کلید پلتفرم Android مورد نیاز است، اما وضعیت بوت را می توان تأیید یا تأیید نکرد | کاهش جزئی در پاسخ های اساسی (~0.4٪) | اندروید 13 و بالاتر |
پاسخ حکم دستگاه: meets-strong-integrity | نیاز به به روز رسانی امنیتی در سال گذشته | کاهش در پاسخ های قوی (~14.5٪) | اندروید 13 و بالاتر |
همه سیگنال های اختیاری | برنامه درخواستی باید توسط Google Play نصب یا بهروزرسانی شود | کاهش درصد پاسخهایی که شامل سیگنالهای اختیاری هستند (~7%) | اندروید 13 و بالاتر |
*همه درصدهای تأثیر تخمینی بالا بر اساس میانگینها هستند و برنامههای مختلف ممکن است بسته به پایه نصب خود، تغییرات کوچکتر یا بزرگتری ببینند.
سوالات متداول
نمای کلی
Play Integrity API چیست؟
Play Integrity API به شما کمک می کند تا با به دست آوردن اطلاعات مربوط به دستگاه، برنامه و کاربر، قابلیت اطمینان محیط برنامه کاربر را ارزیابی کنید تا بتوانید سوء استفاده و حملات احتمالی را شناسایی کرده و به آن پاسخ دهید.
Play Integrity API چه سیگنال هایی ارائه می دهد؟
Play Integrity API شامل هویت برنامه درخواستکننده، نصب برنامه درخواستکننده توسط Google Play و اینکه آیا دستگاه یک دستگاه Android دارای گواهینامه Play Protect است یا خیر. این سیگنال ها به صورت پیش فرض ارائه می شوند. میتوانید این سیگنالها را در سرور باطن برنامهتان بخوانید و تصمیم بگیرید که آیا و چگونه برنامه شما باید پاسخ دهد. برنامهنویسان Google Play میتوانند برای مشاهده اطلاعات بیشتر، در نصبهای Play خود سیگنالهای بیشتری دریافت کنند.
گواهی کلید پلتفرم اندروید چیست؟
تأیید کلید پلتفرم Android به برنامهها اجازه میدهد تا وضعیت دستگاه را تأیید کنند و سیگنالی قوی از یکپارچگی بوت مبتنی بر سختافزار دریافت کنند. این بستگی به کلیدی دارد که توسط Google در فروشگاه کلیدهای سخت افزاری دستگاه ارائه شده است. Play Integrity API در حال حاضر از گواهی کلید برای به دست آوردن سیگنالهای امنیتی مبتنی بر سختافزار در برخی دستگاهها استفاده میکند و اکنون آنها را عمیقتر در همه دستگاههای دارای Android نسخه ۱۳ یا بالاتر ادغام میکند.
حکم تغییر می کند
چه تغییراتی در احکام Play Integrity API در دستگاههای Android نسخه 13 یا جدیدتر ایجاد میشود؟
Play Integrity API اکنون برای همه احکام یکپارچگی به سیگنالهای امنیتی سختافزاری نیاز دارد:
- حکم تشخیص دستگاه
meets-device-integrity
نشاندهنده این است که دستگاهی که برنامه روی آن اجرا میشود یک دستگاه اصیل دارای گواهی Play Protect مجهز به Android است. این حکم مستلزم آن است که بوت لودر دستگاه قفل شده باشد و سیستم عامل اندروید بارگذاری شده یک تصویر تایید شده سازنده دستگاه باشد. - حکم تشخیص دستگاه
meets-strong-integrity
نشاندهنده یک دستگاه اصیل دارای گواهی Play Protect با سیستم عامل Android با بهروزرسانی امنیتی اخیر است. این حکم مستلزمmeets-device-integrity
و این است که دستگاه در سال گذشته بهروزرسانی امنیتی داشته باشد. این شرایط ممکن است در آینده تغییر کند. - حکم تشخیص دستگاه
meets-basic-integrity
نشاندهنده این است که بررسی در یک دستگاه فیزیکی مجهز به Android انجام شده است. بوت لودر دستگاه را می توان قفل یا باز کرد و وضعیت بوت را می توان تأیید یا تأیید نکرد. ممکن است دارای گواهی «سپر ایمنی Play» نباشد، در این صورت Google نمیتواند هیچ گونه تضمین امنیتی، حریم خصوصی یا سازگاری برنامه را ارائه دهد و نمیتواند تضمین کند که دستگاه به عنوان یک پروکسی عمل نمیکند، مانند نمونه مجازی Android. این همچنین به این معنی است که دستگاههای روت شده تا زمانی که گواهی کلید وجود داشته باشد، واجد شرایط بازگشتmeets-basic-integrity
هستند.
این تغییرات بر Play Integrity API در Play Games برای رایانه شخصی تأثیری نمیگذارد که همچنان به meets-virtual-integrity
ادامه میدهد.
چرا احکام Play Integrity API در دستگاههای Android 13 یا جدیدتر تغییر میکنند؟
Play Integrity API فقط تا حدی از سیگنالهای امنیتی سختافزاری در نسخههای Android SDK استفاده میکند. با افزایش ادغام، احکام Play Integrity API در برابر مهاجمان انعطافپذیرتر، برای برنامهها کارآمدتر و برای کاربران خصوصیتر خواهند بود. هنگامی که انتقال کامل شد، ما انتظار داریم که در دستگاههای دارای Android 13 یا بالاتر، پیشرفتهای زیر انجام شود:
- کاهش سیگنالهای دستگاهی که برای ایجاد حکم پیشفرض در سرورهای Google باید جمعآوری و ارزیابی شوند تا 90٪. سیگنال های اختیاری همچنان به سیگنال های اضافی برای جمع آوری نیاز دارند.
- بهبود در تأخیر رأی تا 80 درصد برای درخواستهای استاندارد بدترین حالت و تا 80 درصد برای همه درخواستهای کلاسیک برای به دست آوردن رأی پیشفرض. سیگنال های اختیاری می توانند تاخیر را افزایش دهند.
- سطح ثابتی از قابلیت اطمینان و پشتیبانی از همه فاکتورهای فرم Android با تأیید کلیدی از جمله تلفن همراه، رایانه لوحی، تاشو، تلویزیون، خودکار، Wear OS و ChromeOS.
- تمایز بیشتر بین هر برچسب دستگاه در حکم تشخیص دستگاه:
meets-strong-integrity
,meets-device-integrity
, andmeets-basic-integrity
.
انتظار نمی رود عملکرد در طول دوره انتخاب تغییر کند، در حالی که Play Integrity API احکام یکپارچگی قدیمی و جدید را ایجاد می کند. با این حال، پس از راهاندازی احکام جدید برای همه توسعهدهندگان در ماه می ۲۰۲۵، انتظار داریم بهبود عملکرد به تدریج مشاهده شود، در حالی که وابستگیهای قدیمی را برای همه سیگنالهای پیشفرض و اختیاری حذف یا انتقال میدهیم.
حکم Play Integrity API در Play Games برای رایانه شخصی تغییر نمی کند و در اندروید 12 و قبل از آن مانند اندروید 13 و بالاتر خواهد بود.
چگونه می توانم منطق باطن برنامه خود را برای احکام یکپارچگی به روز کنم تا نسخه Android SDK را در نظر بگیرم؟
اگر میخواهید از منطق متفاوتی بر روی سرور باطن برنامه خود بر اساس نسخه Android SDK استفاده کنید، میتوانید از فیلد ویژگیهای دستگاه جدید در حکم استفاده کنید. در اینجا نمونه ای از انجام این کار آورده شده است:
کاتلین
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. }
جاوا
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
در همه نسخههای Android SDK استفاده کنم؟
میتوانید با بهروزرسانی منطق پشتیبان برنامهتان برای استفاده از meets-strong-integrity
زمانی که یک دستگاه قبل از Android 13 است و meets-device-integrity
هنگامی که دستگاه Android نسخه 13 یا بالاتر است با استفاده از فیلد ویژگیهای دستگاه جدید در حکمی که شامل نسخه SDK اندروید. در اینجا نمونه ای از انجام این کار آورده شده است:
کاتلین
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! }
جاوا
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 Integrity API سرمایهگذاری میکنیم و بهطور دورهای ویژگیهای جدیدی را برای کمک به توسعهدهندگان برای مقابله با تهدیدات نوظهور و موارد استفاده جدید راهاندازی میکنیم. سایر بهبودهای حکمی که در حال انجام آن هستیم عبارتند از:
- پاسخ مجوز پخش: برای بازگرداندن پاسخ دارای مجوز Play، Play Integrity API اکنون همیشه نیاز دارد که برنامه درخواست کننده توسط Google Play نصب یا به روز شود. این کار برخی از موارد لبه را برطرف می کند و تفسیر پاسخ را برای توسعه دهندگان آسان تر می کند. این در اندروید 13 یا نسخه های جدیدتر به صورت زنده است.
- در دسترس بودن سیگنالهای اختیاری: همه سیگنالهای اختیاری در دسترس توسعهدهندگانی که از کنسول Google Play یا کنسول SDK Play استفاده میکنند، اکنون به نصب یا بهروزرسانی برنامه درخواستکننده توسط Google Play در Android 13 یا بالاتر نیاز دارند. این شامل
meets-strong-integrity
،meets-basic-integrity
، فعالیت اخیر دستگاه، حکم خطر دسترسی برنامه، و حکم Play Protect است. سایر درخواستهای Play Integrity API برای دریافت چک دستگاه (فقط با برچسبmeets-device-integrity
)، بررسی نصبکننده و بررسی یکپارچگی برنامه استاندارد میشوند. - تغییرات حکم برای دستگاههای خاص: Play Integrity API همچنین شروع به تغییر خودکار احکام دستگاه در سناریوهای بیشتر میکند تا از برنامهها زودتر در تمام نسخههای Android SDK محافظت کند، مانند زمانی که شواهدی از فعالیت بیش از حد یا به خطر افتادن کلید وجود دارد. این شامل توانایی Play برای بازگشت به سیگنالهای دیگر برای تولید احکام موقت دستگاه برای کاربران در زمانی که سیگنالهای سختافزاری در دسترس نیستند، میشود. به توسعه دهندگان توصیه می شود از گفتگوهای اصلاحی Play درون برنامه استفاده کنند یا کاربران را به برنامه Play Store راهنمایی کنند تا مشکلات حکم یکپارچگی را برطرف کنند. با گذشت زمان، این دیالوگ ها با سناریوهای بیشتری سروکار دارند و شامل راهنمایی های خاصی برای کاربران می شوند که به آنها می گویند باید بر اساس دستگاه یا حساب خاص خود چه چیزی را اصلاح کنند.
انتخاب کردن و خروج
چگونه میتوانم در دستگاههای Android 13 یا جدیدتر در حکم بهبودیافته شرکت کنم؟
برنامهنویسانی که از Play Console استفاده میکنند میتوانند در صفحه تنظیمات Play Integrity API شرکت کنند .
بعد از اینکه شرکت کردم، چه اتفاقی برای پاسخ Play Integrity API من خواهد افتاد؟
با شرکت کردن، سه چیز اتفاق میافتد:
- پاسخهای موجود در قسمت
deviceRecognitionVerdict
بلافاصله شروع به تولید و بر اساس الزامات ارزیابی حکم جدید در دستگاههای Android 13 یا جدیدتر میکنند. در دستگاههای دارای Android نسخه ۱۲ و پایینتر،deviceRecognitionVerdict
با استفاده از ارزیابی تاریخچه حکم ایجاد میشود. - یک فیلد جدید
deviceAttributes
دریافت خواهید کرد که حاوی نسخه Android SDK در دستگاه است. - یک فیلد جدید
legacyDeviceRecognitionVerdict
دریافت خواهید کرد که حاوی پاسخ های یکپارچگی دستگاه بر اساس الزامات ارزیابی تاریخچه حکم بدون توجه به نسخه Android SDK است.
هنگامی که حکم تغییر برای همه ادغامها در می 2025 منتشر میشود، هر برنامهای که انتخاب کرده باشد، فیلد legacyDeviceRecognitionVerdict
را دریافت نخواهد کرد.
چگونه مشکلات مربوط به احکام صداقت را گزارش کنم؟
برای گزارش مشکلات مربوط به پاسخها از Play Integrity API، خواه این مشکل مربوط به احکام تاریخی باشد یا موارد جدید، دستورالعملهای صفحه پشتیبانی را دنبال کنید.
آیا میتوانم بعد از شرکت در آن انصراف دهم؟
بله، میتوانید در صفحه تنظیمات Play Integrity API انصراف دهید .
در دسترس بودن
Play Integrity API برای کار کردن به چه چیزی نیاز دارد؟
Play Integrity API مستلزم این است که فروشگاه Google Play و سرویسهای Google Play روی یک دستگاه نصب شوند، این شامل دستگاههای Android و بازیهای Google Play برای رایانه شخصی میشود. درخواستهای کلاسیک به Android 4.4 (سطح API 19) یا جدیدتر و درخواستهای استاندارد به Android 5.0 (سطح API 21) یا بالاتر نیاز دارند. در دستگاههای دارای Android 13 (سطح API 33) و نسخههای جدیدتر، Play Integrity API اکنون از همان سطح قابل اطمینان و پشتیبانی در تمامی فاکتورهای فرم اندروید با تأیید کلیدی از جمله تلفنهای همراه، تبلتها، دستگاههای تاشو، تلویزیون، خودکار، Wear OS و ChromeOS.
چرا Play Integrity API احکام متفاوتی برای دستگاههای مختلف دارد؟
Play Integrity API احکام دستگاههای متعددی را ارائه میکند تا توسعهدهندگانی را با موارد استفاده متفاوت و تحمل خطر سازگار کند و امکان داشتن یک استراتژی اجرایی سطحبندی را فراهم کند. به عنوان مثال، زمانی که برنامه و دستگاه بیشتر مورد اعتماد هستند، یک برنامهنویس ممکن است مراحل تأیید کاربر خود را سادهتر کند. در حالی که وقتی دستگاهی ناشناخته است، ممکن است توسعه دهنده قبل از انجام اقدامات محافظت شده یا حساس به تأیید کاربر اضافی نیاز داشته باشد. این می تواند یک راه موثر برای کاهش سوء استفاده و حملات باشد.
دستگاه مجهز به Android دارای گواهی Play Protect چیست؟
دستگاه مجهز به Android دارای گواهینامه Play Protect (همچنین به عنوان دستگاه Android GMS شناخته میشود) دستگاهی است که نرمافزار قابل پیشبینی را اجرا میکند که صدها تست سازگاری Google را گذرانده است، به مدل امنیت و مجوزهای Android پایبند است و با مجموعه Google Play Protect ارسال شده است. ویژگی های ضد بدافزار وقتی Play Integrity API بتواند تأیید کند که دستگاهی دارای گواهینامه Play Protect دارای Android است، پاسخ meets-device-integrity
را در حکم تشخیص دستگاه برمیگرداند.
دستگاه meets-basic-integrity
چیست؟
Play Integrity API همچنین یک پاسخ اختیاری در حکم دستگاه برمیگرداند، meets-basic-integrity
. اگر دستگاهی فقط حکم meets-basic-integrity
را بدون meets-device-integrity
or meets-strong-integrity
برگرداند، به این معنی است که سیستم عامل Android قابل تأیید نیست اما تأیید کلیدی وجود دارد. این نشان میدهد که بررسی روی یک دستگاه فیزیکی مجهز به Android انجام شده است، اما Google نمیتواند در مورد امنیت، حریم خصوصی، یا سازگاری برنامه دستگاه تضمین کند و نمیتواند تضمین کند که دستگاه بهعنوان یک پروکسی عمل نمیکند، مثلاً برای مثال مجازی Android. . بسته به موارد استفاده توسعه دهندگان و میزان تحمل ریسک، آنها می توانند تصمیم بگیرند که چگونه می خواهند برنامه آنها روی این دستگاه ها اجرا شود.
آیا هر توسعه دهنده ای می تواند از Play Integrity API استفاده کند؟
بله، هر توسعهدهنده اندروید میتواند درخواستهای Play Integrity API را برای دریافت احکام یکپارچگی پیشفرض ارائه دهد. محدودیت استفاده در 10 هزار درخواست در روز بدون توجه به کانال توزیع است. برنامهنویسانی که برنامههای خود را در Google Play منتشر میکنند، علاوه بر سایر کانالهای توزیع، میتوانند درخواست افزایش سهمیه روزانه خود را نیز داشته باشند.
آیا هر توسعه دهنده ای می تواند از گواهی کلید پلتفرم اندروید استفاده کند؟
بله، هر توسعهدهنده اندروید میتواند از گواهی کلید پلتفرم Android برای به دست آوردن یک رکورد گواهی کلید استفاده کند، که میتواند با گواهی عمومی کلید اصلی گواهی Google تأیید کند. Play Integrity API مزایای گواهی کلید و ویژگیهای اضافی را بدون پیچیدگی لازم برای ادغام خود با گواهینامه کلیدی برای توسعهدهندگان به ارمغان میآورد.
اجرا
توسعه دهندگان چگونه از احکام Play Integrity API استفاده می کنند؟
این به توسعه دهندگان بستگی دارد که تصمیم بگیرند آیا و چگونه از احکام Play Integrity API استفاده کنند. برخی از توسعهدهندگان سیگنالها را برای تجزیه و تحلیل داخلی ضد سوء استفاده جمعآوری میکنند، در حالی که توسعهدهندگان دیگر درباره نحوه رفتار برنامهشان بر اساس حکم تصمیمگیری میکنند. برای مثال، توسعهدهندگان میتوانند تصمیم بگیرند که هنگام ایجاد حساب، از دستگاههای کمتر قابل اعتمادی بخواهند که مراحل تأیید کاربر اضافی را انجام دهند. یا آنها می توانند تصمیم بگیرند که دستگاه های کمتر قابل اعتماد باید با هم در یک سرور چند نفره بازی کنند.
آیا Play Integrity API کاربران یا دستگاهها را مسدود میکند؟
خیر، Play Integrity API خود دسترسی به هیچ عملکردی را مسدود نمی کند. این یک سرویس توسعه دهنده اختیاری است که سیگنال ها را ارائه می دهد و توسعه دهندگان نحوه عمل بر روی آن سیگنال ها را انتخاب می کنند.
اگر کاربران دستگاهشان در بررسی دستگاه Play Integrity API ناموفق باشد، چه کاری باید انجام دهند؟
کاربران میتوانند به برنامه Play Store در دستگاه خود بروند، منوی تنظیمات را باز کنند، به پایین بروید تا به About بروید و سپس به گواهینامه Play Protect نگاه کنید. اگر مشکلی در گواهینامه Play Protect دستگاه آنها وجود داشته باشد، دکمه ای وجود خواهد داشت که کاربران می توانند برای رفع مشکل آن را فشار دهند. این وضعیت گواهینامه دستگاه را تازه می کند و راهنمایی خاصی در مورد مواردی که باید اصلاح شود ارائه می دهد.