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

Dengan mengakses atau menggunakan Play Integrity API, Anda menyetujui Persyaratan Layanan Software Development Kit Play Core. Harap Baca dan pahami semua persyaratan dan kebijakan yang berlaku sebelum mengakses API.

Prasyarat

Untuk mengintegrasikan Play Integrity API ke dalam aplikasi Anda, lakukan hal berikut:

Pertimbangan keamanan

Meskipun meningkatkan keamanan dan melindungi dari gangguan, Play Integrity API memberikan manfaat maksimal bagi aplikasi jika Anda mengikuti setiap praktik terbaik yang tercantum di bagian ini.

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

Utamanya, Anda harus memanggil API untuk melindungi tindakan tidak berulang dan penting yang merupakan bagian tidak terpisahkan dari pengalaman pengguna, seperti login ke layanan atau bergabung ke server multiplayer.

Rata-rata, satu panggilan per pengguna aktif per hari adalah hal wajar, meskipun pengguna yang melakukan beberapa tindakan penting dalam satu hari mungkin memerlukan beberapa panggilan.

Membuat nonce dengan cermat

Nonce harus unik dan tidak mungkin dapat diprediksi oleh penyerang.

Menggunakan lingkungan server yang aman

Jalankan semua dekripsi dan validasi dalam lingkungan server yang aman. Jika aplikasi klien Anda memperlihatkan detail keamanan, penyerang dapat mengekstrak dan menghapus detail ini dari APK/repositori Anda.

Mengirimkan beberapa keputusan dari server Anda ke aplikasi

Daripada mengirim kembali respons tunggal pass/fail dari server ke aplikasi, sebaiknya Anda mengirim sejumlah hasil keputusan dan sinyal yang lebih sulit 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 dan cara server Anda merespons dapat disesuaikan dengan tepat. 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 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.

Penggunaan API tingkat tinggi

Gambar 1. Diagram urutan yang menunjukkan desain tingkat tinggi Play Integrity API.

Pada level tinggi, aplikasi atau game Anda menggunakan Play Integrity API sebagai berikut:

  1. Backend sisi server aplikasi akan membuat dan mengirimkan nonce unik ke logika sisi klien. Langkah-langkah yang tersisa mengacu ke logika ini sebagai “aplikasi”.
  2. Aplikasi akan memanggil Play Integrity API yang meneruskan nonce.
  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 mengirim verdict ke server Play. Server Plays akan mendekripsi dan memverifikasi verdict tersebut, dengan meneruskan hasilnya ke backend aplikasi.
  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 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 menu kiri, buka Penyiapan > Integritas aplikasi.
  4. Pada tab Integrity API, di bagian Setelan API, cari properti Tingkat penggunaan API. Nilai properti ini menunjukkan tingkat penggunaan API.

Mengubah tingkat penggunaan

Untuk meminta perubahan tingkat penggunaan aplikasi, hubungi dukungan developer di Konsol Play.