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:
Konfigurieren Sie für Ihre App oder Website Folgendes:
- Anmeldung per Smartphone für Nutzer
- Multi-Faktor-Authentifizierung für Ihre Web-, Android- oder iOS-Anwendung.
Konfigurieren Sie Firebase Authentication für Ihre App oder Website:
reCAPTCHA SMS Defense aktivieren
Richten Sie die Authentifizierung ein:
-
Aktivieren Sie Cloud Shell in der Google Cloud Console.
Erstellen Sie eine Dienstidentität:
gcloud beta services identity create \ --service=identitytoolkit.googleapis.com \ --project=PROJECT_IDErsetzen Sie
PROJECT_IDdurch die Projekt-ID.Weisen Sie der von Ihnen erstellten Dienstidentität die Rolle
roles/identitytoolkit.serviceAgentzu.gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-identitytoolkit.iam.gserviceaccount.com \ --role=roles/identitytoolkit.serviceAgentErsetzen Sie Folgendes:
PROJECT_ID: die Projekt-IDPROJECT_NUMBER: die Projektkontonummer
-
Aktivieren Sie die reCAPTCHA Enterprise API für Ihr Projekt.
reCAPTCHA SMS Defense für Ihr Projekt aktivieren:
Rufen Sie in der Google Cloud Console die Seite „reCAPTCHA“ 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 defense auf Konfigurieren.
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.
So konfigurieren Sie die reCAPTCHA SMS Defense-Einstellungen für ein Firebase Authentication- oder Identity Platform-Projekt:
Ersetzen Sie in der folgenden URL
PROJECT_IDundSTART_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 ist0.9. Jede Anfrage mit einem Wert, der über dem Schwellenwert liegt, wird als betrügerisch eingestuft. Wenn Sie den Schwellenwert beispielsweise auf0.3festlegen, blockiert reCAPTCHA alle Anfragen mit einem Betrugswert von0.4oder 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.8zu beginnen und ihn dann iterativ entsprechend Ihrer spezifischen Risikotoleranz zu senken.Wir empfehlen keinen Grenzwert von
0.0oder1.0. Wenn Sie den Schwellenwert auf0.0festlegen, werden alle SMS blockiert. Wenn Sie ihn auf1.0festlegen, wird der Betrugsschutz vollständig deaktiviert. Dies kann zu Fehlern bei der SMS-Zustellung in Regionen mit hohem Risiko führen.
Geben Sie die URL in ein neues 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 ü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:
Rufen Sie in der Google Cloud Console die Seite Identity Platform auf.
Gehe 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 IhremprojectIdoderprojectNumber. Führen Sie dieGetConfigAPI in der Seitenleiste aus, um die reCAPTCHA-Konfiguration abzurufen.Prüfen Sie, ob reCAPTCHA SMS Defense richtig konfiguriert ist:
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 auftruefestgelegt werden.phoneEnforcementState: Der Wert muss aufENFORCEfestgelegt werden.tollFraudManagedRules: In diesem Feld mussstartScoremit dem von Ihnen ausgewählten Schwellenwert konfiguriert werden. Dieser muss ein Wert zwischen0und0.9sein.
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 } } ```
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
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.
Fügen Sie der Datei
build.gradleauf 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
- 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.
Informationen zum Einbinden des reCAPTCHA iOS SDK in Ihre App finden Sie unter iOS-Umgebung vorbereiten.
Um zu prüfen, ob
-ObjCin Ihren Linker-Flags aufgeführt ist, rufen Sie Target > Build Settings > All > Linking auf und prüfen Sie, obOther Linker Flagsden Wert-ObjCenthä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:
identitytoolkit.googleapis.com/recaptcha/verdict_countidentitytoolkit.googleapis.com/recaptcha/token_countidentitytoolkit.googleapis.com/recaptcha/sms_tf_risk_scores
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.