בדף הזה מוסבר איך להגדיר את האפליקציה, המשחק או ה-SDK לשימוש ב-Play Integrity API. כדי לשלב את ה-API, צריך פרויקט ב-Google Cloud, שנדרש כדי להתחיל לשלוח בקשות. אחרי זה, אתם יכולים לקשר את פרויקט הענן שלכם ב-Google Cloud ב-Google Play Console (לאפליקציות) או ב-Google Play SDK Console (לערכות SDK). כדי לגשת לאפשרויות הגדרה נוספות, לתכונות בדיקה ולדוחות API, וכדי לבקש להגדיל את מכסת הבקשות היומית, צריך לקשר את הפרויקט.
הפעלת Play Integrity API
לכל אפליקציה או ערכת SDK שמפעילה את Play Integrity API צריך להיות פרויקט ב-Google Cloud כדי להשתמש ב-API ולעקוב אחרי השימוש. זהו השלב הראשון שחובה לבצע בכל השילובים. אתם יכולים להפעיל את Play Integrity API במסוף Google Cloud, או לדלג ישירות לקישור של הפרויקט בענן ל-Google Play, ואז Play Integrity API יופעל בשבילכם.
במסוף Google Cloud, יוצרים פרויקט חדש ב-Cloud או בוחרים פרויקט קיים ב-Cloud שרוצים להשתמש בו עם Play Integrity API.
- עוברים אל ממשקי API ושירותים.
- לוחצים על Enable APIs and services.
- מחפשים את Play Integrity API.
- לוחצים על הפעלה.
עכשיו אפשר לשלב את Play Integrity API באפליקציה. כדי לגשת לתכונות מתקדמות ולהגדיל את המכסות, צריך להמשיך לשלב הקישור.
קישור ל-Google Play (מומלץ)
כדי לקשר את הפרויקט ב-Google Cloud לאפליקציה או ל-SDK, פועלים לפי ההוראות הבאות.
לאפליקציות ולמשחקים ב-Google Play
כדי להפעיל תכונות נוספות ולבקש להגדיל את המכסה היומית של ה-API, צריך לקשר את פרויקט Google Cloud של אפליקציות שמופצות ב-Google Play ב-Google Play Console.
- פותחים את Google Play Console ובוחרים את האפליקציה.
- עוברים אל מוגן על ידי Play.
- ליד Play Integrity API, לוחצים על הכפתור תחילת העבודה כדי לעבור אל הגדרות Play Integrity API.
- לוחצים על הכפתור קישור פרויקט בענן.
- בוחרים את הפרויקט ב-Google Cloud שרוצים להשתמש בו עם Play Integrity API. אם Play Integrity API עדיין לא מופעל בפרויקט, הוא יופעל באופן אוטומטי אחרי הקישור.
לספקי SDK ב-Play SDK Console
ספקי SDK שמשתמשים ב-Google Play SDK Console יכולים לקשר את הפרויקט שלהם ב-Google Cloud כדי לשייך את השימוש ב-API ל-SDK, במקום לאפליקציות הספציפיות שמשתמשות בו. הם גם יכולים להפעיל תכונות נוספות ולבקש להגדיל את המכסה היומית של ה-API. חשוב לזכור שהגישה ל-Google Play SDK Console כפופה לקריטריונים לזכאות.
- פותחים את Google Play SDK Console ובוחרים את ה-SDK.
- עוברים אל תקינות ה-SDK.
- בקטע Play Integrity API, לוחצים על קישור פרויקט בענן.
- בוחרים את הפרויקט ב-Google Cloud שרוצים להשתמש בו עם Play Integrity API. אם Play Integrity API עדיין לא מופעל בפרויקט, הוא יופעל באופן אוטומטי אחרי הקישור.
הסבר על מגבלות השימוש ב-Play Integrity API
לאפליקציה או ל-SDK יש מגבלה יומית של 10,000 בקשות בסך הכול, שקשורה למספר הפרויקט בענן. אם אתם צופים נפח גבוה יותר, אתם יכולים לבקש הגדלה של המכסה.
| פעולה | מכסה יומית | הערות |
|---|---|---|
| בקשות לטוקנים | 10,000 | משותף בין בקשות קלאסיות לבין הכנות רגילות של טוקנים |
| פענוח טוקנים בשרתים של Google | 10,000 | משותף בין בקשות קלאסיות ורגילות |
הגדלת המספר המקסימלי של בקשות ביום
הגדלת המכסה כפופה לקריטריונים לזכאות. הגדלת המכסה חלה גם על יצירת טוקנים בצד הלקוח וגם על קריאות לפענוח בצד השרת. הטיפול בבקשות יכול להימשך עד שבוע. מומלץ לעקוב אחרי השימוש ב-Play Integrity API במסוף Google Cloud ולהגדיר התראות על הגעה למכסה כדי למנוע שיבושים בשירות.
גם אם המכסה גדולה יותר, המשיכו להגביל את הבקשות הקלאסיות לפעולות לא תכופות ובעלות ערך גבוה כדי לחסוך בסוללה ובשימוש בנתונים של המשתמשים.
לאפליקציות ולמשחקים ב-Google Play
כדי לעמוד בדרישות להגדלת המכסה, האפליקציה צריכה להיות זמינה ב-Google Play בנוסף לערוצי הפצה אחרים. אתם צריכים לקשר את הפרויקט בענן ב-Google Cloud לאפליקציה ב-Play Console. בקשות להגדלת המכסות מפרויקטים לא מקושרים יידחו.
כדי לבקש להגדיל את המכסה:
- מקשרים את הפרויקט הרלוונטי ב-Google Cloud ב-Play Console.
- מוודאים שהטמעתם בצורה נכונה את הלוגיקה של ה-API, כולל אסטרטגיות מתאימות לניסיון חוזר.
- שולחים את טופס הבקשה להגדלת המכסה.
לספקי SDK ב-Play SDK Console
כדי להיות זכאים להגדלת המכסה, אתם צריכים לתבוע בעלות על ה-SDK ב-Google Play SDK Console ולקשר את הפרויקט בענן ל-SDK. הגישה ל-Google Play SDK Console כפופה לקריטריונים לזכאות.
כדי לבקש להגדיל את המכסה:
- מקשרים את פרויקט הענן ב-Google Cloud ב-Google Play SDK Console.
- ממלאים את טופס התמיכה למפתחים.
בשדה הטקסט החופשי, ציינו את פרטי ה-SDK, תארו את תרחיש השימוש, את סוג בקשות ה-API שאתם שולחים (רגילות, קלאסיות או גם וגם), את תדירות הבקשות ואת המספר המקסימלי של בקשות ליום שאתם רוצים.
שילוב של Play Integrity API באפליקציה
כדי לשלב את Play Integrity API באפליקציה או ב-SDK, מבצעים את אחת מהפעולות הבאות בהתאם לסביבת הפיתוח:
Kotlin או Java
ספריית Android העדכנית של Play Integrity API זמינה במאגר Maven של Google. מוסיפים את התלות הבאה לקובץ build.gradle של האפליקציה:
implementation 'com.google.android.play:integrity:1.6.0'
Unity
בקטעים הבאים מוסבר איך לשלב ולהגדיר את Google Play Integrity API בפרויקטים ב-Unity, כולל גרסאות Unity נתמכות, שיטות התקנה והגדרת סביבה.
גרסאות Unity נתמכות
- כל הגרסאות של 2019.x, 2020.x וגרסאות חדשות יותר נתמכות.
- אם אתם משתמשים ב-Unity 2018.x, גרסה 2018.4 ואילך נתמכת.
- גרסאות Unity 2017.x וגרסאות ישנות יותר לא נתמכות.
הגדרת סביבת הפיתוח
OpenUPM-CLI
אם התקנתם את OpenUPM CLI, אתם יכולים להתקין את מרשם OpenUPM באמצעות הפקודה הבאה:
openupm add com.google.play.integrityOpenUPM
פותחים את הגדרות מנהל החבילות דרך האפשרות Edit > Project Settings > Package Manager (עריכה > הגדרות הפרויקט > מנהל החבילות) בתפריט של Unity.
מוסיפים את OpenUPM כמרשם מוגדר לחלון Package Manager:
Name: package.openupm.com URL: https://package.openupm.com Scopes: com.google.external-dependency-manager com.google.play.common com.google.play.core com.google.play.integrityפותחים את התפריט של מנהל החבילות על ידי בחירה באפשרות Window > Package Manager בתפריט של Unity.
בתפריט הנפתח של היקף הניהול, בוחרים באפשרות My Registries (המרשמים שלי).
בוחרים את החבילה Google Play Integrity plugin for Unity מרשימת החבילות ולוחצים על Install.
ייבוא מ-GitHub
מורידים את הגרסה האחרונה של
.unitypackageמ-GitHub.מייבאים את הקובץ
.unitypackage. לשם כך, בוחרים באפשרות Assets > Import package > Custom Package (נכסים > ייבוא חבילה > חבילה מותאמת אישית) בתפריט של Unity ומייבאים את כל הפריטים.
Unreal Engine
בקטעים הבאים מוסבר איך לשלב ולהגדיר את Google Play Integrity API בפרויקטים של Unreal Engine.
גרסאות Unreal Engine נתמכות
הפלאגין תומך ב-Unreal Engine 5.0 ובכל הגרסאות הבאות.
הגדרת סביבת הפיתוח
מורידים את הפלאגין Play Unreal Engine מהמאגר ב-GitHub.
מעתיקים את התיקייה
GooglePlayלתוך התיקייהPluginsבפרויקט ב-Unreal Engine.פותחים את הפרויקט ב-Unreal Engine ולוחצים על Edit → Plugins.
מחפשים את Google Play ומסמנים את התיבה מופעל.
מפעילים מחדש את פרויקט המשחק ומפעילים גרסה.
פותחים את הקובץ
Build.csשל הפרויקט ומוסיפים את המודולPlayIntegrityאלPublicDependencyModuleNames:using UnrealBuildTool; public class MyGame : ModuleRules { public MyGame(ReadOnlyTargetRules Target) : base(Target) { // ... PublicDependencyModuleNames.Add("PlayIntegrity"); // ... } }
פורמט מותאם
פועלים לפי המדריך להגדרת מודעות מותאמות. לפרטים נוספים, עיינו במאמרי העזרה של ה-API המקורי של Play Integrity.
הגדרת תגובות מה-API (אופציונלי)
התגובה מה-API כוללת קביעות ברירת מחדל שמוחזרות בכל בקשה. אם קישרתם את פרויקט הענן שלכם ב-Play Console או ב-Play SDK Console, אתם יכולים להתאים אישית את התגובה מה-API כך שתכלול מידע נוסף.
קביעות תקינות שמוגדרות כברירת מחדל
כברירת מחדל, קביעות התקינות הבאות מוחזרות בתגובה מ-Play Integrity API:
| שדה תשובה | ערך | תיאור |
|---|---|---|
| פרטי החשבון ב-Play | LICENSED |
למשתמש יש הרשאה לאפליקציה. במילים אחרות, המשתמש התקין או עדכן את האפליקציה מ-Google Play במכשיר שלו. |
UNLICENSED |
למשתמש אין הרשאה לאפליקציה. זה קורה, למשל, כשהמשתמש מתקין את האפליקציה בשיטה חלופית או לא מתקין אותה דרך Google Play. | |
UNEVALUATED |
פרטי הרישיון לא נבדקו כי לא עמדת באחת מהדרישות. יכולות להיות לכך כמה סיבות, כולל:
|
|
| מהימנות אפליקציה | PLAY_RECOGNIZED |
האפליקציה והאישור תואמים לגרסאות שמופצות על ידי Google Play. |
UNRECOGNIZED_VERSION |
האישור או שם החבילה לא תואמים לרשומות ב-Google Play. | |
UNEVALUATED |
תקינות האפליקציה לא נבדקה. לא עמדתם בדרישה הכרחית, למשל המכשיר לא מהימן מספיק. | |
| תקינות המכשיר | MEETS_DEVICE_INTEGRITY |
האפליקציה פועלת במכשיר Android מקורי ומאושר. ב-Android מגרסה 13 ואילך, יש הוכחה מבוססת חומרה לכך שמנהל האתחול של המכשיר נעול ושהגרסה של Android OS שנטענה היא קובץ אימג' מאושר של יצרן המכשיר. |
| ריק (ערך ריק) | האפליקציה פועלת במכשיר שיש בו סימנים למתקפה (כמו API hooking) או לפריצה למערכת (כמו מכשיר שעבר תהליך רוט), או שהאפליקציה לא פועלת במכשיר פיזי (כמו אמולטור שלא עובר את בדיקות Play Integrity של Google Play). |
Google Play Games במחשב
אם אתם מפיצים את האפליקציה ב-Google Play Games במחשב, תצורפו באופן אוטומטי לקבלת תווית נוספת בהחלטה לגבי תקינות המכשיר:
| שדה תשובה | תווית | תיאור |
|---|---|---|
| תקינות המכשיר | MEETS_VIRTUAL_INTEGRITY |
האפליקציה פועלת באמולטור Android שמבוסס על Google Play Services. האמולטור עובר את בדיקות התקינות של המערכת ועומד בדרישות התאימות הבסיסיות של Android. |
קביעות תקינות אופציונליות
אם קישרתם את פרויקט בענן ב-Play Console או ב-Play SDK Console, אתם יכולים להביע הסכמה לקבלת מידע נוסף.
כדי לערוך שינויים, נכנסים ל-Play Console ועוברים אל מוגן באמצעות Play. לצד Play Integrity API, לוחצים על ניהול. לוחצים על שינוי התשובות, עורכים את התשובות ושומרים את השינויים.
פרטי המכשיר
תוויות נוספות של המכשיר בתוצאה deviceIntegrity מספקות מידע נוסף על סביבת המכשיר שבה האפליקציה פועלת.
מכשיר אחד מחזיר כמה תוויות אם הוא עומד בקריטריונים של כל אחת מהן.
אתם יכולים להשתמש בתוויות האלה כדי ליצור אסטרטגיית אכיפה מדורגת. לדוגמה, יכול להיות שתבחרו לתת אמון במכשיר שמחזיר שלוש תוויות (MEETS_STRONG_INTEGRITY, MEETS_DEVICE_INTEGRITY ו-MEETS_BASIC_INTEGRITY) יותר מאשר במכשיר שמחזיר רק תווית אחת (MEETS_BASIC_INTEGRITY).
מאפייני המכשיר מציינים את גרסת ה-Android SDK של מערכת ההפעלה Android במכשיר. בעתיד, יכול להיות שנוסיף עוד מאפייני מכשיר.
האות פעילות במכשיר מהזמן האחרון מחזיר רמה בטווח שבין LEVEL_1 (מספר נמוך של בקשות) לבין LEVEL_4 (מספר גבוה של בקשות). רמות פעילות גבוהות עשויות להצביע על כך שהמכשיר משמש ליצירת יותר מדי אסימונים להפצה פוגענית למכשירים לא מהימנים.
התכונה שחזור ערכים לפי מכשיר מאפשרת לכם לאחסן נתונים מותאמים אישית לפי מכשיר, ולשלוף אותם באופן מהימן כשהאפליקציה מותקנת שוב באותו מכשיר.
אחרי שתביעו הסכמה לשיתוף מידע אופציונלי, התגובה מה-API תכלול שדות ותגובות חדשים בתוצאה:
| שדה תשובה | תווית | תיאור | |
|---|---|---|---|
| תקינות המכשיר | MEETS_BASIC_INTEGRITY |
האפליקציה פועלת במכשיר שעובר את הבדיקות הבסיסיות של תקינות המערכת. תוכנת האתחול של המכשיר יכולה להיות נעולה או לא נעולה, ומצב האתחול יכול להיות מאומת או לא מאומת. יכול להיות שהמכשיר לא מאושר, ובמקרה כזה Google לא יכולה לספק הבטחות לגבי אבטחה, פרטיות או תאימות של אפליקציות. ב-Android מגרסה 13 ואילך, כדי לקבל את התוצאה MEETS_BASIC_INTEGRITY,
שורש האמון של האישור צריך להיות מסופק על ידי Google. |
|
MEETS_STRONG_INTEGRITY |
האפליקציה פועלת במכשיר Android מקורי ומאושר עם עדכון אבטחה עדכני.
|
||
| מאפייני המכשיר | sdkVersion: 19, 20, ..., 37 |
גרסת ה-SDK של מערכת ההפעלה Android שפועלת במכשיר.
המספר שמוחזר ממופה אל Build.VERSION_CODES. |
|
| ריק (ערך ריק) | גרסת ה-SDK לא נבדקת כי לא עמדתם בדרישה הכרחית. במקרה כזה, השדה sdkVersion לא מוגדר, ולכן השדה deviceAttributes ריק.
זה יכול לקרות כי:
|
||
| בקשות לטוקן תקינות של Standard API במכשיר הזה בשעה האחרונה לכל אפליקציה | בקשות לטוקן תקינות של Classic API במכשיר הזה בשעה האחרונה לכל אפליקציה | ||
| פעילות במכשיר מהזמן האחרון | LEVEL_1 (הכי נמוך) |
10 או פחות | 5 או פחות |
LEVEL_2 |
בין 11 ל-25 | בין 6 ל-10 | |
LEVEL_3 |
בין 26 ל-50 | בין 11 ל-15 | |
LEVEL_4 (הכי גבוה) |
יותר מ-50 | יותר מ-15 | |
UNEVALUATED |
הפעילות במכשיר מהזמן האחרון לא נבדקה. זה יכול לקרות מהסיבות הבאות:
|
||
| שחזור ערכים לפי מכשיר | values: bitFirst, bitSecond, bitThird |
אלה ערכי הביטים שהגדרתם בעבר למכשיר הספציפי. אתם מחליטים מה המשמעות של כל ביט. ערכי ברירת המחדל של שלושת הביטים הם False. | |
writeDates: yyyymmFirst, yyyymmSecond, yyyymmThird |
אלה תאריכי הכתיבה של ערכי הביטים ב-UTC, ברמת דיוק של שנה וחודש. תאריך הכתיבה של ביט אחזור מתעדכן בכל פעם שהביט מוגדר כ-true, ומוסר כשהביט מוגדר כ-false. | ||
פרטי הסביבה
האות סיכון לגישה לאפליקציה מאפשר לכם לדעת אם פועלות אפליקציות אחרות שיכולות לצלם את המסך, להציג שכבות-על או לשלוט במכשיר. שירותי נגישות מאומתים שמוכרים ל-Google Play מוחרגים באופן אוטומטי מההחלטה הזו.
קביעת התקינות של Play Protect מציינת אם Google Play Protect מופעל במכשיר ואם הוא זיהה תוכנות זדוניות ידועות.
אחרי שתביעו הסכמה לשיתוף מידע אופציונלי, התגובה מה-API תכלול שדות ותגובות חדשים בתוצאה:
| שדה תשובה | ערך | תיאור |
|---|---|---|
| קביעת סיכון הגישה לאפליקציה | KNOWN_INSTALLED |
האפליקציות מותקנות על ידי Google Play או נטענות מראש במחיצת המערכת על ידי יצרן המכשיר. |
KNOWN_CAPTURING |
אפליקציות שהותקנו על ידי Google Play או שהותקנו מראש במכשיר פועלות, וניתן להשתמש בהן כדי לקרוא או לתעד קלט ופלט של האפליקציה ששלחה את הבקשה, כמו אפליקציות להקלטת מסך. | |
KNOWN_CONTROLLING |
אפליקציות שהותקנו על ידי Google Play או נטענו מראש במכשיר פועלות, וניתן להשתמש בהן כדי לשלוט במכשיר ובקלט ובפלט של האפליקציה ששולחת את הבקשה, כמו אפליקציות לשליטה מרחוק. | |
KNOWN_OVERLAYS |
אפליקציות שהותקנו על ידי Google Play או נטענו מראש במכשיר פועלות, ויכול להיות שהן מציגות שכבות-על באפליקציה ששלחה את הבקשה. | |
UNKNOWN_INSTALLED |
מותקנות אפליקציות אחרות שלא הותקנו על ידי Google Play או נטענו מראש במחיצת המערכת על ידי יצרן המכשיר. | |
UNKNOWN_CAPTURING |
אפליקציות אחרות פועלות (לא הותקנו על ידי Play או נטענו מראש במכשיר) ויכולות לשמש לקריאה או לצילום של קלט ופלט של האפליקציה המבקשת, כמו אפליקציות להקלטת מסך. | |
UNKNOWN_CONTROLLING |
אפליקציות אחרות פועלות (לא הותקנו על ידי Play או נטענו מראש במכשיר) שיכולות לשמש לשליטה במכשיר ובקלט ובפלט של האפליקציה ששולחת את הבקשה, כמו אפליקציות לשליטה מרחוק. | |
UNKNOWN_OVERLAYS |
אפליקציות אחרות פועלות (לא הותקנו על ידי Play או נטענו מראש במכשיר) ועשויות להציג שכבות-על באפליקציה ששלחה את הבקשה. | |
| ריק (ערך ריק) | אם לא עומדים בדרישה מסוימת, לא מתבצעת הערכה של הסיכון לגישה לאפליקציה. במקרה כזה, השדה appAccessRiskVerdict ריק. יכולות להיות לכך כמה סיבות, כולל:
|
|
| הפסיקה של Play Protect | NO_ISSUES |
Play Protect מופעל ולא נמצאו בעיות באפליקציות במכשיר. |
NO_DATA |
שירות Play Protect מופעל אבל עדיין לא בוצעה סריקה. יכול להיות שהמכשיר או אפליקציית חנות Play אופסו לאחרונה. | |
POSSIBLE_RISK |
שירות Play Protect מושבת. | |
MEDIUM_RISK |
Play Protect מופעל וזיהה במכשיר אפליקציות שעלולות להזיק (PHA). | |
HIGH_RISK |
שירות Play Protect מופעל ומצא אפליקציות מסוכנות שמותקנות במכשיר. | |
UNEVALUATED |
הקביעה של Play Protect לא הוערכה. לא עמדתם בדרישה הכרחית, למשל המכשיר לא מהימן מספיק. |
הגדרת בקשות קלאסיות (אופציונלי)
אתם יכולים לדלג על הקטע הזה אם אתם מתכננים לשלוח רק בקשות API רגילות.
כברירת מחדל, Google Play מנהלת את הצפנת התשובות, כלומר הקצה העורפי שלכם מפעיל את השרת של Google כדי לפענח את תוצאות הבדיקה. לחלופין, אתם יכולים לנהל את המפתחות בעצמכם כדי לפענח את הנתונים באופן מקומי בסביבת השרת המאובטחת שלכם.
אני רוצה ש-Google תנהל את הצפנת התשובות שלי (מומלץ)
כדי להגן על האבטחה של האפליקציה, מומלץ לאפשר ל-Google ליצור ולנהל את המפתחות. השרת העורפי יפעיל את השרת של Google Play כדי לפענח ולאמת את התשובות.
ניהול מפתחות הצפנה משלכם
כדי לפענח את הנתונים באופן מקומי בסביבת השרת המאובטחת שלכם, אתם יכולים להוריד מפתחות הצפנה מ-Play Console או מ-Play SDK Console. כדי להשתמש בתכונה הזו, האפליקציה צריכה להיות זמינה ב-Google Play.
כדי למנוע שיבושים, לפני שאתם משנים את אסטרטגיית הניהול של הצפנת התגובות ב-Play Console, ודאו שהשרת שלכם מוגדר בצורה נכונה לפענוח ולאימות של אסימוני תקינות בשרתים של Google Play.
מעבר בין מפתחות הצפנה בניהול Google למפתחות בניהול עצמי
- פותחים את Play Console ובוחרים את האפליקציה .
- עוברים אל מוגן על ידי Play.
- לצד Play Integrity API, לוחצים על ניהול.
- בקטע בקשות קלאסיות, לצד הצפנת תגובה, לוחצים על עריכה.
כדי לעבור למפתחות בניהול עצמי:
- בוחרים באפשרות אני רוצה לנהל ולהוריד בעצמי את המפתחות להצפנת תשובות ומעלים את המפתח הציבורי.
- לוחצים על שמירה כדי להוריד באופן אוטומטי את המפתחות המוצפנים.
- מעדכנים את שרת בק-אנד המאובטח כדי לפענח באופן מקומי באמצעות המפתחות האלה.
כדי לעבור למפתחות בניהול Google:
- בוחרים באפשרות אני רוצה ש-Google תנהל את הצפנת התשובות שלי (מומלץ).
- לוחצים על שמירת השינויים.