reCAPTCHA SMS Defense für die SMS-basierte Authentifizierung aktivieren

In diesem Dokument wird erläutert, wie Sie mit reCAPTCHA Ihre SMS-basierten Identity Platform-Abläufe, z. B. die Telefon- und Multi-Faktor-Authentifizierung, vor SMS-Gebührenbetrug (auch als SMS-Pumping-Angriffe bezeichnet) schützen können.

Übersicht

Wenn Ihre App für die Authentifizierung einen SMS-basierten Ablauf verwendet, können Sie die Integration von Firebase Authentication oder Identity Platform mit reCAPTCHA aktivieren. Wenn die Funktion aktiviert ist, rufen Firebase Authentication und Identity Platform die reCAPTCHA-SMS-Abwehrfunktion auf, wenn ein Nutzer über die folgenden phoneProvider-Vorgänge eine Bestätigungs-SMS von Ihrer App oder Website anfordert:

Vorgang Methode
Über Telefonnummer registrieren oder anmelden sendVerificationCode
Registrierung einer Telefonnummer für die Bestätigung in zwei Schritten mfaSmsEnrollment
Anmeldung per Telefonnummer mit Bestätigung in zwei Schritten mfaSmsSignIn

reCAPTCHA stellt dann Firebase Authentication oder Identity Platform einen Risikowert zur Verfügung, der die Wahrscheinlichkeit angibt, dass mit der Telefonnummer des Nutzers SMS-Gebührenbetrug begangen wird. Firebase Authentication und Identity Platform vergleichen diesen Wert mit dem Grenzwert, den Sie in Ihrer reCAPTCHA-SMS-Abwehrkonfiguration festgelegt haben, und verarbeiten die Anfrage dann gemäß der in der Konfiguration festgelegten Aktion.

Weitere Informationen zur reCAPTCHA-SMS-Abwehrfunktion finden Sie unter SMS-Betrug erkennen und verhindern.

Hinweise

Bevor Sie reCAPTCHA SMS Defense für die Identity Platform aktivieren, müssen Sie die folgenden Aufgaben ausführen:

  • Konfigurieren Sie für Ihre App oder Website Folgendes:

  • Erstellen Sie für jedes Projekt, in dem reCAPTCHA verwendet wird, ein Dienstkonto, falls Sie das noch nicht getan haben. Eine Anleitung dazu finden Sie im Hilfeartikel Dienstkonto erstellen.

Erzwungene Modi für die reCAPTCHA-Telefonauthentifizierung

Für reCAPTCHA SMS Defense müssen Sie die erzwungene Telefonauthentifizierung von reCAPTCHA einrichten. Diese hat zwei Modi: Prüfen und Erzwingen.

Audit-Modus

Wenn Sie die Erzwingung der Telefonauthentifizierung auf den Audit-Modus setzen, verwendet Identity Platform die reCAPTCHA-SMS-Abwehr für die App-Bestätigung. Wenn die Nutzeranfrage die Prüfung auf Betrug beim Bezahlen per SMS besteht, sendet Identity Platform eine SMS mit einem Bestätigungscode an das Smartphone des Nutzers. Wenn eine Anfrage die Betrugsbewertung für Mautgebühren nicht besteht und du das Client SDK verwendest, werden Fallback-Bestätigungsmethoden ausgelöst, um den Authentifizierungsablauf für Smartphones abzuschließen. Welche Fallback-Methoden akzeptiert werden, hängt von der Plattform Ihrer App ab.

Das Client-SDK löst die Fallback-Bestätigungsmethoden in den folgenden Fällen aus:

  • Das reCAPTCHA-Token fehlt.
  • Das reCAPTCHA-Token ist ungültig oder abgelaufen.
  • Das reCAPTCHA-Token erreicht nicht den Mindestwert.
  • reCAPTCHA ist nicht richtig konfiguriert.

Die Fallback-Bestätigungsmethoden für die Plattform Ihrer App müssen eingerichtet und bereit sein, bei Bedarf vom Client-SDK ausgelöst zu werden.

Web

Wenn die anfängliche Prüfung auf Betrug beim Bezahlen von Maut fehlschlägt, wird im Prüfmodus reCAPTCHA v2 zur Bestätigung verwendet. Daher müssen Sie den reCAPTCHA-Verifier (RecaptchaVerifier) einrichten und an die folgenden Authentifizierungsvorgänge für Smartphones übergeben:

  • verifyPhoneNumber
  • signInWithPhoneNumber
  • linkWithPhoneNumber
  • reauthenticateWithPhoneNumber
Ohne reCAPTCHA-Verifier kann die Identity Platform reCAPTCHA v2 nicht initiieren und gibt auth/argument-error zurück. Weitere Informationen zum Einrichten der reCAPTCHA-Verifizierung finden Sie in der Firebase-Dokumentation unter reCAPTCHA-Verifizierung einrichten.

Android

Wenn die erste Prüfung auf Betrug mit Mautgebühren fehlschlägt, wird Ihre App im Prüfmodus anhand der Play Integrity API überprüft. Wenn diese Überprüfung fehlschlägt, wird reCAPTCHA v2 ausgelöst. reCAPTCHA v2 kann in den folgenden Fällen ausgelöst werden:

  • Wenn auf dem Gerät des Endnutzers keine Google Play-Dienste installiert sind.
  • Wenn die App nicht über den Google Play Store vertrieben wird (bei Authentication SDK v21.2.0 und höher)
  • Wenn das abgerufene SafetyNet-Token ungültig war (bei Authentication SDK-Versionen vor v21.2.0)
Weitere Informationen zum Einrichten der Android-App-Überprüfung finden Sie in der Firebase-Dokumentation unter App-Überprüfung aktivieren.

iOS

Wenn die anfängliche Prüfung auf Betrug bei Mautgebühren fehlschlägt, werden im Audit-Modus stille Push-Benachrichtigungen zur Bestätigung verwendet. Bei dieser Bestätigungsmethode wird ein Token mit einer stillen Push-Benachrichtigung an Ihre App auf dem anfragenden Gerät gesendet. Wenn die App die Benachrichtigung empfängt, wird die Authentifizierung auf dem Smartphone fortgesetzt. Wenn Ihre App die Push-Benachrichtigung nicht erhält, wird reCAPTCHA v2 ausgelöst. reCAPTCHA v2 wird möglicherweise ausgelöst, wenn stumme Push-Benachrichtigungen nicht richtig konfiguriert sind.

Weitere Informationen zum Einrichten der App-Überprüfung für iOS finden Sie in der Firebase-Dokumentation unter App-Überprüfung aktivieren.

Modus erzwingen

Wenn Sie die Telefonauthentifizierung erzwingen, verwendet die Identity Platform die reCAPTCHA-SMS-Abwehr für die App-Bestätigung. Wenn die Nutzeranfrage die Betrugsbewertung für Mautgebühren besteht, sendet Identity Platform eine SMS mit einem Bestätigungscode an das Smartphone des Nutzers. Wenn die Anfrage die Betrugsbewertung für Mautgebühren nicht besteht, blockiert Identity Platform die Anfrage und sendet keine SMS mit einem Bestätigungscode.

Im erzwungenen Modus ist keine Fallback-Überprüfung erforderlich. Sie müssen also keine zusätzlichen Bestätigungsmethoden für Ihre App einrichten. Wir empfehlen jedoch, für Webanwendungen den reCAPTCHA-Verifier einzurichten, damit reCAPTCHA v2 aktiviert ist, falls Sie den reCAPTCHA-Modus Ihrer App in AUDIT oder OFF ändern.

reCAPTCHA SMS Defense aktivieren

So aktivieren Sie reCAPTCHA SMS Defense:

  1. Aktivieren Sie die reCAPTCHA Enterprise API in Ihrem Projekt, falls Sie dies noch nicht getan haben.

  2. Aktivieren Sie reCAPTCHA SMS Defense mit reCAPTCHA. Eine Anleitung dazu finden Sie in der reCAPTCHA-Dokumentation auf der Seite „SMS-Betrug erkennen und verhindern“ im Abschnitt Vorbereitung.

  3. Wenn Sie die reCAPTCHA-SMS-Absicherung für ein Firebase Authentication- oder Identity Platform-Projekt aktivieren möchten, rufen Sie mit dem Google APIs Explorer updateConfig auf. Kopieren Sie dazu die folgende HTTP-URL und fügen Sie sie in ein neues Browserfenster ein, in dem Sie in der Google Cloud Console angemeldet sind.

    https://cloud.google.com/identity-platform/docs/reference/rest/v2/projects/updateConfig?apix_params={"name":"projects/PROJECT_ID/config","updateMask":"recaptchaConfig","resource":{"recaptchaConfig":{"emailPasswordEnforcementState":"OFF","phoneEnforcementState":"ENFORCE_MODE","useSmsTollFraudProtection":true,"tollFraudManagedRules":[{"action":"BLOCK","startScore":START_SCORE}]}}}
    

    Hinweis:Ersetzen Sie die folgenden Variablen in der obigen HTTP-URL, bevor Sie sie kopieren und einfügen.

    • PROJECT_ID: die Projekt-ID, für die die Identitätsplattform aktiviert ist.

    • ENFORCE_MODE: Der Modus, den Sie für die Erzwingung der reCAPTCHA-Authentifizierung per Telefon festlegen möchten. Gültige Werte sind OFF, AUDIT und ENFORCE. Wenn Sie die reCAPTCHA-SMS-Abwehr aktivieren möchten, muss dieser Parameter auf AUDIT oder ENFORCE und useSmsTollFraudProtection auf true gesetzt sein.

      Wenn Sie die reCAPTCHA SMS-Abwehr zum ersten Mal aktivieren, empfehlen wir, den Erzwingungsstatus auf AUDIT festzulegen und dafür zu sorgen, dass Ihre Authentifizierungsabläufe geschützt sind, bevor Sie ihn auf ENFORCE setzen. Weitere Informationen zur Funktionsweise der Modi finden Sie unter Erzwingungsmodi für die reCAPTCHA-Telefonauthentifizierung.

    • START_SCORE: Der höchste Wert, den der Betrugsbewertungsscore für Mautgebühren für eine Anfrage haben kann, bevor sie fehlschlägt. Sie können diesen Wert zwischen 0.0 und 1.0 festlegen. Alle Werte über dem von Ihnen festgelegten Grenzwert gelten als SMS-Abrechnungsbetrug. Wenn Sie beispielsweise einen Schwellenwert von 0.3 festlegen, lehnt reCAPTCHA jede Anfrage mit einem Wert von 0.4 oder höher ab. Je niedriger Sie den Wert festlegen, desto strenger sind die Regeln.

  4. Wenn Sie Identity Platform im Web oder unter Android verwenden, registrieren Sie Ihre App über die Firebase Console:

    Die Bereitstellung des reCAPTCHA-Schlüssels kann einige Minuten dauern.

  5. Wenn Sie die Erzwingung auf den Modus „Prüfen“ gesetzt haben, empfehlen wir Ihnen, die reCAPTCHA-Messwerte für reCAPTCHA SMS Defense im Blick zu behalten, um sicherzustellen, dass Ihre Zugriffe geschützt sind.

Client SDK konfigurieren

Konfigurieren Sie das Client SDK entsprechend der Plattform Ihrer App.

Web

  1. Aktualisieren Sie auf die aktuelle Version des Web SDK.

    • Die reCAPTCHA-Unterstützung für die E-Mail- und Passwort-Authentifizierung in Webanwendungen ist in den JavaScript SDK-Versionen 9.20.0 und höher verfügbar.
    • Die reCAPTCHA-Unterstützung für die Telefonauthentifizierung in Webanwendungen ist ab JavaScript SDK-Version 11 verfügbar.

    Nachdem Sie das Web SDK in Ihre App eingebunden haben, ruft das SDK automatisch Ihre reCAPTCHA-Konfiguration ab und aktiviert den Schutz für die von Ihnen konfigurierten Anbieter.

  2. Bei Bedarf können Sie das reCAPTCHA-Signal so erzwingen:

    import { initializeRecaptchaConfig } from '@firebase/auth';
    
    // Initialize Firebase Authentication
    const auth = getAuth();
    initializeRecaptchaConfig(auth)
      .then(() => {
        console.log("Recaptcha Enterprise Config Initialization successful.")
      })
      .catch((error) => {
        console.error("Recaptcha Enterprise Config Initialization failed with " + error)
      });
    

Android

  1. Aktualisieren Sie auf die neueste Version des Android SDK. reCAPTCHA-Unterstützung für die E-Mail- und Passwort-Authentifizierung und die Telefonauthentifizierung in Android-Apps ist ab Android SDK-Version 23.1.0 verfügbar.

    Außerdem ist für die reCAPTCHA-Unterstützung API-Level 23 (Marshmallow) oder höher und Android 6 oder höher erforderlich.

    Nachdem Sie das Android SDK in Ihre App eingebunden haben, ruft das SDK automatisch Ihre reCAPTCHA-Konfiguration ab und aktiviert den Schutz für die von Ihnen konfigurierten Anbieter.

  2. Fügen Sie der Datei build.gradle auf App-Ebene im Abschnitt „Abhängigkeiten“ die folgende Build-Regel hinzu:

    implementation 'com.google.android.recaptcha:recaptcha:18.5.1'
    

    Sie benötigen die reCAPTCHA SDK-Version 18.5.1 oder höher.

  3. Bei Bedarf können Sie das reCAPTCHA-Signal so erzwingen:

    • Kotlin:
    // Initialize Firebase Authentication
    auth = Firebase.auth
    
    auth.initializeRecaptchaConfig().addOnCompleteListener(this) { task ->
        if (task.isSuccessful) {
            Log.d(TAG, "Recaptcha Enterprise Initialization successful.")
        } else {
            Log.w(TAG, "Recaptcha Enterprise Initialization failed.")
        }
    }
    
    • Java:
    // Initialize Firebase Authentication
    auth = FirebaseAuth.getInstance();
    auth.initializeRecaptchaConfig().addOnCompleteListener(
      this, new OnCompleteListener<void>() {
      @Override
      public void onComplete(@NonNull Task<void> task) {
        if (task.isSuccessful()) {
          Log.d(TAG, "Recaptcha Enterprise Initialization successful.");
        } else {
          Log.w(TAG, "Recaptcha Enterprise Initialization failed.");
        }
      }
    });
    

iOS

  1. Aktualisieren Sie auf die iOS SDK-Version 11.6.0 oder höher. Nachdem Sie das iOS SDK in Ihre App eingebunden haben, ruft das SDK automatisch Ihre reCAPTCHA-Konfiguration ab und aktiviert den Schutz für die von Ihnen konfigurierten Anbieter.

  2. Informationen zum Einbinden des reCAPTCHA iOS SDK in Ihre App finden Sie unter Umgebung vorbereiten.

  3. Achten Sie darauf, dass -ObjC in Ihren Linker-Flags aufgeführt ist. Gehen Sie zu Ziel > Build-Einstellungen > Alle > Verknüpfen und prüfen Sie, ob Other Linker Flags -ObjC anzeigt.

  4. Bei Bedarf können Sie das reCAPTCHA-Signal so erzwingen:

    • Swift:
    // Initialize Firebase Authentication
    try await Auth.auth().initializeRecaptchaConfig()
    
    • Objective-C:
    // Initialize Firebase Authentication
    [[FIRAuth auth] initializeRecaptchaConfigWithCompletion:^(NSError * _Nullable error) {
      // Firebase Authentication initialization finished
    }];
    

reCAPTCHA-Messwerte für reCAPTCHA SMS Defense im Blick behalten

Bevor Sie den erzwungenen Modus für reCAPTCHA aktivieren, empfehlen wir Ihnen, den Modus „Prüfen“ zu verwenden und die reCAPTCHA-Messwerte Ihres Projekts zu beobachten, um sicherzustellen, dass Ihre SMS-basierten Authentifizierungsabläufe geschützt sind. Anhand dieser Messwerte können Sie beispielsweise feststellen, ob Sie die Integration der Identity Platform mit der reCAPTCHA Enterprise API richtig eingerichtet haben. Außerdem können Sie damit den Bewertungsgrenzwert für Ihren Nutzertraffic optimieren.

Prüfen Sie, ob die reCAPTCHA SMS Defense-Funktion funktioniert, indem Sie die folgenden Messwerte prüfen, die Ihr Projekt an Cloud Monitoring sendet:

Weitere Informationen finden Sie unter reCAPTCHA-Messwerte im Blick behalten.

reCAPTCHA SMS Defense erzwingen

Nachdem Sie überprüft haben, dass Ihre App akzeptable Nutzerzugriffe erhält, können Sie die reCAPTCHA-Erzwigung aktivieren, um Ihre Nutzer zu schützen. Achten Sie darauf, dass bestehende Nutzer nicht gestört werden, auch nicht Nutzer, die möglicherweise eine ältere Version Ihrer App verwenden.

Wenn Sie die reCAPTCHA-Durchsetzung für SMS-basierte Authentifizierungsabläufe in einem Projekt oder Mandanten aktivieren möchten, aktualisieren Sie die Projektkonfiguration mit dem Google APIs Explorer:

    recaptchaConfig: {
      phoneEnforcementState:  'ENFORCE',
      useSmsTollFraudProtection: 'true'
    }

reCAPTCHA SMS Defense deaktivieren

Wenn Sie den reCAPTCHA SMS-Schutz deaktivieren möchten, aktualisieren Sie die Projektkonfiguration mit dem Google APIs Explorer:

    recaptchaConfig: {
      phoneEnforcementState:  'OFF',
      useSmsTollFraudProtection: 'false'
    }

Informationen zum Deaktivieren von reCAPTCHA SMS Defense bei Verwendung des Bot-Schutzes finden Sie unter ReCAPTCHA SMS Defense bei Verwendung des Bot-Schutzes deaktivieren.

reCAPTCHA SMS Defense mit Bot-Schutz verwenden

Sie können reCAPTCHA SMS Defense gleichzeitig mit dem Botschutz verwenden. Bei Konfigurationen, in denen beide Schutzfunktionen verwendet werden, beachten Sie Folgendes:

  • Wenn Sie den Erzwingungsstatus der Telefonauthentifizierung auf „Audit“ (Prüfen) gesetzt haben, leitet Identity Platform eine Anfrage weiter, wenn mindestens eine der Prüfungen erfüllt ist. Wir empfehlen Ihnen, die reCAPTCHA-Messwerte im Blick zu behalten, damit sowohl der reCAPTCHA-SMS-Schutz als auch der Bot-Schutz mit angemessenen Bewertungseinstellungen konfiguriert sind.
  • Wenn Sie den Status der Erzwingung der Smartphone-Authentifizierung auf „Erzwingen“ gesetzt haben, leitet Identity Platform eine Anfrage nur weiter, wenn sie beide Bewertungen erfüllt. Die Anfrage wird dann geschlossen, ohne dass auf eine andere Bestätigungsmethode zurückgegriffen wird.

Wenn Sie beide Funktionen aktivieren möchten, aktualisieren Sie die Projektkonfiguration mit dem Google APIs Explorer:

    recaptchaConfig: {
      phoneEnforcementState:  'ENFORCE_MODE',
      useSmsTollFraudProtection: true,
      useSmsBotScore: true
    }

Ersetzen Sie ENFORCE_MODE durch den Modus, den Sie für die erzwungene reCAPTCHA-Authentifizierung per Smartphone festlegen möchten. Gültige Werte sind OFF, AUDIT und ENFORCE. Wenn Sie reCAPTCHA SMS Defense aktivieren möchten, muss dieser Parameter auf AUDIT oder ENFORCE gesetzt sein. Wenn Sie die reCAPTCHA-SMS-Abwehr zum ersten Mal aktivieren, empfehlen wir, diesen Parameter auf AUDIT festzulegen und dafür zu sorgen, dass Ihre Authentifizierungsabläufe geschützt sind, bevor Sie ihn auf ENFORCE festlegen. Weitere Informationen zur Funktionsweise der Modi finden Sie unter Erforderliche reCAPTCHA-Telefonauthentifizierung.

reCAPTCHA SMS Defense bei Verwendung des Bot-Schutzes deaktivieren

Wenn Sie sowohl reCAPTCHA SMS Defense als auch den Botschutz gleichzeitig verwenden und reCAPTCHA SMS Defense deaktivieren möchten, ohne den Botschutz zu deaktivieren, aktualisieren Sie die Projektkonfiguration mit dem Google APIs Explorer:

    recaptchaConfig: {
      phoneEnforcementState:  'ENFORCE_MODE',
      useSmsTollFraudProtection: 'false',
      useSmsBotScore: 'true'
    }

Ersetzen Sie ENFORCE_MODE durch den Modus, den Sie zuvor für die Erzwingung der reCAPTCHA-Authentifizierung per Smartphone festgelegt haben. Dieser Wert sollte entweder AUDIT oder ENFORCE sein. Weitere Informationen zur Funktionsweise der Modi finden Sie unter Erforderliche reCAPTCHA-Telefonauthentifizierung.

Nächste Schritte