Wenn Sie eine API direkt über eine mobile App oder Web-App aufrufen (z. B. die APIs, die den 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 Firebase App Check verwenden, um zu prüfen, ob alle eingehenden API-Aufrufe von Ihrer tatsächlichen App und einem unveränderten Gerät stammen.
Firebase AI Logic bietet ein Proxy-Gateway, mit dem Sie Firebase App Check integrieren und die von Ihren Mobil- und Web-Apps aufgerufenen APIs für generative KI-Modelle schützen können. Wenn Sie App Check mit den Firebase AI Logic-SDKs verwenden, werden alle unsere Konfigurationen unterstützt:
Schützt beide „Gemini API“-Anbieter: Gemini Developer API und Vertex AI Gemini API.
Schützt alle unterstützten Modelle, sowohl Gemini- als auch Imagen-Modelle.
App Check unterstützt auch den Schutz vor Replay-Angriffen. 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äteattestierungsanbieter, der eines oder beides der Folgenden überprüft:
- 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ültigen Nachweis 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 Schutz vor Replay-Angriffen hinzufügen, damit App Check-Tokens nur einmal verwendet werden können. Diese Option bietet einen erweiterten 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 finden Sie in der Dokumentation, einschließlich der Kontingente und Limits.
App Check einrichten
Die App Check-Dokumentation enthält detaillierte Beschreibungen der Attestierungsanbieter sowie ausführliche Implementierungsanleitungen.
Wählen Sie einen Standardanbieter für die Attestierung 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 Standardanbieter für die Geräteattestierung Ihren Anforderungen entspricht, können Sie einen benutzerdefinierten Anbieter implementieren, der entweder einen Drittanbieter für die Geräteattestierung oder Ihre eigenen Attestierungstechniken verwendet.
(Erforderlich) App Check-Durchsetzung aktivieren bevor Sie Ihre App in einem öffentlich verfügbaren Quellcodeverwaltungssystem speichern, Ihre App freigeben oder Ihre App öffentlich verfügbar machen.
(Empfohlen) Schutz durch Hinzufügen von Schutz vor Replay-Angriffen verbessern: Ein App Check-Token kann nur einmal verwendet werden.
Schutz durch Hinzufügen von Replay-Schutz verbessern
|
Wir empfehlen, die aktuellen SDK-Versionen zu verwenden. Achten Sie jedoch darauf, dass Sie mindestens eine der folgenden Versionen verwenden, um den Replay-Schutz zu nutzen: Apple-Plattformen: V12.2.0 und höher | Android BoM: V34.14.0 und höher (App Check: V19.1.0 und höher) | Web: V12.14.0 und höher | Flutter: V4.15.0 und höher (App Check: V4.10.0 und höher) | Unity: V13.12.0 und 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 Replay-Angriffen erzwingen, bei dem stattdessen Tokens mit eingeschränkter Nutzung verwendet werden. Wenn der Schutz vor Replay-Angriffen erzwungen wird, geschieht Folgendes:
Mit App Check werden Anfragen an Firebase AI Logic blockiert, die Sitzungstokens verwenden. Stattdessen wird mit App Check eine Anfrage an Firebase AI Logic nur zugelassen, wenn sie ein neu erstelltes Token mit eingeschränkter Nutzung verwendet.
Nachdem das Token mit eingeschränkter Nutzung verifiziert wurde, wird es verwendet, sodass es nur einmal verwendet werden kann. Dadurch werden Replay-Angriffe verhindert.
Das App Check SDK generiert für jede Anfrage ein neues Token mit eingeschränkter Nutzung. Dieser Prozess kann sich auf Ihre Anfragen auswirken, da er zu einer gewissen Latenz und manchmal zu Kosten führt (je nach Attestierungsanbieter).
Wiedergabeschutz einrichten und erzwingen
|
Klicken Sie auf Ihren Gemini API-Anbieter, um anbieterspezifische Inhalte und Code auf dieser Seite aufzurufen. |
So richten Sie den Replay-Schutz ein und erzwingen ihn:
Falls noch nicht geschehen, implementieren Sie App Check und aktivieren Sie die App Check-Durchsetzung für Ihre App.
Verwendung von Tokens mit eingeschränkter Nutzung aktivieren
Legen Sie in Ihrer App bei 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 ); // ...Schutz vor Wiederholungsangriffen erzwingen:
Achten Sie darauf, dass die Verwendung von Tokens mit eingeschränkter Nutzung (siehe vorheriger Schritt) im Code Ihrer App aktiviert ist.
Rufen Sie in der Firebase-Konsole Sicherheit > App Check auf.
Maximieren Sie die Messwertansicht für Firebase AI Logic.
Prüfen Sie, ob Basisschutz auf Erzwungen gesetzt ist, und klicken Sie dann auf Weiter.
Wählen Sie für den Replay-Schutz entweder Nicht erzwungen (nur Monitoring) oder Erzwungen aus.
Berücksichtigen Sie Folgendes, um zu entscheiden, wann der Replay-Schutz erzwungen werden soll:
Es wird empfohlen, Ihre Anfragen zu überwachen, wenn eine beträchtliche Anzahl Ihrer Nutzer wahrscheinlich ältere Versionen Ihrer App ohne aktivierte Nutzung von Tokens mit eingeschränkter Verwendung verwendet. Wenn Sie den Replay-Schutz sofort erzwingen, werden Anfragen dieser Nutzer blockiert.
Sie können insbesondere den Messwert Nicht bestätigt: Wiederverwendetes Token im Blick behalten. Er gibt die Anzahl der Anfragen mit einem Token an, das bereits in einer vorherigen Anfrage verwendet wurde. Behalten Sie diesen Messwert in der Firebase-Konsole im Blick (gehen Sie zum Tab APIs unter Sicherheit > App Check).
Wenn ein erheblicher Teil der letzten Anfragen in diese Kategorie fällt, können Sie Unterbrechungen für Nutzer vermeiden und mit der Erzwingung des Replay-Schutzes warten, bis mehr Nutzer auf eine Version Ihrer App aktualisiert haben, die Tokens mit eingeschränkter Nutzung verwendet.
Informationen zur Integration von Firebase AI Logic in App Check
Wenn Sie die Firebase AI Logic-SDKs verwenden möchten, 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 bevor die Anfrage an das Backend des von Ihnen ausgewählten Gemini API-Anbieters und die APIs für den Zugriff auf die Gemini- und Imagen-Modelle weitergeleitet wird.