Berdasarkan Dokumen Definisi Kompatibilitas Android , OEM harus menyediakan cara untuk mengaktifkan pengembangan aplikasi. Namun, menyediakan opsi pengembang seperti seluler di dalam mobil membuat mobil tersebut rentan terhadap serangan. Akses ke opsi pengembang sekarang dapat dibatasi oleh OEM menggunakan mekanisme token kriptografi yang diautentikasi. Secara khusus, OEM dapat:
- Tetapkan batasan default yang diinginkan sebelum boot pertama.
- Otorisasi pengembang dengan aman, dengan token kripto jika diinginkan.
- Terapkan perubahan pembatasan setelah pengembang diautentikasi dan diotorisasi.
Artikel ini menjelaskan implementasi referensi yang terdiri dari aplikasi pengontrol pembatasan debugging dan titik akhir penerbit token jarak jauh.
Terminologi
Selain Terminologi , istilah berikut digunakan dalam artikel ini:
- JSON Web Signature (JWS), didefinisikan dalam RFC 7515
- Institut Standar dan Teknologi Nasional (NIST)
Desain
OEM dapat memberi otorisasi kepada pengembang dengan token JSON Web Signature (JWS) (RFC7515). Dalam implementasi referensi, token akses dikeluarkan oleh OEM dan digunakan oleh aplikasi pengontrol pembatasan. Token akses dirancang untuk menahan serangan replay dan token palsu.
Gambar 1. Desain
Integrasi dan konfigurasi
OEM harus menentukan batasan default yang diinginkan pada boot pertama. Hal ini dilakukan dengan beberapa overlay sumber daya statis untuk mengesampingkan default dalam kerangka AOSP.
Pembatasan default untuk pengguna sistem tanpa kepala 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 melapisi| string ini untuk menetapkan batasan default pada setiap jenis pengguna masing-masing, 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>
Implementasi referensi disediakan di lokasi berikut di AOSP:
packages/apps/Car/DebuggingRestrictionController
Pengujian
Google menyarankan agar OEM memulai dengan penerapan referensi dan mengembangkannya dari sana.
- Setelah mengonfigurasi batasan yang diinginkan dalam file overlay, kompilasi AAOS dan validasi aliran yang ditentukan. Gunakan aplikasi referensi dan layanan lokal yang mengaktifkan JWS untuk memverifikasi pengaturan akses Anda.
- Konfigurasikan sistem untuk menggunakan layanan cloud berkemampuan JWS Anda (opsional). Pastikan Anda mengamati alur yang diinginkan pada layanan backend Anda.