Suchen

Internet der Dinge Schutz für vernetzte Geräte durch sicheres Booten und Kryptographie

| Autor / Redakteur: Yann Loisel, Stephane Di Vito * / Franz Graser

Der sichere Bootvorgang bildet das Fundament der Vertrauenswürdigkeit eines Geräts im IoT. Der Artikel zeigt, wie sich die Sicherheit von Geräten implementieren lässt und wie Updates im Feld möglich sind.

Firmen zum Thema

Die digitale Signatur eines Computerprogramms hat dieselbe Wirkung wie ein Siegel. Durch die Versiegelung kann der Code nicht mehr verändert werden, ohne dass die Veränderungen sichtbar werden.
Die digitale Signatur eines Computerprogramms hat dieselbe Wirkung wie ein Siegel. Durch die Versiegelung kann der Code nicht mehr verändert werden, ohne dass die Veränderungen sichtbar werden.
(Bild: Bayerisches Hauptstaatsarchiv, VBM)

Der wirksamste Schutz vor Angriffen auf die Hardware eines elektronischen Geräts ist ein Mikrocontroller, der mit der Verarbeitung der Software in einem internen, nicht veränderbaren Speicher beginnt (eine Möglichkeit, die nicht jeder Controller bietet). Da die im Mikrocontroller abgelegte Software nicht geändert werden kann, wird sie a priori als vertrauenswürdig angesehen und fungiert somit als Vertrauensbasis.

Bildergalerie

Ein solcher Schutz lässt sich mit ROM-Speicher (Read-Only Memory) realisieren. Alternativ kann ein interner Flash- (EEPROM) Speicher des Mikrocontrollers zum Ablegen der vertrauenswürdigen Software genutzt werden, sofern hinreichende Sicherheit gegeben ist.

Entweder muss ein Fuse-Mechanismus (Schmelzbrücke) vorhanden sein, der wie bei einem ROM ein Überschreiben des Flash-Inhalts nach dem Einprogrammieren unterbindet, oder es muss ein Authentifizierungs-Verfahren geben, das nur autorisierten Personen das Schreiben der vertrauenswürdigen Software in den Flash-Speicher erlaubt. Ließe sich nämlich die erste Software unkontrolliert modifizieren, dann kann kein Vertrauen garantiert werden.

Mit der „ersten Software“ ist die Software gemeint, die als erste nach dem Einschalten des Controllers ausgeführt wird. Das erklärt auch die Forderung, dass diese Software unbedingt vertrauenswürdig sein muss. Ist dies der Fall, dann kann diese Software die Signatur der Applikation verifizieren, bevor sie die Kontrolle über den Mikrocontroller abgibt. Man kann dies mit einer auf festen Fundamenten errichteten Burg vergleichen.

Nach dem Einschalten beginnt der Mikrocontroller des Geräts damit, den Vertrauensbasis-Code aus dem vertrauenswürdigen Speicher heraus zu verarbeiten. Die Hauptaufgabe des Codes besteht darin, den Applikations-Code zu starten, nachdem dessen Signatur erfolgreich verifiziert wurde.

Die Verifikation der Signatur erfolgt mithilfe eines öffentlichen Schlüssels, der zuvor mit Methode 1 (Selbstzertifizierung) oder Methode 2 (Hierarchische Zertifizierung) in den Mikrocontroller geladen wurde (siehe Kastentext).

Ergänzendes zum Thema
Methoden zur Garantie eines Public Keys

Bei einem öffentlichen Schlüssel müssen die Integrität, die Authentizität und die Identität garantiert sein. Hierfür gibt es verschiedene Möglichkeiten.

Methode 1: Selbstzertifizierung. Der Empfänger des digitalen Inhalts erhält den öffentlichen Schlüssel vom Absender persönlich, oder der Absender übermittelt den öffentlichen Schlüssel auf eine Weise, die keinen Zweifel am legitimen Ursprung und der Eigentümerschaft des öffentlichen Schlüssels zulässt. In diesem Fall kann diesem öffentlichen Schlüssel (auch als Root Key bezeichnet) vertraut werden, solange er an einem Ort verwahrt wird, an dem er nicht von Unbefugten manipuliert werden kann.

Methode 2: Hierarchische Zertifizierung. Bei diesem Verfahren garantiert eine Hierarchie von Verifizierern den Ursprung des öffentlichen Schlüssels. So genannte PKIs (Public-Key-Infrastrukturen) stellen die Definitionen für solche Hierarchien zur Verfügung. Als physische Verbindung zwischen einem öffentlichen Schlüssel und der zugehörigen Identität dient ein Zertifikat. Ein solches Zertifikat wird von zwischengeschalteten Zertifizierungs-Instanzen der PKI-Hierarchie signiert.

Die so geschützten Mikrocontroller können von den Entwicklern zum Schreiben von Software, zum Laden und Ausführen der Software per JTAG und für das Debugging eingesetzt werden. Die Entwicklung wird durch einen sicheren Mikrocontroller also nicht erschwert.

Artikelfiles und Artikellinks

(ID:43300352)