Sesuai dengan Dokumen Definisi Kompatibilitas Android, OEM harus menyediakan cara untuk memungkinkan pengembangan aplikasi. Namun, menyediakan opsi developer di dalam mobil membuat mobil itu rentan terhadap diserang. Akses ke developer sekarang dapat dibatasi oleh OEM menggunakan mekanisme token kriptografi yang diotentikasi. Secara khusus, OEM dapat:
- Tetapkan batasan default yang diinginkan sebelum booting pertama.
- Otorisasikan developer secara aman, dengan token kripto jika diinginkan.
- Terapkan perubahan batasan setelah developer diautentikasi dan diberi otorisasi.
Artikel ini menjelaskan penerapan referensi yang terdiri dari pembatasan proses debug aplikasi pengontrol dan endpoint penerbit token jarak jauh.
Terminologi
Selain Terminologi, istilah tersebut digunakan dalam artikel ini:
- JSON Web Signature (JWS), yang didefinisikan dalam RFC 7515
- Institut Standar dan Teknologi Nasional (NIST)
Desain
OEM dapat memberikan otorisasi kepada developer dengan token JSON Web Signature (JWS) (RFC7515). Di kolom penerapan referensi, token akses dikeluarkan oleh OEM dan dipakai oleh pembatasan aplikasi pengontrol. 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
config_defaultFirstUserRestrictions
string 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 pembatasan 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>
Implementasi referensi disediakan di lokasi berikut di AOSP:
packages/apps/Car/DebuggingRestrictionController
Pengujian
Google merekomendasikan agar OEM memulai dengan penerapan referensi dan membuatnya dari sana.
- Setelah mengkonfigurasi pembatasan yang diinginkan dalam file {i>overlay<i}, kompilasi AAOS dan memvalidasi alur yang ditentukan. Menggunakan aplikasi referensi dan layanan yang diaktifkan JWS lokal untuk memverifikasi setelan akses Anda.
- Mengonfigurasi sistem untuk menggunakan layanan cloud yang telah diaktifkan JWS (opsional). Verifikasi bahwa Anda mengamati alur yang diinginkan pada layanan backend Anda.