Mengaktifkan perlindungan terhadap penipuan pulsa SMS untuk autentikasi berbasis SMS
Dokumen ini menjelaskan cara menggunakan reCAPTCHA untuk melindungi alur berbasis SMS Identity Platform, seperti autentikasi multi-faktor dan telepon, dari penipuan pulsa SMS (juga dikenal sebagai serangan pumping SMS).
Ringkasan
Jika aplikasi Anda mengandalkan alur berbasis SMS untuk autentikasi, Anda dapat mengaktifkan fitur perlindungan terhadap penipuan pulsa SMS reCAPTCHA sebagai bagian dari integrasi Identity Platform dengan reCAPTCHA. Jika diaktifkan,
Identity Platform akan memanggil fitur perlindungan penipuan SMS tol saat pengguna
meminta SMS verifikasi dari aplikasi atau situs Anda menggunakan operasi
phoneProvider
berikut:
Operasi | Metode | |
---|---|---|
Daftar atau login dengan nomor telepon | sendVerificationCode |
|
Pendaftaran nomor telepon MFA | mfaSmsEnrollment |
|
Login dengan nomor telepon MFA | mfaSmsSignIn |
reCAPTCHA kemudian memberikan skor risiko kepada Identity Platform yang menunjukkan kemungkinan nomor telepon pengguna akan melakukan penipuan pulsa SMS. Identity Platform membandingkan skor ini dengan nilai minimum yang Anda tetapkan dalam konfigurasi perlindungan penipuan SMS toll, lalu menangani permintaan berdasarkan tindakan yang telah Anda tetapkan dalam konfigurasi.
Untuk mengetahui informasi selengkapnya tentang fitur perlindungan penipuan SMS tol reCAPTCHA, lihat Mendeteksi dan mencegah penipuan SMS.
Sebelum memulai
Sebelum mengaktifkan perlindungan terhadap penipuan pulsa SMS untuk Identity Platform, selesaikan tugas-tugas berikut:
Konfigurasikan hal berikut untuk aplikasi atau situs Anda sebagaimana berlaku:
- Login dengan telepon untuk pengguna.
- Autentikasi multi-faktor untuk aplikasi web, Android, atau iOS.
Jika Anda belum melakukannya, buat akun layanan untuk setiap project yang akan menggunakan reCAPTCHA. Untuk mengetahui petunjuknya, lihat Membuat akun layanan.
Mode penerapan autentikasi ponsel reCAPTCHA
Perlindungan terhadap penipuan pulsa SMS reCAPTCHA mengharuskan Anda menyiapkan penerapan reCAPTCHA autentikasi telepon, yang memiliki dua mode: audit dan enforce.
Mode audit
Saat Anda menetapkan penerapan autentikasi telepon ke mode audit, Identity Platform akan menggunakan perlindungan terhadap penipuan pulsa SMS reCAPTCHA untuk verifikasi aplikasi. Jika permintaan pengguna lulus penilaian penipuan tol, Identity Platform akan mengirimkan pesan SMS yang berisi kode verifikasi ke ponsel pengguna. Jika permintaan gagal dalam penilaian penipuan tol dan Anda menggunakan SDK klien, metode verifikasi penggantian akan dipicu 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 lulus 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 penipuan tol awal gagal, mode audit mengandalkan reCAPTCHA v2 untuk verifikasi. Oleh karena itu, Anda harus menyiapkan pemverifikasi reCAPTCHA (RecaptchaVerifier
) dan meneruskannya ke operasi autentikasi ponsel 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 tol awal gagal, mode audit akan memverifikasi aplikasi Anda terhadap Play Integrity API. Jika verifikasi ini gagal, reCAPTCHA v2 akan dipicu. reCAPTCHA v2 mungkin 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 penipuan tol awal 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 mungkin dipicu jika notifikasi push senyap tidak dikonfigurasi dengan benar.
Untuk mengetahui informasi selengkapnya tentang cara menyiapkan verifikasi aplikasi iOS, lihat Mengaktifkan verifikasi aplikasi dalam dokumentasi Firebase.
Mode terapkan
Saat Anda menetapkan penerapan autentikasi telepon ke mode penerapan, Identity Platform akan menggunakan perlindungan terhadap penipuan pulsa SMS reCAPTCHA untuk verifikasi aplikasi. Jika permintaan pengguna lulus penilaian penipuan tol, Identity Platform akan mengirimkan pesan SMS yang berisi kode verifikasi ke ponsel pengguna. Jika permintaan gagal dalam penilaian penipuan tol, Identity Platform akan memblokir permintaan tersebut dan tidak mengirimkan pesan SMS yang berisi kode verifikasi.
Tidak ada verifikasi penggantian yang diperlukan dalam mode penerapan, Anda tidak perlu menyiapkan metode verifikasi tambahan untuk aplikasi. Namun, sebaiknya siapkan verifikasi reCAPTCHA untuk aplikasi web guna memastikan reCAPTCHA v2 diaktifkan jika Anda memutuskan untuk mengubah mode reCAPTCHA aplikasi menjadi AUDIT
atau OFF
.
Mengaktifkan perlindungan terhadap penipuan pulsa SMS reCAPTCHA
Untuk mengaktifkan perlindungan terhadap penipuan pulsa SMS, lakukan hal berikut:
Jika Anda belum melakukannya, aktifkan reCAPTCHA Enterprise API di project Anda.
Aktifkan perlindungan terhadap penipuan pulsa SMS dengan reCAPTCHA. Untuk mengetahui petunjuknya, lihat bagian Sebelum memulai di halaman Deteksi dan cegah penipuan SMS dalam dokumentasi reCAPTCHA.
Untuk mengaktifkan perlindungan penipuan SMS toll untuk project, gunakan Admin SDK untuk memanggil
updateConfig
sebagai berikut:// 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);
Ganti kode berikut:
ENFORCE_MODE
: mode yang ingin Anda tetapkan untuk penerapan autentikasi telepon reCAPTCHA. Nilai yang valid adalahOFF
,AUDIT
, danENFORCE
. Untuk mengaktifkan perlindungan penipuan SMS tol, parameter ini harus ditetapkan keAUDIT
atauENFORCE
danuseSmsTollFraudProtection
harus ditetapkan ketrue
.Saat mengaktifkan perlindungan terhadap penipuan pulsa SMS untuk pertama kalinya, sebaiknya tetapkan status penerapan ke
AUDIT
dan pastikan alur autentikasi Anda dilindungi sebelum menetapkannya keENFORCE
. Untuk mengetahui informasi selengkapnya tentang cara kerja mode ini, lihat Mode penerapan autentikasi ponsel reCAPTCHA.START_SCORE
: skor penilaian penipuan tol tertinggi yang dapat dimiliki permintaan sebelum gagal. Anda dapat menetapkan skor ini menjadi antara0.0
dan1.0
. Setiap skor di atas nilai minimum yang Anda tetapkan akan dianggap sebagai penipuan SMS tol. Misalnya, jika Anda menetapkan nilai minimum0.3
, reCAPTCHA akan menolak permintaan apa pun dengan0.4
atau yang lebih tinggi. Oleh karena itu, semakin rendah skor yang Anda tetapkan, semakin ketat aturannya.
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. Untuk menambahkan domain resmi, lakukan hal berikut:
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 selesai.
Jika Anda telah menetapkan penerapan ke mode audit, sebaiknya pantau metrik reCAPTCHA untuk perlindungan penipuan SMS guna memastikan bahwa alur Anda dilindungi.
Mengonfigurasi SDK klien
Konfigurasikan SDK klien sesuai dengan platform aplikasi Anda.
Web
Update ke SDK web versi terbaru.
- 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 dan mengaktifkan perlindungan untuk penyedia yang telah Anda konfigurasi.
Jika diperlukan, Anda dapat memaksa pengambilan sinyal reCAPTCHA sebagai berikut:
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
Update ke Android SDK versi terbaru. Dukungan reCAPTCHA untuk autentikasi email dan sandi serta autentikasi ponsel di aplikasi Android tersedia di Android SDK versi 23.1.0 dan yang lebih baru.
Selain itu, dukungan reCAPTCHA memerlukan API level 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 mengaktifkan perlindungan untuk penyedia yang telah Anda konfigurasi.
Tambahkan aturan build berikut ke bagian dependensi file
build.gradle
level aplikasi Anda:implementation 'com.google.android.recaptcha:recaptcha:18.5.1'
Pastikan untuk menggunakan reCAPTCHA SDK versi 18.5.1 atau yang lebih baru.
Jika diperlukan, Anda dapat memaksa pengambilan sinyal reCAPTCHA sebagai berikut:
- 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
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 mengaktifkan perlindungan untuk penyedia yang telah Anda konfigurasi.
Untuk mengintegrasikan reCAPTCHA iOS SDK ke aplikasi Anda, lihat Menyiapkan lingkungan.
Pastikan
-ObjC
tercantum dalam flag penaut Anda. Buka Target > Build Settings > All > Linking dan pastikanOther Linker Flags
menampilkan-ObjC
.Jika diperlukan, Anda dapat memaksa pengambilan sinyal reCAPTCHA sebagai berikut:
- Swift:
// Initialize Firebase Authentication try await Auth.auth().initializeRecaptchaConfig()
- Objective-C:
// Initialize Firebase Authentication [[FIRAuth auth] initializeRecaptchaConfigWithCompletion:^(NSError * _Nullable error) { // Firebase Authentication initialization finished }];
Memantau metrik reCAPTCHA untuk perlindungan terhadap penipuan pulsa SMS
Sebelum menetapkan penerapan reCAPTCHA ke mode penerapan, sebaiknya gunakan mode audit dan pantau metrik reCAPTCHA yang dihasilkan project Anda untuk memastikan bahwa alur autentikasi berbasis SMS Anda dilindungi. Misalnya, metrik ini dapat membantu Anda menentukan apakah Anda telah menyiapkan integrasi Identity Platform dengan reCAPTCHA Enterprise API dengan benar. Laporan ini juga dapat membantu Anda menyesuaikan nilai minimum skor untuk traffic pengguna.
Pastikan fitur perlindungan penipuan SMS berfungsi dengan memeriksa metrik berikut yang dihasilkan 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 perlindungan terhadap penipuan pulsa SMS
Setelah memverifikasi bahwa aplikasi Anda menerima traffic pengguna yang dapat diterima, Anda dapat mengaktifkan penerapan reCAPTCHA untuk melindungi pengguna. Pastikan Anda tidak mengganggu pengguna yang ada, termasuk pengguna yang mungkin menggunakan versi lama aplikasi Anda.
Untuk mengaktifkan penerapan reCAPTCHA untuk alur autentikasi berbasis SMS di project atau tenant, gunakan Admin SDK untuk menjalankan perintah berikut:
const enforceRequest = {
recaptchaConfig: {
phoneEnforcementState: 'ENFORCE',
useSmsTollFraudProtection: 'true'
}
};
Menonaktifkan perlindungan terhadap penipuan pulsa SMS
Untuk menonaktifkan perlindungan penipuan SMS toll, gunakan Admin SDK untuk menjalankan perintah berikut:
const disableRequest = {
recaptchaConfig: {
phoneEnforcementState: 'OFF',
useSmsTollFraudProtection: 'false'
}
};
Untuk menonaktifkan perlindungan terhadap penipuan pulsa SMS saat Anda menggunakan perlindungan terhadap bot, lihat Menonaktifkan perlindungan terhadap penipuan pulsa SMS saat menggunakan perlindungan terhadap bot.
Menggunakan perlindungan terhadap penipuan pulsa SMS dengan perlindungan terhadap bot
Anda dapat menggunakan perlindungan terhadap penipuan pulsa SMS secara bersamaan dengan perlindungan terhadap bot. Untuk konfigurasi yang menggunakan kedua fitur perlindungan, pertimbangkan hal berikut:
- Jika Anda telah menetapkan status penerapan autentikasi ponsel ke audit, Identity Platform akan meneruskan permintaan jika memenuhi setidaknya salah satu penilaian. Sebaiknya pantau metrik reCAPTCHA untuk memastikan perlindungan terhadap penipuan pulsa SMS dan perlindungan terhadap bot dikonfigurasi dengan setelan skor yang wajar.
- Jika Anda telah menetapkan status penerapan autentikasi telepon ke penerapan, Identity Platform hanya akan meneruskan permintaan jika memenuhi penilaian dan permintaan gagal ditutup tanpa kembali ke metode verifikasi lain.
Untuk mengaktifkan kedua fitur tersebut, gunakan Admin SDK untuk menjalankan perintah berikut:
const enableBothRequest = {
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
. Untuk mengaktifkan perlindungan terhadap penipuan pulsa SMS, parameter ini harus ditetapkan ke AUDIT
atau ENFORCE
. Saat mengaktifkan
perlindungan penipuan SMS toll untuk pertama kalinya, sebaiknya tetapkan parameter
ini ke AUDIT
dan pastikan alur autentikasi Anda dilindungi sebelum
menetapkannya ke ENFORCE
. Untuk informasi selengkapnya tentang cara kerja mode ini, lihat
Mode penerapan autentikasi telepon reCAPTCHA.
Menonaktifkan perlindungan terhadap penipuan pulsa SMS saat menggunakan perlindungan terhadap bot
Jika Anda menggunakan perlindungan penipuan pulsa SMS dan perlindungan bot secara bersamaan, dan ingin menonaktifkan perlindungan penipuan pulsa SMS tanpa menonaktifkan perlindungan bot, gunakan Admin SDK untuk menjalankan perintah berikut:
const disableRequest = {
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
AUDIT
atau ENFORCE
. Untuk informasi selengkapnya tentang cara kerja mode ini, lihat
Mode penerapan autentikasi telepon reCAPTCHA.
Langkah selanjutnya
- Pelajari lebih lanjut fitur perlindungan terhadap penipuan pulsa SMS reCAPTCHA.