Play Integrity API membantu Anda memeriksa apakah tindakan pengguna dan permintaan server berasal dari aplikasi asli Anda, diinstal oleh Google Play, dan berjalan di perangkat asli yang didukung Android. Dengan mendeteksi interaksi yang berisiko, seperti dari versi aplikasi yang dimodifikasi, perangkat yang tidak tepercaya, atau lingkungan yang diemulasi, server backend Anda dapat merespons dengan tindakan yang sesuai untuk mencegah penyalahgunaan dan akses tidak sah, memerangi penipuan, memberantas kecurangan, dan melindungi pengguna dari serangan.
API menampilkan verdict yang membantu Anda mendeteksi potensi ancaman, termasuk:
- Akses tidak sah: Putusan
accountDetails
membantu Anda menentukan apakah pengguna menginstal atau membayar aplikasi atau game Anda di Google Play. - Modifikasi kode: Verdict
appIntegrity
membantu Anda menentukan apakah Anda berinteraksi dengan biner yang tidak dimodifikasi dan dikenali oleh Google Play. - Perangkat berisiko dan lingkungan yang di-emulator: Verdict
deviceIntegrity
membantu Anda menentukan apakah aplikasi Anda berjalan di perangkat Android asli yang bersertifikasi Play Protect atau instance asli Google Play Game untuk PC.
Developer Google Play juga dapat memilih untuk menerima verdict tambahan untuk mendeteksi berbagai potensi ancaman yang lebih luas, termasuk:
- Perangkat yang belum di-patch: Respons
MEETS_STRONG_INTEGRITY
dalam putusandeviceIntegrity
membantu Anda menentukan apakah perangkat telah menerapkan update keamanan terbaru (untuk perangkat yang menjalankan Android 13 dan yang lebih tinggi). - Akses berisiko oleh aplikasi lain:
appAccessRiskVerdict
membantu Anda menentukan apakah ada aplikasi yang sedang berjalan yang dapat digunakan untuk merekam layar, menampilkan overlay, atau mengontrol perangkat (misalnya, dengan menyalahgunakan izin aksesibilitas). - Malware yang diketahui:
playProtectVerdict
membantu Anda menentukan apakah Google Play Protect telah diaktifkan dan apakah Google Play Protect telah menemukan aplikasi berisiko atau berbahaya yang diinstal di perangkat. - Hiperaktivitas: Tingkat
recentDeviceActivity
membantu Anda menentukan apakah perangkat telah membuat permintaan dengan volume sangat tinggi baru-baru ini, yang dapat mengindikasikan traffic otomatis dan bisa menjadi tanda serangan. - Penyalahgunaan berulang dan perangkat yang digunakan kembali:
deviceRecall
(beta) membantu Anda menentukan apakah Anda berinteraksi dengan perangkat yang sebelumnya Anda tandai, meskipun aplikasi Anda diinstal ulang atau perangkat direset.
API ini dapat digunakan di berbagai faktor bentuk Android, termasuk ponsel, tablet, perangkat foldable, Android Auto, Android TV, Android XR, ChromeOS, Wear OS, dan di Google Play Game untuk PC.
Pertimbangan keamanan
Play Integrity API memberikan nilai tertinggi untuk aplikasi jika Anda mengikuti praktik yang direkomendasikan berikut:
Memiliki strategi anti-penyalahgunaan
Play Integrity API akan berfungsi optimal jika digunakan bersama sinyal lain sebagai bagian dari keseluruhan strategi anti-penyalahgunaan dan bukan sebagai satu-satunya mekanisme anti-penyalahgunaan. Gunakan API ini bersama praktik terbaik keamanan lainnya yang sesuai untuk aplikasi Anda. Secara default, aplikasi Anda dapat membuat hingga 10.000 total permintaan per hari pada semua penginstalan. Anda dapat meminta untuk meningkatkan jumlah maksimum harian.
Mengumpulkan telemetri dan memahami audiens sebelum mengambil tindakan
Sebelum mengubah perilaku aplikasi berdasarkan verdict Play Integrity API, Anda dapat memahami situasi saat ini dengan audiens yang ada dengan menerapkan API tanpa penegakan. Setelah mengetahui verdict apa yang ditampilkan basis penginstalan Anda saat ini, Anda dapat memperkirakan dampak dari penegakan yang Anda rencanakan, dan menyesuaikan strategi anti-penyalahgunaan dengan tepat.
Menentukan cara meminta verdict integritas
Play Integrity API menawarkan dua opsi untuk meminta dan menerima verdict integritas. Baik Anda membuat permintaan standar, permintaan klasik, atau kombinasi kedua jenis permintaan, respons verdict integritas akan ditampilkan dalam format yang sama.
Permintaan API standar cocok untuk aplikasi atau game apa pun dan dapat dibuat on demand untuk memeriksa apakah tindakan pengguna atau permintaan server asli. Permintaan standar memiliki latensi terendah (rata-rata beberapa ratus milidetik) dan keandalan tinggi untuk mendapatkan verdict yang dapat digunakan. Permintaan standar menggunakan cache dalam perangkat yang cerdas sekaligus mendelegasikan perlindungan terhadap jenis serangan tertentu terhadap Google Play.
Permintaan API klasik, cara asli untuk meminta verdict integritas, juga akan terus tersedia. Permintaan klasik memiliki latensi yang lebih tinggi (rata-rata beberapa detik) dan Anda bertanggung jawab untuk mengurangi risiko jenis serangan tertentu. Permintaan klasik menggunakan lebih banyak data dan baterai pengguna daripada permintaan standar karena permintaan klasik memulai penilaian baru, sehingga harus jarang dibuat, sebagai permintaan satu kali saja, untuk memeriksa apakah tindakan yang sangat sensitif atau berharga asli. Jika Anda mempertimbangkan untuk membuat permintaan klasik dan menyimpannya dalam cache agar dapat digunakan nanti, Anda harus membuat permintaan standar untuk mengurangi risiko serangan.
Tabel berikut menyoroti beberapa perbedaan utama antara kedua jenis permintaan:
Permintaan API standar | Permintaan API klasik | |
---|---|---|
Versi Android SDK minimum yang diperlukan | Android 5.0 (API Level 21) atau yang lebih tinggi | Android 4.4 (level API 19) atau yang lebih tinggi |
Pemanasan API diperlukan | ✔️ (beberapa detik) | ❌ |
Latensi permintaan umum | Beberapa ratus milidetik | Beberapa detik |
Potensi frekuensi permintaan | Sering (pemeriksaan on demand untuk tindakan atau permintaan apa pun) | Jarang (pemeriksaan satu kali untuk tindakan bernilai tertinggi atau permintaan paling sensitif) |
Mengurangi serangan replay dan serangan serupa | Mitigasi otomatis oleh Google Play | Menggunakan kolom nonce dengan logika sisi server |
Anda dapat melihat tabel dengan lebih banyak perbedaan di pertimbangan permintaan klasik.
Meminta verdict integritas pada waktu yang tepat
Anda harus meminta verdict risiko akses aplikasi sedekat mungkin dengan waktu tindakan atau permintaan server yang ingin Anda pertahankan agar tidak diakses, untuk mencegah scammer menyelesaikan pemeriksaan integritas yang dilakukan oleh aplikasi Anda.
Membuat permintaan API sulit direplikasi
Permintaan API standar memiliki kolom bernama requestHash
yang digunakan untuk melindungi
dari modifikasi tidak sah dan serangan serupa. Di kolom ini, Anda harus menyertakan
ringkasan semua nilai yang relevan dari permintaan aplikasi Anda. Ikuti panduan
cara menggunakan binding konten
untuk melindungi permintaan standar aplikasi Anda.
Permintaan API klasik memiliki kolom yang disebut nonce
(singkatan dari number once), yang
digunakan untuk memberikan perlindungan dari jenis serangan tertentu, seperti serangan replay dan
modifikasi tidak sah. Ikuti panduan tentang cara membuat
nonce untuk melindungi permintaan
klasik aplikasi Anda.
Menghindari menyimpan verdict integritas dalam cache
Menyimpan verdict integritas dalam cache akan meningkatkan risiko proxy, yang merupakan serangan dengan pihak tidak bertanggung jawab yang menggunakan kembali verdict dari perangkat yang baik untuk tujuan penyalahgunaan di lingkungan lain. Daripada menyimpan respons dalam cache, Anda dapat membuat permintaan API standar untuk mendapatkan verdict on demand.
Memiliki strategi penerapan bertingkat
Verdict integritas Play Integrity API memiliki berbagai kemungkinan respons yang memungkinkan pembuatan strategi anti-penyalahgunaan dengan beberapa tingkat penerapan. Anda dapat melakukannya dengan mengonfigurasi server backend aplikasi untuk berperilaku secara berbeda, bergantung pada setiap kemungkinan respons atau grup respons.
Anda juga dapat membuat strategi penerapan berdasarkan kepercayaan
di perangkat dengan memilih untuk menerima label
perangkat tambahan dalam respons
API dari Konsol Play. Setiap perangkat akan menampilkan semua label yang
kriterianya terpenuhi. Misalnya, setelah memilih untuk menerima semua label
perangkat, Anda dapat memilih untuk memercayai perangkat yang menampilkan
MEETS_STRONG_INTEGRITY
, MEETS_DEVICE_INTEGRITY
, dan MEETS_BASIC_INTEGRITY
lebih dari perangkat yang hanya menampilkan MEETS_BASIC_INTEGRITY
. Anda dapat merespons
secara berbeda dari server dalam setiap skenario.
Mengirimkan berbagai respons dari server Anda ke aplikasi
Memiliki rentang hasil keputusan lebih sulit untuk direplikasi daripada mengirim respons biner Izinkan/Tolak dari server kembali ke aplikasi untuk setiap respons. Misalnya, Anda dapat menggunakan serangkaian respons terkait seperti Izinkan, Izinkan dengan batas, Izinkan dengan batas setelah penyelesaian CAPTCHA, dan Tolak.
Mendeteksi penyalahgunaan berulang menggunakan pengambilan data spesifik perangkat, sambil tetap menjaga privasi pengguna
Pengambilan data spesifik perangkat memberi aplikasi kemampuan untuk menyimpan dan mengambil beberapa data kustom yang terkait dengan perangkat tertentu dengan cara yang menjaga privasi pengguna. Data tersebut disimpan di server Google, sehingga aplikasi Anda dapat memanggil kembali data per perangkat secara akurat, bahkan setelah aplikasi diinstal ulang atau perangkat direset. Hal ini memberi Anda cara yang andal untuk mengidentifikasi ulang perangkat yang Anda temukan melakukan penyalahgunaan di masa lalu sehingga Anda dapat mengambil tindakan dan menghentikannya agar tidak digunakan untuk penyalahgunaan lagi. Anda dapat menentukan arti Anda sendiri untuk tiga nilai yang membentuk data ingatan perangkat:
- Anda dapat menggunakannya sebagai hingga tiga flag atau boolean terpisah. Misalnya, nilai dapat menunjukkan apakah perangkat telah atau belum membuat akun, telah atau belum menukarkan uji coba gratis, atau telah atau belum dikenal karena penyalahgunaan berat.
- Atau, Anda dapat menggabungkan semua status nilai ke dalam maksimal
delapan label kustom, misalnya satu label untuk status default saat ketiga
nilai tidak diubah dan tujuh label dengan arti kustom. Hal ini memungkinkan Anda menyegmentasikan semua perangkat ke dalam maksimal delapan grup berdasarkan perilaku atau tindakan yang Anda tentukan. Dalam skenario ini,
writeDates
yang terakhir diperbarui dari ketigawriteDates
menunjukkan kapan terakhir kali Anda memperbarui label.
Perhatikan juga prasyarat dan pertimbangan lainnya saat menggunakan data penarikan perangkat.
Mendeteksi penyalahgunaan berskala besar menggunakan aktivitas perangkat terbaru
Gunakan fitur aktivitas perangkat terbaru di Play Integrity API untuk menemukan perangkat yang meminta token integritas dalam jumlah besar. Pelaku penyalahgunaan aktivitas bervolume tinggi biasanya menghasilkan hasil pengesahan yang valid dari perangkat sebenarnya dan memberikannya ke bot untuk mengotomatiskan serangan pada emulator dan perangkat yang telah di-root. Anda dapat menggunakan tingkat aktivitas perangkat terbaru untuk memeriksa jumlah pengesahan yang dihasilkan oleh aplikasi Anda di perangkat tersebut dalam satu jam terakhir.
Menampilkan pesan error yang dapat ditindaklanjuti
Jika memungkinkan, berikan pesan error yang berguna kepada pengguna dan beri tahu mereka hal yang dapat dilakukan untuk memperbaikinya, seperti mencoba ulang, mengaktifkan koneksi Internet, atau memeriksa apakah aplikasi Play Store sudah yang terbaru.
Membuat rencana untuk masalah atau pemadaman layanan yang tidak terduga
Dasbor status Play menampilkan informasi tentang status layanan Play Integrity API beserta informasi tentang gangguan dan pemadaman layanan. Anda harus merencanakan terlebih dahulu cara kerja server backend jika terjadi pemadaman layanan Play Integrity API berskala besar. Perhatikan bahwa server backend Anda juga harus siap berfungsi jika kunci Pengesahan Kunci Platform Android yang khusus untuk perangkat dicabut.
Mempertimbangkan solusi penipuan perusahaan secara menyeluruh
Pelanggan Enterprise yang mencari solusi lengkap pengelolaan penipuan dan bot dapat membeli reCAPTCHA Enterprise untuk perangkat seluler, yang meliputi SDK untuk Android yang memberikan skor risiko penipuan kepada developer. reCAPTCHA Enterprise secara otomatis menyertakan sinyal Play Integrity API dan menggabungkannya dengan sinyal aplikasi dan jaringan reCAPTCHA untuk pelanggan, sehingga memberikan solusi pengelolaan penipuan yang tidak terlihat, lancar, dan praktis. Aplikasi ini juga memberikan perlindungan untuk aplikasi Android yang tidak menyediakan Play Integrity API.
Menantang traffic berisiko saat mengakses fitur bernilai tinggi atau sensitif
Identifikasi tindakan bernilai tinggi atau sensitif di aplikasi atau game Anda untuk melindungi dengan Play Integrity API, bukan untuk langsung menolak akses. Jika memungkinkan, tantang traffic berisiko sebelum mengizinkan tindakan bernilai tinggi untuk dilanjutkan. Misalnya, jika risiko akses aplikasi menunjukkan bahwa aplikasi sedang berjalan dan dapat merekam layar, minta pengguna untuk menonaktifkan atau meng-uninstal aplikasi yang dapat merekam layar sebelum mengizinkannya melanjutkan ke fungsi yang ingin Anda lindungi.
Persyaratan layanan dan keamanan data
Dengan mengakses atau menggunakan Play Integrity API, Anda menyetujui Persyaratan Layanan Play Integrity API. Harap baca dan pahami semua persyaratan dan kebijakan yang berlaku sebelum mengakses API.
Google Play memiliki bagian keamanan data bagi developer untuk mengungkapkan praktik pengumpulan, berbagi, dan keamanan data aplikasi mereka agar pengguna terus mendapatkan informasi. Untuk membantu Anda melengkapi formulir data, lihat informasi tentang cara Play Integrity API menangani data.