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 Protect روشن است یا خیر و آیا برنامههای خطرناک یا خطرناک نصب شده روی دستگاه را پیدا کرده است.
بررسی اجمالی
هنگامی که کاربر اقدامی را در برنامه شما انجام میدهد، میتوانید با Play Integrity API تماس بگیرید تا بررسی کنید که آیا این کار در باینری برنامه اصلی شما که توسط Google Play نصب شده است و روی یک دستگاه Android واقعی اجرا میشود، اتفاق افتاده است. همچنین میتوانید اطلاعات اضافی را در پاسخ از جمله حجم درخواستهایی که اخیراً یک دستگاه انجام داده است و سیگنالهای مربوط به محیط، از جمله حکم خطر دسترسی برنامه و حکم «سپر ایمنی 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 استفاده کنید.
با استفاده از فعالیت اخیر دستگاه، سوء استفاده در مقیاس بزرگ را شناسایی کنید
از ویژگی فعالیت اخیر دستگاه در Play Integrity API برای پیدا کردن دستگاههایی که تعداد زیادی توکن یکپارچگی درخواست میکنند، استفاده کنید. سوء استفادهکنندگان با حجم بالا معمولاً نتایج تأیید معتبر را از دستگاههای واقعی تولید میکنند و آنها را در اختیار رباتها قرار میدهند تا حملات به دستگاههای روت شده و شبیهسازها را خودکار کنند. میتوانید از سطح فعالیت اخیر دستگاه برای بررسی تعداد تأییدیههایی که برنامه شما در یک ساعت گذشته در آن دستگاه تولید کرده است استفاده کنید.
نمایش پیام های خطای قابل اجرا
در صورت امکان، پیام های خطای مفیدی را به کاربر ارائه دهید و به او اطلاع دهید که برای رفع آن چه کاری می تواند انجام دهد. مانند تلاش مجدد، فعال کردن اتصال اینترنت آنها، یا بررسی به روز بودن برنامه Play Store.
برای مسائل غیر منتظره یا قطعی برنامه داشته باشید
داشبورد وضعیت Play اطلاعاتی درباره وضعیت سرویس Play Integrity API به همراه اطلاعاتی درباره هرگونه اختلال و قطعی نشان میدهد. شما باید از قبل برنامهریزی کنید که میخواهید سرور باطن شما در مواقع غیر محتمل قطع شدن Play Integrity API در مقیاس بزرگ چگونه کار کند.
راهحلهای کلاهبرداری شرکتی را در نظر بگیرید
مشتریان سازمانی که به دنبال راه حل کامل کلاهبرداری و مدیریت ربات هستند، می توانند 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 مشاهده کنید.