Opsi developer yang aman

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.

  1. 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.
  2. Konfigurasikan sistem untuk menggunakan layanan cloud yang mengaktifkan JWS (opsional). Pastikan Anda mengamati alur yang diinginkan di layanan backend.