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
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).
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:
Konfigurieren Sie für Ihre App oder Website Folgendes:
- Anmeldung per Telefon für Nutzer
- Multi-Faktor-Authentifizierung für Ihre Web-, Android- oder iOS-App.
Konfigurieren Sie Firebase Authentication für Ihre App oder Website:
- Web:Telefonauthentifizierung einrichten
- iOS:Phone Auth Setup (Einrichtung der Telefonauthentifizierung)
- Android:Phone Auth Setup (Telefonauthentifizierung einrichten)
reCAPTCHA SMS Defense aktivieren
Richten Sie die Authentifizierung ein:
-
In the Google Cloud console, activate Cloud Shell.
Dienstidentität erstellen:
gcloud beta services identity create \ --service=identitytoolkit.googleapis.com \ --project=PROJECT_ID
Ersetzen Sie
PROJECT_ID
durch die ID des Projekts.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-IDPROJECT_NUMBER
: die Projektkontonummer
-
Aktivieren Sie die reCAPTCHA Enterprise API für Ihr Projekt.
So aktivieren Sie reCAPTCHA SMS Defense für Ihr Projekt:
Rufen Sie in der Google Cloud Console die reCAPTCHA-Seite auf.
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.
Klicken Sie auf
Einstellungen.Klicken Sie im Bereich SMS-Schutz auf Konfigurieren.
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.
So konfigurieren Sie die Einstellungen für reCAPTCHA SMS Defense für ein Firebase Authentication- oder Identity Platform-Projekt:
Ersetzen Sie in der folgenden URL
PROJECT_ID
,Recaptcha_MODE
undSTART_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 sindOFF
,AUDIT
undENFORCE
. Wenn Sie reCAPTCHA SMS Defense aktivieren möchten, muss dieser Parameter aufAUDIT
oderENFORCE
unduseSmsTollFraudProtection
auftrue
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. DerAUDIT
-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 denENFORCE
-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 zwischen0.1
und0.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 von0.3
festlegen, schlägt reCAPTCHA jede Anfrage mit einem Score von0.4
oder höher fehl.
Geben Sie die URL in einem neuen Browserfenster ein, in dem Sie in der Google Cloud Console angemeldet sind.
Wenn Sie Identity Platform im Web oder unter Android verwenden, registrieren Sie Ihre App in der Firebase Console:
Bei Android registrieren Sie jeden Android-Paketnamen, der Identity Platform verwendet.
Fügen Sie für das Web für jede Domain, in der reCAPTCHA verwendet wird, eine autorisierte Domain hinzu:
Rufen Sie in der Google Cloud Console die Seite Identity Platform auf.
Gehen Sie zu den Einstellungen > Sicherheit.
Klicken Sie auf Domain hinzufügen.
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.
Konfiguration überprüfen:
Rufen Sie die reCAPTCHA-Konfigurationsdetails ab:
{replace-your-project}
mit IhremprojectId
oderprojectNumber
. Führen Sie dieGetConfig
API in der Seitenleiste aus, um die reCAPTCHA-Konfiguration abzurufen.Prüfen Sie, ob reCAPTCHA SMS Defense richtig konfiguriert ist:
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 auftrue
festgelegt werden.phoneEnforcementState
: Der Wert muss entweder aufENFORCE
oderAUDIT
festgelegt werden.tollFraudManagedRules
: In diesem Feld mussstartScore
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 } } ```
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
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.
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
- 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.
Informationen zum Einbinden des reCAPTCHA iOS SDK in Ihre App finden Sie unter iOS-Umgebung vorbereiten.
Damit
-ObjC
in Ihren Linker-Flags aufgeführt wird, gehen Sie zu Ziel > Build-Einstellungen > Alle > Verknüpfen und prüfen Sie, obOther 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:
identitytoolkit.googleapis.com/recaptcha/verdict_count
identitytoolkit.googleapis.com/recaptcha/token_count
identitytoolkit.googleapis.com/recaptcha/sms_tf_risk_scores
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.