Android Automotive schützt eingehende Daten auf folgenden Ebenen, um die Integrität des Fahrzeugsystems zu gewährleisten:
Abbildung 1: Systemdienstarchitektur
- Apps: Das System überprüft, ob eine App die Berechtigung hat, mit dem Auto zu kommunizieren Subsystemen.
- Klar definierte APIs: Generische APIs akzeptieren keine beliebigen Daten-BLOBs (APIs müssen klar definiert sein).
- Autoservice. Updates nur über OTA (oder USB) mit vollständiger Festplatte zulässig die Verschlüsselung und den verifizierten Bootmodus. Sideload und Sideload nicht möglich.
- Fahrzeug-HAL. Überprüft, ob bestimmte Nachrichten zulässig sind.
Apps und APIs
Android Automotive basiert auf Android und interagiert direkt mit zahlreichen sicherheitsrelevanten Subsystemen. Außerdem können verschiedene Fahrzeuge unterschiedliche Schnittstellen mit unterschiedlichen die Android-Funktionen. Um diese Funktionen sicher und rationalisiert zu machen, werden in einer Abstraktionsebene getrennt vom Rest von Android isoliert. Nur klar definierte APIs mit strikter Formatierung für Nachrichten, die über das Fahrzeugnetzwerk gesendet werden, können mit dem Fahrzeug kommunizieren. HAL. Android-Entwicklern profitieren dadurch von einer vorhersehbaren Oberfläche und einer sicheren Interaktion. mit dem Rest des Fahrzeugs.
Fahrzeug-HAL-Nachrichten werden auf zwei Ebenen gefiltert:
- App-Ebene: Systemunabhängige Apps können über das Auto auf den Fahrzeug-HAL zugreifen mit den entsprechenden Berechtigungen.
- Hallevel des Fahrzeugs. Bietet zusätzliche Sicherheit und Sicherheit dass Nachrichten, die an Fahrzeug-Subsysteme gesendet werden, von einer legitimen Quelle stammen. Kann auch verwendet werden um zu verhindern, dass schädliche Apps den CAN-Bus überfluten und möglicherweise Störungen von Untersystemen des Fahrzeugs.
Fahrzeug-HAL
Ein Fahrzeug-HAL ist eine untere Schicht, die mit dem Fahrzeug interagiert und mit dem Fahrzeug kommuniziert. und andere Hardware für Kraftfahrzeuge über Aufrufe der Treibereingabe/-ausgabe steuern.
Der Fahrzeug-HAL ist die einzige Komponente in Android Automotive, die mit dem IVI-System verbunden ist, entweder über eine direkte Verbindung zwischen einem App-Prozessor und einem MicroController-Element oder mit einem Gated Content über eine VMCU. Zugriff auf Fahrzeug-HAL sollte auf System-Apps beschränkt sein, die SELinux-Regeln und entsprechende Berechtigungen verwenden über Kernel-Schnittstellen.
SELinux-Richtlinien
Android Automotive erweitert SELinux, um den Zugriff von Fahrern wie Öffnen, Schließen, Lesen, Schreiben und ioctl-Aufrufe. Durch die Verwendung der ioctl-Filterung (zusammen mit anderen SELinux-Funktionen) wird die Art der CAN-Nachrichten, die vom Fahrzeug-HAL zugelassen und akzeptiert wurden, wodurch die Angriffsfläche drastisch reduziert wurde. Für finden Sie unter Sicherheitsfunktionen für Linux unter Android
Darüber hinaus umfassen Anwendungsfälle der Automobilbranche neue Arten sensibler Daten, die isoliert werden sollten. und kontrolliert werden. Für sensible Daten gibt es unterschiedliche Berechtigungen: andere Funktionen wie z. B. HLK-Steuerungen und Fensteranpassungen sollten nur für System-Apps erfolgen. Beispiel für ein spezielles SELinux-Richtlinie:
<permission-group android:name=”android.support.car.permission.CAR_MONITORING /> <permission android:name=”android.support.car.permission.CAR_MILEAGE” android:protectionLevel=”signature|privileged” /> <permission android:name=”android.support.car.permission.CAR_SPEED” android:permissionGroup=”android.permission-group.LOCATION” android:protectionLevel=”dangerous” /> <permission android:name=”android.support.car.permission.CAR_VENDOR_EXTENSION” android:permissionGroup=”android.support.car.permission.CAR_INFORMATION” android:protectionLevel=”signature|privileged” />
Die Berechtigungsgruppe CAR_MONITORING
wurde für Berechtigungen in der Automobilbranche erstellt.
Die aktuelle Geschwindigkeit gilt als vertrauliche Information. Dementsprechend ist CAR_SPEED
Berechtigungen wurden mit dem Schutzniveau gefährlich erstellt. Diese Ebene bedeutet, dass
dass alle Informationen privat und sensibel sind. Die Berechtigung CAR_VENDOR_EXTENSION
wurde erstellt
mit der Berechtigung auf System- oder Signaturebene, die für System-Apps oder signierte Apps verwendet wird,
erhalten diese Berechtigung ausdrücklich.
Blockierung von Apps und Aktivitäten
Um Ablenkungen beim Fahren zu reduzieren, bietet Android Automotive zusätzliche Einstellungen (Zulassungsliste), sorgen Sie dafür, dass per Sideload übertragene Apps nicht verwendet werden können, wenn das Fahrzeug in Bewegung ist. Diese Apps können immer noch wenn ein Fahrzeug geparkt oder angehalten wird.
Die Zulassungsliste enthält Apps, die während der Fahrt verwendet werden dürfen. Nur vertrauenswürdige System-Apps können die Zulassungsliste aktualisieren. Updates können zwar über das Netzwerk erfolgen, aber nicht als zuverlässig gelten.