כשמפעילים 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
באמצעות App Check, מכשירים שמריצים את האפליקציה שלכם משתמשים בספק אימות אפליקציה או מכשיר שמאמת אחד או יותר מהדברים הבאים:
- הבקשות מגיעות מהאפליקציה המאומתת שלכם
- הבקשות מגיעות ממכשיר מקורי שלא בוצעו בו שינויים
האישור הזה מצורף לכל בקשה שהאפליקציה שולחת באמצעות SDK Firebase AI Logic. כשמפעילים את האכיפה של App Check, בקשות מלקוחות ללא אישור תקף יידחו, וכך גם בקשות שמקורן באפליקציה או בפלטפורמה שלא אישרתם.
מומלץ להגדיר את App Check כך שתתכוננו להגנה משופרת (שנקראת הגנה מפני שידור חוזר).
במסמכי התיעוד של App Check אפשר למצוא מידע מפורט על App Check, כולל מכסות ומגבלות.
ספקים זמינים והוראות הטמעה
במאמרי העזרה של App Check יש תיאורים של ספקי אימות והוראות להטמעה.
בוחרים ספק ברירת מחדל ופועלים לפי הוראות ההטמעה בקישורים הבאים:
- פלטפורמות של אפל: DeviceCheck או App Attest
- Android: Play Integrity
- Web: reCAPTCHA Enterprise
- Flutter: תומך בכל ספקי ברירת המחדל שצוינו למעלה
בנוסף, חשוב לפעול בהתאם לדרישות המיוחדות ליצירת מופע ב-Flutter וב-App Check. - Unity: תומך בכל ספקי ברירת המחדל שצוינו למעלה
שימו לב שאם אף אחד מהספקים שמוגדרים כברירת מחדל לא מתאים לצרכים שלכם, אתם יכולים להטמיע ספק בהתאמה אישית שמשתמש בספק אימות צד שלישי או בטכניקות אימות משלכם.
(מומלץ) הכנה להגנה משופרת שתופעל בקרוב על ידי App Check (ההגנה הזו נקראת הגנה מפני הפעלה חוזרת).
(חובה) לפני שמפרסמים את האפליקציה למשתמשים אמיתיים, צריך להפעיל את האכיפה של App Check.
נדרשת יצירת מופע מיוחד ב-Flutter
|
לוחצים על הספק Gemini API כדי לראות בדף הזה תוכן וקוד שספציפיים לספק. |
כשמשתמשים ב-App Check עם Firebase AI Logic באפליקציות Flutter, צריך להעביר את App Check באופן מפורש במהלך יצירת המופע, כך:
// ...
final ai = await FirebaseAI.googleAI(
appCheck: FirebaseAppCheck.instance, // for Flutter, pass in App Check explicitly
);
// ...
הכנה לקראת ההגנה המשופרת שתופעל בקרוב
|
מומלץ להשתמש בגרסאות ה-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 כבר מציעה למשאבים אחרים). כשההגנה מפני שידור חוזר מופעלת, היא משפרת את ההגנה בדרכים הבאות:
App Check יאפשר בקשות רק אם הן מלוות בסוג מיוחד של טוקן שנקרא טוקן לשימוש מוגבל.
אחרי שהטוקן לשימוש מוגבל מאומת, המערכת משתמשת בו כדי שאפשר יהיה להשתמש בו רק פעם אחת, וכך למנוע מתקפות מסוג Replay.
כדי להתכונן להגנה מפני שידור חוזר, מומלץ להפעיל את השימוש בטוקנים לשימוש מוגבל כחלק מההגדרה של App Check. כך, כשההגנה מפני הפעלה חוזרת תהיה זמינה, תוכלו להפעיל אותה מוקדם יותר כי יותר משתמשים ישתמשו בגרסאות של האפליקציה ששולחות טוקנים לשימוש מוגבל.
אם תפעילו עכשיו את השימוש בטוקנים לשימוש מוגבל באפליקציה שלכם (בזמן שההגנה מפני הפעלה חוזרת לא זמינה), חשוב לשים לב לנקודות הבאות:
App Check לא חוסם את השימוש בטוקנים תקינים של סשנים.
בדומה לאסימוני סשן, אסימונים לשימוש מוגבל נשמרים במטמון על ידי App Check SDK ונשלחים עם הבקשות. אסימוני השימוש המוגבל מספקים הגנה נוספת בהיקף קטן יותר מאסימוני הסשן שמוגדרים כברירת מחדל, כי אסימוני השימוש המוגבל הם בעלי TTL קצר יותר (
5 דקות בלבד , ואי אפשר לשנות את זה) בהשוואה לאסימוני הסשן.גם אם התוקף של טוקנים לשימוש מוגבל הוא
5 דקות , ה-SDK עדיין ייצור טוקן חדש לכל בקשה. התהליך הזה עלול להוסיף זמן אחזור לבקשה.
עם זאת, כשההגנה מפני הפעלה חוזרת תהיה זמינה ל-Firebase AI Logic בעתיד (ותפעילו אותה), לא תהיה אפשרות להשתמש באסימוני סשן או לעשות שימוש חוזר באסימונים לשימוש מוגבל. שימו לב שעדיין תהיה השהיה נוספת בתהליך של יצירת טוקן חדש לכל בקשה.
הפעלת השימוש באסימונים לשימוש מוגבל
|
לוחצים על הספק 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( appCheck: FirebaseAppCheck.instance, // for Flutter, pass in App Check explicitly useLimitedUseAppCheckTokens: true, ); // ...Unity
// ... // During instantiation, enable usage of limited-use tokens var ai = FirebaseAI.GetInstance( useLimitedUseAppCheckTokens: true ); // ...
איך 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.