IoT-Anwendungen gibt es für die Industrie und für Verbraucher – von Lichtschaltern, Zählerablesern und intelligenten Schlössern bis hin zu Solarwechselrichtern und Sicherheitspanel. Insbesondere bei batteriebetriebenen Designs ist ein niedriger Energieverbrauch ausschlaggebend – aber eben auch die Sicherheit. Hier muss der Entwickler sorgfältig abwägen, welche MCU er einsetzen möchte.
Neben einer soliden Sicherheitsunterstützung sind Faktoren wie die Leistung des Prozessorkerns, die Effizienz, die Unterstützung von Peripheriegeräten und I/O, der allgemeine Formfaktor und die Unterstützung von Ökosystemen zu berücksichtigen. Eine MCU kann zwar die Designanforderungen hinsichtlich Performance und Stromverbrauch erfüllen, aber die Implementierung eines sicheren Designs ist mit einer Lernkurve verbunden, die zu Verzögerungen führen kann oder dazu, dass die Sicherheit nicht angemessen implementiert wird.
Sicherheitsprobleme bei IoT-Geräten
Die Zahl der Fernangriffe auf mit dem Internet verbundene Geräte nimmt weiter zu. Embedded-Entwickler könnten versucht sein zu denken, dass ihr IoT-Edge-Gerät keine Sicherheit benötigt, weil es nichts Wertvolles enthält. Die Wahrheit ist, dass fast jedes Gerät etwas enthält, das für einen Hacker wertvoll sein könnte, seien es Sensordaten, Kundendaten, die eigentliche Firmware des Geräts oder der Zugang, den das Gerät als Hintertür zu verbundenen Netzwerken bietet. Sicherheit ist eine kritische Funktion, die von Anfang an in jedes IoT-Edge-Gerät integriert werden muss: Sie sollte nicht erst am Ende des Entwicklungszyklus auf das System aufgeschraubt werden. Andernfalls ist das Gerät sehr anfällig für Angriffe.
Bei jedem IoT-Edge-Gerät gibt es mehrere Sicherheitsbereiche, die Berücksichtigung finden müssen, z. B. Geräteidentifikation, Gerätekonfiguration und Software-/Firmware-Updates. Tabelle 1 zeigt eine Liste allgemeiner Bedenken und wie sich diese Bedenken in eine Sicherheitsanforderung für ein Gerät umsetzen lassen. Jede Sicherheitsanforderung hat eine zugehörige Technologie, die häufig eingesetzt wird, um diese Anforderung zu erfüllen und potenzielle Angreifer abzuwehren.
Ein großes Problem vieler Embedded-Teams, die IoT-Edge-Anwendungen entwickeln, besteht darin, dass sie über keine internen Sicherheitsexperten verfügen. Das Ergebnis ist, dass sie entweder intern ihr Bestes tun müssen, um Sicherheit zu erlernen und zu implementieren, oder eine externe Quelle nutzen müssen. In jedem Fall können die Kosten und der Zeitaufwand außergewöhnlich hoch sein.
Es gibt eine Alternative: Das Entwicklungsteam kann eine MCU auswählen, die mit Blick auf die Sicherheit konzipiert wurde und sofort einsatzbereite Sicherheitslösungen bietet, die nur geringfügige Konfigurationsanpassungen für die jeweilige Anwendung erfordern.
Die MCU-Bausteine der PG23-Serie von Silicon Labs
Die Mikrocontroller der Serie EFM32PG23 von Silicon Labs sind aus mehreren Gründen eine interessante Option für IoT-Edge-Geräte. Erstens kann die PG23-MCU die eigene IoT-Sicherheitslösung „Secure Vault“ von Silicon Labs ausführen. Secure Vault ist eine Plattform für den Schutz und die Zukunftssicherheit von IoT-Geräten, die kürzlich als erste IoT-Sicherheitslösung den Status PSA Certified Level 3 erhalten hat. Zu den Funktionen, die Secure Vault für PG23-MCUs bietet, gehören die sichere Geräteidentität, die sichere Schlüsselverwaltung und -speicherung sowie die erweiterte Manipulationserkennung.
Secure Vault macht sich einen einzigartigen digitalen Fingerabdruck zunutze, der durch eine physisch nicht klonbare Funktion (PUF) erzeugt wird. Ein PUF kann zur Erstellung eines symmetrischen AES-Schlüssels verwendet werden, der physisch verschwindet, wenn das System ausgeschaltet wird. Der symmetrische AES-Schlüssel existiert nicht, wenn der Chip ausgeschaltet ist, so dass es unmöglich ist, ihn aus dem Gerät zu entfernen. Ein PUF ist eine effektive Lösung für die Herausforderung der Schlüsselverwaltung, mit der viele IoT-Edge-Anwendungen konfrontiert sind. Tatsächlich kann der PUF so viele Schlüssel unterstützen, wie für eine Anwendung erforderlich sind. Secure Vault enthält außerdem ein System zur Erkennung von Manipulationen, das dafür sorgt, dass der Schlüssel nicht rekonstruiert werden kann, wenn das Gerät nach einem Manipulationsereignis ausgeschaltet wird. Die wichtigsten Sicherheitsmerkmale lassen sich wie folgt zusammenfassen: sichere Attestierung, sicheres Schlüsselmanagement, sicherer Schlüsselspeicher und Manipulationssicherung.
Zusätzlich sind die MCUs der PG23-Reihe für Anwendungen mit geringem Stromverbrauch konzipiert. Der aktive Stromverbrauch liegt bei 21 µA pro MHz. 1,03 µA hoch ist der Stromverbrauch bei 16 KByte aktivem RAM im EM2-Modus bzw. 0,7 µA bei aktivierter Echtzeituhr (RTC) im EM4-Modus.
Der PG23 verfügt über einen Arm-Cortex-M33-Prozessor, der mit bis zu 80 MHz getaktet ist. Er lässt sich mit einer einzigen Stromversorgung im Spannungsbereich von 1,71 bis 3,8 V betreiben. Für Sensoranwendungen verfügt der Prozessor über eine Lesense-Schnittstelle. Untergebracht ist die MCU in einem 40-poligen QFN-Gehäuse mit den Maßen 5 × 5 mm² oder einem 48-poligen QFN-Gehäuse mit den Maßen 6 × 6 mm². Bild 1 zeigt das Block-Diagramm des PG23.
Erste Schritte auf dem Devkit PG23-PK2504A
Der beste Weg zur ersten Anwendung des PG23 ist die Verwendung des Entwicklungsboards PG23-PK2504A. Das Board verfügt über den Prozessor EFM32PG23B310F512, der von einem eigenen 512 KByte großen Flash und 64 KByte RAM unterstützt wird. Das Entwicklungsboard enthält eine breite Palette von Sensoren, Schnittstellen und ein 4×10-Segment-LCD (Bild 2).
Mit dem Board in der Hand können Entwickler Simplicity Studio herunterladen und installieren (unter der Registerkarte „Erste Schritte“). Simplicity Studio ist eine Startrampe für alles, was zum Evaluieren, Konfigurieren und Entwickeln mit EFM32-Mikrocontrollern benötigt wird. Die Software umfasst Materialien für den Einstieg, Dokumentation, kompatible Tools und Ressourcen.
Wenn ein Entwickler Simplicity Studio öffnet und ein Entwicklungsboard anschließt, erkennt die Software das Board und gibt Empfehlungen für Beispielprojekte, Dokumentation und Demos. Der Entwickler kann dann den für ihn besten Weg wählen, um mit dem PG23 zu experimentieren.
Ein hervorzuhebendes Merkmal des Entwicklungsboards ist der Schalter, der über die Stromversorgung des Entwicklungsboards entscheidet. Es gibt zwei Möglichkeiten: AEM oder BAT (Bild 3). Im AEM-Modus befindet sich ein Strommesswiderstand in Reihe mit der LDO-Stromversorgung und dem PG23. Der Vorteil dieses Modus besteht darin, dass die Entwickler zur Leistungsoptimierung die Stromaufnahme des Prozessors messen können. Sobald die Anwendung optimiert ist, können Entwickler in den BAT-Modus wechseln,
Minimierung des Stromverbrauchs: Tipps und Tricks
Die Minimierung des Energieverbrauchs ist für jedes IoT-Edge-Design entscheidend, unabhängig davon, ob es batteriebetrieben ist oder nicht. Die Optimierung eines Designs im Hinblick auf den Energieverbrauch kann sehr zeitaufwändig sein. Im Folgenden sind einige Tipps und Tricks genannt, die Entwickler beachten sollten, um eine IoT-Anwendung schnell für einen geringen Stromverbrauch zu optimieren:
- Verwenden einer ereignisgesteuerten Softwarearchitektur. Wenn das System keine Ereignisse zu verarbeiten hat, sollte es in einen Zustand mit geringer Stromaufnahme versetzt werden.
- Erstellen eines Profils des Batterieverbrauchs des Systems über mehrere Lade-/Entladezyklen. Dazu zeichnet der Entwickler die Stromaufnahme und die Betriebsspannung auf und stellt sie über der Zeit dar.
- Nutzen von Energiesparmodi zur automatischen Deaktivierung von Taktgebern, Peripheriekomponenten und der CPU.
- Bei einfachen Anwendungen kann die Arm-Cortex-M-Funktion „sleep on exit“ verwendet werden, um den Interrupt-Overhead beim Aufwecken des Systems zu minimieren.
- Kommt ein RTOS zum Einsatz, kann der „tickless“-Modus Verwendung finden, um zu verhindern, dass das RTOS das System versehentlich aufweckt.
- Entwickler sollten bei der Optimierung in Iterationen die Energieeinsparungen bei jeder Änderung verfolgen. An einem bestimmten Punkt wird der Punkt erreicht, an dem sich der Optimierungsaufwand in Form von Energieeinsparungen kaum noch lohnt. Dann ist es an der Zeit, mit der Optimierung aufzuhören und zur nächsten Stufe überzugehen.
Entwickler, die diese Tipps und Tricks befolgen, können sich viel Zeit und Ärger ersparen, wenn sie ihr nächstes sicheres IoT-Design mit geringem Stromverbrauch in Angriff nehmen. (na)