Die hierfür notwendige Kryptografie kann sich auf einem IoT-Gerät als Herausforderung herausstellen, insbesondere bei älteren, spezielleren oder leistungsschwachen Geräten. Diesen Geräten fehlt häufig die notwendige Hardwareunterstützung, weshalb Kryptografie rein softwareseitig ausgeführt werden muss. Dies hat einerseits Auswirkungen auf die Systemleistung, aber andererseits auch Auswirkungen auf die tatsächliche Datensicherheit. Beispielsweise ist das sichere Abspeichern von Geheimnissen ohne Hardwareunterstützung (TPM-Chip oder Ähnlichem) nicht möglich.
Im industriellen Umfeld ergibt sich hierdurch eine besondere Situation in Bezug auf die sichere Software-Entwicklung, da hier Geräte über einen deutlich längeren Zeitraum betrieben und gewartet werden. Der Gerätewechsel ist aufwendig und damit teuer, vorausgesetzt es finden sich passende Ersatzgeräte, die die notwendige Hardwareunterstützung besitzen.
Da viele IoT-Geräte über einen SD-Kartenslot verfügen, bietet es sich an, diesen zur Nachrüstung von Security-Funktionen. Dafür können sichere SD-Karten genutzt werden, welche es ermöglichen Partitionen zu schützen und zu verschlüsseln, sowie Geheimnisse abzuspeichern. Solche SD-Karten bietet etwa die Firma Swissbit an. Anhand von deren „Upgrade Kits“ haben wir exemplarisch untersucht, ob (und wie) über diesen Weg Funktionen nachgerüstet werden können.
Bei Datenspeichern wie einer SD-Karte besteht die Gefahr, dass ein Angreifer Zugriff auf die Daten des Speichers erhält, indem er einfach den Speicher physisch aus dem Gerät entfernt.
Entsprechend werden die Daten auf SD-Karten häufig verschlüsselt abgespeichert. Ohne Hardwareunterstützung kann das – insbesondere bei großen Datenmengen – eine deutliche Leistungseinbuße bedeuten.
Mit sicheren SD-Karten ist es möglich, einzelne Partitionen aktiv verschlüsseln zu lassen. Durch das Entsperren der SD-Karte erhält das Gerät Zugriff auf die Partitionen und kann transparent auf die Daten zugreifen, das heißt, dem Gerät werden die Daten entschlüsselt zur Verfügung gestellt. Hierdurch sind die Daten vor unbefugtem Zugriff sicher. Ein Angreifer müsste die SD-Karte entsperren, um auf die Daten zugreifen zu können.
Da die SD-Karten über verschiedene APIs entsperrt werden können, ist es möglich, sie entweder aus der Anwendung heraus über Nutzerinteraktion (beispielsweise durch PIN-Eingabe) oder automatisch durch Speicherung der Zugangsdaten zur SD-Karte innerhalb des Geräts zu entsperren.
Hierdurch ist die SD-Karte vor einfachem Diebstahl oder Austausch geschützt, da ein Angreifer zusätzlich die Zugangsdaten zur SD-Karte vom Gerät extrahieren muss. Um dies zu erschweren, können die Zugangsdaten in geschützten Bereichen innerhalb des Gerätes abgespeichert werden, wie beispielsweise in einem TPM-Modul sofern vorhanden.
Wahlweise können die SD-Karten auch ein Secure Element besitzen, das vom Gerät genutzt werden kann. Dadurch ermöglichen die SD-Karten das sichere Abspeichern von Geheimnissen innerhalb der SD-Karte. Damit kann das Gerät über die SD-Karte auf diese Geheimnisse zugreifen und sie nutzen. Dies ist nützlich, da viele industrielle IoT-Geräte nicht über ein solches Secure Element verfügen, wodurch beispielsweise die Speicherung von Zugangsdaten in Cloudsystem nicht sicher möglich ist.
Die sicheren SD-Karten unterstützen verschiedene Schutzmodi für Partitionen auf der SD-Karte. Diese Modi beinhalten einen „Write Once“-Modus, welcher verhindert, dass einmalig geschriebene Daten gelöscht oder verändert werden können. Daten können hierdurch nur einmal geschrieben werden und sind danach unveränderlich. Diese Funktionalität ist insbesondere für Audit Logs/Audit Trails interessant, da hier in der Regel sichergestellt werden muss, dass die Logs nicht nachträglich geändert werden können. Entsprechend stellt die Funktionalität der SD-Karte dies bereits sicherstellen.
Neben der bereits beschriebenen Funktionalität der sicheren SD-Karten, die auch zur IP-Protection genutzt werden können, existiert für die SD-Karten zudem eine Integration mit CodeMeter. Das heißt, es können WIBU-Lizenzen an die SD-Karten gebunden werden, wodurch die Karten als Lizenzdongles genutzt werden können.
Beim Secure Boot eines Systems werden die Integrität und Authentizität des gesamten Systems während des Bootprozesses validiert. Dies beginnt in der Regel mit der CPU, die den ersten Bootloader überprüft. Danach validiert jede Bootkomponente die jeweils nächste Komponente, bis schließlich das gesamte System verifiziert und gebootet ist. Hierdurch kann eine Korruption oder Manipulation des Systems während des Bootprozesses abgefangen werden. Secure Boot erfordert Hardwareunterstützung und entsprechende Integration auf Softwareseite. Eine Nachrüstung von Secure Boot auf Geräten gestaltet sich daher generell als schwierig. Einen alternativen Ansatz zu Secure Boot bietet die sichere SD-Karte. Hierbei werden die Bootloader und das Betriebssystem des Geräts auf geschützten Partitionen der SD-Karte abgelegt. Das Gerät startet einen modifizierten Bootloader auf der SD-Karte, der die geschützten Partitionen in der SD-Karte entsperrt und den Bootvorgang durchführt.
Durch die Nutzung der Hardwareeigenschaften als Entsperrmethode wird die SD-Karte auf das Gerät trainiert und kann automatisch entsperrt werden, solange sie im gleichen Gerät steckt. Mit weiterer Integrationsarbeit könnten auch Authentizitätschecks eingebaut werden, etwa indem notwendige Schlüssel sicher auf der SD-Karte gespeichert und entsprechende Partitionen vor Schreibzugriffen geschützt werden. Dadurch nähert sich das System einem tatsächlichen Secure Boot.
Zusammenfassend kann man sagen, dass sich durch entsprechende SD-Karten vielversprechende Optionen für die Nachrüstung von Security Funktionen ergeben.