Play Integrity API به شما کمک میکند تا بررسی کنید که اقدامات کاربر و درخواستهای سرور از برنامه اصلی شما، نصبشده توسط Google Play، و در حال اجرا بر روی دستگاههای مجهز به Android واقعی میآیند. با شناسایی تعاملات مخاطرهآمیز - مانند آنهایی که از نسخههای برنامه دستکاری شده، دستگاههای غیرقابل اعتماد یا محیطهای شبیهسازیشده - سرور باطن شما میتواند با اقدامات مناسب برای جلوگیری از سوء استفاده و دسترسی غیرمجاز، مبارزه با کلاهبرداری، مبارزه با تقلب، و محافظت از کاربران در برابر حملات پاسخ دهد.
API احکامی را برمیگرداند که به شما در شناسایی تهدیدهای بالقوه کمک میکند، از جمله:
- دسترسی غیرمجاز : حکم
accountDetails
به شما کمک میکند تعیین کنید که آیا کاربر برنامه یا بازی شما را در Google Play نصب کرده یا هزینه پرداخت کرده است. - دستکاری کد : حکم
appIntegrity
به شما کمک میکند تا تعیین کنید که آیا در حال تعامل با باینری اصلاحنشدهای هستید که Google Play تشخیص میدهد یا خیر. - دستگاههای مخاطرهآمیز و محیطهای شبیهسازیشده : حکم
deviceIntegrity
به شما کمک میکند تعیین کنید که آیا برنامه شما روی یک دستگاه Android دارای تأییدیه Play Protect واقعی اجرا میشود یا یک نمونه واقعی از بازیهای Google Play برای رایانه شخصی.
توسعهدهندگان Google Play همچنین میتوانند برای شناسایی طیف وسیعتری از تهدیدات احتمالی، از جمله موارد زیر، احکام بیشتری دریافت کنند:
- دستگاههای وصلهنشده : پاسخ
MEETS_STRONG_INTEGRITY
در رأیdeviceIntegrity
به شما کمک میکند تعیین کنید که آیا دستگاهی بهروزرسانیهای امنیتی اخیر را اعمال کرده است (برای دستگاههای دارای Android نسخه 13 و بالاتر). - دسترسی مخاطره آمیز توسط سایر برنامه ها:
appAccessRiskVerdict
به شما کمک می کند تعیین کنید که آیا برنامه هایی در حال اجرا هستند که می توانند برای تصویربرداری از صفحه، نمایش پوشش ها یا کنترل دستگاه (مثلاً با سوء استفاده از مجوز دسترسی) استفاده شوند. - بدافزار شناخته شده:
playProtectVerdict
به شما کمک می کند تعیین کنید که آیا Google Play Protect روشن است و آیا برنامه های مخاطره آمیز یا خطرناک نصب شده روی دستگاه را پیدا کرده است. - بیش فعالی: سطح
recentDeviceActivity
به شما کمک می کند تعیین کنید که آیا دستگاه اخیراً حجم بالایی از درخواست ها را ارسال کرده است یا خیر، که می تواند نشان دهنده ترافیک خودکار باشد و می تواند نشانه حمله باشد. - تکرار سوء استفاده و استفاده مجدد از دستگاهها:
deviceRecall
(بتا) به شما کمک میکند تعیین کنید که آیا در حال تعامل با دستگاهی هستید که قبلاً پرچمگذاری کردهاید، حتی اگر برنامه شما دوباره نصب شده باشد یا دستگاه بازنشانی شده باشد.
API را میتوان در قالب فاکتورهای Android از جمله تلفنها، تبلتها، تاشوها، Android Auto، Android TV، Android XR، ChromeOS، Wear OS و در بازیهای Google Play برای رایانه شخصی استفاده کرد.
ملاحظات امنیتی
Play Integrity API بیشترین ارزش را برای برنامه شما فراهم می کند که این روش های توصیه شده را دنبال کنید:
یک استراتژی ضد سوء استفاده داشته باشید
Play Integrity API زمانی بهترین عملکرد را دارد که در کنار سیگنالهای دیگر به عنوان بخشی از استراتژی کلی ضد سوء استفاده شما و نه به عنوان تنها مکانیسم ضد سوء استفاده شما استفاده شود. از این API در ارتباط با سایر بهترین شیوه های امنیتی مناسب برای برنامه خود استفاده کنید. بهطور پیشفرض، برنامه شما میتواند تا 10000 کل درخواست در روز در همه نصبها داشته باشد. می توانید درخواست کنید حداکثر روزانه خود را افزایش دهید .
قبل از اقدام، تله متری را جمع آوری کنید و مخاطبان خود را درک کنید
قبل از اینکه نحوه رفتار برنامه خود را بر اساس احکام Play Integrity API تغییر دهید، میتوانید با اجرای API بدون اعمال، وضعیت فعلی مخاطبان فعلی خود را درک کنید. هنگامی که بدانید پایگاه نصب فعلی شما چه احکامی را برمیگرداند، میتوانید تأثیر هر اجرایی را که در حال برنامهریزی هستید تخمین بزنید و استراتژی ضد سوء استفاده خود را بر اساس آن تنظیم کنید.
تصمیم بگیرید که چگونه احکام صداقت را درخواست کنید
Play Integrity API دو گزینه برای درخواست و دریافت حکم یکپارچگی ارائه می دهد. چه درخواستهای استاندارد، درخواستهای کلاسیک یا ترکیبی از هر دو نوع درخواست ارائه کنید، پاسخ حکم یکپارچگی در قالب یکسان برگردانده میشود.
درخواستهای استاندارد API برای هر برنامه یا بازی مناسب هستند و میتوانند در صورت درخواست برای بررسی واقعی بودن هر اقدام کاربر یا درخواست سرور انجام شوند. درخواست های استاندارد کمترین تأخیر (به طور متوسط چند صد میلی ثانیه) و قابلیت اطمینان بالایی برای به دست آوردن یک حکم قابل استفاده دارند. درخواستهای استاندارد از حافظه پنهان هوشمند روی دستگاه استفاده میکنند و در عین حال محافظت در برابر انواع خاصی از حملات را به Google Play واگذار میکنند.
درخواستهای API کلاسیک ، روش اصلی برای درخواست احکام یکپارچگی، همچنان در دسترس هستند. درخواست های کلاسیک تاخیر بالاتری دارند (به طور متوسط چند ثانیه) و شما مسئول کاهش خطر انواع خاصی از حملات هستید. درخواستهای کلاسیک بیشتر از درخواستهای استاندارد از دادهها و باتری کاربر استفاده میکنند، زیرا یک ارزیابی جدید را آغاز میکنند و بنابراین باید بهندرت بهعنوان یکبار برای بررسی واقعی بودن یک اقدام بسیار حساس یا ارزشمند انجام شوند. اگر قصد دارید یک درخواست کلاسیک ایجاد کنید و آن را در حافظه پنهان ذخیره کنید تا بعداً از آن استفاده کنید، باید به جای آن یک درخواست استاندارد برای کاهش خطر حملات ارسال کنید.
جدول زیر برخی از تفاوت های کلیدی بین این دو نوع درخواست را نشان می دهد:
درخواست استاندارد API | درخواست کلاسیک API | |
---|---|---|
حداقل نسخه Android SDK مورد نیاز است | Android 5.0 (سطح API 21) یا بالاتر | Android 4.4 (سطح API 19) یا بالاتر |
گرم کردن API مورد نیاز است | ✔️ (چند ثانیه) | ❌ |
تأخیر درخواست معمولی | چند صد میلی ثانیه | چند ثانیه |
فرکانس درخواست بالقوه | مکرر (بررسی درخواستی برای هر اقدام یا درخواست) | به ندرت (بررسی یکباره برای اقدامات بالاترین ارزش یا حساس ترین درخواست ها) |
در برابر تکرار و حملات مشابه کاهش دهید | کاهش خودکار توسط Google Play | از فیلد nonce با منطق سمت سرور استفاده کنید |
می توانید جدولی را با تفاوت های بیشتر در ملاحظات درخواست کلاسیک مشاهده کنید.
در یک لحظه مناسب حکم صداقت را درخواست کنید
برای جلوگیری از کار کلاهبرداران در مورد بررسی یکپارچگی انجام شده توسط برنامه شما، باید یک حکم خطر دسترسی به برنامه را تا حد امکان به زمان اقدام یا درخواست سروری که می خواهید در برابر دسترسی به آن دفاع کنید، درخواست کنید.
درخواست های API خود را به سختی تکرار کنید
درخواست های استاندارد API دارای فیلدی به نام requestHash
هستند که برای محافظت در برابر دستکاری و حملات مشابه استفاده می شود. در این فیلد، باید خلاصه ای از تمام مقادیر مربوطه را از درخواست برنامه خود وارد کنید. دستورالعمل نحوه استفاده از محتوای الزام آور برای محافظت از درخواست های استاندارد برنامه خود را دنبال کنید.
درخواستهای API کلاسیک دارای فیلدی به نام nonce
(مخفف عدد یکبار) هستند که برای محافظت در برابر انواع خاصی از حملات، مانند حملات مجدد و دستکاری استفاده میشود. دستورالعمل نحوه تولید nonces برای محافظت از درخواست های کلاسیک برنامه خود را دنبال کنید.
از ذخیره کردن احکام یکپارچگی خودداری کنید
ذخیرهسازی احکام یکپارچگی، خطر پروکسی را افزایش میدهد، که حملهای است که در آن یک بازیگر بد از یک حکم از یک دستگاه خوب برای اهداف سوء استفاده مجدد در محیط دیگری استفاده میکند. بهجای ذخیره پاسخها، میتوانید یک درخواست استاندارد API برای دریافت حکم در صورت تقاضا انجام دهید .
یک استراتژی اجرایی پلکانی داشته باشید
حکم یکپارچگی Play Integrity API دارای طیف وسیعی از پاسخهای ممکن است که ساختن یک استراتژی ضد سوء استفاده را با چندین لایه اجرایی ممکن میسازد. می توانید این کار را با پیکربندی سرور باطن برنامه خود انجام دهید تا بسته به هر پاسخ احتمالی یا گروهی از پاسخ ها، رفتار متفاوتی داشته باشد.
همچنین میتوانید با انتخاب کردن دریافت برچسبهای دستگاه اضافی در پاسخ API خود از Play Console، استراتژی اجرایی خود را بر اساس قابلیت اعتماد دستگاه طبقهبندی کنید. هر دستگاه تمام برچسب هایی را که معیارهای آن را برآورده می کند، برمی گرداند. برای مثال، پس از انتخاب برای دریافت همه برچسبهای دستگاه، میتوانید به دستگاهی اعتماد کنید که MEETS_STRONG_INTEGRITY
، MEETS_DEVICE_INTEGRITY
، و MEETS_BASIC_INTEGRITY
بیشتر از دستگاهی که فقط MEETS_BASIC_INTEGRITY
برمیگرداند اعتماد کنید. در هر سناریو می توانید متفاوت از سرور پاسخ دهید.
طیف وسیعی از پاسخ ها را از سرور خود به برنامه خود ارسال کنید
تکرار کردن طیف وسیعی از نتایج تصمیم دشوارتر از ارسال پاسخ باینری Allow/Deny از سرور به برنامه برای هر پاسخ است. برای مثال، میتوانید از یک سری پاسخهای مرتبط مانند Allow، Allow with limits، Allow with limits پس از تکمیل CAPTCHA و Deny استفاده کنید.
با استفاده از فراخوانی دستگاه، با حفظ حریم خصوصی کاربر، سوء استفاده مکرر را شناسایی کنید
فراخوانی دستگاه به برنامهها این امکان را میدهد تا برخی از دادههای سفارشی مرتبط با یک دستگاه خاص را به گونهای که حریم خصوصی کاربر حفظ شود، ذخیره و فراخوانی کنند. دادهها در سرورهای Google ذخیره میشوند و به برنامه شما امکان میدهند حتی پس از نصب مجدد برنامه یا بازنشانی دستگاه، دادههای هر دستگاه را بهطور قابلاعتماد به خاطر بیاورد. این روشی مطمئن به شما می دهد تا دستگاهی را که در گذشته توهین آمیز می دانستید دوباره شناسایی کنید تا بتوانید اقدام کنید و از استفاده مجدد آن برای سوءاستفاده جلوگیری کنید. شما می توانید معنای خود را برای سه مقداری که داده های فراخوان دستگاه را تشکیل می دهند تعریف کنید:
- شما می توانید از آنها به عنوان حداکثر سه پرچم یا بولین جداگانه استفاده کنید. به عنوان مثال، مقادیر میتوانند نشان دهند که دستگاهی حساب کاربری ایجاد کرده یا نکرده است، نسخه آزمایشی رایگان را پسخرید کرده یا نکرده است، یا به دلیل سوء استفاده با شدت بالا شناخته شده است یا نشده است.
- از طرف دیگر، میتوانید تمام حالتهای مقادیر را در حداکثر هشت برچسب سفارشی ترکیب کنید، برای مثال یک برچسب برای حالت پیشفرض زمانی که هر سه مقدار اصلاح نشده باشند و هفت برچسب با معانی سفارشی. این به شما امکان می دهد همه دستگاه ها را بر اساس رفتارها یا اقداماتی که تعریف می کنید به هشت گروه تقسیم کنید. در این سناریو، آخرین بهروزرسانی از سه
writeDates
نشان میدهد که آخرین بار چه زمانی برچسب را بهروزرسانی کردهاید.
همچنین هنگام کار با داده های فراخوانی دستگاه، پیش نیازها و سایر ملاحظات را در نظر داشته باشید.
با استفاده از فعالیت اخیر دستگاه، سوء استفاده در مقیاس بزرگ را شناسایی کنید
از ویژگی فعالیت اخیر دستگاه در Play Integrity API برای پیدا کردن دستگاههایی که تعداد زیادی توکن یکپارچگی درخواست میکنند، استفاده کنید. سوء استفادهکنندگان با حجم بالا معمولاً نتایج تأیید معتبر را از دستگاههای واقعی تولید میکنند و آنها را در اختیار رباتها قرار میدهند تا حملات به دستگاههای روت شده و شبیهسازها را خودکار کنند. میتوانید از سطح فعالیت اخیر دستگاه برای بررسی تعداد تأییدیههایی که برنامه شما در یک ساعت گذشته در آن دستگاه تولید کرده است استفاده کنید.
نمایش پیام های خطای قابل اجرا
در صورت امکان، پیام های خطای مفیدی را به کاربر ارائه دهید و به او اطلاع دهید که برای رفع آن چه کاری می تواند انجام دهد. مانند تلاش مجدد، فعال کردن اتصال اینترنت آنها، یا بررسی به روز بودن برنامه Play Store.
برای مسائل غیر منتظره یا قطعی برنامه داشته باشید
داشبورد وضعیت Play اطلاعاتی درباره وضعیت سرویس Play Integrity API به همراه اطلاعاتی درباره هرگونه اختلال و قطعی نشان میدهد. شما باید از قبل برنامهریزی کنید که میخواهید سرور باطن شما در مواقع غیر محتمل قطع شدن Play Integrity API در مقیاس بزرگ چگونه کار کند. توجه داشته باشید که در مواقعی که کلیدهای تأیید کلید پلتفرم Android خاص برای دستگاهها لغو میشوند، سرور باطن شما نیز باید آماده کار باشد.
راهحلهای کلاهبرداری شرکتی را در نظر بگیرید
مشتریان سازمانی که به دنبال راه حل کامل کلاهبرداری و مدیریت ربات هستند، می توانند reCAPTCHA Enterprise را برای تلفن همراه خریداری کنند، که شامل SDK هایی برای Android است که امتیازات ریسک کلاهبرداری را برای توسعه دهندگان ارائه می دهد. reCAPTCHA Enterprise به طور خودکار سیگنالهای Play Integrity API را شامل میشود و آنها را با سیگنالهای شبکه و برنامه کاربردی reCAPTCHA برای مشتریان ترکیب میکند و یک راهحل مدیریت کلاهبرداری بدون اصطکاک و نامرئی را ارائه میکند. همچنین میتواند برای برنامههای اندرویدی که Play Integrity API در دسترس نیست، محافظت کند.
هنگام دسترسی به ویژگیهای با ارزش یا حساس، ترافیک پرخطر را به چالش بکشید
به جای رد کردن مستقیم دسترسی، اقدامات با ارزش یا حساس را در برنامه یا بازی خود شناسایی کنید تا با Play Integrity API از آن محافظت کنید. در صورت امکان، قبل از اجازه دادن به اقدامات با ارزش بالا، ترافیک پرخطر را به چالش بکشید. به عنوان مثال، وقتی خطر دسترسی به برنامه نشان میدهد که برنامهای در حال اجرا است که میتواند صفحه نمایش را بگیرد، از کاربر بخواهید برنامههایی را که میتوانند صفحه نمایش را ضبط کنند، غیرفعال یا حذف نصب کند، قبل از اینکه به آنها اجازه دهید به عملکردی که میخواهید از آن محافظت کنید، ادامه دهند.
شرایط خدمات و ایمنی داده ها
با دسترسی یا استفاده از Play Integrity API، با شرایط خدمات Play Integrity API موافقت میکنید. لطفاً قبل از دسترسی به API همه شرایط و خط مشی های قابل اجرا را بخوانید و درک کنید.
Google Play یک بخش ایمنی داده برای توسعه دهندگان دارد تا جمعآوری دادهها، اشتراکگذاری و شیوههای امنیتی برنامههای خود را افشا کنند تا کاربران شما را مطلع کنند. برای کمک به تکمیل فرم داده خود، این اطلاعات را در مورد نحوه مدیریت API Play Integrity مشاهده کنید.