Mengaktifkan SMS defense reCAPTCHA untuk autentikasi berbasis SMS

Dokumen ini menjelaskan cara menggunakan SMS defense reCAPTCHA untuk membantu melindungi alur berbasis SMS Identity Platform Anda, seperti autentikasi ponsel dan autentikasi 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 SMS defense reCAPTCHA. Setelah diaktifkan, Firebase Authentication dan Identity Platform akan otomatis memanggil fitur SMS defense 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

reCAPTCHA kemudian memberikan skor risiko kepada Firebase Authentication atau Identity Platform yang menunjukkan kemungkinan penipuan pulsa SMS untuk nomor telepon pengguna. Skor ini kemudian dibandingkan dengan nilai minimum yang Anda konfigurasi. Jika permintaan pengguna lulus penilaian penipuan pulsa, kode verifikasi SMS akan dikirim. Jika skor risiko melebihi nilai minimum yang Anda konfigurasi, Identity Platform akan memblokir permintaan dan tidak akan mengirim pesan SMS yang berisi kode verifikasi.

Jika SMS defense reCAPTCHA diaktifkan, verifikasi penggantian tidak diperlukan, dan Anda tidak perlu menyiapkan metode verifikasi tambahan untuk aplikasi Anda. Namun, sebaiknya siapkan pemverifikasi reCAPTCHA untuk aplikasi web guna memastikan reCAPTCHA v2 tersedia jika Anda memutuskan untuk menonaktifkan SMS defense reCAPTCHA.

Untuk memahami cara kerja skor SMS defense reCAPTCHA, lihat Menafsirkan skor.

Untuk mengetahui informasi selengkapnya tentang fitur SMS defense reCAPTCHA, lihat Mendeteksi dan mencegah penipuan SMS.

Sebelum memulai

Sebelum mengaktifkan SMS defense reCAPTCHA untuk Identity Platform, selesaikan tugas-tugas berikut:

Mengaktifkan SMS defense reCAPTCHA

  1. Menyiapkan autentikasi:

    1. Di konsol Google Cloud , aktifkan Cloud Shell.

      Aktifkan Cloud Shell

    2. Membuat identitas layanan:

      gcloud beta services identity create \
          --service=identitytoolkit.googleapis.com \
          --project=PROJECT_ID
      

      Ganti PROJECT_ID dengan ID project.

    3. 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 ID
      • PROJECT_NUMBER: nomor akun project
  2. Aktifkan reCAPTCHA Enterprise API di project Anda.

  3. Aktifkan SMS defense reCAPTCHA untuk project Anda:

    1. Di konsol Google Cloud , buka halaman reCAPTCHA.

      Buka reCAPTCHA

    2. Pastikan nama project Anda muncul di pemilih resource.

      Jika tidak melihat nama project, klik pemilih resource, lalu pilih project Anda.

    3. Klik Setelan.

    4. Di panel SMS defense, klik Configure.

    5. Klik tombol Aktifkan, lalu klik Simpan.

    Saat Anda mengaktifkan SMS defense reCAPTCHA, pelindung akun juga diaktifkan, jika belum diaktifkan.

    Mungkin perlu waktu beberapa menit agar pengaktifan SMS defense reCAPTCHA diterapkan ke sistem kami. Setelah diterapkan, Anda akan mulai menerima respons terkait SMS defense reCAPTCHA sebagai bagian dari penilaian.

  4. Untuk mengonfigurasi setelan SMS defense reCAPTCHA untuk project Firebase Authentication atau Identity Platform, lakukan hal berikut:

    1. Di URL berikut, ganti PROJECT_ID dan START_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: ID project dengan identity-platform yang diaktifkan.

      • START_SCORE: nilai minimum yang dapat dikonfigurasi yang menentukan skor tertinggi yang dapat dimiliki permintaan SMS sebelum ditandai dan diblokir sebagai penipuan pulsa.

        Nilai minimumnya adalah 0.0. Nilai minimum maksimum adalah 0.9. Setiap permintaan dengan skor yang lebih tinggi dari nilai minimum dianggap sebagai penipuan. Misalnya, jika Anda menetapkan nilai minimum ke 0.3, reCAPTCHA akan memblokir permintaan apa pun dengan skor penipuan 0.4 atau lebih tinggi.

        Untuk meningkatkan tingkat perlindungan dari penipuan, tetapkan nilai minimum ke nilai yang lebih rendah. Untuk mengurangi tingkat perlindungan dari penipuan, tetapkan nilai minimum ke nilai yang lebih tinggi. Setelan ini akan memungkinkan lebih banyak permintaan dengan skor yang lebih tinggi untuk diteruskan.

        Untuk penerapan awal, sebaiknya mulai dengan nilai minimum yang lebih tinggi, seperti 0.8, lalu turunkan secara berulang sesuai dengan toleransi risiko spesifik Anda.

        Sebaiknya jangan gunakan nilai minimum 0.0 atau 1.0. Menetapkan nilai minimum ke 0.0 akan memblokir semua pesan SMS, sedangkan 1.0 akan sepenuhnya menonaktifkan perlindungan dari penipuan, yang dapat mengakibatkan kegagalan pengiriman SMS ke wilayah berisiko tinggi.

    2. Masukkan URL di jendela browser baru tempat Anda login ke Konsol Google Cloud .

  5. Jika Anda menggunakan Identity Platform di web atau Android, daftarkan aplikasi Anda dari Firebase console:

  6. Verifikasi konfigurasi Anda:

    • Ambil detail konfigurasi reCAPTCHA:

      {replace-your-project} dengan projectId atau projectNumber Anda. Jalankan GetConfig API di panel samping untuk mengambil konfigurasi reCAPTCHA.

    • Pastikan SMS defense reCAPTCHA dikonfigurasi dengan benar:

      1. 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 ke true.
        • phoneEnforcementState: Nilai harus ditetapkan ke ENFORCE.
        • tollFraudManagedRules: Dalam kolom ini, startScore harus dikonfigurasi dengan nilai minimum yang Anda pilih, yang harus berupa nilai antara 0 dan 0.9.

        Jika tidak, konfigurasikan kembali SMS defense reCAPTCHA.

        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
            }
          }
          ```
        
  7. Pastikan versi SDK sudah benar.

    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 nomor 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.

    Android

    1. 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 menerapkan nilai minimum yang Anda tetapkan untuk penyedia yang telah Anda konfigurasi.

    2. Tambahkan aturan build berikut ke bagian dependensi file build.gradle level aplikasi:

      implementation 'com.google.android.recaptcha:recaptcha:18.5.1'
      

      Pastikan untuk menggunakan reCAPTCHA SDK versi 18.5.1 atau yang lebih baru.

    iOS

    1. 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.

    1. Untuk mengintegrasikan reCAPTCHA iOS SDK ke aplikasi Anda, lihat Menyiapkan lingkungan iOS.

    2. Untuk memverifikasi bahwa -ObjC tercantum dalam flag penaut, buka Target > Build Settings > All > Linking dan pastikan Other Linker Flags menampilkan -ObjC.

Memantau metrik reCAPTCHA untuk SMS defense reCAPTCHA

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. Skor ini juga dapat membantu Anda menyempurnakan nilai minimum skor untuk traffic pengguna.

Pastikan fitur SMS defense reCAPTCHA berfungsi dengan memeriksa metrik berikut yang dikirim project Anda ke Cloud Monitoring:

Untuk mengetahui informasi selengkapnya, lihat Memantau metrik reCAPTCHA.

Menggunakan SMS defense reCAPTCHA dengan perlindungan bot

Anda dapat menggunakan SMS defense reCAPTCHA secara bersamaan dengan perlindungan bot. Jika keduanya diaktifkan dan phoneEnforcementState ditetapkan ke ENFORCE, Identity Platform hanya akan meneruskan permintaan jika permintaan tersebut memenuhi kedua penilaian, dan permintaan akan gagal ditutup tanpa beralih ke metode verifikasi lain.

Untuk mengaktifkan kedua fitur tersebut, gunakan Google APIs Explorer untuk mengupdate konfigurasi project:

        recaptchaConfig: {
          phoneEnforcementState: 'ENFORCE',
          useSmsTollFraudProtection: true,
          useSmsBotScore: true
        }

Menonaktifkan SMS defense reCAPTCHA saat menggunakan perlindungan dari bot

Jika Anda menggunakan SMS defense reCAPTCHA dan perlindungan bot, serta ingin menonaktifkan SMS defense reCAPTCHA tanpa menonaktifkan perlindungan bot, gunakan Google APIs Explorer untuk mengupdate konfigurasi project:

    recaptchaConfig: {
      phoneEnforcementState: 'ENFORCE',
      useSmsTollFraudProtection: false,
      useSmsBotScore: true
    }

Tetapkan phoneEnforcementState ke ENFORCE dan useSmsBotScore ke true agar perlindungan bot tetap aktif untuk alur autentikasi ponsel.

Menonaktifkan SMS defense reCAPTCHA

Untuk menonaktifkan semua perlindungan reCAPTCHA ponsel, termasuk SMS defense reCAPTCHA, gunakan Google APIs Explorer untuk mengupdate 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.phoneEnforcementState,recaptchaConfig.useSmsTollFraudProtection,recaptchaConfig.useSmsBotScore","resource":{"recaptchaConfig":{"phoneEnforcementState":"OFF","useSmsTollFraudProtection":false,"useSmsBotScore":false}}}

Ganti PROJECT_ID dengan project ID.

Untuk menonaktifkan SMS defense reCAPTCHA saat Anda menggunakan perlindungan dari bot, lihat Menonaktifkan SMS defense reCAPTCHA saat menggunakan perlindungan dari bot.

Langkah berikutnya