Suchen

Internet der Dinge

Sicherstellung des zuverlässigen Betriebs vernetzter IoT-Geräte

Seite: 2/2

Die Mehrkern-Prozessoren in heutigen Embedded-Geräten machen die Konsolidierung mehrerer Betriebssysteme zu einem praktikablen und sicheren Ansatz für die Sicherstellung der Konnektivität sowie der ordnungsgemäßen Ausführung von wichtigeren Funktionen. Selbst im Automobil, wo die Sicherheit extrem wichtig ist, erwarten die Verbraucher, dass ein IVI-System Zugriff auf Applikationen bietet, die auf Smartphones und Tablets zu finden sind.

Bild 2: Das Prozessmodell trennt kritische Bereiche innerhalb eines Echtzeitbetriebssystems
Bild 2: Das Prozessmodell trennt kritische Bereiche innerhalb eines Echtzeitbetriebssystems
(Quelle: Mentor Graphics)
Vor dem IoT und vernetzen Fahrzeugen wurden Sicherheit und Zuverlässigkeit durch mehrere getrennte Prozessoren erreicht. Das garantierte ein robustes Design. Bei den heutigen konsolidierten Embedded-Systemen empfiehlt sich die Verwendung mehrerer Betriebssysteme, die durch einen Type-1-Hypervisor getrennt sind. Der Hypervisor trennt und virtualisiert die Geräteressourcen und gewährleistet, dass wichtige Fahrzeugfunktionen eine höhere Priorität als vernetzte Anwendungen erhalten.

Ein Hypervisor geht über die einfache Trennung hinaus. Er bietet auch einen Mechanismus, um den Zugriff von Peripheriekomponenten auf bestimmte Anwendungsbereiche zu beschränken. Im Falle eines IVI-Systems kann man den Zugriff auf den CAN-Bus des Fahrzeugs beschränken, indem dem Fahrzeug-Infotainment-System nur Zugriff auf CAN-Daten erlaubt wird und bei vernetzten Apps in Android der Zugriff auf Daten nur über die Interprozesskommunikation (IPC) mit dem Linux-basierten Fahrzeug-Infotainment-Applikationen erfolgt.

Gleichzeitig sollen sowohl Linux als auch Android Zugriff auf die lokale SD-Card mit den Multimedia-Daten haben. Ein Hypervisor kann Peripheriekomponenten direkt abbilden und paravirtualisieren, also eine Schnittstelle zu ihnen bereitstellen. Dies erlaubt es Entwicklern, den Zugriff auf den CAN-Bus zu beschränken und andere Ressourcen wie die SD-Karte gemeinsam zu nutzen.

Over-the-Air-Aktualisierung muss eingeplant werden

Wir haben zwei mögliche Ansätze für das Design von IoT-Systemen dargestellt: die Verwendung eines RTOS und eines Type-1-Hypervisors. Der ideale Ansatz hängt vom konkreten Gerät ab. Alle vernetzten Systeme profitieren jedoch von Tests, die das korrekte Arbeiten im Feld sicherstellen. Automatisierte Sicherheitstests und Stresstests an vernetzten Geräten sind ein Beispiel, um Ausfälle im Protokoll-Stack oder in Prozesssteuerungsfunktionen festzustellen.

Zudem lässt sich das Funktionieren eines Gerätes mit Hilfe simulierter Angriffe ermitteln. Weitere notwendige Tests sind das Senden von ungültigen oder fragmentierten Paketen sowie die Ausführung von Test-Frameworks, die bekannte Schwachstellen im Software-Stack ausnutzen. Diese Tests können die Robustheit der vernetzen IoT-Geräte während des Betriebs erhöhen.

Benutzer von Mobilgeräten sind damit vertraut, dass sie ihr Gerät häufig aktualisieren müssen, um Fehler zu patchen, Sicherheitsupdates vorzunehmen oder die Performance zu erhöhen. All dies wird mühelos „über die Luft“ erreicht. Sowohl das Prozessmodell-basierte RTOS als auch die Verwendung eines Type-1-Hypervisors erleichtern das Design von Embedded-Systemen, die sicher über die Luft aktualisiert werden können.

Durch die Abtrennung des Anwendungs-Subsystems, das dynamisch geladen und entladen werden kann, erlauben beide Ansätze das Updaten spezieller Subsysteme, das Beheben von Fehlern oder das Lösen von Zuverlässigkeitsproblemen während des Einsatzes im Feld.

Die Bandbreite der IoT-Geräte erfordert häufig, dass Entwickler Code aus diversen Quellen wie eigenen, kommerziellen und Open-Source integrieren. All diese Quellen erhöhen das Risiko negativer Auswirkungen auf die Reaktionsfähigkeit und Zuverlässigkeit eines vernetzten IoT-Gerätes.

Ein RTOS mit einem Prozessmodul zur Abtrennung der Anwendungs-Subsysteme und einem Type-1-Hypervisor zur Konsolidierung mehrerer Betriebssysteme ist ein sinnvoller Ansatz zur Vernetzung von Anwendungen und Systemen, die einen hohen Sicherheitslevel oder Zuverlässigkeit in der Ausführung erfordern.

Neben der Auswahl der Systemarchitektur und Technik müssen Designer auch die Zeit für Tests zur Gewährleistung des Betriebs einplanen, die Betriebsdauer des Geräts bedenken und die Möglichkeit berücksichtigen, die Software möglichst schnell, naht- und mühelos zu aktualisieren.

* Andrew Caples ist Product-Marketing-Manager bei der Embedded Software Division (ESD) von Mentor Graphics.

(ID:43115053)