Sesuai dengan Dokumen Definisi Kompatibilitas Android, OEM harus menyediakan cara untuk mengaktifkan pengembangan aplikasi. Namun, menyediakan opsi developer seperti perangkat seluler di dalam mobil akan membuat mobil tersebut rentan terhadap serangan. Akses ke opsi developer kini dapat dibatasi oleh OEM menggunakan mekanisme token kriptografis yang diautentikasi. Secara khusus, OEM dapat:
- Tetapkan batasan default yang diinginkan sebelum booting pertama.
- Memberi otorisasi kepada developer dengan aman, dengan token kripto jika diinginkan.
- Terapkan perubahan batasan setelah developer diautentikasi dan diberi otorisasi.
Artikel ini menjelaskan implementasi referensi yang terdiri dari aplikasi pengontrol batasan proses debug dan endpoint penerbit token jarak jauh.
Terminologi
Selain Terminologi, istilah berikut digunakan dalam artikel ini:
- JSON Web Signature (JWS), yang ditentukan dalam RFC 7515
- National Institute of Standards and Technology (NIST)
Desain
OEM dapat memberikan otorisasi kepada developer dengan token JSON Web Signature (JWS) (RFC7515). Dalam implementasi referensi, token akses dikeluarkan oleh OEM dan digunakan oleh aplikasi pengontrol batasan. Token akses dirancang untuk melawan serangan replay dan token palsu.
Gambar 1. Desain
Integrasi dan konfigurasi
OEM harus menentukan batasan default yang diinginkan saat booting pertama. Hal ini dilakukan dengan beberapa overlay resource statis untuk mengganti setelan default dalam framework AOSP.
Pembatasan default untuk pengguna sistem headless dapat dikonfigurasi dengan
string config_defaultFirstUserRestrictions
di
frameworks/base/core/res/res/values/config.xml
, misalnya:
<!-- User restrictions set when the first user is created. Note: Also update appropriate overlay files. --> <string-array translatable="false" name="config_defaultFirstUserRestrictions"> <item>no_debugging_features</item> </string-array>
Pembatasan default untuk pengemudi, penumpang, dan tamu dapat dikonfigurasi di
frameworks/base/core/res/res/xml/config_user_types.xml
. OEM dapat menempatkan|
string ini untuk menetapkan batasan default pada setiap jenis pengguna, misalnya:
<user-types> <full-type name="android.os.usertype.full.SECONDARY" > <default-restrictions no_debugging_features="true"/> </full-type> <full-type name="android.os.usertype.full.GUEST" > <default-restrictions no_debugging_features="true"/> </full-type> </user-types>
Penerapan referensi disediakan di lokasi berikut di AOSP:
packages/apps/Car/DebuggingRestrictionController
Pengujian
Google merekomendasikan agar OEM memulai dengan implementasi referensi dan membangun dari sana.
- Setelah mengonfigurasi batasan yang diinginkan dalam file overlay, kompilasi AAOS dan validasi alur yang ditentukan. Gunakan aplikasi referensi dan layanan lokal yang mengaktifkan JWS untuk memverifikasi setelan akses Anda.
- Konfigurasikan sistem untuk menggunakan layanan cloud yang mengaktifkan JWS (opsional). Pastikan Anda mengamati alur yang diinginkan di layanan backend.