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 Agent Platform Gemini API (formerly Vertex AI)
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äteattestierungs anbieter, 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 Attestierung wird an jede Anfrage angehängt, die Ihre App mit einem Firebase AI Logic SDK stellt. Wenn App Check erzwungen wird, 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 Ihre 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 Attestierungs anbieter sowie eine detaillierte Implementierungsanleitung.
Wählen Sie einen Attestierungsanbieter 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 dieser Attestierungsanbieter Ihren Anforderungen entspricht, können Sie einen benutzerdefinierten Anbieter implementieren, der entweder einen Attestierungsanbieter eines Drittanbieters oder Ihre eigenen Attestierungs 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.
Konfigurieren Sie für die lokale Entwicklung, wenn App Check erzwungen wird, den App Check Debug-Anbieter, um die Attestierung zu umgehen und gleichzeitig die Erzwingung von App Check beizubehalten. Eine Einrichtungsanleitung für Ihre Plattform finden Sie hier: iOS+ | Android | Web | Flutter | Unity.
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 lässt nur Anfragen an Firebase AI Logic zu, die ein neu erstelltes Token mit eingeschränkter Nutzung verwenden.
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 dieser Vorgang auf Ihre Anfragen auswirken kann, indem er die Latenz erhöht und manchmal Kosten verursacht (je nach Attestierungsanbieter).
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 erzwungen 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 Sie den Schutz vor Wiederholungsangriffen erzwingen sollten:
Die Überwachung Ihrer Anfragen ist empfehlenswert, wenn eine beträchtliche Anzahl Ihrer Nutzer wahrscheinlich ältere Versionen Ihrer App verwendet, ohne dass die Verwendung von Tokens mit eingeschränkter Nutzung 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. Er gibt die Anzahl der Anfragen an, 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 mit dem Erzwingen des Schutzes vor Wiederholungsangriffen warten, bis mehr Nutzer auf eine Version Ihrer App aktualisiert haben, die Tokens mit eingeschränkter Nutzung verwendet.
Einbindung 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. Dort findet die Firebase App Check Verifizierung
statt, 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.
(Optional) App Check ohne Attestierungsanbieter für die Produktion erzwingen (nur Debug-Anbieter)
Sie können App Check für AI Logic erzwingen, ohne Ihre App bei einem Attestierungsanbieter für die Produktion zu registrieren. Mit dieser Einrichtung können Sie den App Check Debug-Anbieter verwenden, um einfacher mit AI Logic zu beginnen und gleichzeitig die Gemini API zu schützen.
Prüfen Sie, ob App Check bereits für AI Logic erzwungen wird.
Rufen Sie in der Firebase Konsole den Tab Sicherheit > App Check > APIs auf.
Suchen Sie die Zeile für Firebase AI Logic. Wenn dort
Unenforced, steht, fahren Sie mit den restlichen Schritten dieser Anleitung fort.
Klicken Sie auf die Zeile für Firebase AI Logic. Daraufhin werden Messwertdiagramme angezeigt. Klicken Sie unter den Diagrammen auf Einrichten.
Wählen Sie im ersten Fenster des Dialogfelds (Basisschutz) die Option Erzwungen aus und klicken Sie dann auf Weiter.
Wählen Sie im nächsten Fenster (Schutz vor Wiederholungsangriffen) die Option Deaktiviert aus. Sie können diese Einrichtung jederzeit später vornehmen und zu diesem Einrichtungsworkflow zurückkehren. Klicken Sie auf Weiter.
Lesen Sie im letzten Fenster die Überlegungen zum Erzwingen von App Check durch, um sicherzugehen, dass Sie bereit sind, App Checkzu erzwingen. Wenn Sie bereit sind, klicken Sie auf Weiter.
Sie müssen Ihre Apps nicht registrieren, wenn Sie nur App Check erzwingen und nur den Debug-Anbieter mit AI Logic in einer App vor der Produktion verwenden möchten. Wenn Sie Ihre App jedoch für End nutzer freigeben möchten, müssen Sie Ihre Apps im Rahmen der Einrichtung eines Attestierungsanbieters für die Produktion registrieren (z. B. App Attest, Play Integrity oder reCAPTCHA Enterprise).
Konfigurieren Sie für die lokale Entwicklung, wenn App Check erzwungen wird, den App Check Debug-Anbieter, um die Attestierung zu umgehen und gleichzeitig die Erzwingung von App Check beizubehalten.
Eine detaillierte Anleitung zum Konfigurieren des Debug-Anbieters finden Sie hier: Ihrer Plattform: iOS+ | Android | Web | Flutter | Unity.