Mengamankan Opsi Pengembang

Menurut Dokumen Definisi Kompatibilitas Android , OEM harus menyediakan cara untuk mengaktifkan pengembangan aplikasi. Namun, memberikan opsi pengembang seperti seluler di dalam mobil membuat mobil-mobil itu rentan terhadap serangan. Akses ke opsi pengembang sekarang dapat dikunci 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 debug dan titik akhir penerbit token jarak jauh.

Terminologi

Selain Terminologi , istilah ini digunakan dalam artikel ini:

  • JSON Web Signature (JWS), didefinisikan dalam RFC 7515
  • Institut Standar dan Teknologi Nasional (NIST)

Rancangan

OEM dapat mengotorisasi 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. Ini dilakukan dengan beberapa hamparan sumber daya statis untuk mengesampingkan default dalam kerangka kerja 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 mengatur 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 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 berkemampuan JWS lokal 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.