Mit digitalen Signalcontrollern und MCUs

Embedded-Systeme vor Hackerangriffen schützen

6. November 2023, 14:30 Uhr | Von Rolf Horn, Applications Engineer bei DigiKey
© Pixabay

Sicherheit in eingebettete Systeme zu integrieren ist längst tägliche Aufgabe von Embedded-Entwicklern. Jedoch ist die Umsetzung nicht immer einfach. Hierbei können Produkte und Werkzeuge von Microchip Technology helfen, die von DigiKey vertrieben werden.

Diesen Artikel anhören

Mit dem Internet of Things (IoT) wurde die Sicherheit in eingebetteten Systemen nicht länger eine Option, sondern unverzichtbar und gewährleistet die nötige Systemintegrität. Um der wachsenden Zahl an Sicherheitsspezifikationen gerecht zu werden, benötigen Entwickler auf Sicherheit angepasste Produkte. Sie müssen Anforderungen wie eine geringe Leistungsaufnahme sowie eine hohe Performance erfüllen, zudem müssen sie ab sofort hardwarebasierte Sicherheitsfunktionen wie Authentifizierung, Verschlüsseln, sicheres Speichern und Booten bieten.
Der Artikel führt kurz in die Prinzipien der eingebetteten Sicherheit ein. Zudem zeigt der Autor auf, wie Entwickler digitale Signalcontroller (DSCs) und Mikrocontroller (MCUs) von Microchip Technology zusammen mit speziellen Sicherheitskomponenten einsetzen können, um die Nachfrage nach eingebetteter Sicherheit zu erfüllen.

Eingebettete Sicherheit beruht auf vier Grundprinzipien

Mit dem Internet verbunden, können Entwickler intelligente Produkte in ausgeklügelte Applikationen einbinden, mit denen lediglich wenige Einzelprodukte mithalten können. Die Bedrohung durch Cyberangriffe, die dieselben Verbindungswege nutzen, schränkt jedoch nicht nur den Wert intelligenter Produkte ein, sondern setzt diese Produkte, die zugehörigen Applikationen und ihre Nutzer vielen Bedrohungen aus.

Neben der anhaltenden Nachfrage der Verbraucher nach Cybersicherheit auf Systemebene müssen Entwickler zunehmend Sicherheitsspezifikationen von nationalen und regionalen Organisationen berücksichtigen. Zwei der einflussreichsten Spezifikationen, die europäische »ETSI EN 303645: Cyber Security for Consumer Internet of Things: Baseline Requirements« sowie die »NIST IR 8259: Grundlegende Cybersicherheitsaktivitäten für Hersteller von IoT-Geräten« aus den Vereinigten Staaten, nehmen an, dass Cybersicherheitspraktiken von vier Schlüsselprinzipien abhängen:

  • Verwenden von eindeutigen Passwörtern
  • Sicherer Speicher auf dem Gerät für sensible Sicherheitsparameter
  • Sichere Kommunikation mit gegenseitigem Authentifizieren und verschlüsselter Kommunikation
  • Gewährleisten der Integrität und Authentizität der Firmware mit sicherem Booten und sicherem Aktualisieren der Firmware

Das Bereitstellen von Systemen, die auf diesen Grundprinzipien basieren, erfordert den Einsatz einer vertrauenswürdigen Plattform. Sie verhindert, dass Hacker kompromittierten Code einschleusen, der die Kommunikation, den Speichervorgang, die Firmware oder sogar die Sicherheitsmechanismen selbst verändert.

Vertrauenswürdige Plattformen tragen zur Sicherheit bei, indem sie die Sicherheit auf Systemebene von Grund auf mit unveränderlichen hardwarebasierten Sicherheitsmechanismen aufbauen. Obwohl das Konzept einfach ist, ist die Umsetzung der Sicherheit auf Systemebene herausfordernd. Denn eine Sicherheitslücke in jedem Teil des Systems kann einen Cyberangriff ermöglichen. Mit dem Einsatz der DSCs dsPIC33C sowie der MCUs PIC24F von Microchip Technology in Kombination mit den dazugehörigen Sicherheitsbausteinen von Microchip können Entwickler Embedded-Designs, die Sicherheit auf Systemebene gewährleisten, einfacher implementieren.

passend zum Thema

Single-Core-DSC DSPIC33CK512MP608
Bild 1: Der Single-Core-DSC DSPIC33CK512MP608 verfügt über eine umfassende Peripherie, die das Design komplexer Systeme wie der abgebildeten Offline-USV vereinfacht.
© Microchip Technology

Anforderungen an Leistungs- und Energiebedarf

Die Bausteine von Microchip sind für viele Anwendungsfälle konzipiert und kombinieren Ausführungsplattformen mit anwendungsspezifischen Funktionen, einschließlich einer umfangreichen Palette integrierter Analog-, Wellenformsteuerungs- und Kommunikationsperipherie. So nutzt der DSC-Baustein dsPIC33C zum Beispiel eine mehrfache Pulsweitenmodulation (PWM), programmierbare Verstärker (PGAs), Analog/Digital-Wandler (ADCs) sowie weitere Peripheriekomponenten. Hiermit können Entwickler komplexe Systeme mit einem Minimum an zusätzlichen Komponenten implementieren – in der Regel benötigen Entwickler lediglich die für ein solches Design erforderlichen Leistungskomponenten. Ein Beispiel ist das Verwenden des Single-Core-DSC »DSPIC33CK512MP608« zum Implementieren einer unterbrechungsfreien Stromversorgung (USV) (Bild 1).

Für Applikationen, die sowohl eine Echtzeit-Steuerung als auch eine digitale Signalverarbeitung erfordern, kombinieren die DSCs mit ihren speziellen Befehlen und Hardwarefunktionen die Fähigkeiten einer MCU und eines DSC. Für sicherheitskritische Designs erfüllen die DSCs die Richtlinien der funktionalen Sicherheit nach IEC 60730 und ISO 26262. Hiermit bieten sie mehrere Hardware-Funktionen, die die Zertifizierung der funktionalen Sicherheit für Automotive-Safety-Integrity-Level B (ASIL-B) und SIL-2 für sicherheitskritische Automobil- und Industrieapplikationen vereinfachen.

Während die dsPIC33C-DSCs für Applikationen entwickelt wurden, bei denen die Leistung im Vordergrund steht, bieten die PIC24F-MCUs ein ausgewogenes Verhältnis zwischen Leistung und Energieeffizienz für Embedded-Systeme, Unterhaltungselektronik, Industrieautomation, medizinische Geräte und Applikationen, die Steuerung und Vernetzung erfordern, jedoch keine DSP-Fähigkeiten benötigen. Wie die DSCs sind ebenfalls die MCUs IEC-60730-fähige Komponenten mit Sicherheitsdiagnosebibliotheken der Klasse B für Applikationen im Haushalt.

Wie bereits erwähnt, ist die Integrität der Firmware ein Grundprinzip der eingebetteten Cybersicherheit. Um die nötige Firmware-Integrität und einen allgemeinen Code-Schutz zu gewährleisten, bietet Microchip verschiedene Features an. Zum Beispiel »Flash-One-Time Programmable (OTP) by In-Circuit Serial Programming (ICSP) Write Inhibit« sowie »CodeGuard«-Flash-Security für die dsPIC33C-DSC-Bausteine wie den Single-Core-DSC DSPIC33CK512MP608 oder den Dual-Core-DSC DSPIC33CH512MP508. Gleiches gilt für die PIC24F-MCU-Bausteine PIC24FJ512GU405 und viele andere, die mit applikationsspezifischen Peripheriebausteinen konfiguriert sind.

Schutz der Gerätefirmware

»Flash OTP by ICSP Write Inhibit« ermöglicht es Entwicklern, Teile des Flash-Speichers als OTP-Speicher zu konfigurieren und den Flash-Speicher mit einem Lese-/Schreibschutz zu versehen. Die von Microchip entwickelte ICSP-Funktion ermöglicht das serielle Programmieren der Bausteine über ein Paar Pin-Anschlüsse, während sie in der Endanwendung laufen. Mit der Fähigkeit können Hersteller die Programmierung auf Produktionsplatinen abschließen. Während ICSP ein externes Programmiergerät zum Steuern des Flash-OTP-Prozesses erfordert, steuert Enhanced ICSP den Flash-OTP-Prozess mit einem On-Board-Bootloader. Die Komponenten unterstützen zudem die Laufzeit-Selbstprogrammierung, mit der sich der Flash-Applikationscode während der Laufzeit selbst aktualisieren kann.

Nach dem Programmieren ihres Produktionsgeräts können Entwickler die ICSP-Schreibsperre aktivieren, die jedes weitere ICSP-Programmieren oder -Löschen verhindert. Trotzdem lassen sich RTSP-Flash-Lösch- und Programmiervorgänge selbst bei aktivierter ICSP-Schreibsperre fortsetzen, wenn man den entsprechenden Flash-Update-Code vor dem Aktivieren in den Baustein programmiert. Entwickler können daher einen vertrauenswürdigen Bootloader verwenden, um das Flash zu ändern, selbst wenn die ICSP-Schreibsperre aktiviert ist. So können sie die Firmware sicher aktualisieren und gleichzeitig externe Versuche, das Flash in Produktionssystemen zu aktualisieren, abwehren.

CodeGuard Flash Security bietet einen feinkörnigen Schutz des Programm-Flash durch das Verwenden separater Boot- und allgemeiner Segmente. Entwickler legen die Größe der Segmente fest, indem sie die Adresse des Bootsegments (BS) im Register BSLIM des Geräts festlegen – das allgemeine Segment (GS) belegt den restlichen Speicher. Zum weiteren Schutz sensibler Informationen enthält jedes Segment zusätzliche Partitionen. Das BS enthält beispielsweise die Interrupt-Vektortabelle (IVT), die optionale alternative Interrupt-Vektortabelle (AIVT) und zusätzlichen Anweisungswortraum (IW). Das Konfigurationssegment (CS), das wichtige Gerätekonfigurationsdaten enthält, liegt im Benutzeradressraum im GS.

Nach dem Festlegen von Segmentpartitionen können Entwickler das Firmware-Sicherheitsregister (FSEC) des Geräts verwenden, um optional den Schreibschutz zu aktivieren und die erforderliche Codeschutzstufe für jedes Segment festzulegen. Während der Laufzeit verhindert das Gerät, dass Code, der in einem Segment mit einer niedrigeren Codeschutzstufe enthalten ist, auf Code zugreift, der in einem Segment mit einer höheren Codeschutzstufe enthalten ist. In einem typischen System würden die Entwickler das BS mit einem Schreibschutz versehen und seinen Codeschutz auf ein hohes Niveau setzen, um externe Versuche, das BS einschließlich des Bootloaders zu verändern, zu verhindern.

Listing
Bild 2: Entwickler können die dsPIC33C-DSC- und PIC24F-MCU-Familien im Single-Partition- oder im Dual-Partition-Modus betreiben.
© Microchip Technology

Aktualisieren einer sicheren Firmware

Softwareentwickler müssen ihre Software aktualisieren, um auf neu entdeckte Softwarefehler, Verbesserungen der Konkurrenz oder aufkommende Sicherheitsbedrohungen zu reagieren. Im Gegensatz zu Updates für mobile Applikationen besteht beim Ausführen sicherer Firmware-Updates in eingebetteten Systemen die Gefahr, dass sie im besten Fall laufende Applikationen beeinträchtigen oder im schlimmsten Fall das System zum Absturz bringen. Die DSCs sowie die MCU-Familien von Microchip bieten einen Dual-Partition-Mechanismus, der Entwicklern hilft, solche Probleme zu vermeiden.

Im Standard-Betriebsmodus verwenden die Komponenten den gesamten verfügbaren physischen Speicher als kontinuierlichen, einteiligen Speicherbereich (Bild 2 links), der in separate BS und GS konfigurierbar ist. Im Dual-Partition-Modus teilen die Entwickler den physischen Speicher in separate aktive und inaktive Partitionen auf (Bild 2 rechts).

Dual-Partition-Modus
Bild 3: Im Dual-Partition-Modus können die dsPIC33C-DSCs und PIC24F-MCUs Anwendungscode in eine Partition laden, während in der anderen Partition weiterhin Anwendungscode ausgeführt wird.
© Microchip Technology

Im Dual-Partition-Modus können die Komponenten den Anwendungscode in der aktiven Partition weiter ausführen, während man die inaktive Partition programmiert. Nach Abschluss des Programmierens veranlasst der Laufzeitbefehl »Boot Swap« (BOOTSWP) das Gerät, das Boot-Ziel auf die aktualisierte Partition umzustellen. Wenn der Code in der aktualisierten Partition fehlschlägt oder sich anderweitig als fehlerhaft erweist, führt ein Gerätereset automatisch dazu, dass das Gerät in die ursprüngliche Partition startet (Bild 3). Nachdem der Erfolg der aktualisierten Partition sichergestellt ist, lässt sich die Flash-Boot-Sequenz (FBTSEQ) der aktualisierten Partition auf einen niedrigeren Wert als die ursprüngliche Partition setzen. Bei nachfolgenden Neustarts des Geräts bootet das Gerät in die aktualisierte Partition mit dem niedrigeren FBTSEQ-Wert (Bild 4).

Flash OTP mit ICSP Write Inhibit und CodeGuard-Flash-Sicherheit unterstützt hinsichtlich der statischen und Laufzeit-Codesicherheit. Umfassende eingebettete Sicherheit erfordert jedoch zusätzliche Mechanismen einschließlich sicherer Schlüsselspeicherung, Code-Authentifizierung und sicherer Kommunikation.

Dual-Partition-Modus
Bild 4: Der Dual-Partition-Modus ermöglicht es Entwicklern, die Reihenfolge für das Booten in die gewünschte Partition nach dem Zurücksetzen des Geräts festzulegen.
© Microchip Technology

Verwenden von begleitenden Sicherheitsbausteinen

Mit der Kombination aus Microchips DSCs und MCUs mit dem IC »CryptoAuthentication ATECC608« oder dem Crypto-Automotive-Sicherheits-IC »TrustAnchor100« (TA100) von Microchip können Entwickler die gesamte Palette an hardwarebasierten Sicherheitsfunktionen einfacher einsetzen.

Die Sicherheits-ICs bieten hardwarebasierte, manipulationssichere Sicherheitsmechanismen einschließlich sicherem Speichern, hardwarebeschleunigter Kryptografie-Engines, echter Zufallszahlengeneratoren und anderer Mechanismen, die kryptografische Algorithmen benötigen. Die ICs wurden speziell als Zusatzbausteine entwickelt und lassen sich in DSC- oder MCU-Systemdesigns integrieren (Bild 5).

Das Ausführen eines kritischen Vorgangs, zum Beispiel eines sicheren Firmware-Updates, veranschaulicht die komplementären Sicherheitsfunktionen von dsPIC33C-DSCs und PIC24F-Mikrocontrollern in Verbindung mit den begleitenden Sicherheits-ICs. Entwickler verwenden Code-Signierungsverfahren, um die Authentizität und Integrität des Codes vor dem Abschluss von Firmware-Aktualisierungsvorgängen zu überprüfen. Hier erstellen die Entwickler mithilfe ihrer Entwicklungssysteme ein Update-Paket, das den Code, die Code-Metadaten und eine Signatur zur Überprüfung enthält.

ATECC608
Bild 5: Sicherheits-ICs wie der ATECC608 oder der TA100 ergänzen die Sicherheitsfunktionen der Microchip-DSCs und MCUs und vereinfachen das Implementieren sicherer Embedded-Systeme.
© Microchip

Auf dem Zielsystem eliminiert die hardwarebasierte Signaturprüfung das Risiko kompromittierter Prüfprotokolle, wie es bei der bisher verwendeten softwarebasierten Signaturprüfung möglich war. Stattdessen führt ein begleitender Sicherheits-IC wie der ATECC608 und der TA100 von Microchip schnell und sicher Signaturprüfvorgänge durch, ohne das Risiko einer Kompromittierung. Um das Implementieren sicherer Systeme zu beschleunigen, bietet Microchip eine Kombination aus Software- und Hardware-Entwicklungs-Tools an.

Software und Hardware schneller entwickeln

Während die integrierte Entwicklungsumgebung (IDE) »MPLab X« dem Entwickler eine vollständige Softwareentwicklungsumgebung bietet, unterstützt der C-Compiler »MPLab XC« bei bestehenden Toolchains. Um das Entwickeln in beiden Umgebungen zu beschleunigen, können Anwender mit dem »MPLab Code Configurator« (MCC) von Microchip über eine grafische Oberfläche automatisch Initialisierungsprogramme generieren, Treiber erstellen, Pins zuweisen, Bibliotheken implementieren und auf andere Weise viele der kritischen Low-Level-Setup-Prozeduren und -Prozesse beschleunigen, die mit jedem Embedded-Software-Entwicklungsprojekt verbunden sind.

Zudem bietet der Bootloader für die dsPIC33-DSCs und PIC24-MCUs von Microchip eine grafische Schnittstelle. Sie hilft Entwicklern, die für ihre Applikation erforderlichen benutzerdefinierten Bootloader schnell zu konfigurieren und zu erzeugen. Eine zugehörige Bootloader-Host-Applikation vereinfacht das Übertragen von Anwendungscode auf das Zielgerät weiter.

AC164164
Bild 6: Boards wie das AC164164 beschleunigen das Entwickeln eingebetteter Sicherheit mit der Integration von Sicherheits-ICs, die bereits mit Anmeldeinformationen für AWS oder Google Cloud ausgestattet sind.
© Microchip Technology

Für die Hardware-Entwicklung bietet Microchip mehrere zugehörige Entwicklungs-Boards für den Aufbau von Systemen auf Basis der DSCs und MCUs an. Die Boards EV54Y39A und AC164164 von Microchip (Bild 6) enthalten Sicherheits-ICs, die bereits mit Sicherheitsdaten für Amazon Web Services (AWS) beziehungsweise Google Cloud ausgestattet sind.

Weiterhin bietet Microchip für kundenspezifische Designs das Entwicklungs-Board DM330028-2 an, das auf dem Dual-Core-DSC dsPIC33CH512MP508 basiert. Alternativ lässt sich das Plug-in-Modul MA330040 von Microchip an das Explorer Embedded Evaluation Board DM240001-2 anschließen, um das Entwickeln von sicheren Embedded-Systemen zu beschleunigen.

Sicherheit auf Systemebene erhöhen

Die Sicherheit eingebetteter Systeme hängt von der Verfügbarkeit hardwarebasierter Mechanismen ab, die in der Lage sind, die wichtigsten Grundsätze der Cybersicherheit zu unterstützen. Zum Beispiel Firmware-Integrität, Authentifizierung, Verschlüsselung oder sichere Speicherung. Während die dsPIC33C-DSCs und PIC24F-MCUs von Microchip den Code-Schutz vereinfachen, bieten die Sicherheits-ICs ATECC608 und TA100 zusätzliche Sicherheitsmechanismen, die für eine effektive Sicherheitsplattform erforderlich sind. Mit der Kombination der Bausteine lässt sich der Bedarf an Sicherheit auf Systemebene in Embedded-Systemen für das IoT sowie für Applikationen in den Bereichen Automotive, Industrie, Verbraucher und Medizin erfüllen.


Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu Digi-Key Corporation

Weitere Artikel zu Industrie-Computer / Embedded PC

Weitere Artikel zu Cyber-Security-Lösungen