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

In diesem Dokument wird beschrieben, wie Sie mit reCAPTCHA SMS Defense Ihre SMS-basierten Abläufe in Identity Platform, z. B. die Telefon- und Multi-Faktor-Authentifizierung, vor SMS-Gebührenbetrug (auch als SMS-Pumping-Angriffe bezeichnet) schützen können. Diese Einbindung trägt dazu bei, dass nicht autorisierter SMS-Traffic Ihre Nutzer und Ressourcen nicht beeinträchtigt.

Übersicht

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

Vorgang Methode
Registrierung oder Anmeldung mit Telefonnummer sendVerificationCode
Registrierung der Telefonnummer für die MFA mfaSmsEnrollment
Anmeldung mit MFA-Telefonnummer 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 von Ihnen konfigurierten Schwellenwert verglichen. Wenn die Anfrage eines Nutzers die Gebührenbetrugsprüfung besteht, wird ein SMS-Bestätigungscode gesendet. Wenn die Risikobewertung den von Ihnen konfigurierten Schwellenwert überschreitet, blockiert die Identity Platform die Anfrage und sendet keine SMS mit einem Bestätigungscode.

Wenn reCAPTCHA SMS Defense aktiviert ist, ist keine Fallback-Bestätigung erforderlich und Sie müssen keine zusätzlichen Bestätigungsmethoden für Ihre App einrichten. Wir empfehlen jedoch, den reCAPTCHA-Prüfer für Web-Apps einzurichten, damit reCAPTCHA V2 verfügbar ist, wenn Sie reCAPTCHA SMS Defense deaktivieren.

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

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

Hinweis

Führen Sie die folgenden Aufgaben aus, bevor Sie reCAPTCHA SMS Defense für die Identity Platform aktivieren:

reCAPTCHA SMS Defense aktivieren

  1. Richten Sie die Authentifizierung ein:

    1. Aktivieren Sie Cloud Shell in der Google Cloud Console.

      Cloud Shell aktivieren

    2. Erstellen Sie eine Dienstidentität:

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

      Ersetzen Sie PROJECT_ID durch die Projekt-ID.

    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. \
          --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. reCAPTCHA SMS Defense für Ihr Projekt aktivieren:

    1. Rufen Sie in der Google Cloud Console die Seite „reCAPTCHA“ 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 defense auf Konfigurieren.

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

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

    Es kann einige Minuten dauern, bis die Aktivierung von reCAPTCHA SMS Defense in unseren Systemen übernommen wird. Nach der Übertragung erhalten Sie im Rahmen der Bewertungen Antworten im Zusammenhang mit reCAPTCHA SMS Defense.

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

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

      https://cloud.google.com/identity-platform/docs/reference/rest/v2/projects/updateConfig?apix_params={"name":"projects/PROJECT_ID/config","updateMask":"recaptchaConfig.phoneEnforcementState,recaptchaConfig.useSmsTollFraudProtection,recaptchaConfig.tollFraudManagedRules","resource":{"recaptchaConfig":{"phoneEnforcementState":"ENFORCE","useSmsTollFraudProtection":true,"tollFraudManagedRules":[{"action":"BLOCK","startScore":START_SCORE}]}}}
      
      • PROJECT_ID: die Projekt-ID mit aktivierter Identity Platform.

      • START_SCORE: Ein konfigurierbarer Schwellenwert, der die höchste Punktzahl bestimmt, die eine SMS-Anfrage haben kann, bevor sie als Gebührenbetrug gekennzeichnet und blockiert wird.

        Der Mindestgrenzwert beträgt 0.0. Der Höchstwert ist 0.9. Jede Anfrage mit einem Wert, der über dem Schwellenwert liegt, wird als betrügerisch eingestuft. Wenn Sie den Schwellenwert beispielsweise auf 0.3 festlegen, blockiert reCAPTCHA alle Anfragen mit einem Betrugswert von 0.4 oder höher.

        Wenn Sie den Betrugsschutz erhöhen möchten, legen Sie einen niedrigeren Schwellenwert fest. Wenn Sie den Betrugsschutz verringern möchten, legen Sie einen höheren Schwellenwert fest. Mit dieser Einstellung werden mehr Anfragen mit höheren Punktzahlen zugelassen.

        Für die erste Implementierung empfehlen wir, mit einem höheren Schwellenwert wie 0.8 zu beginnen und ihn dann iterativ entsprechend Ihrer spezifischen Risikotoleranz zu senken.

        Wir empfehlen keinen Grenzwert von 0.0 oder 1.0. Wenn Sie den Schwellenwert auf 0.0 festlegen, werden alle SMS blockiert. Wenn Sie ihn auf 1.0 festlegen, wird der Betrugsschutz vollständig deaktiviert. Dies kann zu Fehlern bei der SMS-Zustellung in Regionen mit hohem Risiko führen.

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

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

    • Registrieren Sie für Android jeden Android-Paketnamen, der Identity Platform verwendet.

    • Fügen Sie für das Web für jede Domain, die reCAPTCHA verwendet, eine autorisierte Domain hinzu:

      1. Rufen Sie in der Google Cloud Console die Seite Identity Platform auf.

        Zu Identity Platform

      2. Gehe zu den Einstellungen > Sicherheit.

      3. Klicken Sie auf Domain hinzufügen.

      4. Geben Sie den Domainnamen ein und klicken Sie auf Hinzufügen, um die Domain zu speichern.

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

  6. 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 korrekt eingerichtet ist, muss die Antwort die folgenden Felder mit den angegebenen Werten enthalten:

        • recaptchaKeys: Das Feld darf nicht leer sein und muss für mindestens eine der folgenden Plattformen konfiguriert sein: iOS, Web oder Android.
        • useSmsTollFraudProtection: Der Wert für dieses Feld muss auf true festgelegt werden.
        • phoneEnforcementState: Der Wert muss auf ENFORCE 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.

        Andernfalls müssen Sie reCAPTCHA SMS Defense noch einmal konfigurieren.

        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
            }
          }
          ```
        
  7. Prüfen Sie, ob die SDK-Versionen korrekt sind.

    Web

    Aktualisieren Sie auf die aktuelle Version des Web SDK.

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

    Android

    1. Aktualisieren Sie auf die aktuelle 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 von Ihnen konfigurierten Anbieter.

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

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

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

    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 erzwingt die Grenzwerte, 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. Um zu prüfen, ob -ObjC in Ihren Linker-Flags aufgeführt ist, rufen Sie Target > Build Settings > All > Linking auf und prüfen Sie, ob Other Linker Flags den Wert -ObjC enthält.

reCAPTCHA-Messwerte für reCAPTCHA SMS Defense überwachen

Beobachten Sie die reCAPTCHA-Messwerte, die Ihr Projekt ausgibt, 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. Außerdem können sie Ihnen helfen, den Schwellenwert für den 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 überwachen.

reCAPTCHA SMS Defense mit Botschutz verwenden

Sie können reCAPTCHA SMS Defense gleichzeitig mit dem Bot-Schutz verwenden. Wenn beide aktiviert sind und phoneEnforcementState auf ENFORCE festgelegt ist, leitet die Identity Platform eine Anfrage nur weiter, wenn sie beide Prüfungen besteht. Die Anfrage schlägt fehl, 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',
          useSmsTollFraudProtection: true,
          useSmsBotScore: true
        }

reCAPTCHA SMS Defense deaktivieren, während der Bot-Schutz verwendet wird

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

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

Setzen Sie phoneEnforcementState auf ENFORCE und useSmsBotScore auf true, damit der Botschutz für die Telefonauthentifizierung aktiviert bleibt.

reCAPTCHA SMS Defense deaktivieren

Wenn Sie den gesamten reCAPTCHA-Schutz für Smartphones, einschließlich der 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.phoneEnforcementState,recaptchaConfig.useSmsTollFraudProtection,recaptchaConfig.useSmsBotScore","resource":{"recaptchaConfig":{"phoneEnforcementState":"OFF","useSmsTollFraudProtection":false,"useSmsBotScore":false}}}

Ersetzen Sie PROJECT_ID durch die Projekt-ID.

Informationen zum Deaktivieren von reCAPTCHA SMS Defense, während Sie den Bot-Schutz verwenden, finden Sie unter reCAPTCHA SMS Defense deaktivieren, während Sie den Bot-Schutz verwenden.

Nächste Schritte