Bild: Swissbit; iStock, Ktsimage

Flash-Memory mit Secure Element Sicher identifizieren

01.09.2017

Seitdem sich die Industrie mit dem Internet vernetzt, ist bei Embedded-Hardware nicht nur auf Funktionale Sicherheit, sondern auch auf Datensicherheit zu achten. Hierfür müssen sich die Geräte im Internet eindeutig identifizieren können. Möglich ist das mit einer sicheren Memory Card.

Für Entwickler von Embedded-Systemen bedeutet Sicherheit Safety und Security. Funktionale Sicherheit und Datensicherheit sind von ihnen in gleichem Maße zu beachten. Die Systeme müssen vor Missbrauch geschützt werden. Eine Grundvoraussetzung dafür ist eine möglichst einfache eindeutige Identifizierbarkeit von M2M-Kommunikationsteilnehmern. Eine smarte Option dafür bilden sichere Speichermedien, an die Kryptografie-Aufgaben mithilfe von PKCS­#11-Programmierung delegiert werden.

Klassische Lösungen sind ein Trusted-Platform-Modul (TPM) auf dem PCB vorzusehen oder auf ein externes Hardware-Security-Modul (HSM) zu verweisen. Der Flash-Speicherhersteller Swissbit bietet hingegen eine Alternative an: SD Memory Cards und microSD Memory Cards mit Secure Element. Die sicheren Flash-Memory-Module basieren auf Karten, die bereits seit längerem für den Industrieeinsatz spezifiziert sind, etwa durch deutlich erweiterte Temperaturbereiche, längere Lebensdauer und lange Verfügbarkeit. Die darin verwendete JavaCard SmartCard ist durch die deutsche und französische Behörde für IT-Sicherheit, das Bundesamt für Sicherheit in der Informationstechnik (BSI) und die Agence Nationale de la Sécurité des Systèmes d'Information (ANSSI), nach Common Criteria Level EAL 5+ zertifiziert.

Die Kombination des Identifizierungsmerkmals mit einem Standarddatenspeicher ist eine technisch elegante Lösung, da jedes System einen Speicher benötigt. Die sicheren Memory Cards kombinieren einen Flash-Speicherchip, eine Smartcard und einen Flash Controller. Dessen spezielle Firmware mit integriertem AES-Encryptor ermöglicht eine Vielzahl an Anwendungsszenarien.

Sicherheitsfunktion per API

Swissbit bietet eine PKCS#11-Library, mit deren Hilfe die Programmierschnittstelle (Application Programming Interface, API) der sicheren Speicherkarten genutzt werden kann. 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 Swissbit-PKCS#11-Applikationsprogramm, mit dessen Hilfe alle Sicherheitsfunktionen nachvollzogen werden können. Es verwendet die PKCS#11-API und implementiert eine Befehlszeilenschnittstelle (CLI) zur Swissbit-PKCS#11-Bibliothek. Als Schlüssel- und Zertifikatmanagementprogramm kann ein vorhandenes PKCS#11-kompatibles Tool zum Einsatz kommen oder auch das Open-Source-Tool xca, eine Applikation mit GUI für den Umgang mit X509-Zertifikaten.

Mit xca werden über die PKCS#11-API Anfragen zur Zertifikatssignierung auf Basis von geschütztem Schlüsselmaterial auf der Swissbit-Karte erstellt und Zertifikate auf die Karte kopiert. Zusätzlich lassen sich RSA- und ECDSA-Schlüsselpaare auf der Karte erzeugen. Ein praktischer Aspekt der PKCS#11-Nutzung ist, dass auch der Webbrowser Mozilla Firefox die PKCS#11-
API verwendet. Die Swissbit-PKCS#11-
Bibliothek integriert sich in Firefox und nutzt dabei die X509-Zertifikate zur SSL-Client-Authentisierung. Diese sind auf der Swissbit-Flash-Karte gespeichert und sichern so den Zugang zu und die Kommunikation mit Webseiten. Zudem bietet die PKCS#11-API einen OpenSSL Engine Support, wodurch OpenSSL direkt auf die Objekte auf der Karte zugreifen kann. Auf diesem Weg können alltäglich genutzte Sicherheitsmechanismen mit den Memory Cards realisiert werden.

Flash Cards personalisieren

In einem ersten Schritt können die sicheren Flash Cards einfach personalisiert werden. Unter Linux nutzt der Programmierer dazu das Swissbit-PKCS#11-CLI oder das xca-GUI im Menüpunkt „Token“. Zunächst wird eine PUK (SO PIN) gesetzt und ein Token Label erzeugt. Dann legt er eine initiale User-PIN fest. Einfache Anwendungsbeispiele sind außerdem das Erzeugen oder Laden von RSA- beziehungsweise ECDSA-Schlüsselpaaren, das Laden geheimer AES256-Schlüssel und das Erstellen und Verifizieren kryptografischer Signaturen. Auch lassen sich Dateien mittels geheimer AES-Schlüssel oder private/public RSA Keypair codieren und decodieren.

Mit xca können Certificate Signing Requests mit dem privaten Schlüssel auf der Swissbit Secure Flash Card erzeugt und X509-Zertifikate importiert werden. Voraussetzung für diese Vorgänge ist eine Certificate Authority, wobei die Dokumentation der Swissbit-Karten auch die Anleitung zur Erzeugung einer Test-CA für Entwicklungszwecke bietet. Zu den Anwendungen mit OpenSSL gehören beispielsweise die Signierung von Daten und die Verifikation der Signatur mit einem RSA-Schlüsselpaar oder dasselbe mit dem Hash einer Nachricht und ECDSA (Elliptic Curve).

Speicherkarte übernimmt Kryptografie

Diese Beispiele zeigen die Palette der Aufgaben, die der Programmierer an die Kryptografiefunktion der Flash Cards delegieren kann. Swissbit lädt in der Produktion in Berlin das Java Card Applet. Es besteht auch die Möglichkeit für Entwickler, eigene Java Card Applets zu entwickeln. Das Erzeugen von Zufallszahlen mit schwacher Entropie ist ein vielfach unterschätztes Problem. Unter Zuhilfenahme der zertifizierten Zufallszahlengeneratoren mit großer Entropie in Smart Cards lässt sich die Systemsicherheit bei der Erzeugung von symmetrischen Schlüsseln erhöhen. Alle wichtigen kryptografischen Funktionen werden vom in der Indus-
trie anerkannten PKCS#11-Standard bereitgestellt. Die Arbeitsteilung zwischen Host-Software und Smart Card läuft folgendermaßen: Alle sicherheitskritischen Operationen finden ausschließlich in der SmartCard statt, der funktional orientierte Teil sowie dessen Anbindung an die Nutzeranwendung hingegen durch die Host-Bibliothek.

Wird die Secure Flash Card von Swissbit in Embedded-Systeme integriert und als Token, Identität oder Verschlüsselungsinstanz genutzt, ergeben sich eine Reihe interessanter Anwendungsmöglichkeiten. Eine eindeutige Identifizierbarkeit kann beispielsweise als Echtheitszertifikat dienen. Gefälschte Geräte stellen nicht nur ein wirtschaftliches Problem dar, sie können aus Mangel an Qualität selbst zum Gesundheitsrisiko werden. Beispielsweise in Medizintechnik, Automobilbranche und Transportwesen verlassen sich die Nutzer selbstverständlich auf höchste und gleichbleibende Qualität. Fälschungen finden immer dann statt, wenn sich irgendjemand einen vielversprechenden finanziellen Vorteil verschaffen will. Qualität hat jedoch bekanntlich ihren Preis, sodass Maßnahmen, die Fälschungen erkennen oder verhindern, direkten Einfluss auf die Qualität haben.

Trusted Boot ist eine weitere gerätebezogene Anwendung. Dieses Konzept stellt sicher, dass Software nur auf bestimmter Hardware oder Hardwareklasse gestartet werden kann. Der Bootloader verwendet ein Authentifizierungsgeheimnis, das nur in der Boot-Umgebung verfügbar ist. Sobald die erste Stufe gestartet wird, erfolgt in den nächsten Stufen eine Hash-Berechnung für die jeweilige darauffolgende Stufe. Ist die Hash-Berechnung korrekt, wird der Decodierungsschlüssel für die nächste Stufe vom Modul bereitgestellt. Sobald eine solche Kaskade bedingt durch Manipulation oder Fehler zerbricht, 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 definieren. Solche Konzepte können ebenfalls mit sicheren Swissbit-Speicherkarten realisiert werden.

Lizenzierung mit Flash-Karte

Mit einer sicheren Flash-Karte lassen sich ferner Softwarelizensierung und Funktionsfreischaltung regeln. Durch Zugangskontrolle, Code-Verschlüsselung oder digitale Signatur können mit einem solchen „Dongle“ zum Beispiel Varianten in der Softwareausstattung von Produkten definiert und verwaltet werden. Die Flash-Karte erlebt auch in ihrer ursprünglichen Funktion als reiner Datenspeicher durch die Sicherheitsfunktionen interessante zusätzliche Anwendungsmöglichkeiten. Zum Beispiel benötigen auch Audit Trails einen vertrauenswürdigen Logging-Mechanismus. Jedes Ereignis, das sicher protokolliert werden muss, wird persistent und unveränderlich gespeichert.

Mit Hash-Ketten wird sichergestellt, dass jede Manipulation oder Löschung von Datenelementen erkannt würde. Exportierte Daten werden durch digitale Signatur versiegelt. Asymmetrische Verschlüsselung unter Verwendung des Secure Elements kann auch ganz einfach dem Datenschutz dienen. Die Applikation speichert passwortgeschützt Daten, damit diese nur von autorisiertem Personal oder einem entsprechenden System ausgelesen werden können.

IoT und M2M bergen die aktuell wahrscheinlich dringlichsten Sicherheitsproblematiken – im Hype um Indus-
trie 4.0 jedoch häufig vernachlässigt. Die Flash-Speicher mit Secure Element und Verschlüsselungsfunktion eröffnen eine elegante Möglichkeit, die Zwei-Faktor-Authentisierung in die Kommunikation zwischen Geräten und Anlagen einzuführen. Die Kommunikationsteilnehmer erhalten gewissermaßen einen Ausweis. Über das Internet kommunizierende Systeme oder deren Gateways im IoT können so eine nicht klonbare Identität aufweisen und sind gleichzeitig in der Lage, Daten kryptografisch stark gesichert zu senden und zu empfangen.

Dass Sicherheitsfunktionen ausgelagert werden können und diese bei der Entwicklung eines Embedded-Systems nicht in diesem selbst umgesetzt werden müssen, macht die Attraktivität der Idee mit einem externen Embedded HSM aus. Die SD Memory Cards mit Secure Element bieten darüber hinaus noch zwei weitere Vorteile: Durch die leichte Integrierbarkeit eignen sie sich zum einen für die Nachrüstung von bestehenden Produkten, zum anderen bieten sie genau dadurch Zukunftssicherheit.

Bedrohung Quantencomputer

Durch die immer raffinierteren Angriffsmethoden veralten Sicherheitslösungen schnell. Eine besondere Bedrohung der Kryptografieverfahren geht vom Quantencomputer aus, mit dessen Verfügbarkeit bereits in den nächsten Jahren gerechnet wird. Asymmetrische Kryptografie wird damit leicht zu knacken sein. Die Entwicklung einer Post-Quanten-Kryptografie (PQC) wird notwendig, sprich Algorithmen, die resistent gegen Angriffe mit Quantencomputern sind. Hersteller müssen deshalb bei Sicherheitslösungen nicht zuletzt aufgrund des IT-Sicherheitsgesetzes, welches stets den letzten Stand der Technik fordert, auf Aktualisierbarkeit achten – mit sicheren Speicherkarten als leicht austauschbare Module ist das kein Problem.

Bildergalerie

  • Um Schutz vor Hackerangriffen zu bieten, benötigen Flash-Speicher für IoT-Anwendungen entsprechende Sicherheitsfunktionen.

    Bild: Swissbit

  • Die PS-450 ist eine SD Memory Card für Sicherheitsanwendungen.

    Bild: Swissbit

Firmen zu diesem Artikel
Verwandte Artikel