Abilita reCAPTCHA SMS defense per l'autenticazione basata su SMS
Questo documento spiega come utilizzare reCAPTCHA SMS defense per proteggere i flussi basati su SMS di Identity Platform, come l'autenticazione a più fattori e tramite telefono, dalla frode tariffaria SMS (nota anche come attacco di tipo SMS pumping). Questa integrazione consente di evitare che il traffico SMS non autorizzato influisca negativamente sugli utenti e sulle risorse.
Panoramica
Se la tua app si basa sugli SMS per l'autenticazione, ti consigliamo di abilitare l'integrazione di reCAPTCHA SMS defense. Una volta attivata, Firebase Authentication e Identity Platform richiamano automaticamente la funzionalità SMS defense di reCAPTCHA ogni volta che un utente finale richiede un SMS di verifica dalla tua app o dal tuo sito utilizzando le seguenti operazioni phoneProvider:
| Operazione | Metodo | |
|---|---|---|
| Registrazione o accesso con numero di telefono | sendVerificationCode |
|
| Registrazione del numero di telefono per l'MFA | mfaSmsEnrollment |
|
| Accesso con numero di telefono MFA | mfaSmsSignIn |
reCAPTCHA fornisce quindi a Firebase Authentication o Identity Platform un punteggio di rischio che indica la probabilità di frode tariffaria SMS per il numero di telefono dell'utente. Questo punteggio viene poi confrontato con la soglia configurata. Se la richiesta di un utente supera la valutazione della frode tariffaria, viene inviato un codice di verifica tramite SMS. Se il punteggio di rischio supera la soglia configurata, Identity Platform blocca la richiesta e non invia un SMS contenente un codice di verifica.
Quando reCAPTCHA SMS defense è abilitato, non è richiesta alcuna verifica di riserva e non è necessario configurare metodi di verifica aggiuntivi per la tua app. Tuttavia, ti consigliamo di configurare il verificatore reCAPTCHA per le app web per assicurarti che reCAPTCHA v2 sia disponibile se decidi di disabilitare reCAPTCHA SMS defense.
Per capire come funzionano i punteggi di reCAPTCHA SMS defense, consulta Interpreta i punteggi.
Per ulteriori informazioni sulla funzionalità di SMS defense di reCAPTCHA, consulta Rileva e previeni gli SMS fraudolenti.
Prima di iniziare
Prima di abilitare reCAPTCHA SMS defense per Identity Platform, completa le seguenti attività:
Configura quanto segue per la tua app o il tuo sito, a seconda dei casi:
- Accesso con lo smartphone per gli utenti.
- Autenticazione a più fattori per la tua app web, Android o iOS.
Configura Firebase Authentication per la tua app o il tuo sito, a seconda dei casi:
Abilita reCAPTCHA SMS defense
Configura l'autenticazione:
-
Nella console Google Cloud , attiva Cloud Shell.
Crea un'identità di servizio:
gcloud beta services identity create \ --service=identitytoolkit.googleapis.com \ --project=PROJECT_IDSostituisci
PROJECT_IDcon l'ID del progetto.Concedi il ruolo
roles/identitytoolkit.serviceAgentall'identità di servizio che hai creato.gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-identitytoolkit.iam.gserviceaccount.com \ --role=roles/identitytoolkit.serviceAgentSostituisci quanto segue:
PROJECT_ID: l'ID progettoPROJECT_NUMBER: il numero di conto bancario del progetto
-
Abilita l'API reCAPTCHA Enterprise nel tuo progetto.
Abilita reCAPTCHA SMS defense per il tuo progetto:
Nella console Google Cloud , vai alla pagina reCAPTCHA.
Verifica che il nome del progetto venga visualizzato nel selettore di risorse.
Se non vedi il nome del tuo progetto, fai clic sul selettore di risorse, quindi seleziona il progetto.
Fai clic su Impostazioni.
Nel riquadro SMS defense, fai clic su Configura.
Fai clic sul pulsante di attivazione/disattivazione Attiva e poi su Salva.
Quando abiliti reCAPTCHA SMS defense, viene abilitato anche account defender, se non è già attivo.
La propagazione dell'abilitazione di reCAPTCHA SMS defense ai nostri sistemi potrebbe richiedere alcuni minuti. Una volta completata la propagazione, inizierai a ricevere risposte relative a reCAPTCHA SMS defense nell'ambito delle valutazioni.
Per configurare le impostazioni di reCAPTCHA SMS Defense per un progetto Firebase Authentication o Identity Platform, segui questi passaggi:
Nell'URL seguente, sostituisci
PROJECT_IDeSTART_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: l'identificatore del progetto con Identity Platform abilitato.START_SCORE: una soglia configurabile che determina il punteggio più alto che una richiesta SMS può avere prima di essere segnalata e bloccata come frode tariffaria.La soglia minima è
0.0. La soglia massima è0.9. Qualsiasi richiesta con un punteggio superiore alla soglia viene considerata fraudolenta. Ad esempio, se imposti la soglia su0.3, reCAPTCHA bloccherà tutte le richieste con un punteggio di attività fraudolenta pari o superiore a0.4.Per aumentare il livello di protezione antifrode, imposta la soglia su un valore più basso. Per ridurre il livello di protezione antifrode, imposta la soglia su un valore più alto. Questa impostazione consentirà il passaggio di più richieste con punteggi più elevati.
Per l'implementazione iniziale, ti consigliamo di iniziare con una soglia più alta, ad esempio
0.8, e poi di abbassarla in modo iterativo in base alla tua tolleranza al rischio specifica.Sconsigliamo una soglia di
0.0o1.0. Se imposti la soglia su0.0, tutti i messaggi SMS verranno bloccati, mentre se la imposti su1.0, la protezione antifrode verrà disattivata completamente, il che può causare errori di invio degli SMS nelle regioni ad alto rischio.
Inserisci l'URL in una nuova finestra del browser in cui hai eseguito l'accesso alla console Google Cloud .
Se utilizzi Identity Platform sul web o su Android, registra la tua app dalla console Firebase:
Per Android, registra ogni nome di pacchetto Android che utilizza Identity Platform.
Per il web, aggiungi un dominio autorizzato per ogni dominio che utilizza reCAPTCHA:
Nella console Google Cloud , vai alla pagina Identity Platform.
Vai a Impostazioni > Sicurezza.
Fai clic su Aggiungi dominio.
Inserisci il nome di dominio e fai clic su Aggiungi per salvare il dominio.
Il provisioning della chiave reCAPTCHA può richiedere diversi minuti.
Verifica la configurazione:
Recupera i dettagli di configurazione di reCAPTCHA:
{replace-your-project}conprojectIdoprojectNumber. Esegui l'APIGetConfignel riquadro laterale per recuperare la configurazione di reCAPTCHA.Verifica che reCAPTCHA SMS defense sia configurato correttamente:
Se la configurazione di reCAPTCHA è corretta, la risposta deve contenere i seguenti campi con i valori specificati:
recaptchaKeys: il campo non deve essere vuoto ed è configurato per almeno una di queste piattaforme: iOS, web o Android.useSmsTollFraudProtection: il valore di questo campo deve essere impostato sutrue.phoneEnforcementState: il valore deve essere impostato suENFORCE.tollFraudManagedRules: in questo campo,startScoredeve essere configurato con la soglia scelta, che deve essere un valore compreso tra0e0.9.
In caso contrario, configura nuovamente reCAPTCHA SMS defense.
Esempio di risposta
{ "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 } } ```
Assicurati che le versioni dell'SDK siano corrette.
Web
Esegui l'aggiornamento all'ultima versione dell'SDK web.
- Il supporto di reCAPTCHA per l'autenticazione con email e password nelle app web è disponibile nelle versioni 9.20.0 e successive dell'SDK JavaScript.
- Il supporto di reCAPTCHA per l'autenticazione tramite telefono nelle app web è disponibile nelle versioni 11 e successive dell'SDK JavaScript.
Dopo aver integrato l'SDK web con la tua app, l'SDK recupera automaticamente la configurazione di reCAPTCHA e attiva la protezione per i provider che hai configurato.
Android
Esegui l'aggiornamento all'ultima versione dell'SDK Android. Il supporto di reCAPTCHA per l'autenticazione con email e password e l'autenticazione tramite telefono nelle app per Android è disponibile nell'SDK Android versione 23.1.0 e successive.
Inoltre, il supporto di reCAPTCHA richiede il livello API 23 (Marshmallow) o versioni successive e Android 6 o versioni successive.
Dopo aver integrato l'SDK Android con la tua app, l'SDK recupera automaticamente la configurazione di reCAPTCHA e applica le soglie impostate per i provider che hai configurato.
Aggiungi la seguente regola di build alla sezione delle dipendenze del file
build.gradlea livello di app:implementation 'com.google.android.recaptcha:recaptcha:18.5.1'Assicurati di utilizzare l'SDK reCAPTCHA versione 18.5.1 o successive.
iOS
- Esegui l'aggiornamento all'SDK per iOS versione 11.6.0 o successive.
Dopo aver integrato l'SDK per iOS con la tua app, l'SDK recupera automaticamente la configurazione di reCAPTCHA e applica le soglie impostate per i provider che hai configurato.
Per integrare l'SDK reCAPTCHA per iOS nella tua app, consulta Prepara l'ambiente iOS.
Per verificare che
-ObjCsia elencato nei flag del linker, vai a Target > Build Settings > All > Linking e verifica cheOther Linker Flagsmostri-ObjC.
Monitora le metriche reCAPTCHA per reCAPTCHA SMS defense
Monitora le metriche reCAPTCHA generate dal tuo progetto per verificare che i flussi di autenticazione basati su SMS siano protetti. Ad esempio, queste metriche possono aiutarti a determinare se hai configurato correttamente l'integrazione di Identity Platform con l'API reCAPTCHA Enterprise. Possono anche aiutarti a perfezionare la soglia del punteggio per il traffico degli utenti.
Verifica che la funzionalità reCAPTCHA SMS defense funzioni controllando le seguenti metriche che il tuo progetto invia a Cloud Monitoring:
identitytoolkit.googleapis.com/recaptcha/verdict_countidentitytoolkit.googleapis.com/recaptcha/token_countidentitytoolkit.googleapis.com/recaptcha/sms_tf_risk_scores
Per saperne di più, consulta Monitora le metriche reCAPTCHA.
Utilizza reCAPTCHA SMS defense con la protezione dai bot
Puoi utilizzare reCAPTCHA SMS defense contemporaneamente alla protezione dai bot. Quando entrambi sono abilitati e phoneEnforcementState è impostato su ENFORCE, Identity Platform trasmette una richiesta solo se soddisfa entrambe le valutazioni e la richiesta non va a buon fine senza ricorrere a un altro metodo di verifica.
Per abilitare entrambe le funzionalità, utilizza Explorer API di Google per aggiornare la configurazione del progetto:
recaptchaConfig: {
phoneEnforcementState: 'ENFORCE',
useSmsTollFraudProtection: true,
useSmsBotScore: true
}
Disattiva reCAPTCHA SMS defense mentre utilizzi la protezione dai bot
Se utilizzi sia la protezione SMS reCAPTCHA sia la protezione dai bot e vuoi disattivare la protezione SMS reCAPTCHA senza disattivare la protezione dai bot, utilizza Google APIs Explorer per aggiornare la configurazione del progetto:
recaptchaConfig: {
phoneEnforcementState: 'ENFORCE',
useSmsTollFraudProtection: false,
useSmsBotScore: true
}
Imposta phoneEnforcementState su ENFORCE e useSmsBotScore su true per mantenere attiva la protezione dai bot per i flussi di autenticazione tramite telefono.
Disabilita reCAPTCHA SMS defense
Per disattivare tutte le protezioni reCAPTCHA per i numeri di telefono, inclusa la SMS defense reCAPTCHA, utilizza Explorer API di Google per aggiornare la configurazione del progetto inserendo il seguente URL HTTP in una nuova finestra del browser in cui hai eseguito l'accesso alla console Google Cloud :
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}}}
Sostituisci PROJECT_ID con l'ID progetto.
Per disabilitare reCAPTCHA SMS defense mentre utilizzi la protezione dai bot, consulta Disabilita reCAPTCHA SMS defense mentre utilizzi la protezione dai bot.
Passaggi successivi
- Scopri di più sulla funzionalità SMS defense di reCAPTCHA.