Secure Boot für Raspberry Pi
über
Die leichte Verfügbarkeit und Einfachheit des Raspberry Pi haben nicht nur Makern überzeugt. Im Laufe der Jahre und dank der Einführung des Raspberry-Pi-Compute-Moduls wurde er zunehmend auch in industriellen Anwendungen eingesetzt. Allerdings haben auf diesem Ansatz basierende Geräte eine große Achillesferse: Der primäre Massenspeicher in Form einer SD-Karte ist schlicht ungeschützt.
Ein Raspberry Pi selbst bietet keine Unterstützung für einen vertrauenswürdigen „Secure Boot“. Somit kann praktisch Jeder Ihre SD-Karte entfernen, eine Kopie davon ziehen und die gespeicherten Dateien, die Firmware und die Benutzerdaten untersuchen. Um dies zu verhindern hat Swissbit eine Lösung entwickelt, welche die Daten auf der SD-Karte verschlüsselt und die für eine Secure-Boot-Lösung erforderliche Authentifizierungsinfrastruktur integriert.
Swissbit AG
Die schweizer Swissbit AG war bis 2001 Teil der Siemens AG und hatte sich auf Speicherprodukte spezialisiert. Sie verfügt über eine Produktionsstätte in Berlin, um dort spezielle Speicherlösungen zu entwickeln und herzustellen. Ihre Secure Boot Solution für den Raspberry Pi ist ein solches Produkt.
Raspberry Pi und die fehlende Sicherheit
Wer mit einem Raspberry Pi arbeitet wird feststellen, dass er eine implizite Vertrauenskette verwendet. Das bedeutet, dass ein Raspberry Pi unabhängig vom verwendeten Boot-Medium versuchen wird, Code davon auszuführen. Dies öffnet ihn für Angriffe, die das Betriebssystem des Geräts kompromittieren können. Da jeder Benutzer und selbst jeder Angreifer vollen Zugriff auf die Daten des Boot-Mediums hat, ist es schwer zu erkennen, ob ein System kopiert oder mit Malware bzw. Data-Mining-Tools kompromittiert wurde. Dies kann im schlimmsten Fall dazu genutzt werden, um die Netzwerke anzugreifen, mit denen der Raspberry Pi verbunden ist.
Eine Gegenmaßnahme ist die Erweiterung des Raspberry Pi um eine sichere Boot-Lösung. Da die Hardware selbst jedoch nicht verändert werden kann, braucht es eine intelligente Lösung, die auch in bestehenden Systemen nachgerüstet werden kann. Hier spielt das PS-45u DP „Raspberry Edition“ von Swissbit zu einem vernünftigen Preis ihre Stärken aus. Da es sich um eine SD-Karte handelt, kann sie einfach das bestehende Speichermedium ersetzen und so Ihre Hardware nahtlos um einen sicheren Bootvorgang samt Datenschutz ergänzen.
Innenleben einer SD-Karte
Um zu verstehen, warum diese Lösung so besonders ist und warum eigene Speicher-Produktionsanlagen hier von Vorteil sind, muss man den Aufbau und die Funktion einer SD-Karte kennen. Die beiden entscheidenden Teile sind der eigentliche NAND-Flash-Speicher und der Speicher-Controller. Der Speicher-Controller wickelt die Schreib-, Lösch- und Lesesequenzen ab, die vom Host mit standardisierten Befehlen gesendet werden. NAND-Flash selbst ist aufgrund der hohen Zell-Dichte nicht fehlerfrei. Irgendwo im Speicher wird es einige Bits geben, die sich nicht wie vorgesehen verhalten. Solche Fehler müssen erkannt und wenn möglich korrigiert werden. Außerdem beeinträchtigt jedes Schreiben und Lesen auf einen NAND-Flash die Speicherzellen, was dazu führt, dass sie mit der Zeit ausfallen. Auch dies wird vom Speicher-Controller verwaltet.
Der Speicher-Controller verhält sich wie ein Mikrocontroller (siehe das Beispiel in Bild 1) mit einer CPU, spezieller Hardware für den Umgang mit Flash und der Host-Schnittstelle. Als Vermittler zwischen Host und rohem NAND-Speicher und verbirgt er die eigentlichen Lese- und Schreibvorgänge, behandelt schlechte Bits und kümmert sich um den Reservezellen, um die Lebensdauer der SD-Karte zu verlängern. Je weniger seltener die Datenbits beschrieben werden, desto geringer ist ihre Ausfallwahrscheinlichkeit.
PS-45u DP „Raspberry Edition“
Da Swissbit ihre SD-Karten selbst entwickelt und herstellt, kann ihr Speicher-Controller nach Bedarf optimiert oder erweitert werden. Während Consumer-SD-Karten dem Host lediglich den NAND-Speicher zur Verfügung stellen, hat Swissbit zusätzliche Sicherheitselemente hinzugefügt. Die PS-45u DP „Raspberry Edition“ von Bild 2 ist eine SD-Karte mit Sicherheits-Features, die unabhängig von der Host-CPU arbeiten.
Weitere Details zu den technischen Spezifikationen der Karte finden sich in Tabelle 1.
Der Host (hier eine Raspberry Pi) sieht einfach eine SD-Karte und kann, falls entsperrt, auf die darauf befindlichen Daten zugreifen. Derzeit funktioniert diese „Raspberry Edition“ von PS-45u DP mit den Modellen Raspberry Pi 2 und Raspberry Pi 3B+, wobei die Authentifizierung in einer von Swissbit angepassten Pre-Boot-Phase implementiert ist, um den Zugriff auf die Daten der SD-Karte zu entsperren. Die Karte ist außerdem gehärtet, um die Datenintegrität bei Stromausfall zu gewährleisten. Wer einen Raspberry Pi mit SD-Karten betreibt weiß wohl, dass die Karten einiger Hersteller selbst bei einem sauberen Herunterfahren aufgrund von Störungen auf den Strom- und Datenleitungen beschädigt werden können. Leider kann keine SD-Karte die Probleme verhindern, die ein unterbrochenes Schreiben des Betriebssystems auf die SD-Karte mit sich bringt. Im optimalen Fall hilft dann ein Wiederherstellungsversuch beim nächsten Hochfahren des Systems.
Die PS-45u DP „Raspberry Edition“ ist mit Kapazitäten von 8 GB und 32 GB direkt bei Mouser Electronics erhältlich. Neben dem Plus an Robustheit bieten diese Karten auch eine integrierte Verschlüsselung und Authentifizierung. Zwecks Authentifizierung werden derzeit drei Methoden unterstützt, die in Tabelle 2 aufgeführt sind. Dabei werden die Daten nur mit dem richtigen Zugangs-Token - einer PIN, einem USB-Token oder einem Authentifizierungsserver - freigeschaltet und zugänglich gemacht.
PIN-Policy bedeutet, dass eine vordefinierte PIN beim Hochfahren an der Kommandozeile eingegeben werden muss. Die USB-Policy arbeitet mit dem USB-Stick PU-50n (Bild 3) als Authentifizierungs-Token, der ebenfalls von Swissbit erhältlich ist.
Seine technische Spezifikation ist in Tabelle 3 aufgeführt.
Der USB-Stick entspricht einem Lizenz-Dongle, wie er für hochpreisige CAD-Tools erforderlich ist. Die NET-Policy erfordert die Implementierung eines Authentifizierungsservers, der irgendwo im Netzwerk läuft und die Verwendung der SD-Karte authentifiziert oder verweigert.
Um ein System mit PIN-Policy zu evaluieren, benötigen Sie einen Raspberry Pi (empfohlen: Modell 3B+) und ein PS-45u DP „Raspberry Edition“. Für die Evaluierung der NET-Policy benötigen Sie zusätzlich zu den Voraussetzungen für die PIN-Policy einen zweiten Raspberry Pi und eine reguläre microSD-Karte (empfohlen: S-50u).
Für die Evaluierung der USB-Policy benötigen Sie zusätzlich zu den Anforderungen der PIN-Policy den USB-Stick PU-50n DP „Raspberry Edition“. Bild 4 zeigt das benötigte Zubehöre zur Auswertung einer der drei Policies.
Sicherheitsnachrüstung bestehender Anwendungen
Da der Raspberry Pi beim Booten Zugriff auf einige Core-Firmware-Dateien benötigt, wurde das PS-45u DP „Raspberry Edition“ mit einer besonderen Sicherheitsfunktion ausgestattet, die eine nahtlose Integration in bestehende Projekte ermöglicht. Wenn die SD-Karte gesichert ist, befindet sich die erste Partition in einem Nur-Lese-Zustand. Dies erlaubt dem Pi, die Basis-Firmware und den ersten Teil der Software zu laden, die prüft, ob ein gültiger Token vorhanden ist. Während diese Firmware der ersten Stufe von jedem gelesen werden kann, ist sie vor Änderungen geschützt und verhindert, dass ein Angreifer Zugriff auf den Rest der SD-Karte erhält. Dies schützt die Software vor unbefugten Zugriffen mit einer der folgenden drei möglichen Authentifizierungsmethoden.
PIN-Policy
Die Verwendung der SD-Karte mit der PIN-Policy ist der einfachste Ansatz. Die SD-Karte muss anhand des SecureBoot SDK RPi Handbuchs von Swissbit konfiguriert werden. Derzeit benötigt man zur Einrichtung einer SD-Karte einen PC unter Windows (siehe Bild 5). Mit den mitgelieferten Tools kann eine PIN für die Karte gesetzt werden – die Verwendung des Standard-ASCII-Zeichensatzes wird dringend empfohlen. Unter Windows kann man die Karte zwar auch mit Sonderzeichen sperren und entsperren, jedoch erzwingt der Raspberry Pi beim Booten die Verwendung eines UK-Tastaturlayouts (qwerty). Dies kann bei Verwendung von nicht-UK-Tastaturen und alphanumerischen PINs zu Irritationen führen. Wenn etwa im Windows-Tool eine PIN „qwertz“ erstellt wurde und der Raspberry Pi mit einer angeschlossenen deutschen Tastatur bootet, muss man zur erfolgreichen Authentifizierung „qwerty“ eingeben, da „y“ und „z“ im Vergleich zum UK-Layout vertauscht sind.
Neben den Problemen mit dem Tastaturlayout erfordert dieser Ansatz, dass die PIN jedes Mal beim Booten eingegeben werden muss, um die SD-Karte zu entsperren und mit dem restlichen Bootvorgang fortzufahren. Bild 6 zeigt eine PIN-Eingabeaufforderung. Brute-Force-Angriffe, bei denen viele Kombinationen ausprobiert werden, sind ein generelles Risiko bei einem solchen Authentifizierungsansatz. Dies kann die SD-Karte per Hardware verhindern. Bei der Konfiguration der Karte kann die zulässige Anzahl falsch eingegebener PINs festgelegt werden, bevor die Karte weitere Versuche verweigert. Ist das Limit erreicht, kann die Karte nur noch mit einer (hoffentlich eingestellten und notierten) Supervisor-PIN entsperrt bzw. damit die PIN der SD-Karte geändert werden. Andernfalls bleibt die Karte dauerhaft gesperrt.
USB-Policy
Die USB-Policy ermöglicht einen unbeaufsichtigten sicheren Bootvorgang. Dies funktioniert durch Hinzufügen des USB-Sticks PU-50n DP von Swissbit als Sicherheits-Token (Bild 3). Das System wird anhand des Handbuchs eingerichtet, wobei SD-Karte und USB-Stick mit der gleichen PIN vorbereitet werden. Auf dem PU-50n DP ist die gleiche sichere Firmware installiert wie auf dem PS-45u DP. Nachdem der Raspberry Pi mit der SD-Karte bootet, findet eine Challenge-Response-Authentifizierung statt. Wenn dabei die PINs von PU-50n DP und PS-45u DP übereinstimmen, wird der Bootvorgang fortgesetzt. Ein Raspberry Pi mit diesem Setup ist in Bild 7 zu sehen. Bild 8 zeigt einen erfolgreicher Bootvorgang mit angeschlossenem USB-Stick PU-50n DP.
NET-Policy
Während PIN- und USB-Policy eine einfache Sicherheitsnachrüstung für Standalone-Geräte ohne Netzwerkzugang ermöglichen, ist die NET-Policy für an ein Netzwerk angeschossene Geräte gedacht. Hierzu ist ein Lizenzservers innerhalb dieses Netzwerks erforderlich, den ein Raspberry Pi mit einer PS-45u-DP-Karte zum Entsperren verwenden kann. Für den Lizenzserver wird ein vorgefertigtes Raspberry-Pi-Image bereitgestellt, mit dem eine handelsübliche 16-GB-SD-Karte beschrieben werden kann. Der Lizenzserver läuft unter Raspberry OS und verfügt über ein Webinterface zur Gerätekonfiguration. Der Setup-Prozess ist im Handbuch zum NetPolicyServer von Swissbit beschrieben.Nach dem Hochfahren startet der Desktop und es kann eine Verbindung über einen Browser zu https://localhost/NetPolicyServer/ hergestellt werden. Daraufhin wird die Konfigurationswebseite aufgerufen (Bild 9).
Um ein Gerät zum Lizenzserver hinzuzufügen, wird die UID der zu aktivierenden SD-Karte zusammen mit dem zugehörigen Kennwort benötigt. Diese Informationen stellt das Windows-Tool bereit, das auch für die Vorbereitung der SD-Karte verwendet wird. Laut Anleitung zur SD-Karten-Vorbereitung muss eine IP-Adresse (Bild 10) eingegeben werden. Derzeit ist das System auf IPv4-Netzwerke beschränkt. Wenn Sie keine IP-Adresse für Ihren Server eingeben möchten, gibt es stattdessen eine inoffizielle Unterstützung für einen DNS-Namen, die jedoch nicht im Handbuch beschrieben ist und auf eigene Gefahr verwendet werden sollte.
Nachdem der Client konfiguriert wurde, wird bei jedem Startversuch der NetPolicyServer kontaktiert. Raspberry Pi und Server verwenden ein Challenge-Response-Schema, um die SD-Karte zu entsperren. Wenn der Server nicht die richtige Antwort liefert oder nicht verfügbar ist, wird der Boot-Vorgang abgebrochen und die SD-Karte bleibt gesperrt. Diese zentralisierte Implementierung ermöglicht die Verwaltung der Geräte vom Server aus, worüber sie deaktiviert werden können, falls sie nicht mehr zum Booten berechtigt sind. Bild 11 zeigt einen Boot-Prozess mit serverseitig falsch gesetzten Anmeldeinformationen und fehlgeschlagenem Boot-Vorgang, Bild 12 einen erfolgreichen Bootvorgang.
Vorhandene Hardware nachrüsten
Der Vorteil beim Nachrüsten bestehender Hardware ist die Einfachheit des Vorgangs beim Austausch einer SD-Karte durch die PS-45u DP „Raspberry Edition“. Die mitgelieferten Beispiele und Dateien gehen davon aus, dass eine Linux-Version betrieben wird. Das bedeutet, dass auch eine bestehende Installation verwendet werden kann, sobald die Dateien zur Aktivierung der gewählten PS-45u-DP-Sicherheitsfunktionen gemäß Anleitung hinzugefügt wurden.Man könnte argumentieren, dass der Raspberry Pi in der Lage sein sollte, das auch mit systemeigener Festplattenverschlüsselung zu tun, aber leider müssen auf dieser Plattform alle kryptografischen Operationen in Software ausgeführt werden. Dies würde auf einem Raspberry Pi 2 oder 3 bei Festplattenzugriffen zu einer hohen Prozessorlast führen, was Leistungsengpässe bei der Ausführung von Standardanwendungen zur Folge hat. Da die PS-45u DP „Raspberry Edition“ die Verschlüsselung mit Hilfe des integrierten Controllers der SD-Karte implementiert, wird der Verschlüsselungsaufwand ausgelagert. Das hat den zusätzlichen Vorteil, dass die kryptographischen Schlüssel nicht offengelegt werden. Deshalb funktionieren die installierten Anwendungen nach dem Entsperren einer PS-45u DP ohne Leistungseinbußen, als kämen sie von einer normalen SD-Karte. Je nach Anwendung und gewählter Implementierungspolitik benötigt eine Sicherheitsumrüstung nicht sonderlich viel Zeit.
Laut Swissbit wurde die „Raspberry Edition“ als praxisnahes Lern- und Evaluierungs-Kit konzipiert. Swissbit will zeigen, wie Secure-Boot-Funktionen auf Embedded-Plattformen nachgerüstet werden können, die keine native Unterstützung dafür bieten. Für produktive Anwendungen auf Basis des Raspberry Pi empfiehlt Swissbit die Verwendung des robusten Raspberry Compute Modules CM3+.
Wünsche und Fazit
Die PS-45u DP „Raspberry Edition“ unterstützt derzeit die Modelle Raspberry Pi 2 und 3, da dies die am häufigsten verwendeten SoC-Versionen sind (sowohl für die Standard- als auch die Compute-Module). Wer Unterstützung für den Raspberry Pi 4 sucht, muss warten, bis die Softwarevoraussetzungen erfüllt sind, denn der Raspberry Pi 4 weist eine geänderte Boot-Architektur auf. Das Gleiche gilt auch für den NetPolicyServer, der eher als funktionierende Tech-Demo denn als vollwertiges, ausgefeiltes Produkt betrachtet werden kann. Es wäre schön, wenn es eine Dokumentation nebst Hintergrundinformationen gäbe, wie man einen eigenen NetPolicyServer zusammen mit zu den verwendeten Protokollen aufbaut, anstatt sich durch den Code wühlen zu müssen. Außerdem würden nicht mit Windows arbeitende Zeitgenossen PS-45u DP bestimmt gerne konfigurieren, ohne dass eine virtuelle Maschine oder ein Dual-Boot-Setup erforderlich sind.
Trotz dieser kleinen Wünsche für die nächste Generation bietet der Gesamtansatz dieser sicheren SD-Karte eine einfache Möglichkeit, Daten vor unerwünschtem Zugriff zu schützen. Der zentrale Netzwerkserver für die Authentifizierung ist ein weiterer Bonus. All das macht die Lösung von Swissbit zu einer guten Wahl für die Nachrüstung bestehender Geräte nachzurüsten mit mehr Sicherheit. PS-45u DP schützt Ihre Daten nicht nur vor Diebstahl, sondern schränkt auch den physischen Zugriff auf das Dateisystem des Raspberry Pi ein, der es etwaigen Angreifern sonst erlauben würde, das System zu kompromittieren.
Diskussion (4 Kommentare)