Izolacja systemu w pojeździe

Aby zapewnić integralność systemu samochodowego, Android Automotive chroni przychodzące dane na tych poziomach:

Komponenty systemu EVS

Rysunek 1. Architektura usług systemowych

  • Aplikacje. System sprawdza, czy aplikacja ma uprawnienia do komunikowania się z samochodem podsystemami.
  • Dobrze zdefiniowane interfejsy API. Ogólne interfejsy API nie akceptują dowolnych blobów danych (interfejsy API muszą musi być dobrze zdefiniowany).
  • Serwis samochodowy. Aktualizacje dozwolone tylko przez OTA (lub USB) na pełnym dysku szyfrowanie i weryfikację podczas uruchamiania. Nie można wczytać do innego urządzenia.
  • HAL pojazdu. Sprawdza, czy określone wiadomości są dozwolone.

Aplikacje i interfejsy API

Android Automotive jest oparty na Androidzie i wchodzi w interakcje bezpośrednio z wieloma funkcjami o krytycznym znaczeniu dla bezpieczeństwa podsystemami. Również poszczególne pojazdy mogą mieć różne interfejsy z różnymi funkcje dostępne w Androidzie. Aby te funkcje były bezpieczne i usprawnione, izolowane w warstwie abstrakcji, oddzielnej od reszty Androida. Tylko dobrze zdefiniowane interfejsy API używając rygorystycznego formatowania wiadomości wysyłanych przez sieci w pojeździe, mogą one komunikować się z HAL. Zapewnia to przewidywalny interfejs dla deweloperów aplikacji na Androida i bezpieczną interakcję. z pozostałym pojazdem.

Komunikaty HAL dotyczące pojazdów są filtrowane na 2 poziomach:

  • Na poziomie aplikacji. Aplikacje niesystemowe mogą uzyskiwać dostęp do HAL pojazdu w samochodzie z odpowiednimi uprawnieniami.
  • Poziom HAL pojazdu. Zapewnia dodatkową warstwę ochrony że wiadomości wysyłane do podsystemów pojazdów pochodzą z wiarygodnego źródła. Można również użyć aby ograniczyć częstotliwość wysyłania wiadomości, zapobiegając zapełnianiu magistrali CAN przez złośliwe aplikacje potencjalnie zakłócając działanie podsystemów pojazdu.

HAL pojazdu

HAL pojazdu to dolna warstwa, która wchodzi w interakcję z pojazdem, komunikując się z pojazdem. do obsługi sieci i innego sprzętu samochodowego.

HAL pojazdu jest jedynym komponentem Androida Automotive połączonym z systemem IVI. przez bezpośrednie połączenie z procesorem aplikacji lub mikrokontrolerem albo przez VMCU. Dostęp do HAL pojazdu powinna być ograniczona do aplikacji systemowych za pomocą reguł SELinux i odpowiednich uprawnień na interfejsach jądra systemu operacyjnego.

Zasady SELinux

Android Automotive rozszerza możliwości SELinux, aby filtrować uprawnienia kierowcy, w tym otwieranie, zamykanie, odczyt, zapis i ioctl. Filtrowanie przy użyciu funkcji SELinux (wraz z innymi funkcjami SELinux) ogranicza typ Wiadomości CAN akceptowane i akceptowane przez HAL pojazdu, co znacznie zmniejsza powierzchnię ataku. Dla: SELinux znajdziesz w Ulepszone zabezpieczenia w systemie Linux

Poza tym przypadki użycia w branży motoryzacyjnej obejmują nowe typy danych wrażliwych, które należy odizolować. i kontrolowanych. Dane wrażliwe mają osobne uprawnienia. inne funkcje, np. sterowanie ogrzewaniem, wentylacją i klimatyzacją. i dostosowywanie okien należy ustawiać wyłącznie dla aplikacji systemowych. Przykład strony związanej z branżą motoryzacyjną Zasada SELinux:

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

Utworzono grupę uprawnień CAR_MONITORING dla uprawnień związanych z samochodami. Bieżąca prędkość może zostać uznana za informacje poufne. Dlatego CAR_SPEED – uprawnienia zostały utworzone z poziomem ochrony niebezpieczny. Ten poziom oznacza, że prywatne i poufne informacje są prywatne. Utworzono uprawnienie CAR_VENDOR_EXTENSION z uprawnieniami na poziomie systemu lub podpisu. Obowiązują one w przypadku aplikacji systemowych lub podpisanych aplikacji, mają dostęp do tych uprawnień.

Blokowanie aplikacji i aktywności

Aby ograniczyć rozpraszanie uwagi podczas jazdy, Android Automotive udostępnia dodatkowe opcje (listę dozwolonych). Zadbaj o to, aby nie można było korzystać z aplikacji pobranych z innego urządzenia, gdy pojazd jest w ruchu. Te aplikacje nadal mogą uruchamiają się, gdy pojazd jest zaparkowany lub się zatrzyma.

Lista dozwolonych zawiera aplikacje, których można używać podczas jazdy pojazdu. Tylko zaufane aplikacje systemowe mogą aktualizować listę dozwolonych. Aktualizacje mogą być przeprowadzane przez sieć, ale nie powinny które można uznać za wiarygodne.