SMS-Gebührenbetrugsschutz für die SMS-basierte Authentifizierung aktivieren
In diesem Dokument wird erläutert, wie Sie mit reCAPTCHA Ihre SMS-basierten Identity Platform-Abläufe wie die Telefon- und Multi-Faktor-Authentifizierung vor SMS-Gebührenbetrug (auch SMS-Pumping-Angriffe genannt) schützen können.
Übersicht
Wenn Ihre App für die Authentifizierung einen SMS-basierten Ablauf verwendet, können Sie die Funktion „SMS-Gebührenbetrugsschutz von reCAPTCHA“ im Rahmen der Integration von Identity Platform mit reCAPTCHA aktivieren. Wenn die Funktion aktiviert ist, ruft Identity Platform den SMS-Gebührenbetrugsschutz auf, wenn ein Nutzer über die folgenden phoneProvider
Vorgänge eine Bestätigungs-SMS von Ihrer App oder Website anfordert:
Aktion | Methode | |
---|---|---|
Registrierung oder Anmeldung über Telefonnummer | 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 Identity Platform einen Risikowert zur Verfügung, der die Wahrscheinlichkeit angibt, dass mit der Telefonnummer des Nutzers SMS-Abrechnungsbetrug begangen wird. Die Identity Platform vergleicht diesen Wert mit dem Grenzwert, den Sie in der Konfiguration des SMS-Gebührenbetrugsschutzes festgelegt haben, und verarbeitet die Anfrage dann gemäß der in der Konfiguration festgelegten Aktion.
Weitere Informationen zur Funktion „SMS-Gebührenbetrugsschutz von reCAPTCHA“ finden Sie unter SMS-Betrug erkennen und verhindern.
Hinweise
Bevor Sie den SMS-Gebührenbetrugsschutz 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 den SMS-Gebührenbetrugsschutz von reCAPTCHA müssen Sie die Erzwingung der reCAPTCHA-Telefonauthentifizierung einrichten. Diese hat zwei Modi: Prüfen und Erzwingen.
Prüfmodus
Wenn Sie die Erzwingung der Smartphone-Authentifizierung auf den Audit-Modus setzen, verwendet Identity Platform den SMS-Gebührenbetrugsschutz von reCAPTCHA 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 anfängliche 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 der Maut 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 Erzwingung der Smartphone-Authentifizierung auf „Erzwingen“ festlegen, verwendet Identity Platform den SMS-Gebührenbetrugsschutz von reCAPTCHA 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-Bestätigung erforderlich. Sie müssen also keine zusätzlichen Bestätigungsmethoden für Ihre App einrichten. Wir empfehlen jedoch, die reCAPTCHA-Verifizierung für Webanwendungen einzurichten, damit reCAPTCHA v2 aktiviert ist, falls Sie den reCAPTCHA-Modus Ihrer App in AUDIT
oder OFF
ändern.
SMS-Gebührenbetrugsschutz von reCAPTCHA aktivieren
So aktivieren Sie den SMS-Gebührenbetrugsschutz:
Aktivieren Sie die reCAPTCHA Enterprise API in Ihrem Projekt, falls Sie dies noch nicht getan haben.
Aktivieren Sie den SMS-Gebührenbetrugsschutz mit reCAPTCHA. Eine Anleitung dazu finden Sie im Abschnitt Vorbereitung der Seite „SMS-Betrug erkennen und verhindern“ in der reCAPTCHA-Dokumentation.
Wenn Sie den SMS-Gebührenbetrugsschutz für ein Projekt aktivieren möchten, rufen Sie mit dem Admin SDK
updateConfig
auf. Gehen Sie dazu so vor:// Update the reCAPTCHA config to enable toll fraud protection const updateProjectConfigRequest = { recaptchaConfig: { phoneEnforcementState: 'ENFORCE_MODE', useSmsTollFraudProtection: 'true', tollFraudManagedRules: [{ startScore: START_SCORE, action: 'BLOCK' }], } } let projectConfig = await getAuth().projectConfigManager().updateProject(updateProjectConfigRequest);
Ersetzen Sie Folgendes:
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 den SMS-Gebührenbetrugsschutz aktivieren möchten, muss dieser Parameter aufAUDIT
oderENFORCE
unduseSmsTollFraudProtection
auftrue
festgelegt sein.Wenn Sie den SMS-Gebührenbetrugsschutz 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
festlegen. Weitere Informationen zur Funktionsweise der Modi finden Sie unter Erzwingungsmodi für die reCAPTCHA-Authentifizierung per Smartphone.START_SCORE
: Der höchste Wert für die Betrugsbewertung bei Mautgebühren, den 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 auf Android-Geräten 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, auf der reCAPTCHA verwendet wird. 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 den SMS-Gebührenbetrugsschutz 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 Authentifizierung per Telefon 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 den SMS-Gebührenbetrugsschutz beobachten
Bevor Sie die reCAPTCHA-Erzwigung auf „Erzwingen“ setzen, 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. So 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 Funktion zum Schutz vor SMS-Betrug 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.
SMS-Gebührenbetrugsschutz 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-Erzwigung für SMS-basierte Authentifizierungsabläufe in einem Projekt oder für einen Tenant aktivieren möchten, führen Sie mit dem Admin SDK den folgenden Befehl aus:
const enforceRequest = {
recaptchaConfig: {
phoneEnforcementState: 'ENFORCE',
useSmsTollFraudProtection: 'true'
}
};
SMS-Gebührenbetrugsschutz deaktivieren
Führen Sie den folgenden Befehl aus, um den Schutz vor SMS-Betrug zu deaktivieren:
const disableRequest = {
recaptchaConfig: {
phoneEnforcementState: 'OFF',
useSmsTollFraudProtection: 'false'
}
};
Informationen zum Deaktivieren des SMS-Gebührenbetrugsschutzes bei Verwendung des Bot-Schutzes finden Sie unter SMS-Gebührenbetrugsschutz bei Verwendung des Bot-Schutzes deaktivieren.
SMS-Gebührenbetrugsschutz mit Bot-Schutz verwenden
Sie können den SMS-Gebührenbetrugsschutz 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 SMS-Gebührenbetrugsschutz als auch der Botschutz mit angemessenen Bewertungseinstellungen konfiguriert sind.
- Wenn Sie den Status der Telefonauthentifizierung 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, führen Sie mit dem Admin SDK den folgenden Befehl aus:
const enableBothRequest = {
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 den SMS-Gebührenbetrugsschutz aktivieren möchten, muss dieser Parameter auf AUDIT
oder ENFORCE
gesetzt sein. Wenn Sie den Betrugsschutz für SMS-Stichproben 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 – Modi.
SMS-Gebührenbetrugsschutz bei Verwendung des Bot-Schutzes deaktivieren
Wenn Sie sowohl den SMS-Gebührenbetrugsschutz als auch den Botschutz gleichzeitig verwenden und den SMS-Gebührenbetrugsschutz deaktivieren möchten, ohne den Botschutz zu deaktivieren, führen Sie mit dem Admin SDK den folgenden Befehl aus:
const disableRequest = {
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 – Modi.