Wenn Sie eine API direkt über eine mobile App oder Web-App aufrufen (z. B. die APIs, die Zugriff auf generative KI-Modelle ermöglichen), ist die API anfällig für Missbrauch durch nicht autorisierte Clients. Um diese APIs vor Missbrauch zu schützen, können Sie mit Firebase App Check prüfen, ob alle eingehenden API-Aufrufe von Ihrer tatsächlichen App und einem nicht manipulierten Gerät stammen.
Firebase AI Logic bietet ein Proxy-Gateway, mit dem Sie Firebase App Check einbinden und die APIs für generative KI-Modelle schützen können, die von Ihren mobilen Apps und Web-Apps aufgerufen werden. Wenn Sie App Check mit den Firebase AI Logic SDKs verwenden, werden alle unsere Konfigurationen unterstützt:
Schutz für beide "Gemini API"-Anbieter: Gemini Developer API und Vertex AI Gemini API.
Schutz für alle unterstützten Modelle, sowohl Gemini Modelle als auch Imagen Modelle.
App Check unterstützt auch den Schutz vor Wiederholungsangriffen. Das bedeutet, dass ein App Check-Token nur einmal verwendet werden kann.
Allgemeine Zusammenfassung der Funktionsweise von App Check
Mit App Check verwenden Geräte, auf denen Ihre App ausgeführt wird, einen App- oder Gerätebestätigungsanbieter , der eine oder beide der folgenden Prüfungen durchführt:
- Anfragen stammen von Ihrer authentischen App
- Anfragen stammen von einem authentischen, nicht manipulierten Gerät
Diese Bestätigung wird an jede Anfrage angehängt, die Ihre App mit einem Firebase AI Logic SDK stellt. Wenn Sie die App Check Erzwingung aktivieren, werden Anfragen von Clients ohne gültige Attestierung abgelehnt. Das gilt auch für Anfragen, die von einer App oder Plattform stammen, die Sie nicht autorisiert haben.
Wenn Sie App Check einrichten, sollten Sie den Schutz vor Wiederholungsangriffen hinzufügen, wodurch App Check Tokens nur einmal verwendet werden können. Diese Option bietet zusätzlichen Schutz über den Basisschutz hinaus und ermöglicht es Ihnen, ein angemessenes Schutzniveau für Ihre App und Anwendungsfälle festzulegen.
Ausführliche Informationen zu App Check, einschließlich Kontingenten und Limits, finden Sie in der Dokumentation.
App Check einrichten
Die App Check Dokumentation enthält detaillierte Beschreibungen der Attestierungsanbieter sowie detaillierte Implementierungsanweisungen.
Wählen Sie einen Standardbestätigungsanbieter aus und folgen Sie der Implementierungsanleitung unter den folgenden Links:
- Apple-Plattformen: DeviceCheck oder App Attest
- Android: Play Integrity
- Web: reCAPTCHA Enterprise
- Flutter: Unterstützt
alle oben genannten Standardanbieter
Wenn Sie ältere Plug-in-Versionen verwenden, lesen Sie den Hinweis zur speziellen Instanziierung unten. für Flutter und App Check. - Unity: Unterstützt alle oben genannten Standardanbieter
Wenn keiner der Standardbestätigungsanbieter Ihren Anforderungen entspricht, können Sie einen benutzerdefinierten Anbieter implementieren, der entweder einen Bestätigungsanbieter eines Drittanbieters oder Ihre eigenen Bestätigungs techniken verwendet.
(Erforderlich) Aktivieren Sie die App Check Erzwingung, bevor Sie Ihre App in einem öffentlich verfügbaren Quellcodeverwaltungssystem festschreiben, Ihre App freigeben oder Ihre App öffentlich verfügbar machen.
(Empfohlen) Verbessern Sie den Schutz, indem Sie den Schutz vor Wiederholungsangriffen, was bedeutet, dass ein App Check Token nur einmal verwendet werden kann.
Schutz durch Hinzufügen des Schutzes vor Wiederholungsangriffen verbessern
|
Wir empfehlen, die neuesten SDK-Versionen zu verwenden. Sie
müssen
jedoch mindestens eine der folgenden Versionen verwenden, um den Schutz vor
Wiederholungsangriffen zu nutzen: Apple-Plattformen: Version 12.2.0 oder höher | Android-Materialliste: Version 34.14.0 oder höher (App Check Version 19.1.0 oder höher) | Web: Version 12.14.0 oder höher | Flutter: Version 4.15.0 oder höher (App Check Version 4.10.0 oder höher) | Unity: Version 13.12.0 oder höher |
Standardmäßig verwendet App Check Sitzungstokens mit einer konfigurierbaren
Gültigkeitsdauer (Time To Live, TTL) zwischen
Sie können den Schutz jedoch über diesen Basisschutz hinaus verbessern, indem Sie den Schutz vor Wiederholungsangriffen erzwingen, bei dem stattdessen Tokens mit eingeschränkter Nutzung verwendet werden. Wenn der Schutz vor Wiederholungsangriffen erzwungen wird, geschieht Folgendes:
App Check blockiert Anfragen an Firebase AI Logic, die Sitzungstokens verwenden. Stattdessen App Check wird nur Anfragen an Firebase AI Logic zugelassen, wenn ein neu generiertes Token mit eingeschränkter Nutzung verwendet wird.
Nachdem das Token mit eingeschränkter Nutzung verifiziert wurde, wird es verbraucht, sodass es nur einmal verwendet werden kann. So werden Wiederholungsangriffe verhindert.
Das App Check SDK generiert für jede Anfrage ein neues Token mit eingeschränkter Nutzung. Beachten Sie, dass sich dies auf Ihre Anfragen auswirken kann, indem es zu einer gewissen Latenz und manchmal zu Kosten führt (je nach Bestätigungsanbieter).
Schutz vor Wiederholungsangriffen einrichten und erzwingen
|
Klicken Sie auf Ihren Gemini API Anbieter, um anbieterspezifische Inhalte und Code auf dieser Seite aufzurufen. |
So richten Sie den Schutz vor Wiederholungsangriffen ein und erzwingen ihn:
Implementieren Sie App Check und aktivieren Sie die Erzwingung für Ihre App, falls noch nicht geschehen.App Check
Aktivieren Sie die Verwendung von Tokens mit eingeschränkter Nutzung.
Legen Sie in Ihrer App während der Instanziierung den Parameter
useLimitedUseAppCheckTokensauftruefest: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, ); // ...Einheit
// ... // During instantiation, enable usage of limited-use tokens var ai = FirebaseAI.GetInstance( useLimitedUseAppCheckTokens: true ); // ...Erzwingen Sie den Schutz vor Wiederholungsangriffen.
Achten Sie in der Codebasis Ihrer App darauf, dass die Verwendung von Tokens mit eingeschränkter Nutzung aktiviert ist (siehe vorheriger Schritt).
Rufen Sie in der Firebase Konsole Sicherheit > App Check auf.
Maximieren Sie die Messwertansicht für Firebase AI Logic.
Achten Sie darauf, dass Basisschutz auf Erzwungen festgelegt ist, und klicken Sie dann auf Weiter.
Wählen Sie für den Schutz vor Wiederholungsangriffen entweder Nicht erzwungen (nur Überwachung) oder Erzwungen aus.
Berücksichtigen Sie Folgendes, um zu entscheiden, wann der Schutz vor Wiederholungsangriffen erzwungen werden soll:
Die Überwachung Ihrer Anfragen wird empfohlen, wenn eine beträchtliche Anzahl Ihrer Nutzer wahrscheinlich ältere Versionen Ihrer App verwendet, bei denen die Verwendung von Tokens mit eingeschränkter Nutzung nicht aktiviert ist. Wenn Sie den Schutz vor Wiederholungsangriffen sofort erzwingen, werden Anfragen dieser Nutzer blockiert.
Sie können speziell den Messwert Nicht überprüft: Wiederverwendetes Token überwachen. Das ist die Anzahl der Anfragen, die ein Token enthalten, das bereits in einer vorherigen Anfrage verwendet wurde. Überwachen Sie diesen Messwert in der Firebase Konsole auf dem Tab Sicherheit > App Check > APIs.
Wenn ein erheblicher Teil der letzten Anfragen in diese Kategorie fällt, können Sie Störungen für Nutzer vermeiden und warten, bis mehr Nutzer auf eine Version Ihrer App aktualisiert haben, die Tokens mit eingeschränkter Nutzung verwendet, bevor Sie den Schutz vor Wiederholungsangriffen erzwingen.
Funktionsweise der Integration von Firebase AI Logic in App Check
Um die Firebase AI Logic SDKs zu verwenden, muss die
Firebase AI Logic API (firebasevertexai.googleapis.com)
in Ihrem Firebase-Projekt aktiviert sein. Das liegt daran, dass Anfragen, die von den
Firebase AI Logic SDKs gestellt werden, zuerst an den Firebase AI Logic
Server gesendet werden, der als Proxy-Gateway fungiert, über das die Firebase App Check Überprüfung
erfolgt, bevor die Anfrage an das Backend des ausgewählten
"Gemini API"-Anbieters und die APIs für den Zugriff auf die Gemini
und Imagen Modelle weitergeleitet wird.