Verschlüsselungstechnologien

Verschlüsselungstechnologien

Produkt- und
Know-how-Schutz

Softwareanbieter und Gerätehersteller müssen ihren Wettbewerbsvorsprung sichern: Ihr Know-how, das in ihren Produkten enthalten ist, schützen und auch sicherstellen, dass ihre Produkte so funktionieren, wie es erwartet wird.

 Die Schutzhardware CmDongle erfüllt industrielle Anforderungen. (Bild: WIBU-Systems AG)

Die Schutzhardware CmDongle erfüllt industrielle Anforderungen. (Bild: WIBU-Systems AG)


Die Zahlen der VDMA-Studie zu Produktpiraterie, die im April 2014 veröffentlicht wurde, sprechen eine deutliche Sprache: 7,9Mrd.E Schaden alleine beim Deutschen Maschinen- und Anlagenbau, neun von zehn Hersteller mit mehr als 500 Mitarbeitern sind betroffen und mit 72% ist Reverse-Engineering, also das Zerlegen der Produkte und das Analysieren der Softwarealgorithmen, die Hauptquelle zur Herstellung von Plagiaten. Dabei ist nach China als Herkunftsland von Plagiaten Deutschland bereits auf Platz 2. Dies zeigt, dass es sich um eine globale Herausforderung handelt. Parallel dazu nehmen Cyberangriffe und Spionage massiv zu. Die Frankfurter Allgemeine Zeitung, FAZ, titelte am 31.3.2014 ‚Cyberkriminelle verdienen mehr als Drogendealer‘ und zeigte auf, wie die Anzahl der Exploitkits zunimmt, deren Preise und Leistungsfähigkeit. Das Vertrauen in Security ist durch ständig aufgedeckte Lücken auch in Open-Source-Produkten und Geheimdienstaktivitäten gesunken. Unerwartete Sicherheitswarnungen und Produktabkündigungen, wie Ende Mai 2014 bei ‚TrueCrypt‘, tun ihr Übriges dazu. Deshalb sollen in diesem Artikel zunächst einige kryptographische Grundlagen erläutert werden und im zweiten Teil dann deren Anwendung im Produktschutz aufgezeigt werden.

Symmetrische Kryptographie

Bei der symmetrischen Verschlüsselung verwenden beide Teilnehmer den gleichen Schlüssel oder einen einfach ableitbaren Schlüssel. Beispiele für symmetrische Kryptosysteme sind FEAL (Fast Encryption Algorithm), IDEA (International Date Encryption Algorithm), DES (Data Encryption Standard) oder AES (Advanced Encryption Standard). Der Vorteil symmetrischer Kryptosysteme ist eine hohe Verschlüsselungsgeschwindigkeit; der Nachteil oder die Herausforderung besteht im sicheren Schlüsselaustausch und dessen geheimer Speicherung.

Asymmetrische Kryptographie

Bei der asymmetrischen Verschlüsselung werden unterschiedliche Schlüssel zum Ver- und Entschlüsseln verwendet. Bei diesem als Pub-lic-Key-Kryptographie bezeichneten Verfahren müssen die kommunizierenden Parteien keinen gemeinsamen geheimen Schlüssel kennen. Ein Benutzer erzeugt hier ein Schlüsselpaar, das aus einem geheimen Teil, dem privaten Schlüssel, und einem nicht geheimen Teil, dem öffentlichen Schlüssel, besteht. Der öffentliche Schlüssel ermöglicht es jedem, Daten für den Inhaber des privaten Schlüssels zu verschlüsseln, dessen digitale Signaturen zu prüfen oder ihn zu authentifizieren. Der private Schlüssel ermöglicht es seinem Inhaber, verschlüsselte Daten zu entschlüsseln, die mit seinem öffentlichen Schlüssel verschlüsselt wurden, digitale Signaturen zu erzeugen oder sich zu authentisieren. Beispiele für asymmetrische Algorithmen sind RSA (Rivest, Shamir und Adleman) oder ECC (Elliptic Curve Cryptography).

Hash-Funktionen

Eine Hash-Funktion ist eine Funktion, die eine Zeichenfolge beliebiger Länge auf eine Zeichenfolge mit fester Länge abbildet. Eine kryptographische Hash-Funktion ist eine spezielle Form der Hash-Funktion, welche zusätzlich kollisionsresistent oder eine Einwegfunktion (oder beides) ist. Weit verbreitet ist heute SHA-256. Angewandt werden Hash-Funktionen zur Integritätsprüfung von Dateien oder Nachrichten, zur Verschleierung von Passwortdateien, als Datenbasis digitaler Signaturen, als Pseudo-Zufallszahlengeneratoren oder zur Konstruktion von Blockchiffren.

Digitale Zertifikate

Ein digitales Zertifikat bestätigt bestimmte Eigenschaften von Personen oder Objekten, sodass dessen Authentizität und Integrität durch kryptographische Verfahren geprüft werden kann. Das Zertifikat enthält die zu seiner Prüfung erforderlichen Daten. Es wird von einer vertrauenswürdigen ‚Certificate Authority‘, CA, herausgegeben. Die CA unterschreibt mit ihrem privaten Schlüssel den öffentlichen Schlüssel und optionale Daten, die zu bestätigen sind. Jetzt kann jeder mit dem öffentlichen Schlüssel der CA prüfen, ob diese authentisch sind. Weit verbreitet sind Public-Key-Zertifikate nach dem Standard X.509.

Praxisanwendung und Schutzanforderungen

Folgende Schutzanforderungen werden betrachtet: Der Schutz von Quellcode erfolgt beispielsweise in SPS-Entwicklungssystemen wie Codesys, B&R Automation Studio oder Rockwell Studio 5000, aber auch der Zielsystemcode, also der ausführbare Code, der in einer Steuerung oder in einem Embedded-System in einem Gerät steckt, wird durch Verschlüsselung geschützt. Ein Kopieren von Festplatte oder Flash-Speicher bringt dann nichts. Weiterhin können auch Produktionsdaten und Parameter sowie Service- und Schulungsdokumente, die viel Know-how enthalten und durch Verschlüsselung geschützt werden. Durch die Verschlüsselung des Programmcodes wird nicht nur Reverse-Engineering verhindert, sondern auch das Nachbauen von Geräten und die Nutzung der Kopie, solange der Schlüssel nicht kopiert werden kann. Hier ist es also wichtig, die kryptographischen Schlüssel sicher zu speichern, beispielsweise in einem Smart Card Chip in einem Dongle, der nicht dupliziert und ausgelesen werden kann. Alternativen sind Schlüsseldateien, die an einen Fingerabdruck des Zielsystems gebunden werden. Je nach Bedrohungsszenario müssen hier die adäquaten Varianten gewählt werden, um sowohl unbeabsichtigte Mehrnutzung von Softwarelizenzen zu verhindern als auch Produktpiraterie, bei der die Nachbauer erheblichen technischen Aufwand treiben. Viele Funktionen in Geräten sind heute durch Software realisiert. Durch Konfiguration der nutzbaren Softwareteile können somit ganz einfach identisch produzierte Geräte unterschiedliche Leistungsfähigkeit bekommen. Diese kann dann vor Auslieferung oder aber auch erst beim Kunden automatisiert konfiguriert werden. Durch After-Sales-Freischaltung weiterer Funktionen werden neue Geschäftsmodelle umgesetzt. Wichtig ist, diese Konfiguration in die Geschäftsprozesse des Herstellers zu integrieren, z.B. durch eine Schnittstelle zum SAP-System, das softwarerealisierte Funktionen in einem Gerät genauso in einer Stückliste verwaltet wie mechanische Teile.

Manipulationsschutz

Um sicherzustellen, dass Programmcode nicht verändert wurde, wird bei der Erstellung ein Hash-Wert gebildet und signiert. Zusätzlich wird an den signierten Programmcode das Zertifikat angehängt, das bescheinigt, dass der Ersteller auch berechtigt ist, Programmcode zu signieren. Die Steuerung oder das Embedded-System prüft dann gegen den Root-Public-Key des Herstellers, ob die Signatur stimmt. Diese Prüfung stellt sicher, dass der Code nicht manipuliert wurde und er von einem berechtigten Herausgeber kommt. Diese Prüfung sollte durchgängig ab Einschalten eines Systems erfolgen. Bei ‚Secure Boot‘ wird bereits der Bootloader geprüft und entsprechend alle nachfolgenden Stufen, wobei auch Parameter geprüft werden können. Angriffe, wie Cyberangriffe, die versuchen, Code zu verändern oder Malware einzuschleusen, werden so verhindert.

Wie sieht die Zukunft aus?

Die Integrität von Embedded-Systemen lässt sich durch die Anwendung kryptographischer Verfahren in einem klar definierten Ablauf und einer sicheren Hardware zur Schlüsselspeicherung gewährleisten. Es existieren kommerzielle Schutzsysteme, die für industrielle Schnittstellen verfügbar sind und gebräuchliche Betriebssysteme unterstützen wie Windows, Mac OS X, Linux sowie Windows Embedded, Real Time Linux, VxWorks, SPS-Systeme wie Codesys und weitere. Eine sichere Implementierung symmetrischer und asymmetrischer Verschlüsselungsverfahren (AES, RSA, ECC) sowie Hash-Funktionen (SHA-256) und Funktionen zur Signaturvalidierung (ECDSA) sowie einen Zufallszahlengenerator und eine Zustandsmaschine sind dafür erforderlich. Mit Software-Werkzeugen ist es möglich, alle oben beschriebenen Schritte zum Integritätsschutz umzusetzen und in Entwicklungsprozesse zu integrieren. Da in der Praxis selten ideale Voraussetzungen vorliegen, der Programmcode der CPU irgendwann im Klartext zur Verarbeitung vorliegen muss und Seitenkanalangriffe nicht ausgeschlossen werden können, müssen neben den kryptographischen Verfahren noch weitere Mechanismen angewandt werden. Beispielsweise mit sogenannten ‚Fallen‘, die einen sicheren Schlüsselspeicher sperren, wenn Angriffe erkannt werden oder zustandsbehafteten Secure Elements, die Schlüssel für nachfolgende Stufen erst nach fehlerfreiem Durchlaufen der Stufe davor freigeben.

WIBU-Systems AG
www.wibu.de

Das könnte Sie auch Interessieren