Ringkasan Play Integrity API

Play Integrity API membantu melindungi aplikasi dan game Anda dari interaksi yang berpotensi berisiko dan penipuan, 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 terlindungi 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 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 yang jarang 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 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 mengirim kembali respons biner/gagal yang sama dari server kembali ke aplikasi setiap saat, sebaiknya miliki rentang hasil keputusan karena 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 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.

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:

  1. Backend sisi server aplikasi akan membuat dan mengirimkan nilai unik ke logika sisi klien. Langkah-langkah yang tersisa mengacu ke logika ini sebagai “aplikasi”.
  2. 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.
  3. Aplikasi akan menerima verdict yang ditandatangani dan dienkripsi dari Play Integrity API.
  4. Aplikasi akan meneruskan verdict yang ditandatangani dan dienkripsi ke backend aplikasi.
  5. 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.
  6. Backend aplikasi akan memutuskan cara melanjutkan, berdasarkan sinyal yang dimuat dalam payload token.
  7. Backend aplikasi akan mengirimkan hasil keputusan ke aplikasi.

Tingkat penggunaan API

Permintaan ke API bergantung pada jumlah maksimum jumlah per aplikasi per hari, seperti yang ditentukan oleh tingkat penggunaan yang ditetapkan oleh aplikasi panggilan. Tabel berikut menunjukkan berbagai tingkat:

Tabel 1. Tingkat penggunaan Play Integrity API
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:

  1. Login ke Konsol Play.
  2. Pilih aplikasi yang menggunakan Play Integrity API.
  3. Di bagian Rilis pada menu kiri, buka Penyiapan > Integritas aplikasi.
  4. 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.