כשמפעילים 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 יש תיאורים של ספקי אימות והוראות להטמעה.
בוחרים ספק ברירת מחדל ופועלים לפי הוראות ההטמעה בקישורים הבאים:
- פלטפורמות של Apple: 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
);
// ...
הכנה לקראת הגנה משופרת שתופעל בקרוב
השימוש בטוקנים לשימוש מוגבל זמין כרגע רק בפלטפורמות של Apple (גרסה 12.2.0 ואילך), ב-Android (גרסה 17.2.0 ואילך, BoM גרסה 34.2.0 ואילך) ובאינטרנט (גרסה 12.3.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
בגרסה הקרובה תהיה תמיכה בשימוש בטוקנים לשימוש מוגבל באפליקציות Flutter. בדוק שוב בקרוב!
Unity
שימוש באסימונים לשימוש מוגבל במשחקי Unity ייתמך בגרסה עתידית. בדוק שוב בקרוב!
איך Firebase AI Logic משתלב עם App Check
כדי להשתמש ב-SDKs Firebase AI Logic, צריך להפעיל את API Firebase AI Logic (firebasevertexai.googleapis.com
) בפרויקט Firebase. הסיבה לכך היא שבקשות שנשלחות על ידי ערכות ה-SDK של Firebase AI Logic נשלחות קודם לשרת Firebase AI Logic, שמשמש כשער פרוקסי שבו מתבצעת אימות של Firebase App Check לפני שהבקשה מועברת אל הקצה העורפי של ספק Gemini API שבחרתם ואל ממשקי ה-API לגישה למודלים של Gemini ושל Imagen.