Embedded-Systeme existieren selten als in sich abgeschlossene Einheiten. Viele haben Schnittstellen für die Kommunikation oder bieten zumindest die Möglichkeit eines Firmware-Updates. Damit sind diese Systeme zwar wartbar, aber auch angreifbar. Die funktionale Einheit aus Hardware und Software und damit die für das System erreichte Betriebssicherheit könnte korrumpiert werden. Missbrauch, Sabotage, Datendiebstahl, Fälschung: Safety Engineering sollte in Zeiten von IoT immer den Aspekt der Cyber Security einschließen.
Angriffsvektor ist dabei die Software. Nur: Wirklich sichere Systeme lassen sich nicht als reine Softwarelösung realisieren. Sie benötigen ein sicheres Hardwareelement, wie ein Trusted-Platform-Modul. Als Maßnahme, um den sicheren Betrieb eines Systems zu garantieren, sollte bereits sein Start lückenlos als Trusted Boot überwacht werden. Dieses Konzept stellt sicher, dass Software nur auf der spezifizierten Hardware oder Hardwareklasse gestartet werden kann. Der Boot Loader verwendet ein Authentifizierungsgeheimnis, das nur in der Boot-Umgebung (BIOS/UEFI) verfügbar ist. Nur auf Systemen, auf denen diese initiale Attestierungsinformation zur Verfügung gestellt werden kann, kann die erste Stufe gestartet werden. In den nächsten Stufen erfolgt eine Hash-Berechnung (Attestierung) für die jeweilige Stufe, was bei erwartetem Wert wie etwa die Herausgabe eines Entschlüsselungsschlüssels an die CPU zur Folge hat. Zerbricht diese Kaskade durch Manipulation oder Fehler, gilt das System als nicht mehr zuverlässig und geht erst gar nicht in Betrieb. Auf diese Weise lässt sich die Qualität eines Gerätes sehr strikt definieren. Aus der Ferne kann per Remote Attestation der Beweis eines ordnungsgemäßen Bootsvorgangs angefordert werden. Auf diese Weise können zwei Kommunikationspartner das jeweils entfernte System prüfen.
Flash-Speicher mit Secure Element
Ein TPM bindet Hardware und Software aneinander. Was für den Betrieb erwünscht ist, ist aber nicht unbedingt die ideale Basis für eine kostengünstige Entwicklung und einen flexiblen Einsatz. Denn: Die „aufgelötete Sicherheit“ bindet den Softwareentwickler an eine Plattform, erzwingt möglicherweise die Modifikation von Hardware, die sonst im Standard hätte verwendet werden können.
Der zunächst ungewöhnlich erscheinende Gegenentwurf: Das Secure Element wird nicht fest mit der Hardware verbunden, sondern austauschbar wie ein Dongle beigesteuert. Da praktisch jedes System Datenspeicher benötigt, etwa als Bootmedium oder um Daten zu sammeln, setzt die Lösung hier an. Industrietaugliche Flash-Speicher mit integrierter Smartcard und Firmware-Erweiterungen für Kryptographie und WORM-Modus erlauben nachrüstbare Sicherheitslösungen. Die TPM-Funktion auf einem Speichermedium ergibt eine ganze Reihe neuer Ansätze für Sicherheitslösungen im Bereich von Secure Boot, Datenschutz, Lizenzschutz und der sicheren Identifikation von Teilnehmern einer M2M-Kommunikation. Gleichzeitig behalten Systementwickler ihre Freiheiten in der Hardwareauswahl, lediglich die Standardschnittstellen für SD Memory Cards oder USB werden benötigt. Die Funktionalität eines TPM kann von der Smart Card in der Secure Storage Card als Java Card Applet implementiert oder individuell verbessert werden.
Identifizierbarkeit als Schlüssel
Solche sicheren Memory Cards bietet der auf langzeitverfügbare Flash-Speichermedien für die Industrie spezialisierte Hersteller Swissbit an. Die Cards bestehen aus einem Flash-Speicherchip, einem Flash Controller und einer SmartCard – in diesem Fall eine JavaCard SmartCard, zertifiziert nach Common Criteria Level EAL 5+. Die spezielle Firmware mit integriertem AES-Enkryptor ermöglicht weitere Anwendungsszenarien. Weil als Secure Element ein Krypto-Element genutzt wird, kann nicht nur die Kommunikation abgesichert, sondern es können auch Daten sicher verschlüsselt werden. So lassen sich Trusted-Boot-Konzepte realisieren, Lizenzen sichern. Dabei ist TPM und Speicher nicht wie beim TPM getrennt, was Brute-Force-Angriffe erleichtert, sondern Speicher und Sicherheitschip sind als eine untrennbare Einheit verbunden und kombinieren Plattformsicherheit und Datenschutz in starker Weise. Das Flash Memory mit Enkryptor kann dazu genutzt werden, weitere Datenspeicher (etwa klassische Festplatten) im System zu verschlüsseln. Flash-Speicherkarten dieser Art werden bereits in großem Umfang in abhörsicheren Mobiltelefonen, Polizei-Bodycams und zum Schutz von Patientendaten in der Medizintechnik eingesetzt.
Fälschungsschutz und Integritätsschutz
Abstrakt stellt die integrierte Smartcard zudem einen Ausweis als Nachweis einer Identität. Damit lassen sich Fälschungsschutz und Integritätsschutz etablieren. Gefälschte Geräte etwa stellen nicht nur ein wirtschaftliches Problem für die Hersteller dar, sie können auch für Anwender zum Risiko werden – wie in der Medizintechnik. Über einen eindeutig identifizierbaren Datenspeicher kann sichergestellt werden, dass die Kombination von Hardware und Software dem entspricht, was der Hersteller qualifiziert hat. Mit einer sicheren Flash-Karte lassen sich zudem Softwarelizenzierungen und Funktionsfreischaltungen regeln. Indem man eine Zugangskontrolle, eine Code-Verschlüsselung oder eine digitale Signatur integriert, kann man Varianten in der Softwareausstattung von Produkten definieren und verwalten. Dies wird im Maschinen- und Anlagenbau immer wichtiger, da sich bei teilweise ausgereizter und perfektionierter Mechanik Maschinen nur noch durch ihre „smarten“ Funktionen unterscheiden, sprich: durch Software.
Sichere M2M-Kommunikation
Wenn Geräte über das Internet kommunizieren, wird das Problem der Informationssicherheit vollends virulent. Systeme wie industrielle Steuerungen, die remote gewartet werden sollen, sind prinzipiell angreifbar. Verschlüsselung des Datenverkehrs und die eindeutige Identifizierbarkeit von M2M-Kommunikationsteilnehmern sind die sauberste Lösung. Analog zur Absicherung von Internetkommunikation in der IT, wo sich Anwender für eine Zwei-Faktor-Authentisierung mit einem Smartcard Token ausweisen, bieten Speichermodule mit Secure Element die Möglichkeit, den Teilnehmern in der M2M-Kommunikation einen Ausweis zu geben. So weiß im Internet der Dinge ein „Ding“, dass die empfangenen Daten oder Datenabfragen von einem anderen „Ding“ korrekt sind und die Quelle einer Nachricht wirklich die Systemkomponente ist, die sie vorgibt zu sein. Durch eine Remote Attestation kann einem Sicherheitsserver der Zustand eines Systems bewiesen werden und aufgrund dessen der Speicher erst zugreifbar gemacht werden. Hier zeigt sich die Stärke der Kombination von Security und Datenschutz.
Sicherheitsfunktionen integrieren
Das Beispiel der SD Memory Cards und USB-Sticks mit Secure Element zeigt, wie die Integration eines Hardwareelements in ein Sicherheitskonzept erfolgt. Die Delegierung von Kryptografieaufgaben an ein solches Medium erfolgt hier über PKCS#11-Programmierung (Public-Key Cryptography Standard). Um die API der sicheren Speicherkarten zu nutzen, bietet der Hersteller eine PKCS#11-Library. Die API definiert Funktionen, die zum Erstellen, Ändern, Verwenden und Löschen von kryptografischen Objekten auf sicheren Flash-Karten benötigt werden. Diese Objekte können X.509-Zertifikate, RSA-Private-/Public-Key-Paare, elliptische Schlüsselpaare, symmetrische Schlüssel oder Datenobjekte sein. Mitgeliefert wird ein PKCS#11-Applikationsprogramm, mit dem alle Sicherheitsfunktionen leicht nachvollzogen werden können. Es verwendet die PKCS#11-API und implementiert eine Befehlszeilenschnittstelle (CLI) zur PKCS#11-Bibliothek.
Sehr sicher dank Memory Cards
Als Schlüssel- und Zertifikatmanagementprogramm kann sowohl ein vorhandenes PKCS#11-kompatibles Tool, als auch das Open-Source-Tool xca zum Einsatz kommen, eine Applikation mit GUI für den Umgang mit X.509-Zertifikaten. Mit xca werden über die PKCS#11-API Anfragen zur Zertifikatssignierung auf Basis von geschütztem Schlüsselmaterial auf der Karte erstellt und Zertifikate auf die Karte kopiert. Zusätzlich dazu lassen sich RSA- und ECDSA-Schlüsselpaare auf der Karte erzeugen. Ein überaus praktischer Aspekt der PKCS#11-Nutzung ist, dass auch der Browser Firefox von Mozilla die PKCS#11-API nutzt. Die PKCS#11-Bibliothek integriert sich in Firefox und verwendet dabei die X.509-Zertifikate zur SSL-Client-Authentisierung. Diese sind auf der Flash-Karte gespeichert und sichern so den Zugang zu und die Kommunikation mit Webseiten. Die PKCS#11-API bietet zudem einen OpenSSL-Engine-Support, so dass OpenSSL direkt auf die Objekte auf der Karte zugreifen kann. Auf diesem Weg können alltäglich genutzte Sicherheitsmechanismen sehr sicher mit den Memory Cards realisiert werden. Die Integration in eine Vielzahl von Open-Source-Applikationen zeigt die Standardkonformität der PKCS#11-Schnittstelle.
Wechselbarer Flash schlägt TPM
Einen smarten Sicherheitsanker auf einem wechselbaren Flashspeichermedium als Basis für Sicherheitslösungen mit Authentisierung und Kryptografie zu nutzen, ist nicht nur kostengünstig und unabhängig von sonstiger Hardware. Eine solche Lösung ist auch langfristig sicherer und dem klassischen TPM-Ansatz deutlich überlegen. Cyber Security ist bekanntlich ein ewiger Rüstungswettlauf. Daher ist es von Vorteil, Module einer Sicherheitslösung gegebenenfalls austauschen und aufrüsten zu können. Das Extremszenario wäre hier die Post-Quanten-Kryptografie. Nachrüstbarkeit kann zudem ein Vorteil sein, wenn es darum geht, bestehende Produkte mit möglichst wenigen Eingriffen sicherer zu machen. Systemsicherheit wird auf diese Weise in Zukunft überhaupt erst planbar.