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

In diesem Dokument wird erläutert, wie Sie reCAPTCHA SMS Defense verwenden können, um Ihre SMS-basierten Identity Platform-Abläufe, wie die Telefon- und Multi-Faktor-Authentifizierung, vor SMS-Gebührenbetrug (auch als SMS-Pumping-Angriffe bezeichnet) zu schützen. Diese Integration trägt dazu bei, dass unautorisierter SMS-Traffic sich nicht negativ auf Ihre Nutzer und Ressourcen auswirkt.

Übersicht

Wenn Ihre App für die Authentifizierung auf SMS angewiesen ist, empfehlen wir, die reCAPTCHA SMS Defense-Integration zu aktivieren. Nach der Aktivierung rufen Firebase Authentication und Identity Platform die reCAPTCHA-SMS-Schutzfunktion automatisch auf, wenn ein Endnutzer über die folgenden phoneProvider-Vorgänge eine Bestätigungs-SMS von Ihrer App oder Website anfordert:

Vorgang Methode
Registrierung oder Anmeldung mit Telefonnummer sendVerificationCode
Registrierung der Telefonnummer für die MFA mfaSmsEnrollment
Anmeldung mit Telefonnummer für die 2‑Faktor-Authentifizierung mfaSmsSignIn

reCAPTCHA stellt Firebase Authentication oder der Identity Platform dann einen Risikowert zur Verfügung, der die Wahrscheinlichkeit von SMS-Gebührenbetrug für die Telefonnummer des Nutzers angibt. Dieser Wert wird dann mit dem konfigurierten Grenzwert verglichen. Wenn der Risikowert diesen Schwellenwert überschreitet, wird die SMS nicht gesendet, wodurch betrügerische Versuche effektiv blockiert werden.

Informationen zur Funktionsweise von reCAPTCHA SMS Defense-Punktzahlen finden Sie unter Punktzahlen interpretieren.

Weitere Informationen zum reCAPTCHA-Feature zum Schutz vor SMS-Betrug finden Sie unter SMS-Betrug erkennen und verhindern.

Erzwingungsmodi für die reCAPTCHA-Telefonauthentifizierung

Sie können die Erzwingung der Telefonauthentifizierung für reCAPTCHA SMS Defense so konfigurieren, dass entweder der Prüf- oder der Erzwingungsmodus verwendet wird.

Audit-Modus

Wenn Sie die Erzwingung der Telefonauthentifizierung auf den Prüfmodus festlegen, verwendet Identity Platform reCAPTCHA SMS Defense für die App-Bestätigung. Wenn die Anfrage eines Nutzers die Gebührenbetrugsprüfung besteht, wird ein SMS-Bestätigungscode gesendet. Wenn die Anfrage eines Nutzers die Gebührenbetrugsprüfung nicht besteht und Sie das Client SDK verwenden, löst Identity Platform alternative Bestätigungsmethoden aus, um den Telefonauthentifizierungsablauf abzuschließen. Die akzeptierten Fallback-Methoden hängen von der Plattform Ihrer App ab.

Das Client SDK löst die alternativen Bestätigungsmethoden in den folgenden Szenarien aus:

  • Das reCAPTCHA-Token fehlt.
  • Das reCAPTCHA-Token ist ungültig oder abgelaufen.
  • Das reCAPTCHA-Token überschreitet den Schwellenwert für den Score nicht.
  • reCAPTCHA ist nicht richtig konfiguriert.

Achten Sie darauf, dass die alternativen Bestätigungsmethoden für die Plattform Ihrer App eingerichtet sind und bei Bedarf vom Client SDK ausgelöst werden können.

Web

Wenn die erste Bewertung des Anruferbetrugs fehlschlägt, wird im Prüfmodus reCAPTCHA v2 zur Bestätigung verwendet. Daher müssen Sie die reCAPTCHA-Verifizierung (RecaptchaVerifier) einrichten und an die folgenden Telefonauthentifizierungsvorgänge übergeben:

  • verifyPhoneNumber
  • signInWithPhoneNumber
  • linkWithPhoneNumber
  • reauthenticateWithPhoneNumber
Ohne die reCAPTCHA-Verifizierung kann 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 Bewertung von Anrufbetrug 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 Nutzers die Google Play-Dienste nicht installiert sind.
  • Wenn die App nicht über den Google Play Store vertrieben wird (im Authentication SDK v21.2.0 und höher).
  • Wenn das abgerufene SafetyNet-Token nicht gü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 erste Prüfung auf Anrufbetrug fehlschlägt, wird im Audit-Modus zur Bestätigung auf Silent Push-Benachrichtigungen zurückgegriffen. Bei dieser Bestätigungsmethode wird ein Token mit einer lautlosen Push-Benachrichtigung an Ihre App auf dem anfragenden Gerät gesendet. Wenn Ihre App die Benachrichtigung erfolgreich empfängt, wird die Smartphone-Authentifizierung fortgesetzt. Wenn Ihre App die Push-Benachrichtigung nicht empfängt, 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 iOS-App-Überprüfung finden Sie in der Firebase-Dokumentation unter App-Überprüfung aktivieren.

Erzwungener Modus

Wenn Sie die Erzwingung der Telefonauthentifizierung auf den Erzwingungsmodus festlegen, verwendet Identity Platform reCAPTCHA SMS Defense für die App-Bestätigung. Wenn die Anfrage eines Nutzers die Gebührenbetrugsprüfung besteht, wird ein SMS-Bestätigungscode gesendet. Wenn die Anfrage eines Nutzers die Gebührenbetrugsprüfung nicht besteht, blockiert Identity Platform die Anfrage und sendet keine SMS mit einem Bestätigungscode.

Im erzwungenen Modus ist keine Fallback-Bestätigung erforderlich. Sie müssen keine zusätzlichen Bestätigungsmethoden für Ihre App einrichten. Wir empfehlen jedoch, reCAPTCHA-Verifizierung für Web-Apps einzurichten, damit reCAPTCHA v2 aktiviert ist, wenn Sie den reCAPTCHA-Modus Ihrer App in AUDIT oder OFF ändern.

Hinweise

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

reCAPTCHA SMS Defense aktivieren

  1. Richten Sie die Authentifizierung ein:

    1. In the Google Cloud console, activate Cloud Shell.

      Activate Cloud Shell

    2. Dienstidentität erstellen:

      gcloud beta services identity create \
          --service=identitytoolkit.googleapis.com \
          --project=PROJECT_ID
      

      Ersetzen Sie PROJECT_ID durch die ID des Projekts.

    3. Weisen Sie der von Ihnen erstellten Dienstidentität die Rolle roles/identitytoolkit.serviceAgent zu.

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-identitytoolkit.iam.gserviceaccount.com \
        --role=roles/identitytoolkit.serviceAgent
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die Projekt-ID
    • PROJECT_NUMBER: die Projektkontonummer
  2. Aktivieren Sie die reCAPTCHA Enterprise API für Ihr Projekt.

  3. So aktivieren Sie reCAPTCHA SMS Defense für Ihr Projekt:

    1. Rufen Sie in der Google Cloud Console die reCAPTCHA-Seite auf.

      Zu reCAPTCHA

    2. Prüfen Sie, ob der Name Ihres Projekts in der Ressourcenauswahl angezeigt wird.

      Wenn Sie den Namen Ihres Projekts nicht sehen, klicken Sie auf die Ressourcenauswahl und wählen Sie Ihr Projekt aus.

    3. Klicken Sie auf Einstellungen.

    4. Klicken Sie im Bereich SMS-Schutz auf Konfigurieren.

    5. Klicken Sie auf den Schalter Aktivieren und dann auf Speichern.

    Wenn Sie reCAPTCHA SMS Defense aktivieren, wird auch Account Defender aktiviert, sofern dies noch nicht geschehen ist.

    Es kann einige Minuten dauern, bis die Aktivierung von reCAPTCHA SMS Defense in unseren Systemen übernommen wird. Sobald die Änderungen übernommen wurden, erhalten Sie im Rahmen der Bewertungen Antworten zu reCAPTCHA SMS Defense.

  4. So konfigurieren Sie die Einstellungen für reCAPTCHA SMS Defense für ein Firebase Authentication- oder Identity Platform-Projekt:

    1. Ersetzen Sie in der folgenden URL PROJECT_ID, Recaptcha_MODE und START_SCORE:

      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":"Recaptcha_MODE","useSmsTollFraudProtection":true,"tollFraudManagedRules":[{"action":"BLOCK","startScore":START_SCORE}]}}}
      
      • PROJECT_ID: die Projekt-ID, für die Identity Platform aktiviert ist.

      • Recaptcha_MODE: Der Modus, den Sie für die Erzwingung der reCAPTCHA-Telefonauthentifizierung 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 und useSmsTollFraudProtection auf true gesetzt werden.

        Wenn Sie reCAPTCHA SMS Defense zum ersten Mal aktivieren, sollten Sie den AUDIT-Modus verwenden, um sicherzustellen, dass die Einrichtung von reCAPTCHA SMS Defense richtig funktioniert. Der AUDIT-Modus dient ausschließlich zu Überprüfungszwecken. In diesem Modus wird nicht verhindert, dass unautorisierte SMS gesendet werden. Prüfen Sie, ob im Dashboard Messwerte Fehler angezeigt werden. Aktivieren Sie nach der Bestätigung sofort den ENFORCE-Modus. Weitere Informationen zur Funktionsweise der Modi finden Sie unter Modi für die Erzwingung der reCAPTCHA-Telefonauthentifizierung.

      • START_SCORE: Die höchste Bewertung für Anrugebührenbetrug, die eine Anfrage haben kann, bevor sie fehlschlägt. Sie können diesen Wert zwischen 0.1 und 0.9 festlegen. Wir empfehlen, mit einem höheren Grenzwert zu beginnen, z. B. 0.8, und den Wert dann schrittweise zu senken. Werte über dem von Ihnen festgelegten Grenzwert werden als SMS-Betrug behandelt. Wenn Sie die Punktzahl auf 1,0 festlegen, wird der Betrugsschutz deaktiviert. Wenn Sie die Punktzahl auf 0,0 festlegen, werden alle SMS-Nachrichten blockiert. Je niedriger Sie den Wert festlegen, desto strenger sind die Regeln. Wenn Sie beispielsweise einen Schwellenwert von 0.3 festlegen, schlägt reCAPTCHA jede Anfrage mit einem Score von 0.4 oder höher fehl.

    2. Geben Sie die URL in einem neuen Browserfenster ein, in dem Sie in der Google Cloud Console angemeldet sind.

  1. Wenn Sie Identity Platform im Web oder unter Android verwenden, registrieren Sie Ihre App in der Firebase Console:

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

  2. Konfiguration überprüfen:

    • Rufen Sie die reCAPTCHA-Konfigurationsdetails ab:

      {replace-your-project} mit Ihrem projectId oder projectNumber. Führen Sie die GetConfig API in der Seitenleiste aus, um die reCAPTCHA-Konfiguration abzurufen.

    • Prüfen Sie, ob reCAPTCHA SMS Defense richtig konfiguriert ist:

      1. Wenn die reCAPTCHA-Konfiguration richtig eingerichtet ist, muss die Antwort die folgenden Felder mit den angegebenen Werten enthalten:

        • recaptchaKeys: Das Feld darf nicht leer sein und ist für mindestens eine der folgenden Plattformen konfiguriert: iOS, Web oder Android.
        • useSmsTollFraudProtection: Der Wert für dieses Feld muss auf true festgelegt werden.
        • phoneEnforcementState: Der Wert muss entweder auf ENFORCE oder AUDIT festgelegt werden.
        • tollFraudManagedRules: In diesem Feld muss startScore mit dem von Ihnen ausgewählten Schwellenwert konfiguriert werden.Dieser muss ein Wert zwischen 0 und 0,9 sein.

        Konfigurieren Sie andernfalls reCAPTCHA SMS Defense noch einmal.

        Beispielantwort:

          {
            "recaptchaConfig": {
                "recaptchaKeys": [
                  {
                    "key": "projects/{your-project}/keys/{recaptcha-key}",
                    "type": "WEB"
                  },
                  {
                    "type": "IOS"
                  },
                  {
                    "type": "ANDROID"
                  }
                ],
                "phoneEnforcementState": "ENFORCE",
                "tollFraudManagedRules": [
                  {
                    "startScore": 0.8,
                    "action": "BLOCK"
                  }
                ],
                "useSmsTollFraudProtection": true
            }
          }
          ```
        
  3. Prüfen Sie, ob die SDK-Versionen korrekt sind.

    Web

    Aktualisieren Sie auf die neueste Version des Web-SDK.

    • Die reCAPTCHA-Unterstützung für die E‑Mail- und Passwortauthentifizierung in Web-Apps ist in JavaScript SDK-Versionen 9.20.0 und höher verfügbar.
    • Die reCAPTCHA-Unterstützung für die Telefonauthentifizierung in Web-Apps ist in JavaScript SDK-Version 11 und höher 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.

    Android

    1. Aktualisieren Sie auf die neueste Version des Android SDK. Die reCAPTCHA-Unterstützung für die E‑Mail- und Passwortauthentifizierung sowie 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 erzwingt die von Ihnen festgelegten Grenzwerte für die konfigurierten Anbieter.

    2. Fügen Sie die folgende Build-Regel in den Abschnitt „dependencies“ Ihrer build.gradle-Datei auf App-Ebene ein:

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

      Verwenden Sie reCAPTCHA SDK-Version 18.5.1 oder höher.

    iOS

    1. Aktualisieren Sie auf 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 setzt die Grenzwerte durch, die Sie für die konfigurierten Anbieter festgelegt haben.

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

    2. Damit -ObjC in Ihren Linker-Flags aufgeführt wird, gehen Sie zu Ziel > Build-Einstellungen > Alle > Verknüpfen und prüfen Sie, ob Other Linker Flags -ObjC anzeigt.

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

Behalten Sie die reCAPTCHA-Messwerte im Blick, die für Ihr Projekt ausgegeben werden, um zu prüfen, ob Ihre SMS-basierten Authentifizierungsabläufe geschützt sind. Anhand dieser Messwerte können Sie beispielsweise feststellen, ob Sie die Identity Platform-Integration mit der reCAPTCHA Enterprise API richtig eingerichtet haben. Sie können Ihnen auch helfen, den Schwellenwert für die Punktzahl für Ihren Nutzertraffic zu optimieren.

Prüfen Sie, ob die reCAPTCHA SMS Defense-Funktion funktioniert. Sehen Sie sich dazu die folgenden Messwerte an, die Ihr Projekt an Cloud Monitoring sendet:

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

reCAPTCHA SMS Defense erzwingen

Nachdem Sie bestätigt haben, dass Ihre App akzeptablen Nutzer-Traffic empfängt, aktivieren Sie den reCAPTCHA-Modus ENFORCE, um betrügerische Anfragen aktiv zu blockieren und Nutzer zu schützen.

Wenn Sie den ENFORCE-Modus für SMS-basierte Authentifizierungsabläufe in einem Projekt oder Mandanten aktivieren möchten, verwenden Sie den Google APIs Explorer, um die Projektkonfiguration zu aktualisieren. Geben Sie dazu die folgende HTTP-URL in einem neuen Browserfenster ein, in dem Sie in der Google Cloud -Konsole 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":{"phoneEnforcementState":"ENFORCE","useSmsTollFraudProtection":"true"}}}

Ersetzen Sie PROJECT_ID durch die Projekt-ID.

reCAPTCHA SMS Defense mit Bot-Schutz verwenden

reCAPTCHA SMS Defense kann gleichzeitig mit dem Botschutz verwendet werden. Bei Konfigurationen, die beide Schutzfunktionen verwenden, gilt Folgendes:

  • Wenn Sie den Erzwingungsstatus der Telefonauthentifizierung auf AUDIT festgelegt haben, übergibt Identity Platform eine Anfrage, wenn sie mindestens eine der Prüfungen erfüllt. Wir empfehlen, die reCAPTCHA-Messwerte im Blick zu behalten, um zu prüfen, ob sowohl der reCAPTCHA-SMS-Schutz als auch der Bot-Schutz mit angemessenen Punktzahl-Einstellungen konfiguriert sind.
  • Wenn Sie den Erzwingungsstatus der Telefonauthentifizierung auf ENFORCE festgelegt haben, wird eine Anfrage von Identity Platform nur weitergeleitet, wenn sie sowohl die Prüfungen als auch den fehlgeschlagenen Anforderungsabschluss ohne Rückgriff auf eine andere Bestätigungsmethode erfüllt.

So aktivieren Sie beide Funktionen:

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

Ersetzen Sie ENFORCE_MODE durch den Modus, den Sie für die Erzwingung der reCAPTCHA-Telefonauthentifizierung festlegen möchten. Gültige Werte sind OFF, AUDIT und ENFORCE. Wenn Sie reCAPTCHA SMS Defense 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 reCAPTCHA-Modi für die Durchsetzung der Telefonauthentifizierung.

reCAPTCHA SMS Defense deaktivieren, wenn Sie den Botschutz verwenden

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

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

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

reCAPTCHA SMS Defense deaktivieren

Wenn Sie reCAPTCHA SMS Defense deaktivieren möchten, verwenden Sie den Google APIs Explorer, um die Projektkonfiguration zu aktualisieren. Geben Sie dazu die folgende HTTP-URL 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":{"phoneEnforcementState":"OFF","useSmsTollFraudProtection":"false"}}}

Ersetzen Sie PROJECT_ID durch die Projekt-ID.

Wenn Sie reCAPTCHA SMS Defense deaktivieren möchten, während Sie den Botschutz verwenden, lesen Sie den Abschnitt reCAPTCHA SMS Defense deaktivieren, während der Botschutz verwendet wird.

Nächste Schritte