Gdy wywołujesz interfejs API bezpośrednio z aplikacji mobilnej lub aplikacji internetowej (np. interfejsy API, które umożliwiają dostęp do generatywnych modeli AI), jest on narażony na nadużycia ze strony nieautoryzowanych klientów. Aby chronić te interfejsy API przed nadużyciami, możesz użyć Firebase App Check aby sprawdzić, czy wszystkie przychodzące wywołania interfejsu API pochodzą z Twojej prawdziwej aplikacji i z niezmodyfikowanego 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 Twoje aplikacje mobilne i internetowe. Korzystanie z App Check z Firebase AI Logic pakietami SDK obsługuje wszystkie nasze konfiguracje:
Chroni obu dostawców "Gemini API": Gemini Developer API i Vertex AI Gemini API.
Chroni wszystkie obsługiwane modele, zarówno Gemini modele, jak i Imagen modele.
App Check obsługuje też ochronę przed atakami typu replay, co oznacza, że token App Check można użyć tylko raz.
Ogólne podsumowanie działania App Check
W przypadku App Check urządzenia, na których działa Twoja aplikacja, korzystają z dostawcy potwierdzenia aplikacji lub urządzenia , który weryfikuje co najmniej 1 z tych elementów:
- Żądania pochodzą z Twojej autentycznej aplikacji.
- Żądania pochodzą z autentycznego, niezmodyfikowanego urządzenia.
To potwierdzenie jest dołączane do każdego żądania wysyłanego przez Twoją aplikację za pomocą pakietu Firebase AI Logic SDK. Gdy włączysz wymuszanie App Check, żądania od klientów bez prawidłowego potwierdzenia zostaną odrzucone, podobnie jak żądania pochodzące z aplikacji lub platformy, na które nie masz zezwolenia.
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, w tym o limitach, znajdziesz w dokumentacji.
Konfigurowanie App Check
Dokumentacja App Check zawiera szczegółowe opisy dostawców potwierdzeń oraz szczegółowe instrukcje implementacji.
Wybierz domyślnego dostawcę potwierdzeń i postępuj zgodnie z instrukcjami implementacji 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ą dotyczącą specjalnej instancji poniżej. w przypadku Flutter i App Check. - Unity: obsługuje wszystkich domyślnych dostawców wymienionych powyżej.
Jeśli żaden z domyślnych dostawców potwierdzeń nie spełnia Twoich potrzeb, możesz zaimplementować dostawcę niestandardowego, który korzysta z zewnętrznego dostawcy potwierdzeń lub własnych technik potwierdzania.
(Wymagane) Włącz egzekwowanie App Check zanim prześlesz aplikację do publicznie dostępnego systemu kontroli kodu źródłowego, udostępnisz ją lub udostępnisz publicznie.
(Zalecane) Zwiększ ochronę, dodając ochronę przed atakami typu replay, co oznacza, że token App Check można użyć tylko raz.
Zwiększanie ochrony przez dodanie ochrony przed atakami typu replay
|
Zalecamy używanie najnowszych wersji pakietu SDK, ale
upewnij się, że używasz co najmniej jednej z tych wersji, aby korzystać z ochrony przed atakami typu replay: 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) | Internet 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) od
Możesz jednak zwiększyć ochronę poza tę podstawową, wymuszając ochronę przed atakami typu replay, która zamiast tego używa tokenów o ograniczonym użyciu. Gdy wymuszana jest ochrona przed atakami typu replay, dzieje się to:
App Check będzie blokować żądania do Firebase AI Logic, które używają tokenów sesji. Zamiast tego App Check będzie zezwalać na żądanie do Firebase AI Logic tylko wtedy, gdy używa ono nowo wygenerowanego tokena o ograniczonym użyciu.
Po zweryfikowaniu tokena o ograniczonym użyciu jest on zużywany, dzięki czemu można go użyć tylko raz, co zapobiega atakom typu replay.
Pakiet SDK App Check generuje nowy token o ograniczonym użyciu 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 potwierdzeń).
Konfigurowanie i wymuszanie ochrony przed atakami typu replay
|
Kliknij dostawcę Gemini API, aby wyświetlić na tej stronie treści i kod specyficzne dla dostawcy. |
Oto jak skonfigurować i wymusić ochronę przed atakami typu replay:
Jeśli jeszcze tego nie zrobisz, zaimplementuj App Check i włącz wymuszanie App Check w swojej aplikacji.
Włącz używanie tokenów o ograniczonym użyciu.
W aplikacji podczas tworzenia instancji 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 ); // ...Wymuś ochronę przed atakami typu replay.
W kodzie aplikacji upewnij się, że masz włączone używanie tokenów o ograniczonym użyciu (patrz poprzedni krok).
W konsoli Firebase otwórz Bezpieczeństwo > Sprawdzanie aplikacji.
Rozwiń widok danych o Firebase AI Logic.
Upewnij się, że Ochrona podstawowa jest wymuszana, a następnie kliknij Dalej.
W przypadku ochrony przed atakami typu replay wybierz Niewymuszana (tylko monitorowanie) lub Wymuszana.
Aby zdecydować, kiedy wymusić ochronę przed atakami typu replay, weź pod uwagę te kwestie:
Monitorowanie żądań jest zalecane, jeśli znaczna liczba użytkowników prawdopodobnie korzysta ze starszych wersji aplikacji bez włączonego używania tokenów o ograniczonym użyciu. Jeśli od razu wymusisz ochronę przed atakami typu replay, żądania od tych użytkowników zostaną zablokowane.
Możesz monitorować wskaźnik Niezweryfikowane: token użyty ponownie , który oznacza liczbę żądań z tokenem, który został już użyty w poprzednim żądaniu. Monitoruj ten wskaźnik w konsoli Firebase (otwórz kartę Bezpieczeństwo > Sprawdzanie aplikacji > 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 wymuszeniem ochrony przed atakami typu replay, aż więcej użytkowników zaktualizuje aplikację do wersji, która używa tokenów o ograniczonym użyciu.
Jak Firebase AI Logic integruje się z App Check
Aby korzystać z pakietów SDK Firebase AI Logic, interfejs API
Firebase AI Logic (firebasevertexai.googleapis.com)
musi być włączony w projekcie w Firebase. Dzieje się tak, ponieważ żądania wysyłane przez pakiety
Firebase AI Logic SDK są najpierw wysyłane na Firebase AI Logic
serwer, który działa jako brama proxy, gdzie odbywa się weryfikacja Firebase App Check
zanim żądanie zostanie przekazane do backendu wybranego dostawcy
"Gemini API" i interfejsów API umożliwiających dostęp do modeli Gemini
i Imagen.