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.
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:
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.
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.