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:
- Anmeldung per Smartphone für Nutzer
- Multi-Faktor-Authentifizierung für Ihre Web-, Android- oder iOS-App.
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
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)
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:
Aktivieren Sie die reCAPTCHA Enterprise API in Ihrem Projekt, falls Sie dies noch nicht getan haben.
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.
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 sindOFF
,AUDIT
undENFORCE
. Wenn Sie die reCAPTCHA-SMS-Abwehr aktivieren möchten, muss dieser Parameter aufAUDIT
oderENFORCE
unduseSmsTollFraudProtection
auftrue
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 aufENFORCE
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 zwischen0.0
und1.0
festlegen. Alle Werte über dem von Ihnen festgelegten Grenzwert gelten als SMS-Abrechnungsbetrug. Wenn Sie beispielsweise einen Schwellenwert von0.3
festlegen, lehnt reCAPTCHA jede Anfrage mit einem Wert von0.4
oder höher ab. Je niedriger Sie den Wert festlegen, desto strenger sind die Regeln.
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 eine autorisierte Domain für jede Domain hinzu, die reCAPTCHA verwendet. So fügen Sie autorisierte Domains hinzu:
Rufen Sie in der Google Cloud Console die Seite Identity Platform auf.
Gehen Sie zu 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.
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
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.
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
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.
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.
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
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.
Informationen zum Einbinden des reCAPTCHA iOS SDK in Ihre App finden Sie unter Umgebung vorbereiten.
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, obOther Linker Flags
-ObjC
anzeigt.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:
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 ü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.