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
Tanpa pemverifikasi reCAPTCHA, Identity Platform tidak dapat memulai reCAPTCHA v2 dan akan menampilkan 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).
Untuk mengetahui informasi selengkapnya tentang cara menyiapkan verifikasi aplikasi Android, lihat Mengaktifkan verifikasi aplikasi dalam dokumentasi Firebase.

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:

Mengaktifkan reCAPTCHA SMS defense

  1. Menyiapkan autentikasi:

    1. In the Google Cloud console, activate Cloud Shell.

      Activate Cloud Shell

    2. Buat 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 reCAPTCHA SMS defense untuk project Anda:

    1. Di konsol Google Cloud , buka halaman reCAPTCHA.

      Buka reCAPTCHA

    2. Pastikan nama project Anda muncul di pemilih resource.

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

    3. Klik Setelan.

    4. Di panel Perlindungan SMS, klik Konfigurasi.

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

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

    1. Di URL berikut, ganti PROJECT_ID, Recaptcha_MODE, dan START_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 adalah OFF, AUDIT, dan ENFORCE. Untuk mengaktifkan pertahanan SMS reCAPTCHA, parameter ini harus disetel ke AUDIT atau ENFORCE dan useSmsTollFraudProtection harus disetel ke true.

        Saat mengaktifkan perlindungan SMS reCAPTCHA untuk pertama kalinya, gunakan mode AUDIT untuk memastikan penyiapan perlindungan SMS reCAPTCHA berfungsi dengan benar. Mode AUDIT 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 mode ENFORCE. 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 antara 0.1 dan 0.9. Sebaiknya mulai dengan nilai minimum yang lebih tinggi, misalnya 0.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 minimum 0.3, misalnya, reCAPTCHA akan gagal memproses permintaan dengan skor 0.4 atau lebih tinggi.

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

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

    Penyediaan kunci reCAPTCHA dapat memerlukan waktu beberapa menit untuk diselesaikan.

  2. 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 pertahanan SMS 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 atau AUDIT.
        • 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
            }
          }
          ```
        
  3. 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

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

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

    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 tanda linker Anda, buka Target > Build Settings > All > Linking dan verifikasi bahwa Other 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:

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