Sichere Entwickleroptionen

Laut Android-Kompatibilitätsdefinitionsdokument OEMs müssen eine Möglichkeit bieten, die App-Entwicklung zu ermöglichen. Die Bereitstellung für Mobilgeräte Entwickleroptionen in Autos machen diese Autos angreifbar. Zugriff auf Entwickler Optionen können jetzt von einem OEM mithilfe eines authentifizierten kryptografischen Token-Mechanismus gesteuert werden. Insbesondere kann ein OEM:

  • Legen Sie die gewünschten Standardeinschränkungen vor dem ersten Start fest.
  • Entwickler können mit Krypto-Tokens sicher autorisiert werden, falls gewünscht.
  • Wenden Sie Einschränkungsänderungen an, sobald ein Entwickler authentifiziert und autorisiert ist.

In diesem Artikel wird eine Referenzimplementierung beschrieben, die aus einer Debugging-Einschränkung besteht. Controller-App und einem Remote-Tokenausstellerendpunkt.

Terminologie

Zusätzlich zu Terminologie: die folgenden Begriffe werden in diesem Artikel verwendet:

  • JSON Web Signature (JWS), definiert in RFC 7515
  • National Institute of Standards and Technology (NIST)

Design

OEMs können Entwickler mit JWS-Tokens (JSON Web Signature) (RFC 7515) autorisieren. Im Referenzimplementierung, Zugriffstokens werden von OEMs ausgestellt und von der Einschränkung Controller-App. Zugriffstokens sind darauf ausgelegt, Replay-Angriffen und gefälschten Tokens standzuhalten.

Abbildung 1: Design

Integration und Konfiguration

OEMs müssen die gewünschten Standardeinschränkungen beim ersten Start angeben. Dies geschieht mit mehrere statische Ressourcen-Overlays verwenden, um die Standardeinstellungen im AOSP-Framework zu überschreiben.

Die Standardeinschränkungen für monitorlose Systemnutzer können mit dem config_defaultFirstUserRestrictions String aufgenommen frameworks/base/core/res/res/values/config.xml, z. B.:

<!-- 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>

Die standardmäßigen Einschränkungen für Fahrer, Fahrgäste und Gäste können frameworks/base/core/res/res/xml/config_user_types.xml Ein OEM kann überlagern| diese Strings, um die Standardeinschränkungen für jeden Nutzertyp festzulegen. Zum Beispiel:

<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>

Eine Referenzimplementierung wird an der folgenden Stelle in AOSP bereitgestellt:

packages/apps/Car/DebuggingRestrictionController

Testen

Google empfiehlt, dass OEMs mit der Referenzimplementierung beginnen und darauf aufbauen.

  1. Nachdem Sie die gewünschten Einschränkungen in den Overlay-Dateien konfiguriert haben, kompilieren Sie AAOS und die definierten Abläufe zu validieren. Referenz-App und lokalen JWS-fähigen Dienst verwenden um Ihre Zugriffseinstellungen zu überprüfen.
  2. Konfigurieren Sie das System für die Verwendung Ihres JWS-fähigen Cloud-Dienstes (optional). Bestätigen Sie, dass Sie Beobachten des gewünschten Ablaufs in Ihrem Back-End-Dienst.