Gdy wywołujesz interfejs API bezpośrednio z aplikacji mobilnej lub internetowej (np. interfejsy API, które umożliwiają dostęp do modeli generatywnej AI), interfejs API jest podatny na nadużycia ze strony nieautoryzowanych klientów. Aby chronić te interfejsy API przed nadużyciami, możesz używać Firebase App Check do weryfikowania, czy wszystkie przychodzące wywołania interfejsu API pochodzą z Twojej aplikacji i niezmienionego urządzenia.
Firebase AI Logic udostępnia bramę proxy, która umożliwia integrację z Firebase App Check i ochronę interfejsów API modeli generatywnej AI wywoływanych przez aplikacje mobilne i internetowe. Używanie App Check z pakietami SDK Firebase AI Logic obsługuje wszystkie nasze konfiguracje:
Ochrona obu dostawców „Gemini API”: Gemini Developer API i Vertex AI Gemini API.
Chroni wszystkie obsługiwane modele, zarówno modele Gemini, jak i Imagen.
App Check obsługuje też ochronę przed atakami typu replay, co oznacza, że token App Check może być użyty tylko raz.
Ogólne podsumowanie działania App Check
Dzięki App Check urządzenia, na których działa Twoja aplikacja, korzystają z usługi potwierdzania autentyczności aplikacji lub urządzenia, która weryfikuje co najmniej jeden z tych elementów:
- Żądania pochodzą z autentycznej aplikacji.
- żądania pochodzą z oryginalnego, niezmodyfikowanego urządzenia;
To zaświadczenie jest dołączane do każdego żądania wysyłanego przez aplikację za pomocą pakietu SDK Firebase AI Logic. Gdy App Check jest wymuszane, żądania od klientów bez prawidłowego zaświadczenia są odrzucane, podobnie jak żądania pochodzące z aplikacji lub platformy, których nie masz upoważnienia.
Podczas konfigurowania App Check rozważ dodanie ochrony przed atakami typu replay, która sprawia, że tokeny App Check są jednorazowe. Ta opcja zapewnia lepszą ochronę niż ochrona podstawowa i umożliwia ustawienie odpowiedniego poziomu ochrony aplikacji i przypadków użycia.
Szczegółowe informacje o App Check znajdziesz w dokumentacji, w tym limity.
Skonfiguruj usługę App Check
Dokumentacja App Check zawiera szczegółowe opisy dostawców atestów oraz szczegółowe instrukcje implementacji.
Wybierz dostawcę atestów i postępuj zgodnie z instrukcjami wdrażania podanymi w tych linkach:
- Platformy Apple: DeviceCheck lub App Attest
- Android: Play Integrity
- Internet: reCAPTCHA Enterprise
- Flutter: obsługuje wszystkich domyślnych dostawców wymienionych powyżej
. Jeśli używasz starszych wersji wtyczek, zapoznaj się z uwagą o specjalnym tworzeniu instancji poniżej. Dotyczy to platformy Flutter i App Check. - Unity: obsługuje wszystkich domyślnych dostawców wymienionych powyżej.
Jeśli żaden z tych dostawców atestów nie spełnia Twoich potrzeb, możesz wdrożyć niestandardowego dostawcę, który korzysta z zewnętrznego dostawcy atestów lub własnych technik atestowania.
(Wymagane) Włącz App Check egzekwowanie, zanim przekażesz aplikację do publicznie dostępnego systemu kontroli kodu źródłowego, udostępnisz ją lub udostępnisz ją publicznie.
(Zalecane) Zwiększ ochronę, dodając ochronę przed atakami typu replay, co oznacza, że token App Check może być użyty tylko raz.
W przypadku lokalnego środowiska programistycznego, w którym obowiązuje App Check, skonfiguruj App Check dostawcę debugowania, aby pominąć atestowanie, ale nadal egzekwować App Check. Zobacz instrukcje konfiguracji na swojej platformie:iOS+ |Android |internet |Flutter |Unity.
Zwiększanie ochrony przez dodanie ochrony przed powtórzeniem
|
Zalecamy używanie najnowszych wersji pakietu SDK, aleaby korzystać z ochrony przed powtórzeniem, musisz używać co najmniej jednej z tych wersji: Platformy Apple w wersji 12.2.0 lub nowszej | Android BoM w wersji 34.14.0 lub nowszej (App Check w wersji 19.1.0 lub nowszej) | Web w wersji 12.14.0 lub nowszej | Flutter w wersji 4.15.0 lub nowszej (App Check w wersji 4.10.0 lub nowszej) | Unity w wersji 13.12.0 lub nowszej |
Domyślnie App Check używa tokenów sesji, które mają konfigurowalny czas życia (TTL) w zakresie od
Możesz jednak zwiększyć ochronę poza ten poziom podstawowy, wymuszając ochronę przed powtórzeniem, która zamiast tego używa tokenów ograniczonego użytku. Gdy ochrona przed powtórzeniem jest wymuszana:
App Check zablokuje żądania do Firebase AI Logic, które używają tokenów sesji. Zamiast tego App Check zezwoli na żądanie Firebase AI Logic tylko wtedy, gdy będzie ono korzystać z nowo wygenerowanego tokena o ograniczonym zastosowaniu.
Po zweryfikowaniu tokenu jednorazowego jest on wykorzystywany, aby można go było użyć tylko raz, co zapobiega atakom typu replay.
Pakiet SDK App Check generuje nowy token o ograniczonym zastosowaniu dla każdego żądania. Pamiętaj, że ten proces może wpłynąć na Twoje żądania, dodając pewne opóźnienie i czasami koszt (w zależności od dostawcy atestów).
Konfigurowanie i egzekwowanie ochrony przed powtórzeniami
|
Kliknij Gemini API dostawcę, aby wyświetlić na tej stronie treści i kod dostawcy. |
Aby skonfigurować i wymusić ochronę przed ponownym odtwarzaniem:
Jeśli jeszcze tego nie zrobiono, wdrożono App Check i włączono egzekwowanie App Check w aplikacji.
Włącz korzystanie z tokenów o ograniczonym zastosowaniu.
Podczas tworzenia instancji w aplikacji ustaw parametr
useLimitedUseAppCheckTokensnatrue: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 ); // ...Wymuszaj ochronę przed powtórzeniem.
W kodzie aplikacji upewnij się, że masz włączone używanie tokenów o ograniczonym zakresie użycia (patrz poprzedni krok).
W konsoli Firebase otwórz Zabezpieczenia > App Check.
Rozwiń widok danych dla Firebase AI Logic.
Sprawdź, czy podstawowa ochrona jest wymagana, a następnie kliknij Dalej.
W przypadku ochrony przed powtórzeniem wybierz Nieegzekwowana (tylko monitorowanie) lub Egzekwowana.
Aby zdecydować, kiedy wymusić ochronę przed powtórzeniem, weź pod uwagę te kwestie:
Monitorowanie żądań jest zalecane, jeśli znaczna liczba użytkowników korzysta ze starszych wersji aplikacji bez włączonych tokenów o ograniczonym użyciu. Jeśli natychmiast włączysz ochronę przed powtórzeniem, żądania od tych użytkowników będą blokowane.
Możesz monitorować wskaźnik Niezweryfikowany: ponownie użyty token, który określa liczbę żądań zawierających token użyty już w poprzednim żądaniu. Monitoruj ten parametr w Firebasekonsoli (kliknij Zabezpieczenia > App Check > karta Interfejsy API).
Jeśli znaczna część ostatnich żądań należy do tej kategorii, możesz uniknąć zakłóceń u użytkowników i poczekać z wymuszaniem ochrony przed powtórzeniami, aż więcej użytkowników zaktualizuje aplikację do wersji, która używa tokenów ograniczonego użytku.
Dowiedz się, jak Firebase AI Logic integruje się z App Check
Aby korzystać z Firebase AI Logicpakietów SDK, w projekcie Firebase musi być włączony Firebase AI Logicinterfejs API (firebasevertexai.googleapis.com). Dzieje się tak, ponieważ żądania wysyłane przez pakiety SDK Firebase AI Logic są najpierw przesyłane na serwer Firebase AI Logic, który działa jako brama proxy, gdzie Firebase App Check weryfikacjaodbywa się przed zezwoleniem na przesłanie żądania do backendu wybranego dostawcy „Gemini API” i interfejsów API umożliwiających dostęp do modeli Gemini i Imagen.
(Opcjonalnie) Wymuszanie App Check bez dostawcy atestu produkcyjnego (tylko dostawca debugowania)
Możesz wymuszać App Check w przypadku AI Logic bez rejestrowania aplikacji u dostawcy atestów produkcyjnych. Taka konfiguracja pozwala używać App Check dostawcy debugowania, aby łatwiej rozpocząć korzystanie z AI Logic, a jednocześnie chronić Gemini API.
Sprawdź, czy App Check jest już wymuszane w przypadku AI Logic.
W konsoli Firebase otwórz kartę Zabezpieczenia > App Check > Interfejsy API.
Znajdź wiersz Firebase AI Logic. Jeśli wyświetla się
Unenforced, wykonaj pozostałe instrukcje.
Użyj interfejsu App Check REST API, aby wymusić App Check w przypadku App Check.Firebase AI Logic
Wyślij żądanie do
projects.services.patchpunktu końcowego.Określ te parametry żądania:
PROJECT_NUMBER: numer projektu Firebase.
Identyfikator projektu znajdziesz wUstawieniach > karcie Ogólne w konsoli Firebase.SERVICE_ID:
firebasevertexai.googleapis.com
Ten identyfikator to oficjalna nazwa usługi Firebase AI Logic API. Jest on ważny niezależnie od tego, czy uzyskujesz dostęp do Vertex AI Gemini API, czy do Gemini Developer API.updateMask:enforcementMode
W treści żądania podaj te informacje:
"enforcementMode": "ENFORCED"
W przypadku lokalnego programowania, gdy App Check jest już wymuszane, musisz skonfigurować App Check dostawcę debugowania, aby pominąć atestowanie, ale nadal wymuszać App Check.
Szczegółowe informacje o konfigurowaniu dostawcy debugowania znajdziesz w instrukcjach dotyczących Twojej platformy:iOS+ | Android | Internet | Flutter | Unity.