-
Die Erfindung betrifft ein Verfahren und System zum vertraulichen Bereitstellen von Softwarekomponenten, insbesondere von OEM-Softwarekomponenten.
-
Mittels Entwicklungswerkzeugen bzw. Entwicklungstools lassen sich Softwarekomponenten entwickeln bzw. herstellen. Softwarekomponenten bzw. Softwarebausteine können beispielsweise Programmabschnitte oder Unterprogramme sein. Diese Softwarekomponenten werden mit Hilfe einer Entwicklungsumgebung durch einen Softwarekomponentenhersteller bzw. OEM (Original Equipment Manufacturer) erstellt. Bei der Erstellung bzw. Programmierung von Softwarekomponenten entsteht ein Quell- bzw. Sourcecode der Softwarekomponente. Bei der Erstellung von Softwarekomponenten lassen die Softwarekomponentenhersteller bzw. OEMs ihr branchenspezifisches Spezialwissen bzw. ihr Know-how einfließen. Um einen Zugriff Dritter auf dieses interne Know-how zu verhindern, versuchen die Softwarekomponentenhersteller die im Sourcecode vorliegenden Softwarekomponenten vor einem Lesezugriff zu schützen.
-
Es ist daher eine Aufgabe der vorliegenden Erfindung, ein Verfahren und ein System zum vertraulichen Bereitstellen einer oder mehrerer Softwarekomponenten zu schaffen, die einen Lesezugriff auf die jeweilige Softwarekomponente zuverlässig verhindern und gleichzeitig eine Bearbeitung mit Standardtools erlauben.
-
Diese Aufgabe wird erfindungsgemäß durch ein Verfahren zum vertraulichen Bereitstellen einer Softwarekomponente mit den in Patentanspruch 1 angegebenen Merkmalen gelöst.
-
Die Erfindung schafft ein Verfahren zum vertraulichen Bereitstellen einer Softwarekomponente mit den folgenden Schritten:
- (a) Verschlüsseln der Softwarekomponente (SWK) mittels eines geheimen kryptographischen OEM-Schlüssels (KOEM) eines Softwarekomponentenherstellers (OEM);
- (b) Verschlüsseln des OEM-Schlüssels (KOEM) mittels eines ersten kryptographischen Systemschlüssels (Ksys1);
- (c) Transportieren der verschlüsselten Softwarekomponente (ENC-SWK) und des verschlüsselten OEM-Schlüssels (ENC-KOEM) von dem Softwarekomponentenhersteller (OEM) zu einer Zielsystemvorrichtung;
- (d) Entschlüsseln des transportierten verschlüsselten OEM-Schlüssels (ENC-KOEM) mittels eines zweiten kryptographischen Systemschlüssels (Ksys2);
- (e) Entschlüsseln der transportierten verschlüsselten Softwarekomponente (ENC-SWK) mittels des entschlüsselten OEM-Schlüssels (KOEM)
wobei die entschlüsselte Softwarekomponente (SWK) zur Ausführung auf der Zielsystemvorrichtung bereitgestellt wird.
-
Bei einer Ausführungsform des erfindungsgemäßen Verfahrens ist der erste kryptographische Systemschlüssel ein öffentlicher kryptographischer Schlüssel und der zweite kryptographische Systemschlüssel ein privater kryptographischer Schlüssel eines asymmetrischen Verschlüsselungsverfahrens.
-
Bei einer alternativen Ausführungsform des erfindungsgemäßen Verfahrens ist der erste kryptographische Systemschlüssel und der zweite kryptographische Systemschlüssel ein privater kryptographischer Schlüssel eines symmetrischen Verschlüsselungsverfahrens.
-
Bei einer möglichen Ausführungsform des erfindungsgemäßen Verfahrens wird die Zielsystemvorrichtung durch eine speicherprogrammierbare Steuereinheit gebildet.
-
Bei einer Ausführungsform des erfindungsgemäßen Verfahrens wird der erste kryptographische Systemschlüssel und der zweite kryptographische Systemschlüssel als Schlüsselpaar durch einen Hersteller der Zielsystemvorrichtung generiert.
-
Bei einer Ausführungsform des erfindungsgemäßen Verfahrens wird die Softwarekomponente mittels des geheimen kryptographischen OEM-Schlüssels des Softwarekomponentenherstellers OEM symmetrisch verschlüsselt.
-
Bei einer Ausführungsform des erfindungsgemäßen Verfahrens wird der geheime kryptographische OEM-Schlüssel des Softwarekomponentenherstellers OEM mittels des öffentlichen kryptographischen Schlüssels asymmetrisch verschlüsselt.
-
Bei einer Ausführungsform des erfindungsgemäßen Verfahrens ist der private Schlüssel manipulationssicher in der Zielsystemvorrichtung integriert.
-
Bei einer möglichen Ausführungsform des erfindungsgemäßen Verfahrens wird beim Verschlüsseln der Softwarekomponente eine kryptographische Prüfsumme generiert, die beim Entschlüsseln der transportierten verschlüsselten Softwarekomponente überprüft wird.
-
Bei einer möglichen Ausführungsform des erfindungsgemäßen Verfahrens wird die kryptographische Prüfsumme durch einen Message Authentication Code (MAC) gebildet.
-
Bei einer alternativen Ausführungsform des erfindungsgemäßen Verfahrens wird die kryptographische Prüfsumme durch eine elektronische Signatur gebildet.
-
Bei einer möglichen Ausführungsform des erfindungsgemäßen Verfahrens werden die verschlüsselte Softwarekomponente und der verschlüsselte OEM-Schlüssel des Softwarekomponentenherstellers OEM auf einem Datenträger gespeichert transportiert.
-
Bei einer alternativen Ausführungsform des erfindungsgemäßen Verfahrens werden die verschlüsselte Softwarekomponente und der verschlüsselte OEM-Schlüssel des Softwarekomponentenherstellers OEM in Datenpaketen über ein Netzwerk transportiert.
-
Bei einer möglichen Ausführungsform des erfindungsgemäßen Verfahrens wird mittels des geheimen kryptographischen OEM-Schlüssels des Softwarekomponentenherstellers OEM eine Softwarekomponente verschlüsselt.
-
Bei einer weiteren möglichen Ausführungsform des erfindungsgemäßen Verfahrens werden mittels des geheimen kryptographischen OEM-Schlüssels des Softwarekomponentenherstellers OEM gleichzeitig mehrere Softwarekomponenten verschlüsselt.
-
Die Erfindung schafft ferner ein System zum vertraulichen Bereitstellen von Softwarekomponenten für einen Anwender mit den in Patentanspruch 13 angegebenen Merkmalen.
-
Die Erfindung schafft ein System zum vertraulichen Bereitstellen von Softwarekomponenten (SWK) für einen Anwender mit:
mindestens einer Entwicklungsvorrichtung eines Softwarekomponentenherstellers (OEM) auf der mittels eines Entwicklungstools Softwarekomponenten (SWK) herstellbar sind, welche jeweils durch einen geheimen kryptographischen OEM-Schlüssels (KOEM) des Softwarekomponentenherstellers (OEM) verschlüsselt werden,
wobei der geheime kryptographische OEM-Schlüssel (KOEM) des Softwarekomponentenherstellers (OEM) durch einen ersten kryptographischen Systemschlüssels (Ksys1) verschlüsselt und zusammen mit der verschlüsselten Softwarekomponente (ENC-SWK) zu einer Zielsystemvorrichtung transportiert wird, die mittels eines zweiten kryptographischen Systemschlüssels (Ksys2) zunächst den transportierten verschlüsselten OEM-Schlüssel (ENC-KOEM) des Softwarekomponentenherstellers (OEM) entschlüsselt und anschließend die transportierte verschlüsselte Softwarekomponente (ENC-SWK) mittels des entschlüsselten OEM-Schlüssels (KOEM) des Softwarekomponentenherstellers (OEM) entschlüsselt, wobei die entschlüsselte Softwarekomponente (SWK) zur Ausführung auf der Zielsystemvorrichtung bereitgestellt wird.
-
Bei einer Ausführungsform des erfindungsgemäßen Systems weist die Zielsystemvorrichtung eine speicherprogrammierbare Steuerung auf, in welcher der private Schlüssel vorgesehen ist, welcher durch den Hersteller der Zielsystemvorrichtung generiert wird.
-
Bei einer Ausführungsform des erfindungsgemäßen Systems ist die OEM-Entwicklungsvorrichtung des Softwarekomponentenherstellers über ein Netzwerk mit der Zielsystemvorrichtung verbunden.
-
Bei einer möglichen Ausführungsform des erfindungsgemäßen Systems weist die Softwarekomponente mindestens ein auf der Zielsystemvorrichtung ablauffähiges Programm auf.
-
Die Erfindung schafft ferner eine Zielsystemvorrichtung mit den in Patentanspruch 17 angegebenen Merkmalen.
-
Die Erfindung schafft eine Zielsystemvorrichtung mit:
einer ersten Entschlüsselungseinheit, die einen transportierten verschlüsselten OEM-Schlüssel (KOEM) eines Softwarekomponentenherstellers (OEM) mittels eines zweiten kryptographischen Systemschlüssels (Ksys2) entschlüsselt,
einer zweiten Entschlüsselungseinheit, die eine transportierte verschlüsselte Softwarekomponente (ENC-SWK) mittels des durch die erste Entschlüsselungseinheit entschlüsselten OEM-Schlüssels (KOEM) des Softwarekomponentenherstellers (OEM) entschlüsselt und mit
einer Ausführeinheit, welche die durch die zweite Entschlüsselungseinheit entschlüsselte Softwarekomponente (SWK) ausführt.
-
Bei einer Ausführungsform der erfindungsgemäßen Zielsystemvorrichtung weist die Zielsystemvorrichtung mindestens ein Interface zum Empfangen von transportierten verschlüsselten Softwarekomponenten und von verschlüsselten OEM-Schlüsseln eines Softwarekomponentenherstellers auf.
-
Bei einer Ausführungsform der erfindungsgemäßen Zielsystemvorrichtung weist die Zielsystemvorrichtung Peripheriebauelemente für Sensoren und Aktoren auf, die über einen Bus mit der Ausführeinheit der Zielsystemvorrichtung verbunden sind.
-
Bei einer Ausführungsform der erfindungsgemäßen Zielsystemvorrichtung ist der zweite kryptographische Systemschlüssel ein privater kryptographischer Schlüssel eines asymmetrischen Schlüsselverfahrens.
-
Die Erfindung schafft ferner eine Entwicklungsvorrichtung mit den in Patentanspruch 22 angegebenen Merkmalen.
-
Die Erfindung schafft eine Entwicklungsvorrichtung eines Softwarekomponentenherstellers mit
einer ersten Verschlüsselungseinheit zur Verschlüsselung einer Softwarekomponente (SWK) mittels eines geheimen kryptographischen OEM-Schlüssels (KOEM) des Softwarekomponentenherstellers (OEM);
einer zweiten Verschlüsselungseinheit zur Verschlüsselung des kryptographischen OEM-Schlüssels des Softwarekomponentenherstellers (OEM) mittels eines ersten kryptographischen Systemschlüssels (Ksys1),
wobei die verschlüsselte Softwarekomponente (ENC-SWK) und der verschlüsselte OEM-Schlüssel (ENC-KOEM) einer Zielsystemvorrichtung bereitgestellt werden.
-
Bei einer Ausführungsform der erfindungsgemäßen Entwicklungsvorrichtung ist der erste kryptographische Systemschlüssel ein öffentlicher kryptographischer Schlüssel eines asymmetrischen Verschlüsselungsverfahrens.
-
Im Weiteren werden bevorzugte Ausführungsformen des erfindungsgemäßen Verfahrens und Systems zum vertraulichen Bereitstellen einer Softwarekomponente unter Bezugnahme auf die beigefügten Figuren beschrieben.
-
Es zeigen:
-
1 ein Ablaufdiagramm zur Darstellung einer möglichen Ausführungsform des erfindungsgemäßen Verfahrens zum vertraulichen Bereitstellen einer Softwarekomponente;
-
2 ein Blockschaltbild zur Darstellung einer möglichen Ausführungsform eines erfindungsgemäßen Systems zum vertraulichen Bereitstellen von Softwarekomponenten für einen Anwender.
-
Wie aus 1 zu erkennen, weist das erfindungsgemäße Verfahren zum vertraulichen Bereitstellen einer Softwarekomponente im Wesentlichen fünf Schritte S1–S5 auf.
-
In einem ersten Schritt S1 wird die Softwarekomponente SWK mittels eines geheimen kryptographischen OEM-Schlüssels KOEM eines Softwarekomponentenherstellers OEM verschlüsselt.
-
Anschließend wird in einem Schritt S2 der OEM-Schlüssel KOEM des Softwarekomponentenherstellers OEM mittels eines ersten kryptographischen Systemschlüssels Ksys1 verschlüsselt.
-
In einem weiteren Schritt wird die verschlüsselte Softwarekomponente ENC-SWK und der verschlüsselte OEM-Schlüssel (ENC-KOEM) von dem Softwarekomponentenhersteller OEM zu einer Zielsystemvorrichtung transportiert. Diese Zielsystemvorrichtung wird beispielsweise durch eine speicherprogrammierbare Steuereinheit SPS gebildet. Ein Transport der verschlüsselten Softwarekomponente ENC-SWK und des verschlüsselten OEM-Schlüssels ENC-KOEM erfolgt bei einer möglichen Ausführungsform auf einem Datenträger, der die verschlüsselte Softwarekomponente und den verschlüsselten OEM-Schlüssel speichert. Bei einer alternativen Ausführungsform werden die verschlüsselte Softwarekomponente und der verschlüsselte OEM-Schlüssel des Softwarekomponentenherstellers OEM in Datenpaketen über ein Netzwerk transportiert.
-
In einem weiteren Schritt S4 erfolgt eine Entschlüsselung des transportierten verschlüsselten OEM-Schlüssels ENC-KOEM mittels eines zweiten kryptographischen Systemschlüssels Ksys2.
-
In einem weiteren Schritt S5 wird die transportierte verschlüsselte Softwarekomponente ENC-SWK mittels des entschlüsselten OEM-Schlüssels KOEM entschlüsselt, wobei die entschlüsselte Softwarekomponente SWK zur Ausführung auf der Zielsystemvorrichtung, beispielsweise einer speicherprogrammierbaren Steuerung SPS, bereitgestellt wird.
-
Bei einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens werden der erste kryptographische Systemschlüssel Ksys1 und der zweite kryptographische Systemschlüssel Ksys2 als Schlüsselpaar durch einen Hersteller der Zielsystemvorrichtung generiert. Bei einer möglichen Ausführungsform des erfindungsgemäßen Verfahrens erfolgt das Ver- und Entschlüsseln mittels eines asymmetrischen Verschlüsselungsverfahrens, wobei der erste kryptographische Systemschlüssel Ksys1 ein öffentlicher kryptographischer Schlüssel Kpub und der zweite kryptographische Schlüssel Ksys2 ein privater kryptographischer Schlüssel Kpriv ist.
-
Bei einer alternativen Ausführungsform des erfindungsgemäßen Verfahrens erfolgt das Ver- und Entschlüsseln mittels eines symmetrischen Verschlüsselungsverfahrens, wobei der erste kryptographische Systemschlüssel Ksys1 und der zweite kryptographische Systemschlüssel Ksys2 ein privater kryptographischer Schlüssel sind.
-
Die Verschlüsselung der Softwarekomponente SWK mittels des geheimen kryptographischen OEM-Schlüssel KOEM des Softwarekomponentenherstellers OEM im Schritt S1 erfolgt bei einer Ausführungsvariante symmetrisch. Die Verschlüsselung des geheimen kryptographischen OEM-Schlüssel KOEM des Softwarekomponentenherstellers OEM mittels des öffentlichen kryptographischen Schlüssels Kpub erfolgt asymmetrisch. Dabei wird zur Entschlüsselung auf der Zielsystemvorrichtung ein privater Schlüssel Kpriv eingesetzt, der manipulationssicher in der Zielsystemvorrichtung, beispielsweise in der speicherprogrammierbaren Steuereinheit SPS, integriert wird.
-
Bei einer möglichen Ausführungsform wird beim Verschlüsseln der Softwarekomponente SWK im Schritt S1 eine kryptographische Prüfsumme generiert, die beim Entschlüsseln der transportierten verschlüsselten Softwarekomponente ENC-SWK überprüft wird. Diese kryptographische Prüfsumme kann beispielsweise durch einen Message Authentication Code MAC gebildet sein. In einer alternativen Ausführungsform wird die kryptographische Prüfsumme durch eine elektronische Signatur gebildet.
-
Bei einer möglichen Ausführungsform wird bei einem Schritt S1 eine Softwarekomponente SWK mittels eines geheimen kryptographischen OEM-Schlüssels des Softwarekomponentenherstellers OEM verschlüsselt. Bei einer möglichen Ausführungsform werden mittels des geheimen kryptographischen OEM-Schlüssels des Softwarekomponentenherstellers OEM gleichzeitig mehrere Softwarekomponenten SWK verschlüsselt.
-
2 zeigt ein Blockschaltbild einer möglichen Ausführungsform eines erfindungsgemäßen Systems 1 zum vertraulichen Bereitstellen von Softwarekomponenten SWK für einen Anwender. Das System 1 enthält mindestens eine Entwicklungsanordnung 2 eines Softwarekomponentenherstellers OEM und eine Zielsystemvorrichtung 3, die beispielsweise eine speicherprogrammierbare Steuerung SPS aufweist. Die OEM-Entwicklungsumgebung 2 des Softwarekomponentenherstellers OEM enthält mindestens eine Entwicklungsvorrichtung 2A, auf der mittels eines Entwicklungstools Softwarekomponenten SWK herstellbar sind. Bei diesen Softwarekomponenten kann es sich um beliebige Softwarekomponente bzw. Software-Bausteine handeln, insbesondere Programme, Unterprogramme oder Subroutines oder auch Dateien.
-
Die Entwicklungsumgebung 2 des Softwarekomponentenherstellers enthält eine erste Verschlüsselungseinheit 2B, durch die die zugeführte Softwarekomponente SWK mittels eines geheimen kryptographischen OEM-Schlüssels KOEM des Softwarekomponentenherstellers OEM verschlüsselt wird. Diese erste Verschlüsselungseinheit 2B kann eine Softwarekomponente oder gleichzeitig mehrere Softwarekomponenten mittels des geheimen kryptographischen OEM-Schlüssels des Softwarekomponentenherstellers verschlüsseln. Der geheime kryptographische OEM-Schlüssel KOEM des Softwarekomponentenherstellers befindet sich, wie in 2 dargestellt, beispielsweise in einem Speicher 2C der OEM-Entwicklungsumgebung 2. Die Softwarekomponente SWK wird mittels des geheimen kryptographischen OEM-Schlüssels KOEM des Softwarekomponentenherstellers OEM in der Verschlüsselungseinheit 2B vorzugsweise symmetrisch verschlüsselt und gelangt zu einem Interface 2D der OEM-Entwicklungsumgebung 2.
-
Die OEM-Entwicklungsumgebung 2, wie sie in 2 dargestellt ist, weist neben der ersten Verschlüsselungseinheit 2B eine zweite Verschlüsselungseinheit 2e auf. In der zweiten Verschlüsselungseinheit 2E wird der aus dem Speicher 2C ausgelesene geheime kryptographische OEM-Schlüssel des Softwarekomponentenherstellers OEM durch einen ersten kryptographischen Systemschlüssel Ksys1 verschlüsselt. Der durch die zweite Verschlüsselungseinheit 2E verschlüsselte geheime OEM-Schlüssel des Softwarekomponentenherstellers OEM sowie die durch die erste Verschlüsselungseinheit 2B verschlüsselte Softwarekomponente ENC-SWK wird über das Interface 2D der OEM-Entwicklungsumgebung 2 mittels eines Transportmittels 4 zu einem Interface 3A einer Zielsystemvorrichtung 3 transportiert. Bei der Zielsystemvorrichtung 3 handelt es sich beispielsweise um eine speicherprogrammierte Steuerung SPS. Bei dem in 3 dargestellten Ausführungsbeispiel wird das Transportmittel 4 durch eine Leitung bzw. ein Netzwerk gebildet. Bei dieser Ausführungsvariante wird die verschlüsselte Softwarekomponente ENC-SWK sowie der verschlüsselte OEM-Schlüssel ENC-KOEM des Softwarekomponentenherstellers OEM in Datenpaketen über das Netzwerk zu der Zielsystemvorrichtung 3 transportiert.
-
Bei einer alternativen Ausführungsform ist das Transportmittel 4 ein Datenträger, auf dem die verschlüsselte Softwarekomponente ENC-SWK und der verschlüsselte OEM-Schlüssel ENC-KOEM gespeichert sind. Bei dieser Ausführungsvariante wird durch das Interface 2D der verschlüsselte OEM-Schlüssel und die verschlüsselte Softwarekomponente ENC-SWK auf den Datenträger geschrieben bzw. gespeichert. Das Interface 3A der Zielsystemvorrichtung 3 liest bei dieser Ausführungsvariante den auf den Datenträger gespeicherten verschlüsselten OEM-Schlüssel ENC-KOEM sowie die verschlüsselte Softwarekomponente ENC-SWK von dem Datenträger aus.
-
Die Zielsystemvorrichtung 3 weist eine erste Entschlüsselungseinheit 3B auf, die den transportierten verschlüsselten OEM-Schlüssel ENC-KOEM mittels eines zweiten kryptographischen Systemschlüssel Ksys2 entschlüsselt. Der auf diese Weise erzeugte bzw. entschlüsselte OEM-Schlüssel KOEM des Softwarekomponentenherstellers OEM wird von der ersten Entschlüsselungseinheit 3B einer zweiten Entschlüsselungseinheit 3C der Zielsystemvorrichtung 3 bereitgestellt. Die zweite Entschlüsselungseinrichtung 3C der Zielsystemvorrichtung 3 entschlüsselt anschließend die transportierte bzw. empfangene Softwarekomponente ENC-SWK mittels des entschlüsselten OEM-Schlüssels KOEM und stellt die entschlüsselte Softwarekomponente SWK zur Ausführung auf der Zielsystemvorrichtung 3 bereit. In einer möglichen Ausführungsform weist die Zielsystemvorrichtung 3 eine Ausführeinheit 3D auf, die über einen Bus 5 mit Peripheriebauelementen 6-1 bis 6-n für Sensoren und Aktoren verbunden ist. Bei der Ausführeinheit 3D handelt es sich beispielsweise um eine CPU bzw. einen Mikroprozessor. Die von der zweiten Entschlüsselungseinheit 3C zurückgewonnene Softwarekomponente SWK kann beispielsweise durch ein ablauffähiges Programm bzw. Unterprogramm gebildet sein, das durch die Ausführeinheit 3D der Zielsystemvorrichtung 3 nach der Entschlüsselung direkt ausgeführt wird.
-
Bei einer Ausführungsform des erfindungsgemäßen Systems 1 zum vertraulichen Bereitstellen von Softwarekomponenten SWK ist der in dem Speicher 2C abgelegte erste kryptographische Systemschlüssel Ksys1 ein öffentlicher kryptographischer Schlüssel Kpub. Der in einer Speichereinrichtung 3E der Zielsystemvorrichtung 3 abgelegte zweite kryptographische Systemschlüssel Ksys2 ist bei dieser Ausführungsvariante ein privater kryptographischer Schlüssel Kpriv. Dieser private Schlüssel Kpriv ist vorzugsweise manipulationssicher in der Zielsystemvorrichtung 3 integriert. Bei einer alternativen Ausführungsform des erfindungsgemäßen Systems 1 ist der in dem Speicher 2C gespeicherte erste kryptographische Systemschlüssel Ksys1 und der in dem Speicher 3E der Zielvorrichtung 3 abgelegte zweite kryptographische Systemschlüssel Ksys2 ein privater kryptographischer Schlüssel eines symmetrischen Verschlüsselungsverfahrens. Bei beiden Ausführungsvarianten wird der erste kryptographische Systemschlüssel Ksys1 und der zweite kryptographische Systemschlüssel Ksys2 als Schlüsselpaar vorzugsweise durch einen Hersteller der Zielsystemvorrichtung 3 generiert.
-
Das erfindungsgemäße Verfahren und System zum vertraulichen Bereitstellen von Softwarebausteinen bzw. Softwarekomponenten SWK schützt vor einem unberechtigten Lesen und Manipulieren, indem kryptographische Ver- und Entschlüsselungsverfahren eingesetzt werden. Das erfindungsgemäße Verfahren und System stellen Softwarekomponenten SWK, die entwickelt werden, vertraulich bereit, wobei ein Know-how-Schutz der Softwarekomponenten dadurch erreicht wird, dass unberechtigte Dritte die Softwarekomponente SWK weder im Klartext bzw. als Sourcecode oder Objectcode lesen, noch unbemerkt verändern können.
-
Bei dem erfindungsgemäßen Verfahren und System wird eine zweistufige Verschlüsselung und eine zweistufige Entschlüsselung vorgenommen, wobei der verschlüsselte OEM-Schlüssel EWC-KOEM des Softwarekomponentenherstellers OEM zusammen mittels der durch den OEM-Schlüssel verschlüsselten Softwarekomponente ENC-SWK zu der Zielsystemvorrichtung 3 transportiert wird.
-
Vor Auslieferung der Zielsystemvorrichtung bzw. SPS-Hardware sowie der Entwicklungsumgebung 2 werden zunächst die entsprechenden Systemschlüssel Ksys1, Ksys2 generiert. Dies kann beispielsweise durch den Hersteller der Zielsystemvorrichtung 3 erfolgen. Der zweite Systemschlüssel Ksys2 wird dabei vorzugsweise manipulationssicher durch den Hersteller der Zielsystemvorrichtung 3 beispielsweise in einem besonders geschützten Speicher 3E abgelegt. Der erste Systemschlüssel Ksys1, welcher zur Verschlüsselung des OEM-Schlüssels des Softwarekomponentenherstellers dient, wird in einem Speicher 2C der Entwicklungsumgebung 2 abgelegt. Um den Schlüsseltransport so einfach wie möglich zu gestalten, kann bei einer möglichen Ausführungsform der öffentliche bzw. erste Systemschlüssel Ksys1 direkt mit der Entwicklungsumgebung 2 an den Softwarekomponentenhersteller OEM ausgeliefert werden. Der zweite Systemschlüssel, beispielsweise ein privater Schlüssel, wird vorzugsweise manipulationssicher hinterlegt, beispielsweise in einer Firmware der Zielsystemvorrichtung 3.
-
Ein Softwarekomponentenhersteller OEM, der mittels der Entwicklungsvorrichtung 2 Softwarebausteile bzw. Softwarekomponente SWK entwickelt, benötigt zunächst einen geheimen OEM-Schlüssel, der individuell für eine Softwarekomponente SWK gewählt werden kann oder durch Ableitung aus einem Masterschlüssel erhältlich ist. Um die durch den Softwarekomponentenhersteller OEM entwickelte Softwarekomponente SWK zu schützen, verschlüsselt der Softwarekomponentenhersteller OEM mittels der in der Entwicklungsumgebung 2 integrierten kryptographischen Software den Softwarebaustein bzw. die Softwarekomponente unter Verwendung des OEM-Schlüssels des Softwarekomponentenherstellers OEM. Bei einer möglichen Ausführungsform erfolgt die Verschlüsselung symmetrisch, da sich damit eine höhere Performance erzielen lässt als bei einem asymmetrischen Verschlüsselungsverfahren. Der Einsatz eines symmetrischen Verschlüsselungsverfahrens bewirkt insbesondere bei der späteren Entschlüsselung des Softwareschutzes in der Zielsystemvorrichtung 3 eine deutlich schnellere Entschlüsselung.
-
Der durch die symmetrische Verschlüsselung entstandene Geheimtext ist ohne Kenntnis des entsprechenden Schlüssels nicht mehr lesbar. Der zur Verschlüsselung verwendete OEM-Schlüssel wird seinerseits mit einem ersten Systemschlüssel Ksys1 verschlüsselt, so dass auch dieser OEM-Schlüssel nicht im Klartext vorliegt und damit auch nicht zur Entschlüsselung der zuvor verschlüsselten OEM-Softwarekomponenten verwendet werden kann. Die verschlüsselte Software bzw. Softwarekomponente SWK kann nun zusammen mit dem verschlüsselten OEM-Schlüssel ausgeliefert bzw. transportiert werden. Nach Auslieferung der verschlüsselten OEM-Softwarekomponente zusammen mit dem verschlüsselten OEM-Schlüssel können diese beiden Datenpakete in die Zielsystemvorrichtung 3 bzw. die SPS-Hardware geladen werden. In der SPS-Hardware bzw. der Zielsystemvorrichtung 3 befindet sich bereits seit der Auslieferung der Hardware der zweite Systemschlüssel in einem Schlüsselspeicher 3E. Bei diesem zweiten Systemschlüssel Ksys2 kann es sich beispielsweise um einen privaten Schlüssel handeln. Unter Verwendung dieses privaten Schlüssels Ksys2 wird nun der OEM-Schlüssel entschlüsselt. Im Anschluss daran werden die Softwarebausteine bzw. die Softwarekomponenten SWK vorzugsweise mittels einer symmetrischen Entschlüsselung unter Verwendung des OEM-Schlüssels entschlüsselt. Damit steht die Softwarekomponente SWK im Klartext in der SPS-Hardware zur Ausführung bereit.
-
Mit dem erfindungsgemäßen Verfahren und System kann der Softwarekomponentenhersteller OEM seine generierten Softwarebausteine bzw. Softwarekomponenten SWK schützen und diesen Schutz wieder aufheben, ohne dass eine Interaktion zwischen dem Softwarekomponentenhersteller OEM und dem Hersteller der Zielsystemvorrichtung 3 notwendig ist. Ein Kunde des Softwarekomponentenherstellers OEM bzw. Komponentenhersteller können die Softwarekomponenten nicht entschlüsseln, das heißt der Know-how-Schutz eines Softwarekomponentenherstellers OEM kann nicht durch einen Kunden oder einen anderen Softwarekomponentenhersteller aufgehoben werden. Aufgrund der Tatsache, dass die Softwarebausteine bzw. Softwarekomponenten eines Softwarekomponentenherstellers OEM verschlüsselt werden, kann das Ausliefern dieser Software bzw. Softwarekomponenten auch über unsichere Kanäle erfolgen. Beispielsweise kann die Softwarekomponente in elektronischer Form per Internet-Download oder auch in einer Speicherkarte MMC verschickt werden. Bei dem erfindungsgemäßen Verfahren und System hängt somit der Know-how-Schutz nicht von der Sicherheit des Transportkanals 4 ab.