Play Integrity API membantu melindungi aplikasi dan game Anda dari interaksi yang berpotensi berisiko dan menipu, seperti kecurangan dan akses tidak sah, sehingga Anda dapat merespons dengan tindakan yang tepat untuk mencegah serangan dan mengurangi penyalahgunaan.
Saat aplikasi atau game Anda digunakan pada perangkat yang menjalankan Android 4.4 (API level 19) atau yang lebih tinggi, Play Integrity API akan memberikan respons yang ditandatangani dan dienkripsi yang menyertakan informasi berikut:
- Biner aplikasi asli: Menentukan apakah Anda berinteraksi dengan biner yang tidak dimodifikasi dan dikenali Google Play.
- Penginstalan Play asli: Menentukan apakah akun pengguna saat ini memiliki lisensi, yang artinya pengguna telah menginstal atau membayar aplikasi atau game Anda di Google Play.
- Perangkat Android asli: Perangkat ini memberi tahu apakah aplikasi Anda berjalan di perangkat Android asli yang didukung oleh layanan Google Play.
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. Untuk membantu Anda melengkapi persyaratan bagian keamanan data, lihat informasi ini tentang cara Play Integrity API menangani data.
Pertimbangan keamanan
Meskipun Play Integrity API meningkatkan keamanan dan melindungi dari gangguan, API ini memberikan manfaat terbesar untuk aplikasi Anda saat 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.
Jangan terlalu sering mendapatkan token integritas
Menghasilkan token integritas akan menggunakan waktu, data, serta baterai, dan setiap aplikasi memiliki jumlah panggilan maksimum yang dapat dilakukan per hari seperti yang ditentukan oleh tingkat penggunaannya. Oleh karena itu, Anda harus memanggil API untuk melindungi tindakan bernilai tinggi dan jarang yang merupakan bagian integral dari pengalaman pengguna, seperti login ke layanan atau bergabung dengan server multiplayer. Anda tidak boleh memanggil API pada tindakan frekuensi tinggi atau bernilai rendah. Misalnya, jangan memanggilnya setiap kali aplikasi masuk ke latar depan atau setiap beberapa menit di latar belakang. Aplikasi yang melakukan terlalu banyak panggilan API dapat dibatasi untuk melindungi pengguna dari implementasi yang salah.
Menggunakan kolom nonce untuk melindungi aplikasi Anda lebih lanjut
Play Integrity API menawarkan kolom yang disebut nonce
, yang dapat digunakan
untuk melindungi aplikasi Anda lebih lanjut dari serangan tertentu, seperti serangan replay dan
serangan gangguan person-in-the-middle (PITM). Play Integrity API menampilkan
nilai yang Anda tetapkan dalam kolom ini, di dalam respons integritas yang ditandatangani. Ikuti dengan cermat
panduan tentang
cara membuat nonce untuk melindungi aplikasi
Anda dari serangan.
Menggunakan lingkungan server yang aman
Jalankan semua dekripsi dan validasi dalam lingkungan server yang aman. Jika aplikasi klien Anda mengekspos detail keamanan apa pun, penyerang dapat mengekstraknya dari APK atau repositori Anda, sehingga memberinya informasi berharga tentang aplikasi atau game Anda.
Mengirimkan berbagai respons dari server Anda ke aplikasi
Daripada selalu mengirim kembali respons lulus/gagal biner yang sama dari server kembali ke aplikasi, sebaiknya miliki rentang hasil keputusan karena akan lebih sulit untuk direplikasi. Misalnya, Anda dapat menggunakan serangkaian respons terkait seperti Izinkan, Izinkan dengan batas, Izinkan dengan batas setelah penyelesaian reCAPTCHA, dan Tolak.
Memiliki strategi penerapan bertingkat
Di Konsol Play, Anda dapat memilih untuk menerima label perangkat tambahan sehingga Anda dapat membuat strategi anti-penyalahgunaan dengan beberapa tingkat penerapan. Setelah memilih untuk menerima label tambahan, respons integritas akan menyertakan beberapa label untuk perangkat yang sama jika setiap kriteria label terpenuhi. Dengan demikian, Anda dapat mempersiapkan server backend untuk berperilaku lain bergantung pada rentang kemungkinan respons.
Misalnya, perangkat yang menampilkan MEETS_BASIC_INTEGRITY
,
MEETS_DEVICE_INTEGRITY
, dan MEETS_STRONG_INTEGRITY
dapat lebih dipercaya
daripada perangkat yang hanya menampilkan MEETS_BASIC_INTEGRITY
. Anda dapat mengonfigurasi
respons server yang sesuai. Cara ini dapat digabungkan dengan berbagai tindakan terkait apakah akun pengguna LICENSED
atau UNLICENSED
.
Mencoba lagi dengan backoff eksponensial
Kondisi lingkungan, seperti koneksi Internet yang tidak stabil atau perangkat yang kelebihan beban, dapat menyebabkan kegagalan pemeriksaan integritas perangkat. Hal ini dapat menyebabkan tidak adanya label yang dibuat untuk perangkat yang tepercaya. Untuk mengurangi skenario ini, pastikan Anda menyertakan opsi coba lagi dengan backoff eksponensial.
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 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 dapat mengonfigurasi terlebih dahulu cara kerja server backend jika terjadi pemadaman layanan Play Integrity API berskala besar.
Penggunaan API tingkat tinggi
Gambar 1. Diagram urutan yang menunjukkan desain tingkat tinggi Play Integrity API.
Saat pengguna melakukan tindakan bernilai tinggi di aplikasi yang ingin Anda lindungi dengan pemeriksaan integritas, selesaikan langkah-langkah berikut:
- Backend sisi server aplikasi akan membuat dan mengirimkan nilai unik ke logika sisi klien. Langkah-langkah yang tersisa mengacu ke logika ini sebagai “aplikasi”.
- Aplikasi Anda akan membuat nonce dari nilai unik dan konten tindakan bernilai tinggi Anda. Lalu, aplikasi akan memanggil Play Integrity API yang meneruskan nonce tersebut.
- Aplikasi akan menerima verdict yang ditandatangani dan dienkripsi dari Play Integrity API.
- Aplikasi akan meneruskan verdict yang ditandatangani dan dienkripsi ke backend aplikasi.
- Backend aplikasi akan mengirimkan verdict ke server Google Play. Server Google Play mendekripsi dan memverifikasi verdict tersebut, yang akan menampilkan hasilnya ke backend aplikasi Anda.
- Backend aplikasi akan memutuskan cara melanjutkan, berdasarkan sinyal yang dimuat dalam payload token.
- Backend aplikasi akan mengirimkan hasil keputusan ke aplikasi.
Tingkat penggunaan API
Permintaan ke API bergantung pada jumlah maksimum per aplikasi per hari, seperti yang ditentukan oleh tingkat penggunaan yang ditetapkan oleh aplikasi panggilan. Tabel berikut menunjukkan berbagai tingkat:
Tingkat penggunaan | Jumlah panggilan API yang diizinkan per hari | Persyaratan |
---|---|---|
Standar | Hingga 10.000 | Tersedia untuk aplikasi yang menggunakan saluran distribusi apa pun |
Dinaikkan | Lebih dari 10.000 - batas bergantung pada persetujuan | Harus menerapkan logika API dengan benar, termasuk percobaan ulang Tersedia untuk aplikasi yang menggunakan saluran distribusi selain Google Play |
Terkait penggunaan API, nama paket yang sama di Google Play dan di saluran distribusi lainnya dihitung sebagai satu aplikasi. Anda dapat menggunakan satu ID project Google Cloud untuk beberapa aplikasi dengan nama paket yang berbeda. Jika Anda melakukannya, aplikasi akan dihitung sebagai satu aplikasi dalam hal penggunaan API.
Melihat tingkat penggunaan
Untuk membantu Anda menilai frekuensi interaksi dengan Play Integrity API, Konsol Play akan menampilkan tingkat penggunaan aplikasi. Untuk melihat tingkat penggunaan ini, lakukan langkah berikut:
- Login ke Konsol Play.
- Pilih aplikasi yang menggunakan Play Integrity API.
- Di bagian Rilis pada menu kiri, buka Penyiapan > Integritas aplikasi.
- Di tab Integrity API, di bagian Setelan, cari properti tingkat Penggunaan. Nilai properti ini menunjukkan tingkat penggunaan aplikasi Anda.
Mengubah tingkat penggunaan
Untuk meminta perubahan tingkat penggunaan aplikasi, isi formulir ini. Anda harus meminta untuk berpindah ke tingkat penggunaan yang dinaikkan jika aplikasi perlu menangani peningkatan jumlah pengguna, tetapi tidak untuk memanggil API lebih sering per pengguna. Meskipun dengan tingkat penggunaan yang dinaikkan, aplikasi Anda harus terus membatasi panggilan API untuk tindakan yang jarang dan bernilai tinggi.
Menyiapkan pemantauan dan pemberitahuan kuota
Permintaan untuk menaikkan tingkat biasanya diproses dalam beberapa hari kerja. Untuk mempertahankan pengalaman pengguna yang baik dan menghindari situasi darurat, sebaiknya siapkan pemantauan dan pemberitahuan tentang penggunaan kuota API aplikasi Anda dengan Cloud Monitoring.