Mengaktifkan perlindungan SMS reCAPTCHA untuk autentikasi berbasis SMS
Dokumen ini menjelaskan cara menggunakan pertahanan SMS reCAPTCHA untuk membantu melindungi alur berbasis SMS Identity Platform Anda, seperti autentikasi telepon dan multi-faktor, dari penipuan pulsa SMS (juga dikenal sebagai serangan pumping SMS). Integrasi ini membantu mencegah traffic SMS yang tidak sah berdampak negatif pada pengguna dan resource Anda.
Ringkasan
Jika aplikasi Anda mengandalkan SMS untuk autentikasi, sebaiknya aktifkan integrasi reCAPTCHA SMS defense. Setelah diaktifkan, Firebase Authentication dan Identity Platform akan otomatis memanggil fitur pertahanan SMS reCAPTCHA setiap kali pengguna akhir meminta pesan SMS verifikasi dari aplikasi atau situs Anda menggunakan operasi phoneProvider
berikut:
Operasi | Metode | |
---|---|---|
Pendaftaran atau login dengan nomor telepon | sendVerificationCode |
|
Pendaftaran nomor telepon MFA | mfaSmsEnrollment |
|
Login dengan nomor telepon MFA | mfaSmsSignIn |
Kemudian, reCAPTCHA memberikan skor risiko kepada Firebase Authentication atau Identity Platform yang menunjukkan kemungkinan terjadinya penipuan pulsa SMS untuk nomor telepon pengguna. Skor ini kemudian dibandingkan dengan nilai minimum yang dikonfigurasi. Jika skor risiko melebihi nilai minimum ini, pesan SMS tidak akan dikirim, sehingga secara efektif memblokir upaya penipuan.
Untuk memahami cara kerja skor pertahanan SMS reCAPTCHA, lihat Menafsirkan skor.
Untuk mengetahui informasi selengkapnya tentang fitur perlindungan SMS reCAPTCHA, lihat Mendeteksi dan mencegah penipuan SMS.
Mode penerapan autentikasi telepon reCAPTCHA
Anda dapat mengonfigurasi penerapan autentikasi telepon untuk pertahanan SMS reCAPTCHA agar menggunakan mode audit atau penerapan.
Mode audit
Saat Anda menyetel penerapan autentikasi telepon ke mode audit, Identity Platform menggunakan pertahanan SMS reCAPTCHA untuk verifikasi aplikasi. Jika permintaan pengguna lulus penilaian penipuan pulsa, kode verifikasi SMS akan dikirim. Jika permintaan pengguna gagal dalam penilaian penipuan pulsa dan Anda menggunakan SDK klien, Identity Platform akan memicu metode verifikasi pengganti untuk menyelesaikan alur autentikasi telepon. Metode penggantian yang diterima bergantung pada platform aplikasi Anda.
SDK klien memicu metode verifikasi penggantian dalam skenario berikut:
- Token reCAPTCHA tidak ada.
- Token reCAPTCHA tidak valid atau sudah tidak berlaku.
- Token reCAPTCHA tidak melewati nilai minimum.
- reCAPTCHA tidak dikonfigurasi dengan benar.
Pastikan metode verifikasi penggantian untuk platform aplikasi Anda disiapkan dan siap dipicu oleh SDK klien jika diperlukan.
Web
Jika penilaian awal penipuan tol gagal, mode audit mengandalkan
reCAPTCHA v2 untuk verifikasi. Oleh karena itu, Anda harus menyiapkan
pemverifikasi reCAPTCHA (RecaptchaVerifier
) dan meneruskannya ke
operasi autentikasi telepon berikut:
verifyPhoneNumber
signInWithPhoneNumber
linkWithPhoneNumber
reauthenticateWithPhoneNumber
auth/argument-error
. Untuk mengetahui informasi selengkapnya tentang cara menyiapkan pemverifikasi reCAPTCHA, lihat Menyiapkan pemverifikasi reCAPTCHA dalam dokumentasi Firebase.
Android
Jika penilaian penipuan pulsa awal gagal, mode audit akan memverifikasi aplikasi Anda terhadap Play Integrity API. Jika verifikasi ini gagal, reCAPTCHA v2 akan dipicu. reCAPTCHA v2 dapat dipicu dalam skenario berikut:
- Jika perangkat pengguna akhir tidak menginstal layanan Google Play.
- Jika aplikasi tidak didistribusikan melalui Google Play Store (di Authentication SDK v21.2.0 dan yang lebih baru).
- Jika token SafetyNet yang diperoleh tidak valid (di Authentication SDK versi sebelum v21.2.0).
iOS
Jika penilaian awal penipuan melalui telepon gagal, mode audit mengandalkan notifikasi push senyap untuk verifikasi. Metode verifikasi ini melibatkan pengiriman token ke aplikasi Anda di perangkat yang meminta dengan notifikasi push senyap. Jika aplikasi Anda berhasil menerima notifikasi, alur autentikasi telepon akan dilanjutkan. Jika aplikasi Anda tidak menerima notifikasi push, reCAPTCHA v2 akan dipicu. reCAPTCHA v2 dapat dipicu jika notifikasi push diam tidak dikonfigurasi dengan benar.
Untuk mengetahui informasi selengkapnya tentang penyiapan verifikasi aplikasi iOS, lihat Mengaktifkan verifikasi aplikasi dalam dokumentasi Firebase.
Mode terapkan
Saat Anda menyetel penerapan autentikasi telepon ke mode penerapan, Identity Platform menggunakan pertahanan SMS reCAPTCHA untuk verifikasi aplikasi. Jika permintaan pengguna lulus penilaian penipuan pulsa, kode verifikasi SMS akan dikirim. Jika permintaan pengguna gagal dalam penilaian penipuan melalui telepon, Identity Platform akan memblokir permintaan tersebut dan tidak mengirimkan pesan SMS yang berisi kode verifikasi.
Tidak ada verifikasi penggantian yang diperlukan dalam mode terapkan, Anda tidak perlu menyiapkan metode verifikasi tambahan untuk aplikasi Anda. Namun, sebaiknya siapkan
pemverifikasi reCAPTCHA untuk aplikasi web guna memastikan reCAPTCHA v2 diaktifkan jika Anda memutuskan untuk mengubah mode reCAPTCHA aplikasi Anda menjadi AUDIT
atau
OFF
.
Sebelum memulai
Sebelum mengaktifkan reCAPTCHA SMS defense untuk Identity Platform, selesaikan tugas berikut:
Konfigurasi hal berikut untuk aplikasi atau situs Anda sebagaimana berlaku:
- Login dengan telepon untuk pengguna.
- Autentikasi multi-faktor untuk aplikasi web, Android, atau iOS Anda.
Konfigurasi Firebase Authentication untuk aplikasi atau situs Anda sebagaimana berlaku:
Mengaktifkan reCAPTCHA SMS defense
Menyiapkan autentikasi:
-
In the Google Cloud console, activate Cloud Shell.
Buat identitas layanan:
gcloud beta services identity create \ --service=identitytoolkit.googleapis.com \ --project=PROJECT_ID
Ganti
PROJECT_ID
dengan ID project.Berikan peran
roles/identitytoolkit.serviceAgent
ke identitas layanan yang Anda buat.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-identitytoolkit.iam.gserviceaccount.com \ --role=roles/identitytoolkit.serviceAgent
Ganti kode berikut:
PROJECT_ID
: the project IDPROJECT_NUMBER
: nomor akun project
-
Aktifkan reCAPTCHA Enterprise API di project Anda.
Aktifkan reCAPTCHA SMS defense untuk project Anda:
Di konsol Google Cloud , buka halaman reCAPTCHA.
Pastikan nama project Anda muncul di pemilih resource.
Jika Anda tidak melihat nama project, klik pemilih resource, lalu pilih project Anda.
Klik
Setelan.Di panel Perlindungan SMS, klik Konfigurasi.
Klik tombol Aktifkan, lalu klik Simpan.
Saat Anda mengaktifkan pertahanan SMS reCAPTCHA, pelindung akun juga diaktifkan, jika belum.
Mungkin perlu waktu beberapa menit agar pengaktifan pertahanan SMS reCAPTCHA diterapkan di sistem kami. Setelah disebarkan, Anda akan mulai menerima respons terkait reCAPTCHA SMS defense sebagai bagian dari penilaian.
Untuk mengonfigurasi setelan pertahanan SMS reCAPTCHA untuk project Firebase Authentication atau Identity Platform, lakukan hal berikut:
Di URL berikut, ganti
PROJECT_ID
,Recaptcha_MODE
, danSTART_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
: project ID dengan Identity Platform diaktifkan.Recaptcha_MODE
: mode yang ingin Anda tetapkan untuk penerapan autentikasi telepon reCAPTCHA. Nilai yang valid adalahOFF
,AUDIT
, danENFORCE
. Untuk mengaktifkan pertahanan SMS reCAPTCHA, parameter ini harus disetel keAUDIT
atauENFORCE
danuseSmsTollFraudProtection
harus disetel ketrue
.Saat mengaktifkan perlindungan SMS reCAPTCHA untuk pertama kalinya, gunakan mode
AUDIT
untuk memastikan penyiapan perlindungan SMS reCAPTCHA berfungsi dengan benar. ModeAUDIT
hanya untuk tujuan verifikasi. Mode ini tidak akan mencegah traffic SMS yang tidak sah. Pastikan tidak ada kegagalan yang muncul di dasbor Metrik. Setelah verifikasi, segera aktifkan modeENFORCE
. Untuk mengetahui informasi selengkapnya tentang cara kerja mode ini, lihat Mode penerapan autentikasi telepon reCAPTCHA.START_SCORE
: skor penilaian penipuan tol tertinggi yang dapat dimiliki permintaan sebelum gagal. Anda dapat menetapkan skor ini menjadi antara0.1
dan0.9
. Sebaiknya mulai dengan nilai minimum yang lebih tinggi, misalnya0.8
, lalu turunkan skor secara iteratif. Skor di atas nilai minimum yang Anda tetapkan akan dianggap sebagai penipuan SMS. Menetapkan skor ke 1,0 akan menonaktifkan perlindungan penipuan, sedangkan menetapkan skor 0,0 akan memblokir semua pesan SMS. Makin rendah skor yang Anda tetapkan, makin ketat aturannya. Jika Anda menetapkan nilai minimum0.3
, misalnya, reCAPTCHA akan gagal memproses permintaan dengan skor0.4
atau lebih tinggi.
Masukkan URL di jendela browser baru tempat Anda login ke Konsol Google Cloud .
Jika Anda menggunakan Identity Platform di web atau Android, daftarkan aplikasi Anda dari Firebase console:
Untuk Android, daftarkan setiap nama paket Android yang menggunakan Identity Platform.
Untuk web, tambahkan domain resmi untuk setiap domain yang menggunakan reCAPTCHA:
Di konsol Google Cloud , buka halaman Identity Platform.
Buka Setelan > Keamanan.
Klik Tambahkan domain.
Masukkan nama domain, lalu klik Tambahkan untuk menyimpan domain.
Penyediaan kunci reCAPTCHA dapat memerlukan waktu beberapa menit untuk diselesaikan.
Verifikasi konfigurasi Anda:
Ambil detail konfigurasi reCAPTCHA:
{replace-your-project}
denganprojectId
atauprojectNumber
Anda. JalankanGetConfig
API di panel samping untuk mengambil konfigurasi reCAPTCHA.Pastikan pertahanan SMS reCAPTCHA dikonfigurasi dengan benar:
Jika konfigurasi reCAPTCHA disiapkan dengan benar, respons harus memiliki kolom berikut dengan nilai yang ditentukan:
recaptchaKeys
: Kolom tidak boleh kosong dan dikonfigurasi untuk setidaknya salah satu platform berikut: iOS, Web, atau Android.useSmsTollFraudProtection
: Nilai untuk kolom ini harus ditetapkan ketrue
.phoneEnforcementState
: Nilai harus ditetapkan keENFORCE
atauAUDIT
.tollFraudManagedRules
: Dalam kolom ini,startScore
harus dikonfigurasi dengan nilai minimum yang Anda pilih, yang harus berupa nilai antara 0 dan 0,9.
Jika tidak, konfigurasi ulang reCAPTCHA SMS defense.
Contoh Respons
{ "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 } } ```
Pastikan versi SDK sudah benar.
Web
Update ke versi terbaru Web SDK.
- Dukungan reCAPTCHA untuk autentikasi email dan sandi di aplikasi web tersedia di JavaScript SDK versi 9.20.0 dan yang lebih baru.
- Dukungan reCAPTCHA untuk autentikasi telepon di aplikasi web tersedia di JavaScript SDK versi 11 dan yang lebih baru.
Setelah Anda mengintegrasikan SDK web dengan aplikasi, SDK akan otomatis mengambil konfigurasi reCAPTCHA Anda dan mengaktifkan perlindungan untuk penyedia yang telah Anda konfigurasi.
Android
Update ke Android SDK versi terbaru. Dukungan reCAPTCHA untuk autentikasi email dan sandi serta autentikasi telepon di aplikasi Android tersedia di Android SDK versi 23.1.0 dan yang lebih baru.
Selain itu, dukungan reCAPTCHA memerlukan level API 23 (Marshmallow) atau yang lebih tinggi dan Android 6 atau yang lebih tinggi.
Setelah Anda mengintegrasikan Android SDK dengan aplikasi, SDK akan otomatis mengambil konfigurasi reCAPTCHA dan menerapkan nilai minimum yang Anda tetapkan untuk penyedia yang telah Anda konfigurasi.
Tambahkan aturan build berikut ke bagian dependensi file
build.gradle
tingkat aplikasi Anda:implementation 'com.google.android.recaptcha:recaptcha:18.5.1'
Pastikan untuk menggunakan reCAPTCHA SDK versi 18.5.1 atau yang lebih baru.
iOS
- Update ke iOS SDK versi 11.6.0 atau yang lebih baru.
Setelah Anda mengintegrasikan iOS SDK dengan aplikasi, SDK akan otomatis mengambil konfigurasi reCAPTCHA dan menerapkan nilai minimum yang Anda tetapkan untuk penyedia yang telah Anda konfigurasi.
Untuk mengintegrasikan reCAPTCHA iOS SDK ke aplikasi Anda, lihat Menyiapkan lingkungan iOS.
Untuk memverifikasi bahwa
-ObjC
tercantum dalam tanda linker Anda, buka Target > Build Settings > All > Linking dan verifikasi bahwaOther Linker Flags
menampilkan-ObjC
.
Memantau metrik reCAPTCHA untuk reCAPTCHA SMS defense
Pantau metrik reCAPTCHA yang dikeluarkan project Anda untuk memverifikasi bahwa alur autentikasi berbasis SMS Anda terlindungi. Misalnya, metrik ini dapat membantu Anda menentukan apakah Anda telah menyiapkan integrasi Identity Platform dengan reCAPTCHA Enterprise API dengan benar. Mereka juga dapat membantu Anda menyempurnakan nilai batas untuk traffic pengguna Anda.
Pastikan fitur pertahanan SMS reCAPTCHA berfungsi dengan memeriksa metrik berikut yang dipancarkan project Anda ke Cloud Monitoring:
identitytoolkit.googleapis.com/recaptcha/verdict_count
identitytoolkit.googleapis.com/recaptcha/token_count
identitytoolkit.googleapis.com/recaptcha/sms_tf_risk_scores
Untuk mengetahui informasi selengkapnya, lihat Memantau metrik reCAPTCHA.
Menerapkan reCAPTCHA SMS defense
Setelah Anda memverifikasi bahwa aplikasi Anda menerima traffic pengguna yang dapat diterima, aktifkan mode reCAPTCHA ENFORCE
untuk secara aktif memblokir permintaan penipuan guna membantu melindungi pengguna.
Untuk mengaktifkan mode ENFORCE
untuk alur autentikasi berbasis SMS di project atau tenant, gunakan Google APIs Explorer untuk memperbarui konfigurasi project dengan memasukkan URL HTTP berikut di jendela browser baru tempat Anda login ke konsolENFORCE
: Google Cloud
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"}}}
Ganti PROJECT_ID
dengan project ID.
Menggunakan pertahanan SMS reCAPTCHA dengan perlindungan bot
Anda dapat menggunakan pertahanan SMS reCAPTCHA secara bersamaan dengan perlindungan bot. Untuk konfigurasi yang menggunakan kedua fitur perlindungan, pertimbangkan hal berikut:
- Jika Anda telah menyetel status penerapan autentikasi telepon ke
AUDIT
, Identity Platform akan meneruskan permintaan jika memenuhi setidaknya salah satu penilaian. Sebaiknya pantau metrik reCAPTCHA untuk memverifikasi bahwa pertahanan SMS reCAPTCHA dan perlindungan bot dikonfigurasi dengan setelan skor yang wajar. - Jika Anda telah menyetel status penerapan autentikasi telepon ke
ENFORCE
, Identity Platform hanya meneruskan permintaan jika memenuhi kedua penilaian dan permintaan gagal ditutup tanpa melakukan penggantian ke metode verifikasi lain.
Untuk mengaktifkan kedua fitur, gunakan Google API Explorer untuk memperbarui konfigurasi project:
recaptchaConfig: {
phoneEnforcementState: 'ENFORCE_MODE',
useSmsTollFraudProtection: true,
useSmsBotScore: true
}
Ganti ENFORCE_MODE
dengan mode yang ingin Anda tetapkan untuk
penerapan autentikasi telepon reCAPTCHA. Nilai yang valid adalah
OFF
, AUDIT
, dan ENFORCE
.
Saat Anda mengaktifkan pertahanan SMS reCAPTCHA untuk pertama kalinya, sebaiknya tetapkan parameter ini ke AUDIT
dan pastikan alur autentikasi Anda terlindungi sebelum menetapkannya ke ENFORCE
. Untuk mengetahui informasi selengkapnya tentang cara kerja mode, lihat
Mode penerapan autentikasi telepon reCAPTCHA.
Menonaktifkan pertahanan SMS reCAPTCHA saat menggunakan perlindungan bot
Jika Anda menggunakan pertahanan SMS reCAPTCHA dan perlindungan bot secara bersamaan, dan Anda ingin menonaktifkan pertahanan SMS reCAPTCHA tanpa menonaktifkan perlindungan bot, gunakan Google APIs Explorer untuk memperbarui konfigurasi project:
recaptchaConfig: {
phoneEnforcementState: 'ENFORCE_MODE',
useSmsTollFraudProtection: 'false',
useSmsBotScore: 'true'
}
Ganti ENFORCE_MODE
dengan mode yang sebelumnya Anda tetapkan
untuk penerapan autentikasi telepon reCAPTCHA. Nilai ini harus
berupa AUDIT
atau ENFORCE
. Untuk mengetahui informasi selengkapnya tentang cara kerja mode, lihat
Mode penerapan autentikasi telepon reCAPTCHA.
Menonaktifkan reCAPTCHA SMS defense
Untuk menonaktifkan pertahanan SMS reCAPTCHA, gunakan Google APIs Explorer untuk memperbarui konfigurasi project dengan memasukkan URL HTTP berikut di jendela browser baru tempat Anda login ke konsol Google Cloud :
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"}}}
Ganti PROJECT_ID
dengan project ID.
Untuk menonaktifkan pertahanan SMS reCAPTCHA saat Anda menggunakan perlindungan bot, lihat Menonaktifkan pertahanan SMS reCAPTCHA saat menggunakan perlindungan bot.
Langkah berikutnya
- Pelajari lebih lanjut fitur perlindungan SMS reCAPTCHA.