Identität des Dienstpakets

Das Herzstück von AAOS SDV ist die serviceorientierte Architektur (SOA), die durch die Zerlegung des gesamten Systems in einzelne Komponenten, sogenannte Service-Bundles , Modularität bietet. Diese Service-Bundles müssen identifiziert und authentifiziert werden, um einen sicheren Betrieb des verteilten Systems zu gewährleisten.

Der native Automotive Service Controller und die Registrierung (Service Discovery Agent) sind ein verteiltes System, das im AAOS SDV Core-Profil implementiert ist, um Dienste bei der Identifizierung und Authentifizierung zu unterstützen.

Ein Service-Bundle kann mehrere Instanzen auf einer oder mehreren VMs haben. Jede Service-Bundle-Instanz erhält vom Service Discovery Agent eine fahrzeugspezifische Identität.

Instanz-IDs von Service-Bundles

Eine laufende Instanz eines Service-Bundles, die ein Betriebssystemprozess ist, hat zwei fahrzeugweit eindeutige IDs:

  • Ein voll qualifizierter Instanzname des Service-Bundles (Fully Qualified Instance Name, FQIN)
  • Instanz-ID des Service-Bundles (Service Bundle Instance ID, SID)

Der FQIN bleibt bei Neustarts des Betriebssystemprozesses und Systemneustarts gleich. Er ist unabhängig vom Lebenszykluszustand der Service-Bundle-Instanz, auf die er verweist.

Die SID ist an die Lebensdauer des Betriebssystemprozesses der Service-Bundle-Instanz gebunden. Daher weist der Service Discovery Agent jeder Service-Bundle-Instanz bei jedem Start (oder Neustart) eine andere SID zu. Es handelt sich um einen unvorhersehbaren, undurchsichtigen Wert. Ähnlich wie eine Betriebssystemprozess-ID wird eine SID ungültig, sobald der Betriebssystemprozess der Service-Bundle-Instanz, auf die sie verweist, beendet wird. Die beiden IDs sind nicht gleichwertig.

Da die SID eine temporäre ID ist, sollten Sie in den meisten Fällen, in denen Sie eine Service-Bundle-Instanz angeben, einen FQIN verwenden.

Lokale Identifizierung

Wenn eine Service-Bundle-Instanz gestartet wird, registriert sie sich beim lokalen Service Discovery Agent, der die lokale Zertifizierungsstelle ist, die Betriebssystemprozessen Service-Bundle-IDs (FQIN und SID) zuweist. Der Service Discovery Agent erkennt eine lokale Service-Bundle-Instanz anhand ihrer Linux-Nutzer-ID (UID).

Fernbedienung

Eine Service-Bundle-Instanz kann ein asymmetrisches Schlüsselpaar erstellen und ihren öffentlichen Schlüssel in einem X.509-Zertifikat mit ihrem FQIN verknüpfen. Dazu sendet sie eine Zertifikatsignieranfrage an ihren lokalen Service Discovery Agent, der die Zertifizierungsstelle für alle Service-Bundle-Instanzen in einer SDV-VM ist.

Zusammen mit dem vom lokalen Service Discovery Agent signierten X.509-Zertifikat erhält eine Service-Bundle-Instanz auch eine Liste der öffentlichen Root-Schlüssel aller Service Discovery Agents im Fahrzeug.

Mit diesen Informationen können sich zwei Service-Bundle-Instanzen, die sich in verschiedenen SDV-VMs befinden, gegenseitig identifizieren und authentifizieren, um sichere TLS-Verbindungen herzustellen.