Google merinci proposal desain SDK Runtime untuk Android Privacy Sandbox

Google telah memberikan beberapa detail tentang proposal desain SDK Runtime. SDK Runtime merupakan bagian dari Android Privacy Sandbox.

Baru-baru ini, kita melihat Apple dan Google berupaya menciptakan ekosistem yang lebih sadar privasi dalam hal periklanan. Dengan Apple, hal itu terjadi dengan diperkenalkannya tombol untuk mencegah aplikasi melacak Anda, dan dengan Google, hal itu terjadi Inisiatif Kotak Pasir Privasi Android. Meskipun informasi mengenai hal ini masih langka pada saat pengumumannya, rincian lebih lanjut telah muncul seputar "SDK Runtime" yang mencakup bagian dari solusi Google terhadap periklanan dan privasi.

Android Privacy Sandbox terdiri dari dua komponen utama -- SDK Runtime dan Privacy-Preserving API -- yang akan didistribusikan sebagai Komponen Sistem Modular, yang mungkin Anda ingat sebagai Jalur Utama Proyek. Google telah menerbitkan dokumentasi pengembang seputar SDK Runtime dan bagaimana hal itu akan lebih meningkatkan privasi pengguna. Perusahaan mengatakan bahwa SDK Runtime akan memungkinkan SDK pihak ketiga untuk berjalan di lingkungan runtime khusus

Android 13, jauh dari kode aplikasi.

Di Android, setiap aplikasi berjalan di sandbox dengan izinnya sendiri dan akses yang berbeda-beda ke sistem bergantung pada akses yang diberikan. Seperti yang dikatakan Google, "jika aplikasi A mencoba melakukan sesuatu yang berbahaya, seperti membaca data aplikasi B atau memutar nomor telepon tanpa izin, maka aplikasi tersebut akan dicegah karena tidak memiliki hak istimewa pengguna default yang sesuai." SDK Runtime semakin memperluas sandbox tersebut untuk mengeksekusi SDK pihak ketiga dalam lingkungan runtime khusus, jauh dari lingkungan tertentu. aplikasi.

Mengapa Runtime SDK ada

Google ingin mencegah SDK pengiklan mengumpulkan data yang seharusnya tidak dapat diakses secara jahat (atau bahkan secara tidak sengaja) sebagai akibat dari berbagi kotak pasir aplikasi host. Saat SDK iklan dijalankan di dalam aplikasi, ia juga memiliki akses ke semua hal yang dilakukan aplikasi tersebut, dan pengembang aplikasi mungkin tidak sepenuhnya menyadari seberapa besar akses yang sebenarnya. Dengan menghapus kode pengiklan tersebut dan menjalankannya dalam waktu prosesnya sendiri, maka kode tersebut hanya dapat mengakses data yang secara eksplisit dibagikan oleh pengembang kepadanya.

Oleh karena itu, Google mengatakan bahwa SDK Runtime memberikan perlindungan dan jaminan yang lebih kuat berikut ini seputar pengumpulan dan pembagian data pengguna:

  • Lingkungan eksekusi yang dimodifikasi
  • Izin yang jelas dan hak akses data untuk SDK

Versi pertama SDK Runtime hanya berfokus pada SDK terkait periklanan, termasuk SDK yang mengaktifkan penayangan iklan, pengukuran iklan, penipuan iklan, dan deteksi penyalahgunaan.

Cara kerja Waktu Proses SDK

Saat ini, tanpa runtime SDK, proses aplikasi akan memanggil SDK dan SDK tersebut akan dieksekusi di dalam sandbox yang sama dengan kode aplikasi lainnya. Google ingin pengembang memiliki antarmuka untuk SDK yang berfungsi dalam proses latar depan aplikasi, dan antarmuka tersebut kemudian dapat terhubung dan berbagi data tertentu bolak-balik dengan SDK yang ada dimanfaatkan.

Sebelum

Setelah

Diagram "sebelum" (pertama) menunjukkan bahwa kode panggilan SDK, bersama dengan SDK yang menerima panggilan dari kode ini, semuanya berada dalam proses aplikasi. Artinya, SDK dapat mengakses semua data yang dapat diakses oleh aplikasi. Diagram "setelah" (detik) menunjukkan bahwa, dalam proses latar depan aplikasi, kode panggilan SDK berkomunikasi dengan antarmuka SDK. Antarmuka ini kemudian melintasi batas proses ke dalam proses Runtime SDK untuk memanggil SDK itu sendiri. Artinya, SDK yang digunakan tidak bisa mengakses apa pun yang diinginkannya, hanya dapat diberikan informasi dari aplikasi yang dijalankannya.

Model distribusi tepercaya baru untuk SDK

Saat ini, saat Anda mendownload aplikasi dengan SDK pihak ketiga, SDK tersebut disertakan oleh pengembang dalam aplikasi yang diupload dan didistribusikan di Google Play Store. Google malah menginginkannya ketika Anda memasang aplikasi di ponsel Anda yang menggunakan SDK tersebut, aplikasi tersebut akan diunduh terpisah dari aplikasi itu sendiri. Artinya, pengembang SDK dapat melakukan perubahan yang tidak dapat menyebabkan gangguan (yaitu, tidak ada perubahan pada API atau semantiknya) ke SDK mereka dan mendistribusikannya ke perangkat tanpa keterlibatan apa pun dari aplikasi pengembang.

Pada gilirannya, perubahan SDK yang tidak dapat menyebabkan kerusakan dapat diterapkan atau dibatalkan, tanpa harus menunggu bagi pengembang aplikasi untuk membangun kembali aplikasi mereka dengan SDK baru, atau menunggu pengguna akhir memperbarui aplikasi mereka aplikasi. Perubahan yang dapat menyebabkan gangguan yang mengubah API dan semantiknya masih perlu diperbarui oleh pengembang aplikasi, namun pengembang SDK bisa mendapatkan perubahan terbaru yang tidak dapat mengganggu perubahan dan perbaikan yang lebih cepat dan seragam kepada lebih banyak orang sekaligus, tanpa bergantung pada pengembang aplikasi untuk memperbarui aplikasi dan paketnya dalam versi baru SDK.

Sebelum

Setelah

Diagram "sebelum" menunjukkan dengan tepat bagaimana aplikasi didistribusikan dengan SDK saat ini. Mereka dikemas ke dalam sebuah aplikasi dan aplikasi itulah yang dikirimkan ke Google Play Store. Dalam diagram "setelah", pengembang SDK tidak lagi memasukkan SDK mereka langsung ke dalam aplikasi; sebagai gantinya, pengembang SDK akan mengunggah SDK dan mempublikasikannya ke Google Play Store. Google Play Store kemudian akan menangani distribusi aplikasi, beserta dependensi SDK apa pun, ke perangkat pengguna akhir. Google juga sengaja menggunakan frasa "app store" dalam diagramnya, karena ini merupakan solusi terbuka dan umum yang dapat diterapkan di toko lain.

Perubahan pada cara SDK dan aplikasi dibuat, dijalankan, dan didistribusikan

Proposal awal untuk SDK Runtime mengusulkan serangkaian perubahan di lima bidang utama:

  • Mengakses
  • Eksekusi
  • Komunikasi
  • Perkembangan
  • Distribusi

Google ingin menentukan kumpulan izin berikut untuk Runtime SDK:

  • INTERNET: Akses internet untuk dapat berkomunikasi dengan layanan web.
  • ACCESS_NETWORK_STATE: Mengakses informasi tentang jaringan.
  • Izin untuk mengakses API yang menjaga privasi, yang memberikan kemampuan periklanan inti tanpa memerlukan akses ke pengenal lintas aplikasi. Nama izin belum diselesaikan tetapi API ini akan dibatasi oleh akses aplikasi ke izin ini.
  • AD_ID: Kemampuan untuk meminta ID iklan. Hal ini juga akan dibatasi oleh akses aplikasi terhadap izin ini.
  • BIND_GET_INSTALL_REFERRER_SERVICE: Kemampuan untuk menggunakan API Perujuk Pemasangan Google Play untuk mengatribusikan sumber instalasi aplikasi.

Perusahaan juga ingin membatasi akses yang dimiliki SDK ke memori aplikasi yang sedang berjalan, namun juga mencegah aplikasi mengakses data SDK itu sendiri. Sebuah aplikasi tidak akan dapat mengakses penyimpanan SDK-nya secara langsung, dan sebaliknya, penyimpanan eksternal tidak akan dapat mengaksesnya secara langsung terbuka untuk SDK, dan akan ada penyimpanan yang dapat diakses oleh semua SDK, dan penyimpanan yang bersifat pribadi bagi pihak tertentu SDK.

Adapun bagaimana SDK akan berjalan, mereka akan berjalan pada prioritas yang sedikit lebih rendah dibandingkan aplikasi itu sendiri. Artinya, kemungkinan besar aplikasi akan dihentikan segera setelah SDK Runtime dihentikan jika muncul situasi yang mengharuskan aplikasi ditutup oleh sistem. Dalam hal tidak diakhiri pada saat yang bersamaan, atau dalam hal terdapat alasan yang berbeda, usulan tersebut menawarkan metode callback siklus hidup terkait kepada pengembang aplikasi agar mereka dapat menangani pengecualian ini dan menginisialisasi ulang SDK Waktu proses. SDK Runtime tidak akan dapat menggunakan API notifikasi untuk mengirimkan notifikasi kepada pengguna kapan saja.

Terakhir, Google mencatat bahwa ini adalah proposal umum yang tidak unik untuk toko aplikasi tertentu. Meskipun mungkin akan dibangun di Google Play Store, tidak ada alasan mengapa toko aplikasi lain tidak dapat menggabungkan struktur serupa. Google mengatakan bahwa manfaat berikut ini jelas:

  • Pastikan kualitas dan konsistensi SDK.
  • Sederhanakan publikasi untuk pengembang SDK.
  • Mempercepat peluncuran pembaruan versi minor SDK ke aplikasi yang diinstal.

Kotak Pasir Privasi Android tampak menjanjikan

Jadwal rilis Google adalah Q1 tahun 2022 yang melibatkan proposal desain awal serta masukan dan iterasi desain. Pratinjau pengembang akan hadir pada akhir tahun ini, dengan versi beta pada akhir tahun. Pada akhirnya, pengujian berskala besar akan dimulai pada tahun 2023. Pratinjau dan beta ini tidak bergantung pada irama rilis Android 13. Juga akan ada kontrol yang dapat dilihat pengguna di aplikasi pengaturan, setelah diluncurkan.

Menurut saya, Privacy Sandbox Android terlihat menjanjikan, tapi kita harus menunggu dan melihat bagaimana perusahaan mengimplementasikannya. Ada kemungkinan besar pengembang tidak akan menyukainya, atau hal ini justru akan menyebabkan lebih banyak masalah daripada penyelesaiannya. Pengembang didorong untuk membaca dokumentasi yang diposting Google untuk lebih memahami masa depan privasi Android.

Saat ini, hal ini masih berupa proposal dan bukan pandangan pasti tentang apa tepat akan terjadi pada versi Android yang akan datang, namun kemungkinan besar hal tersebut akan hampir terjadi. Kami akan terus memantau perkembangan selanjutnya!


Sumber: Dokumentasi Pengembang Android