Security

Integritätsschutz für Embedded-Systeme

20. November 2012, 9:59 Uhr | Oliver Winzenried
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 3

Pre-Bootloader - der erste Schritt

Ein sicherer erster Schritt ist unabdingbar, da darauf die Überprüfung der Folgeschritte basiert. Angreifer dürfen nicht in der Lage sein, den Code zu entschlüsseln oder geheime Schlüssel zu extrahieren. Eine Lösung dafür sind Systems on Chip, kurz SOC, bei denen - nicht von außen lesbar und nicht änderbar - dieser Code und Schlüssel fest eingebrannt sind. Dieser kleine Pre-Bootloader hat nur geringe Funktionalität und lädt den eigentlichen Bootloader, dessen Integrität er sicherstellen kann. Er wird nur einmal entwickelt und nicht geändert.

passend zum Thema

Bild 6. Ableitung der Zertifikate zum Signieren verschiedener Programmcodes und Konfigurationsdateien vom Root-Zertifikat.
Bild 6. Ableitung der Zertifikate zum Signieren verschiedener Programmcodes und Konfigurationsdateien vom Root-Zertifikat.
© Elektronik

Zertifikatskette

Für das Signieren des Programm-Codes und auch von Parametern werden private Schlüssel, Private Keys, verwendet. Diese werden in einer sicheren Hardware, z.B. im CodeMeter-Dongle, gespeichert. Die Zertifikate werden als Dateien gespeichert. Sie enthalten:

  • Public Key, also den öffentlichen Schlüssel,
  • Einschränkungen der Gültigkeit, z.B. Ablaufdatum oder Bindung an ein bestimmtes Gerät,
  • Verwendungszweck, z.B. zur Sig-natur des Bootloaders, Signatur der Anwendung, der Konfigurations-dateien oder zum Erstellen weiterer Zertifikate und
  • das Zertifikat des Schlüssels, das zum Erstellen dieses Zertifikats verwendet wurde.

Dies erscheint auf den ersten Blick kompliziert, macht aber Sinn. In der Praxis wird das sogenannte Root-Zertifikat, das ganz oben in der Kette steht, nur verwendet, um die später verwendeten Zertifikate zu erstellen. Das Root-Zertifikat wird sicher verwahrt und nur benötigt, wenn neue Zertifikate erstellt werden müssen. Es darf keinesfalls kompromittiert werden. Bild 6 zeigt, wie die Zertifikate zum Signieren verschiedener Programmcodes und Konfigurationsdateien vom Root-Zertifikat abgeleitet werden und auch sogenannte „Certificate Revocation Lists“, kurz CRLs, erstellt werden. Damit können im Feld bei einem Update Zertifikate zurückgezogen beziehungsweise ungültig gemacht werden.

  • Root-Zertifikate sind unbegrenzt gültig. Sie werden sicher gegen Verlust aufbewahrt und werden nur benötigt, um neue Code-Signer-Root- oder Config-Signer-Root-Zertifikate zu erstellen. Bei Kompromittieren des Root-Zertifikats müssen die Geräte physikalisch getauscht werden.
  • Code-Signer-Root-Zertifikate sind zeitlich begrenzt gültig. Sie werden verwendet, um die eigentlichen Boot-Signer- und Code-Signer-Zertifikate zu erstellen. Bei Verlust können neue Zertifikate mit dem Root-Zertifikat erstellt werden. Im Falle des Kompromittierens kann das Zertifikat auf eine Sperrliste (CRL) gesetzt werden oder wird durch Ablauf ungültig. Eine Sperrliste kommt beispielsweise in den Bootloader.
  • Boot-Signer-Zertifikate werden verwendet, um den Bootloader zu signieren.
  • Mit Code-Signer-x-Zertifikaten werden Betriebssystem-Images, z.B. für VxWorks, oder Anwendungen signiert. Diese Zertifikate enthalten zusätzliche Parameter, in welchen Systemen sie gültig sind. Das Sperren erfolgt wie beim Code-Signer-Root-Zertifikat.
  • Config-Signer-Root-Zertifikate werden verwendet, um Zertifikate zur Konfigurationsdatensignatur zu erstellen und Konfigurationsdaten zu signieren; Config-Signer-x-Zertifikate dienen zum Signieren von Konfigurationsdaten.
  • CRL-Zertifikate stehen für „Certificate Revocation List” und dienen zum Zurückziehen von Zertifikaten. Sie werden online oder über Updates verteilt.

Kryptographisches Verfahren mit klarem Ablauf

Die Integrität von Embedded-Systemen lässt sich durch die Anwendung kryptographischer Verfahren in einem klar definierten Ablauf und einer sicheren Hardware zur Schlüssel- und Zustandsspeicherung gewährleisten. Wibu-Systems bietet mit CodeMeter ein Smart-Card-basiertes Schutzsystem an (Bild 7), das für industrielle Schnittstellen verfügbar ist, gebräuchliche Betriebssysteme unterstützt, z.B. Windows, Mac OS X, Linux sowie Windows Embedded, Real Time Linux, VxWorks und SPS-Systeme wie Codesys. Es enthält eine sichere Implementierung symmetrischer und asymmetrischer Verschlüsselungsverfahren (AES, RSA, ECC) sowie Hash-Funktionen (SHA-256), Funktionen zur Signaturvalidierung (ECDSA) und einen Zufallszahlengenerator. Die im Weiteren verfügbaren Werkzeuge ermöglichen es, alle oben beschriebenen Schritte zum Integritätsschutz umzusetzen.


  1. Integritätsschutz für Embedded-Systeme
  2. Angriffe und Schutz für Cyber-Physical Systems
  3. Realisierung der Integritätsprüfung
  4. Pre-Bootloader - der erste Schritt
  5. Grundbegriffe der Kryptografie

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu WIBU-SYSTEMS AG

Weitere Artikel zu Cyber-Security