Der komplizierteste Aspekt des Internets der Dinge ist die Sicherheit. Mit Azure Sphere bietet Microsoft nun eine Plattform, die diesen Punkt vereinfachen soll.

Bild: Microsoft

Sicheres IoT Azure Sphere: So funktioniert die Microsoft-Plattform

02.04.2020

Im Internet of Things müssen viele unterschiedliche Systeme miteinander sicher und zuverlässig kommunizieren. Eine Lösung dafür ist Azure Sphere von Microsoft, die Hardware, Software und Cloud-Services sicher miteinander verknüpft. Wir erläutern, wie diese Plattform aufgebaut ist und funktioniert.

Es kann schwierig erscheinen, die genaue Bedeutung des Begriffs „Internet of Things“ (Internet der Dinge, IoT) festzulegen. Im Wesentlichen fallen darunter alle elektronischen Geräte, die sich miteinander verbinden, interagieren oder Daten austauschen können.

Bei Geräten, die als „Smart Home“ oder „Smart Healthcare“ vermarktet werden, um nur zwei von vielen Beispielen zu nennen, sind die Anwendungsbereiche, in denen das IoT in Aktion tritt, deutlicher zu erkennen. Aber abgesehen von cleverem Marketing und der allumfassenden Benennung gibt es einen Aspekt des IoT, auf den sich die meisten einigen können: Im Allgemeinen mangelt es an der Implementierung von wirksamer Sicherheit.

Die Sicherheit von Geräten und Systemen, die mit dem Internet verbunden sind, stellt immer eine Herausforderung dar, da jeden Tag neue Angriffsmöglichkeiten für Systemschwächen verbreitet und ausgenutzt werden. Schlecht gesicherte Smart-Home-Geräte, insbesondere Babyphone, haben in den letzten Jahren Negativschlagzeilen gemacht. Daher scheint es fast unmöglich, ein einfaches, auf einem Mikrocontroller basierendes Gerät mit dem Internet zu verbinden und eine zuverlässige und sichere Funktion sicherzustellen.

Microsoft hat gemeinsam mit dem Hardwarepartner MediaTek einen neuen Ansatz entwickelt, um sowohl Hardware als auch eine IoT-Umgebung bereitzustellen, in die aktualisierbare Sicherheit bereits integriert ist.

Aufbau von Azure Sphere

Die Azure-Sphere-Plattform von Microsoft stellt die notwendige Internetsicherheit in den Mittelpunkt. Die Lösung basiert auf drei wesentlichen Kernelementen: einem gesicherten Mikrocontroller (MCU), einem gesicherten Betriebssystem (OS) und einem einsatzbereiten Sicherheitsdienst.

Der gesicherte MCU verfügt über einen Prozessorkern, das sogenannte Pluton Security Subsystem, das den Hardware-Vertrauensanker bereitstellt. Darauf basierend werden die Authentifizierung mit Cloud-Diensten und die erforderlichen kryptografischen Operationen mit den sicher gespeicherten privaten Schlüsseln ausgeführt.

Außerdem werden OTA-Software-Updates (Over The Air, Luftschnittstelle) unterstützt. Indem diese Funktion aus den übrigen MCU-Funktionen herausgenommen wird, stehen die anderen Prozessoren voll und ganz für Echtzeitverarbeitung, Anwendungsfunktionen und Konnektivität zur Verfügung.

Das gesicherte Betriebssystem basiert auf einem Linux-Kernel und umfasst eine Sicherheitsüberwachung, um den Zugriff auf wichtige Ressourcen zu schützen. Die Lösung bietet Robustheit durch einen Containeransatz für die Anwendungsentwicklung, sodass Programmierer Code segmentieren können.

Das letzte Element ist der Azure-Sphere-Sicherheitsdienst. Diese Cloud-Lösung überwacht kontinuierlich Bedrohungen und stellt mithilfe des Azure-Dienstes Vertrauen zwischen Geräten her. Firmware-Updates können sicher für IoT-Knoten bereitgestellt werden, und durch die Authentifizierung kann nur zulässige Hardware mit dem Anwendungscode des Entwicklers programmiert werden. Feldausfälle oder Trends, die auf eine ungewöhnliche Nutzung hindeuten, können ebenfalls anhand der Informationen der Plattform erkannt werden.

Die Hardware im Detail

Eines der ersten Geräte, das Zugriff auf das Azure-Sphere-Ökosystem bietet, ist die MT3620 MCU von MediaTek, ein Gerät mit drei Kernen, integriertem WLAN-Block und dem Pluton Security Subsystem. Für den Nutzer stehen ein Arm Cortex-A7 mit bis zu 500 MHz sowie zwei Arm Cortex-M4Fs mit bis zu 200 MHz für den Anwendungscode zur Verfügung. Der Arm-Cortex-A7-Kern eignet sich ideal für anspruchsvollen Benutzercode, während die beiden Cortex-M4F Echtzeitsteuerungsfunktionen übernehmen können. Peripheriegeräte können jedem dieser drei Kerne zugeordnet werden.

Das WLAN-Subsystem wird von einem vierten Prozessor, einem N9-32-Bit-RISC-Kern, gesteuert und umfasst Dual-Band-802.11a/b/g/n-Funk, Basisband und MAC. Diese Aufteilung wurde entwickelt, um den Stromverbrauch zu reduzieren, und sorgt dafür, dass drahtlose Verbindungen einen hohen Durchsatz erreichen können, ohne die Leistung des restlichen Systems zu beeinträchtigen.

Schließlich bietet ein fünfter Prozessor, ein weiterer Cortex-M4F, Sicherheit und eine sichere Energieverwaltung für die gesamte MCU. Er implementiert den Hardware-Vertrauensanker, umfasst einen Zufallszahlengenerator mit Entropie-Überwachungssystem und verfügt über Maßnahmen gegen Seitenkanalattacken und Manipulation.

Insgesamt verfügt die MCU über circa 5 MB integrierten SRAM und 16 MB seriellen SiP-Flash-Speicher (System-in-Package). Nach dem Laden des Linux-Betriebssystems bleiben etwa 512 KB SRAM für eine Azure-Sphere-Anwendung, wobei während der Ausführung 256 KB zur Verfügung stehen. Die verfügbare Dokumentation weist darauf hin, dass bei diesen Grenzwerten in einigen Fällen eine gewisse Flexibilität besteht.

Ein geringer Energieverbrauch ist natürlich ein wesentlicher Faktor bei der Auswahl von Plattformen für IoT-Anwendungen. Der MT3620 benötigt im niedrigsten Leistungsmodus zwischen 0,01 und 0,02 mA, wenn nur die Echtzeituhr (RTC) in Betrieb ist. Der höhere Stromverbrauch gilt für Fälle, in denen der interne PMIC (Power Management IC) verwendet wird. Das Aufwachen aus diesem Stromsparmodus erfordert nur 24 ms einschließlich PLL-Sperre und Quarzoszillatorstart. Mit WLAN liegt der Stromverbrauch im Stromsparmodus bei 220 mA (maximal 380 mA) und erreicht 520 mA (maximal 750 mA), wenn alles in Betrieb ist.

Mit Azure Sphere durchstarten

Die ersten Schritte werden durch die Hersteller erleichtert, die dem Trend der kleinen Einplatinencomputer (SBC) folgen. Steckverbinder bieten eine einfache Konnektivität über aufsteckbare Shields.

Das Azure-Sphere-MT3620-Entwicklungskit umfasst zwei integrierte WLAN-Antennen sowie zwei Anschlüsse für externe Antennen. Der Zugriff auf die On-Chip-Peripheriegeräte erfolgt über zwei Reihen doppelter Pins. Die Platine verfügt außerdem über einige Eingangstasten, eine Reset-Taste für das System, Nutzer- und Status-LEDs und einen Micro-USB-Anschluss, der die Stromversorgung und eine Schnittstelle für das Debugging bereitstellt.

Das Gerät wird mithilfe der integrierten Entwicklungsumgebung Visual Studio von Microsoft in Kombination mit dem Azure Sphere SDK programmiert und debuggt. Die Laufzeit der Anwendung basiert auf einem Abschnitt der POSIX-Norm und besteht aus Bibliotheken, die Zugriff auf die Peripheriegeräte bieten. Andere Funktionen sind über Laufzeitdienste zugänglich.

Allgemeine E/A und Interprozesskommunikation (IPC) sind aufgrund der Sicherheitskonfiguration gesperrt. Nach der Authentifizierung mit Azure Sphere kann der Anwendungscode jedoch mit Cloud-Diensten interagieren und die bereitgestellten HTTP(S)-Bibliotheken verwenden.

Der Ansatz zur Softwareentwicklung funktioniert im Vergleich zu einer Bare-Metal-MCU etwas anders. Der Entwickler muss ein Microsoft-Azure-Konto einrichten und danach sein Gerät anfordern (das Gerät mit dem Azure Sphere Tenant verknüpfen). Dies ist ein einmaliger Prozess, der nicht rückgängig gemacht werden kann.

Danach wird empfohlen, die WLAN-Verbindung einzurichten, da über diese dedizierte Verbindung Updates für das Azure-Sphere-Betriebssystem zur Installation heruntergeladen werden. Dies geschieht nach der Einrichtung im Intervall alle 24 Stunden, um das System auf dem neuesten Softwarestand zu halten.

Die Platine wird in einem gesperrten Zustand geliefert, es kann also kein Code auf die Platine hochgeladen werden. Die IDE bietet eine Befehlszeilenschnittstelle, über die die Platine für die Programmierung entsperrt werden kann. Daraufhin wird der Code auf ähnliche Weise entwickelt, wie es Entwickler integrierter Systeme gewohnt sind. Die Softwarebibliotheken umfassen eine umfangreiche Protokollierungsfunktion zur Unterstützung von Debugging und Fehleranalyse.

Für die schnelle Prototypenerstellung muss Hardware schnell um eine programmierbare Plattform herum gebaut werden, um eine Idee zu implementieren. Hierfür bietet das Azure-Sphere-Grove-Starterkit die Lösung. Es verfügt über ein Shield mit sechs Steckverbindern, das den Anschluss der enthaltenen Sensor-, Eingangs- und Ausgangsplatinen vereinfacht.

Zu diesen gehören sieben Platinen, die beispielsweise ein OLED-Display, einen Lichtsensor, ein Relais, eine Drucktaste und einen Temperatursensor bieten. Jedes dieser Module ist ordentlich verpackt und verfügt über ein Anschlusskabel sowie eine detaillierte Beschreibung der Funktionen und der elektrischen Spezifikationen.

Fazit

Nach dem jahrelangen Hype um das Internet der Dinge und die verschiedenen Anwendungsbereiche und Marktsegmente, die davon profitieren werden, scheint es endlich eine Plattform zu geben, die den kompliziertesten Aspekt des IoT vereinfacht: Sicherheit. Der Azure-Sphere-Ansatz, Sicherheit in die Hardware zu integrieren und diese mit einer sicheren Cloud-Lösung zu verknüpfen, gewährleistet, dass der übliche Kompromiss zwischen Anwendungsfunktionalität und Sicherheit nicht mehr zur Debatte steht.

Darüber hinaus können sich Entwickler und Produkthersteller, indem sie die komplizierte Erkennung von Bedrohungen an eine dedizierte Plattform auslagern, die täglich mit diesen zu tun hat, auf die Produktdifferenzierung konzentrieren. Denn sie wissen, dass die Sicherheit zuverlässig gewährleistet ist.

Bildergalerie

  • Das Azure Sphere Development Kit MT3620 bietet einen einfachen Einstieg in die Welt des Internet of Things und setzt dafür auf Microsofts Azure Sphere.

    Bild: Distrelec

  • Auf dem Entwickler-Board werkelt das AI-Link-MT3620-Modul, das auf der MT3620-CPU mit einem Ein-Kern-Arm-Cortex-7 und einem Dual-Kern-Cortex-M4F basiert und WiFi-Funktionalität besitzt.

    Bild: Distrelec

Verwandte Artikel