Auswahl der richtigen Speicherarchitektur für Firmware-Sicherheit
Trotz der zunehmenden Zahl von Cybervorfällen mit vernetzten IoT-Geräten wird die Sicherheit der Firmware oft vernachlässigt. Da Angreifer durch den System-Stack eindringen und auf den Boot-Prozess und Low-Level-Hardware-Konfigurationen abzielen, ist die Wahl der Speicherarchitektur zu einer wichtigen Entscheidung für die Einrichtung einer überprüfbaren Vertrauenskette (Chain of Trust) geworden.
Um Firmware zu sichern, muss daher jede Komponente vor der Ausführung kryptografisch überprüft werden. Der Weg beginnt mit einem unveränderlichen Bootloader, der die Hauptfirmware lädt und verifiziert. Die auf jeder Stufe verwendeten Speichertechnologien bestimmen jedoch die Anfälligkeit der Firmware für unbefugte Änderungen.
Interner vs. Externer Speicher
Der physische Speicherort des nichtflüchtigen Speichers, in dem die Firmware gespeichert wird, ist einer der kritischsten Faktoren im Bedrohungsmodell eines Geräts. Firmware-Ingenieure müssen sich zwischen dem integrierten On-Chip-Flash (eFlash) und einem externen Flash-Modul entscheiden, das über eine serielle Schnittstelle wie SPI oder QSPI angeschlossen wird.
Eingebetteter Flash ist in der Regel direkt auf dem Mikrocontroller- oder SoC-Chip integriert. Diese Architektur bietet den höchsten Grad an physischer Sicherheit, da es keinen externen Bus gibt, den ein Angreifer manipulieren könnte. Sogar der Zugriff auf den internen Flash wird über spezielle Register und Lock-Bits gesteuert.
Darüber hinaus unterstützt eFlash einen permanenten Ausleseschutz. Durch Kurzschließen einer speziellen Sicherung kann der Entwickler die JTAG- oder SWD-Debugging-Schnittstellen deaktivieren und so verhindern, dass der Hacker das Firmware-Image verändert. Die Technologie steht jedoch vor erheblichen Skalierungsproblemen, da die SoCs auf kleinere Knoten verlagert werden.
Ein externer Flash hingegen befindet sich außerhalb des Host-Prozessors und kommuniziert über eine serielle Highspeed-Schnittstelle. Diese architektonische Entscheidung erleichtert die Skalierung der Speicherkapazität, vergrößert aber auch die Angriffsfläche des Systems. Alle Daten, die zwischen dem Prozessor und dem externen Flash-Speicher übertragen werden, sind von Natur aus anfällig für Schnüffeleien, Man-in-the-Middle-Angriffe und physische Manipulationen.
Um diesen Risiken zu begegnen, müssen Firmware-Ingenieure robuste Hardware- und Softwareschutzmaßnahmen implementieren. Viele externe NOR-Flash-Komponenten sind mit einem physischen Schreibschutz-Pin ausgestattet. Wenn der Pin auf einer bestimmten Spannung gehalten wird, verhindert die interne Logik des Chips die Ausführung von Lösch- oder Schreibbefehlen.
Abbildung 1: Sicherer serieller NOR-Flash-Speicher W77Q32JWSSIR TR von Winbond Electronics mit hochentwickelter kryptografischer Verschlüsselung des Kommunikationskanals. (Bildquelle: Winbond Electronics)
Das bloße Sperren des Flash reicht jedoch nicht aus, wenn die Daten gelesen werden können. Angreifer können während der Ausführung weiterhin auf den Adress- und Datenbus zugreifen. Diese Schwachstelle führte zur Entwicklung spezieller, sicherer Flash-Komponenten, die hardwarebasierte Root-of-Trust-Mechanismen, verschlüsselte Kommunikationskanäle und monotone Zähler zur Verhinderung von Rollback-Angriffen umfassen.
Wenn jedoch die falsche Speicherarchitektur gewählt wird, kann das Gerät eine grundlegende Schwäche aufweisen, die auch durch Software-Patches nicht vollständig behoben werden kann. Ein Design, das Firmware auf einem externen EEPROM ohne Verschlüsselung oder Authentifizierung speichert, ist beispielsweise immer anfällig für Hardware-Angreifer. Auf der anderen Seite könnte die Wahl eines zu restriktiven Speichers die Funktionalität beeinträchtigen.
Daher ist es für Ingenieure wichtig, die besten Praktiken und Design-Tipps zu kennen, um die Sicherheit der Firmware durch die Speicherarchitektur zu maximieren.
Bewährte Verfahren für die Entwicklung sicherer Firmware-Speicher
Firmware-Ingenieure müssen diese Grundsätze bei der Entwicklung eines sicheren Firmware-Speicherpfads vom Einschalten bis zur Laufzeit beachten:
1. Hardware-basiertes Root-of-Trust
Die Ausführung muss immer in einem unveränderlichen Speicherbereich beginnen. So sollte z. B. ein Boot-ROM oder ein dauerhaft gesicherter Flash-Sektor den Code enthalten, der alle andere Firmware verifiziert. Damit wird sichergestellt, dass ein Angreifer die Überprüfung nicht durch Manipulation des ursprünglichen Codes umgehen kann.
2. Verwendung kryptographischer Signaturen
Implementieren Sie einen sicheren Bootloader, der nur mit einem vertrauenswürdigen privaten Schlüssel signierte Firmware-Images ausführt. Dies schützt vor nicht autorisiertem Code, selbst wenn ein Angreifer auf den Speicher zugreifen und Bits verändern kann. Wenn Vertraulichkeit ein Anliegen ist, verschlüsseln Sie die Firmware bei der Speicherung.
3. Nutzung der Sicherheitsmerkmale der Hardware
Wenn die Systemarchitektur externen Speicher verwendet, sollten Ingenieure Geräte wählen, die Hardwaresicherheit unterstützen, z. B. einen eingebauten Passwortschutz oder einfache Verschlüsselung. Diese sind zwar nicht so stark wie ein vollwertiges Sicherheitselement, bieten aber eine weitere Schutzschicht.
Abbildung 2: Serieller 32 Mbit NOR-Flash-Speicher MX25L3233FM2I-08Q von Macronix mit Unterstützung für serielle Peripherieschnittstellen. (Bildquelle: Macronix)
4. Isolierung von Firmware und Daten
Organisieren Sie Speicherbereiche so, dass der sensibelste Code getrennt ist. In MCUs sollten kritische Routineanweisungen in sichere Speicherbereiche gelegt werden. Auch bei der Firmware können Sie, sofern die Hardware dies unterstützt, bestimmte Flash-Speicherbänke als „Nur Ausführen“ oder „Nur Lesen“ kennzeichnen.
5. Planen Sie Sicherheits-Firmware-Updates
Stellen Sie sicher, dass der Aktualisierungsprozess selbst authentifiziert ist (z. B. signierte Aktualisierungspakete erfordern). Wenn der Entwurf einen externen Speicher für Staging-Updates verwendet, ist dieser mit der gleichen Sicherheit zu behandeln wie der primäre Firmware-Speicher.
Fazit
Die Wahl des richtigen Speichers für die Firmware kann über die Sicherheit eines eingebetteten IoT-Geräts entscheiden. Eine unsichere Speicherwahl, wie z. B. ein externer Speicher ohne Schutz, öffnet Angreifern Tür und Tor. Im Gegensatz dazu bietet eine gut gewählte Architektur, die On-Chip-Speicher mit sicherem externem Speicher und kryptografischen Kontrollen kombiniert, eine solide Grundlage für die Abwehr anspruchsvoller Angriffe.
Für Firmware-Ingenieure besteht die wichtigste Erkenntnis darin, die Root-of-Trust in einem manipulationssicheren Speicher zu belassen, Off-Chip-Speicher als nicht vertrauenswürdig zu behandeln und entsprechend zu kompensieren sowie alle Hardware-Sicherheitsfunktionen zu nutzen, die moderne Speichertechnologien bieten. Indem wir die Speichertechnologie auf die Sicherheitsanforderungen des Geräts abstimmen, können wir selbst den kleinsten IoT-Sensor vor Angriffen auf Firmware-Ebene schützen.
Have questions or comments? Continue the conversation on TechForum, Digi-Key's online community and technical resource.
Visit TechForum

