Verwendung von DSCs und MCUs für den Schutz eingebetteter Systeme
Zur Verfügung gestellt von Nordamerikanische Fachredakteure von DigiKey
2023-07-25
Mit der Umstellung auf das Internet der Dinge (IoT) hat sich die Sicherheit in eingebetteten Anwendungen weit über ein optionales Merkmal hinaus entwickelt und ist zu einer unverzichtbaren Fähigkeit geworden, die zur Gewährleistung der Systemintegrität erforderlich ist. Um der wachsenden Zahl von Sicherheitsspezifikationen gerecht zu werden, benötigen Entwickler Lösungen, die nicht nur die Anforderungen der Anwendungen an einen geringen Stromverbrauch oder eine hohe Performance erfüllen, sondern auch hardwarebasierte Sicherheitsfunktionen wie Authentifizierung, Verschlüsselung, sichere Speicherung und sicheres Booten bieten.
Dieser Artikel gibt eine kurze Einführung in die Prinzipien der eingebetteten Sicherheit. Anschließend wird gezeigt, wie Entwickler die leistungsstarken digitalen Signalcontroller (DSCs) und die stromsparenden Mikrocontrollereinheiten (MCUs) PIC24F von Microchip Technology zusammen mit den spezialisierten Sicherheitskomponenten von Microchip einsetzen können, um die aufkommende Nachfrage nach strenger eingebetteter Sicherheit zu erfüllen.
Eingebettete Sicherheit beruht auf vier Grundprinzipien
Mit dem öffentlichen Internet verbunden, können intelligente Produkte in ausgeklügelte Anwendungen eingebunden werden, mit denen nur 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 Anwendungen und ihre Nutzer auch scheinbar endlosen Bedrohungen aus.
Neben der anhaltenden Nachfrage der Verbraucher nach Cybersicherheit auf Systemebene müssen die Entwickler zunehmend Sicherheitsspezifikationen von nationalen und regionalen Organisationen berücksichtigen. Zwei der einflussreichsten Spezifikationen, die europäische ETSI EN 303 645, "Cyber Security for Consumer Internet of Things: Baseline Requirements" (Grundlegende Anforderungen) und NIST IR 8259 (Grundlegende Cybersicherheitsaktivitäten für Hersteller von IoT-Geräten) aus den Vereinigten Staaten schlagen vor, dass Cybersicherheitspraktiken von vier Schlüsselprinzipien abhängen:
- Verwendung von eindeutigen Passwörtern
- Verfügbarkeit eines sicheren Speichers auf dem Gerät für sensible Sicherheitsparameter
- Sichere Kommunikation durch gegenseitige Authentifizierung und verschlüsselte Kommunikation
- Gewährleistung der Integrität und Authentizität der Firmware durch sicheres Booten und sichere Firmware-Aktualisierung
Die Bereitstellung von Systemen, die auf diesen Grundprinzipien basieren, erfordert den Einsatz einer vertrauenswürdigen Plattform, die verhindert, dass Hacker kompromittierten Code einschleusen, der die Kommunikation, die Speicherung, 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, stellt die Umsetzung der Sicherheit auf Systemebene eine Herausforderung dar, da eine Sicherheitslücke in jedem Teil des Systems eine Möglichkeit für einen Cyberangriff bieten kann. Durch den Einsatz der leistungsstarken DSCs dsPIC33C und der stromsparenden 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.
Erfüllung von Performance- und Energieverbrauchsanforderungen
Die Bausteine der DSC-Familie dsPIC33C und der MCU-Familie PIC24F von Microchip sind für eine Vielzahl von Anwendungsfällen konzipiert und kombinieren robuste Ausführungsplattformen mit anwendungsspezifischen Funktionen, einschließlich einer umfangreichen Palette integrierter Analog-, Wellenformsteuerungs- und Kommunikationsperipherie. Durch die Verwendung der mehrfachen Pulsweitenmodulation (PWM), der programmierbaren Verstärker (PGAs), der Analog/Digital-Wandler (ADCs) und anderer Peripheriekomponenten auf einem dsPIC33C-DSC können Entwickler komplexe Systeme mit einem Minimum an zusätzlichen Komponenten implementieren - in der Regel werden nur die für ein solches Design erforderlichen Leistungskomponenten benötigt. Ein Beispiel ist die Verwendung des Single-Core-DSC DSPIC33CK512MP608 zur Implementierung einer unterbrechungsfreien Stromversorgung (USV) (Abbildung 1).
Abbildung 1: Wie andere dsPIC33C-DSCs auch, verfügt der Single-Core-DSC DSPIC33CK512MP608 über eine umfassende Peripherie, die das Design komplexer Systeme wie der abgebildeten Offline-USV vereinfacht. (Bildquelle: Mikrochip-Technologie)
Für Anwendungen, die sowohl Echtzeit-Steuerung als auch digitale Signalverarbeitung erfordern, kombinieren die dsPIC33C-DSCs mit ihren speziellen Befehlen und Hardwarefunktionen die Fähigkeiten einer MCU und eines DSC. Für sicherheitskritische Designs sind die dsPIC33C-DSCs bereit für die funktionale Sicherheit nach IEC 60730 und ISO 26262 und bieten 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 Industrieanwendungen vereinfachen.
Während die dsPIC33C-DSCs für Anwendungen entwickelt wurden, bei denen die Performance im Vordergrund steht, bieten die MCUs PIC24F ein ausgewogenes Verhältnis zwischen Performance und Energieeffizienz für allgemeine eingebettete Systeme, Unterhaltungselektronik, Industrieautomatisierung, medizinische Geräte und andere Anwendungen, die Steuerung und Vernetzung erfordern, aber keine DSP-Fähigkeiten benötigen. Wie die dsPIC33C-DSCs sind auch die PIC24F-MCUs IEC60730-fähige Komponenten mit Sicherheitsdiagnosebibliotheken der Klasse B für Anwendungen im Haushalt.
Wie bereits erwähnt, ist die Integrität der Firmware ein Grundprinzip der eingebetteten Cybersicherheit. Um Entwickler bei der Sicherstellung der Firmware-Integrität und des allgemeinen Code-Schutzes zu unterstützen bietet Microchip „Flash-OTP (One-Time Programmable) by ICSP (In-Circuit Serial Programming) Write Inhibit“ und CodeGuard-Flash-Security in dsPIC33C-DSC-Bausteinen wie dem Single-Core-DSC DSPIC33CK512MP608 und dem Dual-Core-DSC DSPIC33CH512MP508, sowie in PIC24F-MCU-Bausteinen wie der MCU PIC24FJ512GU405 und vielen anderen, die mit verschiedenen anwendungsspezifischen 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-Funktionalität ermöglicht die serielle Programmierung dieser Bausteine über ein Paar Pins, während sie in der Endanwendung laufen. Mit dieser Fähigkeit können Hersteller die Programmierung auf Produktionsplatinen abschließen. Während ICSP die Verwendung eines externen Programmiergeräts zur Steuerung des Flash-OTP-Prozesses erfordert, ermöglicht Enhanced ICSP die Steuerung des Flash-OTP-Prozesses durch einen On-Board-Bootloader. Diese Komponenten unterstützen auch die Laufzeit-Selbstprogrammierung (RTSP), mit der sich der Flash-Anwendungscode während der Laufzeit selbst aktualisieren kann.
Nach der Programmierung ihres Produktionsgeräts können Entwickler die ICSP-Schreibsperre aktivieren, die jede weitere ICSP-Programmierung oder -Löschung verhindert. Dennoch können RTSP-Flash-Lösch- und Programmiervorgänge auch bei aktivierter ICSP-Schreibsperre fortgesetzt werden, wenn der entsprechende Flash-Update-Code vor der Aktivierung in den Baustein programmiert wird. 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-Flashs durch die Verwendung von separaten Boot- und allgemeinen Segmenten. Die Entwickler legen die Größe dieser Segmente fest, indem sie die Adresse des Bootsegments (BS) im BSLIM-Register 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 (Abbildung 2).
Abbildung 2: Die dsPIC33C-DSC- und PIC24F-MCU-Familien unterstützen den Schutz von Code in separaten Partitionen wie BS und GS. (Bildquelle: Microchip Technology)
Nach der Festlegung 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 vermindern.
Implementierung einer sicheren Over-the-Air-Firmware-Aktualisierung
Softwareentwickler sehen sich unweigerlich mit der Notwendigkeit konfrontiert, Software zu aktualisieren, um auf neu entdeckte Softwarefehler, Verbesserungen der Konkurrenz oder aufkommende Sicherheitsbedrohungen zu reagieren. Im Gegensatz zu Updates für mobile Anwendungen besteht bei der Durchführung sicherer Firmware-Updates in eingebetteten Systemen die Gefahr, dass sie im besten Fall laufende Anwendungen beeinträchtigen oder im schlimmsten Fall das System zum Absturz bringen. Die dsPIC33C-DSCs und die stromsparenden PIC24F-MCU-Familien von Microchip bieten einen Dual-Partition-Mechanismus, der Entwicklern hilft, diese Probleme zu vermeiden.
Im Standard-Betriebsmodus verwenden diese Komponenten den gesamten verfügbaren physischen Speicher als kontinuierlichen, einteiligen Speicherbereich (Abbildung 3, links), der in separate BS und GS konfiguriert werden kann. Im Dual-Partition-Modus teilen die Entwickler den physischen Speicher in separate aktive und inaktive Partitionen auf (Abbildung 3, rechts).
Abbildung 3: Entwickler können die dsPIC33C-DSC- und PIC24F-MCU-Familien im standardmäßigen Single-Partition-Modus oder im Dual-Partition-Modus betreiben. (Bildquelle: Mikrochip-Technologie)
Im Dual-Partition-Modus können diese Komponenten den Anwendungscode in der aktiven Partition weiter ausführen, während die inaktive Partition programmiert wird. Nach Abschluss der Programmierung veranlasst die Ausführung des Laufzeitbefehls 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 (Abbildung 4).
Abbildung 4: 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. (Bildquelle: Microchip Technology)
Nachdem der Erfolg der aktualisierten Partition sichergestellt ist, kann die Flash-Boot-Sequenz (FBTSEQ) der aktualisierten Partition auf einen niedrigeren Wert als die ursprüngliche Partition gesetzt werden. Bei nachfolgenden Neustarts des Geräts bootet das Gerät in die aktualisierte Partition mit dem niedrigeren FBTSEQ-Wert (Abbildung 5).
Abbildung 5: 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. (Bildquelle: Microchip Technology)
„Flash OTP durch ICSP Write Inhibit“ und CodeGuard-Flash-Sicherheit bietet wichtige Unterstützung für statische und Laufzeit-Codesicherheit, aber umfassende eingebettete Sicherheit erfordert zusätzliche Mechanismen, einschließlich sicherer Schlüsselspeicherung, Code-Authentifizierung und sicherer Kommunikation.
Verwendung von Sicherheits-Begleitbausteinen zur Gewährleistung der Sicherheit eingebetteter Systeme
Durch die Kombination von dsPIC33C-DSCs und PIC24F-Mikrocontrollern mit dem IC CryptoAuthentication ATECC608 oder dem CryptoAutomotive-Sicherheits-IC TrustAnchor100 (TA100) von Microchip können Entwickler die gesamte Palette an hardwarebasierten Sicherheitsfunktionen einfacher einsetzen.
Diese Sicherheits-ICs bieten hardwarebasierte, manipulationssichere Sicherheitsmechanismen, einschließlich sicherer Speicherung, hardwarebeschleunigter Kryptographie-Engines, echter Zufallszahlengeneratoren und anderer Mechanismen, die von kryptographischen Algorithmen benötigt werden. Die ICs wurden speziell als Zusatzbausteine entwickelt und können problemlos in DSC- oder MCU-Systemdesigns integriert werden, um die Implementierung der vollständigen Sicherheit eingebetteter Systeme zu vervollständigen (Abbildung 6).
Abbildung 6: Sicherheits-ICs wie der ATECC608 oder der TA100 ergänzen die Sicherheitsfunktionen der dsPIC33C-DSCs und PIC24F-MCUs und vereinfachen die Implementierung sicherer Embedded-Systeme. (Bildquelle: Microchip Technology)
Die Ausführung eines kritischen Vorgangs wie eines sicheren Firmware-Updates veranschaulicht die komplementären Sicherheitsfunktionen von dsPIC33C-DSCs und PIC24F-Mikrocontrollern in Verbindung mit diesen begleitenden Sicherheits-ICs. Die 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 mit Hilfe ihrer Entwicklungssysteme ein Update-Paket, das den Code, die Code-Metadaten und eine Signatur zur Überprüfung enthält (Abbildung 7).
Abbildung 7: Code-Signierung ist ein wichtiges Protokoll, das routinemäßig verwendet wird, um die Authentizität und Integrität von Code vor der Aktualisierung auf einem Zielsystem zu überprüfen. (Bildquelle: Microchip Technology)
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 TA100 von Microchip schnell und sicher Signaturprüfvorgänge durch, ohne das Risiko einer Kompromittierung (Abbildung 8).
Abbildung 8: In einem Zielsystem ist die hardwarebasierte Verifizierung durch einen Sicherheits-IC wie den ATECC608 oder TA100 unerlässlich, um die Verifizierung des Codes vor der Aktualisierung der Firmware durch den Bootloader zu gewährleisten. (Bildquelle: Microchip Technology)
Um die Implementierung sicherer Systeme zu beschleunigen, bietet Microchip eine Kombination aus Software- und Hardware-Entwicklungstools.
Schnellere Entwicklung von Software und Hardware
Während die integrierte Entwicklungsumgebung (IDE) MPLAB X dem Entwickler eine vollständige Softwareentwicklungsumgebung bietet, stellt der C-Compiler MPLAB XC Entwicklungsunterstützung für bestehende Toolchains bereit. Um die Entwicklung in beiden Umgebungen zu beschleunigen, können Entwickler 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.
Um die Implementierung eines geeigneten sicheren Bootloaders zu beschleunigen, bietet der Bootloader für dsPIC33-DSCs und PIC24-MCUs von Microchip eine grafische Schnittstelle, die Entwicklern hilft, die für ihre Anwendung erforderlichen benutzerdefinierten Bootloader schnell zu konfigurieren und zu erzeugen. Eine zugehörige Bootloader-Host-Anwendung vereinfacht die Übertragung von Anwendungscode auf das Zielgerät weiter.
Für die Hardware-Entwicklung bietet Microchip mehrere zugehörige Entwicklungsboards für den Aufbau von Systemen auf Basis von dsPIC33C-DSCs oder PIC24F-MCUs an. Das PIC-IoT Board EV54Y39A und das PIC-IoT Board AC164164 von Microchip (Abbildung 9) enthalten Sicherheits-ICs, die bereits mit Sicherheitsdaten für Amazon Web Services (AWS) bzw. Google Cloud ausgestattet sind.
Abbildung 9: Boards wie das PIC-IoT Board AC164164 beschleunigen die Entwicklung eingebetteter Sicherheitslösungen durch die Integration von Sicherheits-ICs, die bereits mit Anmeldeinformationen für AWS oder Google Cloud ausgestattet sind. (Bildquelle: Microchip Technology)
Für kundenspezifische Designs bietet Microchip ein dsPIC33CH-Curiosity-Entwicklungsboard (DM330028-2) an, das auf dem Dual-Core-DSC dsPIC33CH512MP508 basiert. Alternativ kann das dsPIC33CH128MP508-basierte Plug-in-Modul (MA330040) von Microchip an ein Microchip Explorer Embedded Evaluation Board (DM240001-2) angeschlossen werden, um die Entwicklung von sicheren Embedded-Systemen zu beschleunigen.
Fazit
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, darunter Firmware-Integrität, Authentifizierung, Verschlüsselung und sichere Speicherung. Während die dsPIC33C-DSCs und PIC24F-MCUs von Microchip den Code-Schutz vereinfachen, bieten die Sicherheits-ICs ATECC608 und TA100 die zusätzlichen Sicherheitsmechanismen, die für eine effektive Sicherheitsplattform erforderlich sind. Durch die Kombination dieser Bausteine kann der Bedarf an Sicherheit auf Systemebene in eingebetteten Lösungen für das Internet der Dinge (IoT) sowie für Anwendungen in den Bereichen Automobil, Industrie, Verbraucher und Medizin erfüllt werden.

Haftungsausschluss: Die Meinungen, Überzeugungen und Standpunkte der verschiedenen Autoren und/oder Forumsteilnehmer dieser Website spiegeln nicht notwendigerweise die Meinungen, Überzeugungen und Standpunkte der DigiKey oder offiziellen Politik der DigiKey wider.