Missbrauch der Gemini API mit Firebase App Check verhindern

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.

  1. Wählen Sie einen Standardbestätigungsanbieter aus und folgen Sie der Implementierungsanleitung unter den folgenden Links:

    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.

  2. (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.

  3. (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 30 Minuten und 7 Tagen. Diese Sitzungstokens werden vom App Check SDK im Cache gespeichert, mit Anfragen von Ihrer App gesendet und können bis zum Ablauf ihrer Gültigkeitsdauer wiederverwendet werden. Die Verwendung von Sitzungstokens gilt als Basisschutz.

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:

  1. Implementieren Sie App Check und aktivieren Sie die Erzwingung für Ihre App, falls noch nicht geschehen.App Check

  2. Aktivieren Sie die Verwendung von Tokens mit eingeschränkter Nutzung.

    Legen Sie in Ihrer App während der Instanziierung den Parameter useLimitedUseAppCheckTokens auf true fest:

    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
    );
    
    // ...
    
  3. Erzwingen Sie den Schutz vor Wiederholungsangriffen.

    1. Achten Sie in der Codebasis Ihrer App darauf, dass die Verwendung von Tokens mit eingeschränkter Nutzung aktiviert ist (siehe vorheriger Schritt).

    2. Rufen Sie in der Firebase Konsole Sicherheit > App Check auf.

    3. Maximieren Sie die Messwertansicht für Firebase AI Logic.

    4. Achten Sie darauf, dass Basisschutz auf Erzwungen festgelegt ist, und klicken Sie dann auf Weiter.

    5. 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.