Mengamankan opsi pengembang

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.

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