כשמפעילים API ישירות מאפליקציה לנייד או מאפליקציית אינטרנט (לדוגמה, ממשקי ה-API שמאפשרים גישה למודלים של AI גנרטיבי), ה-API חשוף לניצול לרעה על ידי לקוחות לא מורשים. כדי להגן על ממשקי ה-API האלה מפני ניצול לרעה, אפשר להשתמש ב-Firebase App Check כדי לוודא שכל הקריאות הנכנסות ל-API מגיעות מהאפליקציה האמיתית שלכם וממכשיר שלא בוצעו בו שינויים.
Firebase AI Logic מספקת שער פרוקסי שמאפשר לכם לשלב עם Firebase App Check ולהגן על ממשקי ה-API של מודלים של AI גנרטיבי שמופעלים על ידי אפליקציות לנייד ולאינטרנט. השימוש ב-App Check עם ערכות ה-SDK של Firebase AI Logic תומך בכל ההגדרות שלנו:
מגן על שני ספקי Gemini API: Gemini Developer API ו-Vertex AI Gemini API.
ההגנה חלה על כל המודלים הנתמכים, גם על מודלים של Gemini וגם על מודלים של Imagen
App Check תומך גם בהגנה מפני מתקפות מסוג Replay, כלומר אפשר להשתמש בטוקן App Check רק פעם אחת.
סיכום כללי של אופן הפעולה של App Check
באמצעות App Check, מכשירים שמריצים את האפליקציה שלכם משתמשים בספק אימות אפליקציה או מכשיר שמאמת אחד או יותר מהדברים הבאים:
- הבקשות מגיעות מהאפליקציה המאומתת שלכם
- הבקשות מגיעות ממכשיר מקורי שלא בוצעו בו שינויים
האישור הזה מצורף לכל בקשה שהאפליקציה שולחת באמצעות SDK Firebase AI Logic. כשמפעילים את האכיפה של App Check, בקשות מלקוחות ללא אישור תקף יידחו, וכך גם בקשות שמקורן באפליקציה או בפלטפורמה שלא אישרתם.
כשמגדירים App Check, כדאי להוסיף הגנה מפני שידור חוזר, כדי שאסימוני App Check יהיו חד-פעמיים. האפשרות הזו מציעה הגנה משופרת מעבר להגנה הבסיסית, ומאפשרת לכם להגדיר רמת הגנה מתאימה לאפליקציה ולתרחישי השימוש.
במסמכי התיעוד של App Check אפשר למצוא מידע מפורט על App Check, כולל מכסות ומגבלות.
הגדר את App Check
במאמרי העזרה של App Check יש תיאורים מפורטים של ספקי אישורים והוראות הטמעה מפורטות.
בוחרים ספק אימות ברירת מחדל ופועלים לפי הוראות ההטמעה בקישורים הבאים:
- פלטפורמות של אפל: DeviceCheck או App Attest
- Android: Play Integrity
- Web: reCAPTCHA Enterprise
- Flutter: תומך בכל ספקי ברירת המחדל שצוינו למעלה
. אם אתם משתמשים בגרסאות ישנות יותר של הפלאגין, כדאי לעיין בהערה לגבי יצירת מופע מיוחד שבהמשך.App Check - Unity: תומך בכל ספקי ברירת המחדל שצוינו למעלה
שימו לב: אם אף אחד מספקי האימות שמוגדרים כברירת מחדל לא מספיק לצרכים שלכם, אתם יכולים להטמיע ספק בהתאמה אישית שמשתמש בספק אימות של צד שלישי או בטכניקות אימות משלכם.
(חובה) הפעלת האכיפה של App Check לפני שמעבירים את האפליקציה למערכת ניהול קוד מקור שזמינה לציבור, משתפים את האפליקציה או הופכים אותה לזמינה לציבור.
(מומלץ) שיפור ההגנה על ידי הוספת הגנה מפני שידור חוזר, כלומר, אפשר להשתמש בטוקן App Check רק פעם אחת.
שיפור ההגנה על ידי הוספת הגנה מפני הפעלת תקיפה חוזרת
|
מומלץ להשתמש בגרסאות ה-SDK העדכניות ביותר, אבל כדי להשתמש בהגנה מפני שידור חוזר, צריך לוודא שאתם משתמשים לפחות באחת מהגרסאות הבאות: Apple platforms v12.2.0+ | Android BoM v34.14.0+ (App Check v19.1.0+) | Web v12.14.0+ | Flutter v4.15.0+ (App Check v4.10.0+) | Unity v13.12.0+ |
כברירת מחדל, App Check משתמש באסימוני סשן עם אורך חיים (TTL) שניתן להגדרה בין
עם זאת, אתם יכולים לשפר את ההגנה מעבר להגנה הבסיסית הזו על ידי אכיפה של הגנה מפני שידור חוזר, שמשתמשת במקום זאת באסימונים לשימוש מוגבל. כשמפעילים את ההגנה מפני שידור חוזר, קורים הדברים הבאים:
App Check יחסום בקשות אל Firebase AI Logic שמשתמשות בטוקנים של סשנים. במקום זאת, App Check יאפשר בקשה ל-Firebase AI Logic רק אם נעשה בה שימוש באסימון חדש לשימוש מוגבל.
אחרי שהטוקן לשימוש מוגבל מאומת, המערכת משתמשת בו כך שאפשר להשתמש בו רק פעם אחת, כדי למנוע מתקפות מסוג Replay.
App Check SDK יוצר טוקן חדש לשימוש מוגבל עבור כל בקשה. חשוב לזכור שהתהליך הזה יכול להשפיע על הבקשות שלכם, כי הוא מוסיף זמן אחזור ולפעמים גם עלות (בהתאם לספק האישורים).
הגדרה של הגנה מפני הפעלה חוזרת ואכיפה שלה
|
לוחצים על הספק Gemini API כדי לראות בדף הזה תוכן וקוד שספציפיים לספק. |
כך מגדירים ומפעילים הגנה מפני הפעלה חוזרת:
אם עדיין לא עשיתם זאת, הטמיעו את App Check והפעילו את האכיפה של App Check באפליקציה שלכם.
הפעלת השימוש בטוקנים לשימוש מוגבל.
באפליקציה, במהלך יצירת המופע, מגדירים את הפרמטר
useLimitedUseAppCheckTokensלערךtrue:Swift
// ... // During instantiation, enable usage of limited-use tokens let ai = FirebaseAI.firebaseAI( backend: .googleAI(), useLimitedUseAppCheckTokens: true ) // ...Kotlin
// ... // During instantiation, enable usage of limited-use tokens val ai = Firebase.ai( backend = GenerativeBackend.googleAI(), useLimitedUseAppCheckTokens = true ) // ...Java
// ... // During instantiation, enable usage of limited-use tokens FirebaseAI ai = FirebaseAI.getInstance( /* backend: */ GenerativeBackend.googleAI(), /* useLimitedUseAppCheckTokens: */ true ); // ...Web
// ... // During instantiation, enable usage of limited-use tokens const ai = getAI(firebaseApp, { backend: new GoogleAIBackend(), useLimitedUseAppCheckTokens: true }); // ...Dart
// ... // During instantiation, enable usage of limited-use tokens final ai = await FirebaseAI.googleAI( useLimitedUseAppCheckTokens: true, ); // ...Unity
// ... // During instantiation, enable usage of limited-use tokens var ai = FirebaseAI.GetInstance( useLimitedUseAppCheckTokens: true ); // ...אכיפת הגנה מפני שידור חוזר.
בבסיס הקוד של האפליקציה, מוודאים שהפעלתם את השימוש בטוקנים לשימוש מוגבל (ראו את השלב הקודם).
במסוף Firebase, עוברים אל Security (אבטחה) > App Check (בדיקת אפליקציות).
מרחיבים את תצוגת המדדים של Firebase AI Logic.
מוודאים שהאפשרות Baseline protection (הגנה בסיסית) מוגדרת כEnforced (אכיפה), ואז לוחצים על Continue (המשך).
בקטע 'הגנה מפני הפעלה חוזרת', בוחרים באפשרות לא נאכף (מעקב בלבד) או באפשרות נאכף.
כדי להחליט מתי לאכוף את ההגנה מפני הפעלה חוזרת, כדאי להביא בחשבון את הנקודות הבאות:
מומלץ לעקוב אחרי הבקשות אם סביר להניח שמספר משמעותי של משתמשים משתמשים בגרסאות קודמות של האפליקציה שלכם בלי שטוקנים לשימוש מוגבל מופעלים. אם תאכפו את ההגנה מפני שידור חוזר באופן מיידי, בקשות מהמשתמשים האלה ייחסמו.
אפשר לעקוב באופן ספציפי אחרי המדד Unverified: Reused token, שמייצג את מספר הבקשות שכוללות אסימון שכבר נעשה בו שימוש בבקשה קודמת. אפשר לעקוב אחרי המדד הזה במסוף Firebase (נכנסים אל אבטחה > App Check > הכרטיסייה ממשקי API).
אם חלק משמעותי מהבקשות האחרונות שייך לקטגוריה הזו, תוכלו להימנע משיבוש הפעילות של המשתמשים ולחכות עם הפעלת ההגנה מפני התקפות חוזרות עד שיותר משתמשים יעברו לגרסה של האפליקציה שלכם שמשתמשת בטוקנים לשימוש מוגבל.
איך Firebase AI Logic משתלב עם App Check
כדי להשתמש ב-SDKs Firebase AI Logic צריך להפעיל את Firebase AI Logic API (firebasevertexai.googleapis.com) בפרויקט Firebase. הסיבה לכך היא שבקשות שנשלחות על ידי ערכות ה-SDK של Firebase AI Logic נשלחות קודם לשרת Firebase AI Logic, שפועל כשער פרוקסי שבו מתבצעת אימות Firebase App Check לפני שהבקשה מקבלת אישור להמשיך אל הקצה העורפי של ספק Gemini API שבחרתם ואל ממשקי ה-API לגישה למודלים של Gemini ושל Imagen.