DE102011120175A1 - Verfahren und Vorrichtung zum Schutz einesComputerprogramms gegen unberechtigte Benutzung - Google Patents

Verfahren und Vorrichtung zum Schutz einesComputerprogramms gegen unberechtigte Benutzung Download PDF

Info

Publication number
DE102011120175A1
DE102011120175A1 DE102011120175A DE102011120175A DE102011120175A1 DE 102011120175 A1 DE102011120175 A1 DE 102011120175A1 DE 102011120175 A DE102011120175 A DE 102011120175A DE 102011120175 A DE102011120175 A DE 102011120175A DE 102011120175 A1 DE102011120175 A1 DE 102011120175A1
Authority
DE
Germany
Prior art keywords
computer program
encrypted
decrypted
key
decrypting
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102011120175A
Other languages
English (en)
Inventor
Berndt Zetek
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102011120175A priority Critical patent/DE102011120175A1/de
Priority to PCT/EP2012/004658 priority patent/WO2013083224A1/de
Publication of DE102011120175A1 publication Critical patent/DE102011120175A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

Es sind ein Verfahren, eine Vorrichtung (20) und ein System (1) zum Schutz eines Computerprogramms (2) gegen unberechtigte Benutzung bereitgestellt. Das Verfahren hat die Schritte: Speichern (S1) eines von einer externen Vorrichtung (10) mit einem Schlüssel (12) verschlüsselten Computerprogramms (3) in einer Computerprogramm-Speichereinrichtung (23), Speichern (S2) eines zum Entschlüsseln des verschlüsselten Computerprogramms (3) bereitgestellten Schlüssels (12) in einem SRAM-Bereich (25) einer Arbeitsspeichereinrichtung (24), und Entschlüsseln (S3) des verschlüsselten Computerprogramms (3) mit dem Schlüssel (12), wobei das entschlüsselte Computerprogramm (4) oder entschlüsselte Computerprogrammteile (4) in einem RAM-Bereich (26) der Arbeitsspeichereinrichtung (24) gespeichert werden.

Description

  • Die vorliegende Erfindung bezieht sich auf ein Verfahren und eine Vorrichtung zum Schutz eines Computerprogramms gegen unberechtigte Benutzung. Das Verfahren und die Vorrichtung können insbesondere bei einer Steuervorrichtung zur Steuerung einer Werkzeugmaschine Verwendung finden.
  • US 7,492,783 B2 offenbart ein Verfahren zur Programmierung und Ausführung eines Steuerprogramms einer Industriesteuerung. Eine ausführbare Steuersequenz des Steuerprogramms wird mit einem Benutzer- oder Individualisierungspasswort verschlüsselt. Das bedeutet, dass die ausführbare Steuersequenz des Steuerprogramms selbst nicht verschlüsselt ist.
  • EP 1 556 743 B2 offenbart ein Verfahren zur Vermeidung einer fehlerhaften Maschinenansteuerung durch Maschinensteuerparameter einer Werkzeugmaschine. Hier werden die Maschinensteuerparameter mittels eines Chiffrierverfahrens verschlüsselt. Anschließend werden die Maschinensteuerparameter auf der Werkzeugmaschine dechiffriert und geprüft.
  • Bei den genannten Verfahren werden jedoch das verwendete Computerprogramm und/oder Teile davon nicht verschlüsselt. Das bedeutet, dass die genannten Verfahren die verwendeten Computerprogramme nicht vollständig vor unberechtigter Benutzung oder Einsicht schützen können. Beispielsweise können während des Ablaufs des Computerprogramms Programmteile eingesehen werden. Damit ist ein Kopieren des Computerprogramms oder zumindest von Programmteilen möglich.
  • Demzufolge können die genannten Verfahren ein Geheimhalten von technologischem Wissen durch Verschlüsselung nicht unumschränkt gewährleisten. Demzufolge kann ein unberechtigtes Nutzen von OEM-Zyklen (OEM = Original Equipment Manufacturer = Originalausrüstungshersteller) nicht verhindert werden. Aufgrund dessen ist ein ausreichender Schutz in Bezug auf Investitionskosten nicht gegeben.
  • Es ist daher Aufgabe der vorliegenden Erfindung, ein Verfahren und eine Vorrichtung zum Schutz eines Computerprogramms gegen unberechtigte Benutzung bereitzustellen, mit welchen die zuvor genannten Probleme gelöst werden können. Insbesondere soll ein Verfahren und eine Vorrichtung zum Schutz eines Computerprogramms gegen unberechtigte Benutzung bereitgestellt werden, bei welchen insbesondere Unterprogramme vor unberechtigter Einsicht und/oder Nutzung geschützt werden können.
  • Diese Aufgabe wird durch ein Verfahren zum Schutz eines Computerprogramms gegen unberechtigte Benutzung nach Patentanspruch 1 gelöst.
  • Die Aufgabe wird außerdem durch eine Vorrichtung zum Schutz eines Computerprogramms gegen unberechtigte Benutzung nach Patentanspruch 8 gelöst.
  • Die Aufgabe wird darüber hinaus durch ein System zum Schutz eines Computerprogramms gegen unberechtigte Benutzung nach Patentanspruch 10 gelöst.
  • Vorteilhafte weitere Ausgestaltungen des Verfahrens und der Vorrichtung sind in den abhängigen Patentansprüchen angegeben.
  • Das beschriebene Verfahren und die beschriebene Vorrichtung sowie das System stellen sicher, dass auch beim Ablauf des Verfahrens keine Programminhalte auf einer Anzeigeeinrichtung angezeigt werden können, welche einen Hinweis auf den Inhalt des Programms geben. Es werden nur programmierte Hinweise und/oder Diagnosemeldungen ausgegeben.
  • Mit dem beschriebenen Verfahren und der beschriebenen Vorrichtung sowie dem System kann sichergestellt werden, dass nur ein Originalausrüstungshersteller (OEM) und/oder von ihm autorisierte Personen und/oder Institutionen die verschlüsselten Inhalte des Computerprogramms entschlüsseln kann. Somit ist eine (ungewollte) Weitergabe an Dritte seitens des Herstellers oder Betreibers einer Werkzeugmaschine, auf welcher des Verfahren und die Vorrichtung angewendet werden kann, ausgeschlossen.
  • Weitere mögliche Implementierungen der Erfindung umfassen auch nicht explizit genannte Kombinationen von zuvor oder im Folgenden bezüglich der Ausführungsbeispiele beschriebenen Merkmale oder Ausführungsformen. Dabei wird der Fachmann auch Einzelaspekte als Verbesserungen oder Ergänzungen zu der jeweiligen Grundform der Erfindung hinzufügen.
  • Nachfolgend ist die Erfindung unter Bezugnahme auf die beiliegende Zeichnung und anhand eines Ausführungsbeispiels näher beschrieben. Es zeigen:
  • 1 ein Übersichtsbild eines Systems gemäß einem Ausführungsbeispiel; und
  • 2 ein Flussdiagramm eines Verfahrens gemäß einem Ausführungsbeispiel.
  • In den Figuren sind gleiche oder funktionsgleiche Elemente, sofern nichts anderes angegeben ist, mit denselben Bezugszeichen versehen.
  • 1 zeigt ein System 1 zum Schutz eines Computerprogramms 2 gegen unberechtigte Benutzung. Das System 1 hat eine externe Vorrichtung 10, welche ein Personalcomputer (PC) sein kann, der bei einem Originalausrüstungshersteller (OEM) oder einem sonstigen Anwender bereitgestellt ist. Zudem hat das System 1 eine Vorrichtung 20 zum Schutz des Computerprogramms 2 gegen unberechtigte Benutzung. Die Vorrichtung 20 kann eine numerisch gesteuerte Werkzeugmaschine (NC-Maschine) sein, welche Gegenstände in einer vorbestimmten Form, Werkstücke, fertigt.
  • Die externe Vorrichtung 10 hat eine Schlüsselerzeugungseinrichtung 11, von welcher ein Schlüssel 12 erzeugt wird, eine Anzeigeeinrichtung 13, eine Schlüsselspeichereinrichtung 14 und eine Dateiverschlüsselungseinrichtung 15. Die Schlüsselerzeugungseinrichtung 11 kann einen Schlüssel zum Ver- und Entschlüsseln des Computerprogramms bereitstellen. Die Schlüsselerzeugungseinrichtung 11 kann jedoch auch zwei verschiedene Schlüssel, also einen Verschlüsselungsschlüssel zum Verschlüsseln und einen Entschlüsselungsschlüssel zum Entschlüsseln bereitstellen. Nachfolgend ist der Einfachheit halber meist nur von dem Schlüssel 12 die Rede.
  • Der Schlüssel 12 kann auf der Anzeigeeinrichtung 13 angezeigt werden, und kann in der Schlüsselspeichereinrichtung 14 gespeichert werden. Der Schlüssel 12 kann über ein Schlüsselherunterladen, beispielsweise mittels OpenSSL (= mittels frei verfügbarem Computerprogramm (Open Source) Ausführen der SSL- und TLS-Protokolle), für die Vorrichtung 20 zum Entschlüsseln des verschlüsselten Computerprogramms 11 bereitgestellt werden. Darüber hinaus kann der Schlüssel 12 der Dateiverschlüsselungseinrichtung 15 zur Verfügung gestellt werden.
  • Die Dateiverschlüsselungseinrichtung 15 hat eine Verschlüsselungseinrichtung 16 und eine Verschlüsselungsanzeigeeinrichtung 17. Die Dateiverschlüsselungseinrichtung 15 kann das unverschlüsselte Computerprogramm 2 unter Verwendung des Schlüssels 12 mittels der Verschlüsselungseinrichtung 16 in ein verschlüsseltes Computerprogramm 3 verschlüsseln. Die Verschlüsselung kann mittels der Verschlüsselungsanzeigeeinrichtung 17 angezeigt und überwacht werden.
  • Die Vorrichtung 20 hat eine Vorrichtungsanzeigeeinrichtung 21, eine Steuereinrichtung 22, eine Computerprogramm-Speichereinrichtung 23, eine Arbeitsspeichereinrichtung 24 mit einem SRAM-Bereich 25 und einem RAM-Bereich 26, und eine Entschlüsselungseinrichtung 27. Der SRAM-Bereich ist ein statischer Speicher mit wahlfreiem Zugriff (SRAM = static Random Access Memory, der nicht periodisch aufgefrischt werden muss. Der RAM-Bereich ist ebenfalls ein Speicher mit wahlfreiem Zugriff (RAM = Random Access Memory) und ist vorzugsweise ein dynamischer Speicher mit wahlfreiem Zugriff (DRAM = dynamic Random Access Memory), der periodisch aufgefrischt werden muss, kann jedoch auch ein statischer Speicher mit wahlfreiem Zugriff sein.
  • Die Steuereinrichtung 22 führt die Funktionen einer Herunterladeeinrichtung zum Herunterladen des von einer externen Vorrichtung 10 bereitgestellten Schlüssels 12 und einer Speicherplatzverwaltungseinrichtung aus. Die Steuereinrichtung 22 kann auch die Funktion der Entschlüsselungseinrichtung 27 zur Entschlüsselung des verschlüsselten Computerprogramms 3 ausführen.
  • Die Steuereinrichtung 22 als Speicherplatzverwaltungseinrichtung verwaltet den Speicherplatz derart, dass das verschlüsselte Computerprogramm 3 in der Computerprogramm-Speichereinrichtung 23 gespeichert wird und ist. In der Computerprogramm-Speichereinrichtung 23 gespeicherte Inhalte können grundsätzlich mit der Vorrichtungsanzeigeeinrichtung 21 angezeigt werden. Dies ist mittels des weißen Blockpfeils A angegeben. Für verschlüsselte Programmteile oder für das gesamte verschlüsselte Computerprogramm 3 gelten jedoch die nachfolgend beschriebenen Einschränkungen.
  • Die Steuereinrichtung 22 als Speicherplatzverwaltungseinrichtung verwaltet den Speicherplatz zudem derart, dass der Schlüssel 12, genauer gesagt der Entschlüsselungsschlüssel zur Entschlüsselung des verschlüsselten Computerprogramms 3, in dem SRAM-Bereich 25 gespeichert ist. Mit dem Schlüssel 12 kann das verschlüsselte Computerprogramm 3 unsichtbar in ein entschlüsseltes Computerprogramm 4 entschlüsselt werden. Das mit dem Entschlüsselungsschlüssel, dem Schlüssel 12, entschlüsselte Computerprogramm 4 oder entschlüsselte Programmteile 4 werden dagegen von der Steuereinrichtung 22 als Speicherplatzverwaltungseinrichtung in dem RAM-Bereich 26 des Arbeitsplatzspeichers 24 gespeichert.
  • Bei dem System 1 sind sämtliche Stellen berücksichtigt, wo Inhalte des Computerprogramms 2 abgelegt, also nach der Verschlüsselung in den Speichereinrichtungen 23 und 24 gespeichert, oder sichtbar, also der Vorrichtungsanzeigeeinrichtung 21, werden. Hierbei ist zu berücksichtigen, dass in dem Computerprogramm 2 verwendete Tabellendaten nicht verschlüsselt werden. 2 veranschaulicht ein Verfahren zum Schutz des Computerprogramms 2 gegen unberechtigte Benutzung. Nach dem Start des Verfahrens wird bei einem Schritt S1 ein von der externen Vorrichtung 10 mit dem Schlüssel 12 verschlüsseltes Computerprogramm 3 in der Computerprogramm-Speichereinrichtung 23 gespeichert. Die Computerprogramm-Speichereinrichtung 23 ist vorzugsweise ein Netzwerkdateisystem, in welchem über ein Datennetzwerk verwendbare Dateien gespeichert sind. Die Verschlüsselung des Computerprogramms 2 erfolgt also auf der externen Vorrichtung 10. Eine Nachverschlüsselung eines neuen Computerprogramms 2 ist offline möglich. Hierzu sind in der Schlüsselverwaltungseinrichtung 14 alle von der Schlüsselerzeugungseinrichtung 11 erzeugten Schlüssel 12 gespeichert. Nach dem Schritt S1 geht der Ablauf zu dem Schritt S2 weiter.
  • Bei dem Schritt S2 wird ein zum Entschlüsseln des verschlüsselten Computerprogramms 3 bereitgestellter Entschlüsselungsschlüssel, der Schlüssel 12, in dem SRAM-Bereich 25 der Arbeitsspeichereinrichtung 24 gespeichert. Hierbei kann der von der externen Vorrichtung 10 erzeugte Schlüssel 12 mittels der Vorrichtung 20, genauer gesagt der Steuereinrichtung 22 als Herunterladeeinrichtung, von der externen Vorrichtung 10 heruntergeladen werden. Über den explizit erzeugten Schlüssel 12 wird sichergestellt, dass nur der Originalausrüstungshersteller die verschlüsselten Inhalte entschlüsseln kann. Nach dem Schritt S2 geht der Ablauf des Verfahrens zu einem Schritt S3 über.
  • Bei dem Schritt S3 entschlüsselt die Entschlüsselungseinrichtung 27 das verschlüsselte Computerprogramm 3 mit dem Entschlüsselungsschlüssel, dem Schlüssel 12. Hierbei werden das entschlüsselte Computerprogramm 4 oder entschlüsselte Computerprogrammteile 4 in dem RAM-Bereich 26 der Arbeitsspeichereinrichtung 24 gespeichert. Nach dem Schritt S3 geht der Ablauf zu einem Schritt S4 weiter.
  • Bei dem Schritt 34 wird geprüft, ob ein Coredump des RAM-Bereichs 26 der Arbeitsspeichereinrichtung 24 ausgeführt werden soll, ob mit dem verschlüsselten Computerprogramm 3 eine Simulation ausgeführt werden soll, ob das verschlüsselte Computerprogramm 3 mittels der Vorrichtungsanzeigeeinrichtung 21 angezeigt werden soll, oder ob mit der Vorrichtungsanzeigeeinrichtung 21 von der Entschlüsselungseinrichtung 27 entschlüsselte Computerprogrammteile 4 oder das von der Entschlüsselungseinrichtung 27 entschlüsselte Computerprogramm 4 angezeigt werden soll.
  • Lautet die Antwort bei dem Schritt S4 NEIN ist das Verfahren beendet. Lautet die Antwort bei dem Schritt S4 hingegen JA, geht der Fluss zu dem Schritt S5 weiter. Der Schritt S4 und der Schritt S5 werden laufend während des Ablaufs des entschlüsselten Computerprogramms 4 in der Vorrichtung 20 ausgeführt.
  • Bei dem Schritt S5 wird ein Coredump verhindert, wenn das entschlüsselte Computerprogramm 4 oder entschlüsselte Computerprogrammteile 4 in dem RAM-Bereich 26 der Arbeitsspeichereinrichtung 27 stehen. Ein Coredump steht für den aufgezeichneten Zustand des Arbeitsspeichers eines Computerprogramms bei einer vorbestimmten Zeit. Der Coredump zeigt an den betreffenden Stellen nur einen Hinweis auf Dateiverschlüsselung. Im Allgemeinen ist die vorbestimmte Zeit die Zeit, wenn das Computerprogramm abnormal beendet wurde. Zudem wird bei dem Schritt S5 eine Simulation mit dem verschlüsselten Computerprogramm 3 verhindert, wenn das entschlüsselte Computerprogramm 4 oder entschlüsselte Computerprogrammteile 4 in dem RAM-Bereich 26 der Arbeitsspeichereinrichtung 24 stehen. Ferner wird bei dem Schritt S5 eine Anzeige des verschlüsselten Computerprogramms 3 mittels der Vorrichtungsanzeigeeinrichtung 21 verhindert, wenn das verschlüsselte Computerprogramm 3 zur Anzeige auf der Vorrichtungsanzeigeeinrichtung 21 geöffnet werden soll. In diesem Fall wird mit der Vorrichtungsanzeigeeinrichtung 21 eine Fehlermeldung ausgegeben. Zudem wird bei dem Schritt S5 verhindert, dass das von der Entschlüsselungseinrichtung 27 entschlüsselte Computerprogramm 4 oder die von der Entschlüsselungseinrichtung 27 entschlüsselten Computerprogrammteile mit der Vorrichtungsanzeigeeinrichtung 21 angezeigt werden.
  • Nach dem Schritt S5 ist das Verfahren beendet.
  • Durch die Verhinderung des Coredumps, wenn das entschlüsselte Computerprogramm 4 oder die entschlüsselten Computerprogrammteile 4 im RAM-Bereich 26 stehen, wird verhindert, dass die Verschlüsselung des Computerprogramms 2 ausgehebelt wird. Dies wäre zum Beispiel der Fall, wenn sichtbare Programmteile des entschlüsselten Computerprogramms 4 in einem Coredump nicht gelöscht oder unkenntlich gemacht wären.
  • Zudem bewirkt der Schritt S5, dass bei einem Simulationsprogramm, wie beispielsweise EWB (Electronics Workbench), verschlüsselte Programme, wie das verschlüsselte Computerprogramm 3, bei einer Analyse nicht berücksichtigt werden.
  • Bei dem zuvor beschriebenen System 1 erlauben die Funktionen VREC/IREC keine DIN-Code-Ausgaben von verschlüsselten Computerprogrammen 3. Zudem liefern die Items NCS, OPC und SCP für das verschlüsselte Computerprogramm 3 keinen Programmcode.
  • Bei dem zuvor beschriebenen System 1 ist eine zusätzliche Verschlüsselung über eine CF-Kartennummer zum Kopierschutz nicht erforderlich, da der Schlüssel 12 auf der Steuereinrichtung 22, genauer gesagt in dem SRAM-Bereich 25, bleibt.
  • Aufgrund der zuvor beschriebenen Funktionalität des Systems 1 ist eine Fremdunterstützung für das verschlüsselte Computerprogramm 3 nicht möglich.
  • Mit dem zuvor beschriebenen System 1 ist es möglich, dass ein verschlüsseltes Computerprogramm 3 keinerlei Auswirkungen auf das Laufzeitverhalten der Vorrichtung 20 hat.
  • Wird bei dem zuvor beschriebenen System 1 ein Tausch der Steuereinrichtung 22 vorgenommen, ist es vorteilhaft, wenn der Schlüssel 12 von der externen Vorrichtung 10 in die neue Steuereinrichtung 22 gebracht wird. Alternativ ist es auch möglich, alle Computerprogramme 2 mit dem neuen Schlüssel 12 neu zu verschlüsseln.
  • Die Schlüsselerzeugung bei der externen Vorrichtung 10 kann bei Bedarf über frei erhältliche Software (Freeware) erfolgen. Die Schlüsselerzeugung sollte nicht im Indraworks integriert werden.
  • Bei dem beschriebenen System 1 werden beim Technologieschutz sämtliche Stellen berücksichtigt, wo Inhalte des Computerprogramms 2 abgelegt werden (Dateisystem) oder sichtbar (Bedienoberfläche bzw. Anzeigeeinrichtung 21) werden. Dies sind der NC-Editor (Bearbeitungseinrichtung der numerischen Steuereinrichtung), die NC-Satzanzeige, der NC-Analyzer (NC-Analyseeinrichtung), die Simulation, der Computerprogrammnavigator und das Dateisystem.
  • Im NC-Editor können verschlüsselte Programme nicht geöffnet werden. Auf der Anzeigeeinrichtung 21 kommen in der Statuszeile ein Hinweis und ein leeres Anzeigefenster.
  • Bei der NC-Satzanzeige enthält das Satzanzeigefenster im Falle von verschlüsselten Programmteilen nur eine Hinweiszeile „verschlüsseltes Programm”.
  • Bei dem NC-Analyzer enthält das Programmanzeigefenster im Falle von verschlüsselten Programmteilen nur eine Hinweiszeile „verschlüsseltes Programm”. Für die Simulation gilt das Gleiche.
  • Im Computerprogrammnavigator bekommen verschlüsselte Dateien eine besondere Kennzeichnung.
  • Im Dateisystem, der Computerprogramm-Speichereinrichtung 23, liegen alle zu schützenden Dateien nur in verschlüsselter Form vor.
  • Wird ein Archiv erstellt, werden alle verschlüsselten Dateien, welche in der Computerprogramm-Speichereinrichtung 23 gespeichert sind, mitgesichert.
  • Mit dem zuvor beschriebenen System 1 und dem Verfahren, die einen NC-Programmschutz bieten, können Unterprogramme bzw. Zyklen verschlüsselt und anschließend geschützt in der Steuereinrichtung 22 abgelegt werden. Die Abarbeitung in der numerischen Steuerung (NC) ist ohne Einschränkung möglich aber jegliche Einsicht in das NC-Programm, das Computerprogramm 3, ist blockiert. Damit wird das interne Know-how geschützt. Das NC-Programm kann aber in der verschlüsselten Form, also als Computerprogramm 3, kopiert werden. Damit ist die Nutzung auch an weiteren Maschinen möglich. Wenn auch das verhindert werden soll, kann das NC-Programm durch eine verschlüsselungstechnische Ergänzung fest an eine NC- oder CNC-Hardware gebunden werden.
  • Bei dem zuvor beschriebenen System 1 und dem Verfahren ist es nicht möglich, dass bei Serviceeinsätzen das verschlüsselte Computerprogramm 3 oder eine andere verschlüsselte Datei vor Ort von einem Service-Techniker entschlüsselt werden kann. Das unverschlüsselte Computerprogramm 2 oder die unverschlüsselte Datei muss der Betreiber der externen Vorrichtung 10, der OEM, bereitstellen. Daher wird bei dem zuvor beschriebenen System 1 kein Generalschlüssel verwendet. Das Verantwortungsbewusstsein liegt beim OEM.
  • Alle zuvor beschriebenen Ausgestaltungen des Verfahrens und der Vorrichtung können einzeln oder in allen möglichen Kombinationen Verwendung finden. Zusätzlich sind insbesondere folgende Modifikationen denkbar.
  • Vorzugsweise wird für die Verschlüsselung in der externen Vorrichtung 10 ein Algorithmus verwendet, der weder gegen Exportbeschränkungen oder Embargovorschriften verstößt. Hierbei werden zum Ver- und Entschlüsseln zwei verschiedene Schlüssel verwendet. Müssen solche Exportbeschränkungen oder Embargovorschriften nicht beachtet werden, ist es auch möglich, den gleichen Schlüssel zum Ver- und Entschlüsseln zu verwenden. In diesem Fall handelt es sich um ein symmetrisches Verfahren.
  • Die Datensicherung, Versionsverwaltung und Versionskontrolle des Computerprogramms 2 bzw. 3 kann automatisch durch erneute Verschlüsselung und Vergleich des Quelltextes erfolgen.
  • Anstelle des Verhinderns eines Coredumps ist es auch möglich, dass, die Auswertung des Coredump nur mit einer Entwicklungsumgebung zur Entwicklung des Computerprogramms 2 sowie dem Quellcode des Computerprogramms 2 möglich ist.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 7492783 B2 [0002]
    • EP 1556743 B2 [0003]

Claims (10)

  1. Verfahren zum Schutz eines Computerprogramms (2) gegen unberechtigte Benutzung, mit den Schritten Speichern (S1) eines von einer externen Vorrichtung (10) mit einem Schlüssel (12) verschlüsselten Computerprogramms (3) in einer Computerprogramm-Speichereinrichtung (23), Speichern (S2) eines zum Entschlüsseln des verschlüsselten Computerprogramms (3) bereitgestellten Schlüssels (12) in einem SRAM-Bereich (25) einer Arbeitsspeichereinrichtung (24), und Entschlüsseln (S3) des verschlüsselten Computerprogramms (3) mit dem Schlüssel (12), wobei das entschlüsselte Computerprogramm (4) oder entschlüsselte Computerprogrammteile (4) in einem RAM-Bereich (26) der Arbeitsspeichereinrichtung (24) gespeichert werden.
  2. Verfahren nach Anspruch 1, wobei der Schritt des Speicherns (S2) des Schlüssels (12) umfasst, dass der von der externen Vorrichtung (10) erzeugte und auf ihr gespeicherte Schlüssel (12) von der externen Vorrichtung (10) mittels einer Vorrichtung (20) heruntergeladen wird, welche das Verfahren ausführt.
  3. Verfahren nach Anspruch 1 oder 2, zudem mit dem Schritt des Verhinderns eines Coredump, wenn das entschlüsselte Computerprogramm (4) oder entschlüsselte Computerprogrammteile (4) in dem RAM-Bereich (26) der Arbeitsspeichereinrichtung (24) stehen.
  4. Verfahren nach einem der vorangehenden Ansprüche, zudem mit dem Schritt des Verhinderns (S5) einer Simulation mit dem verschlüsselten Computerprogramm (3), wenn das entschlüsselte Computerprogramm (4) oder entschlüsselte Computerprogrammteile (4) in dem RAM-Bereich (26) der Arbeitsspeichereinrichtung (24) stehen.
  5. Verfahren nach einem der vorangehenden Ansprüche, zudem mit dem Schritt des Verhinderns (S5) einer Anzeige des verschlüsselten Computerprogramms (4) mittels einer Anzeigeeinrichtung (21) und Ausgebens einer Fehlermeldung, wenn das verschlüsselte Computerprogramm (4) zur Anzeige auf der Anzeigeeinrichtung (21) geöffnet werden soll.
  6. Verfahren nach einem der vorangehenden Ansprüche, zudem mit dem Schritt des Verhinderns (S5) einer Anzeige des von der Entschlüsselungseinrichtung (27) entschlüsselten Computerprogramms (4) oder von der Entschlüsselungseinrichtung (27) entschlüsselter Computerprogrammteile (4) mittels einer Anzeigeeinrichtung (21).
  7. Verfahren nach einem der vorangehenden Ansprüche, wobei bei dem Computerprogramm (2) verwendete Tabellendaten nicht verschlüsselt sind.
  8. Vorrichtung (20) zum Schutz eines Computerprogramms (2) gegen unberechtigte Benutzung, mit einer Herunterladeeinrichtung (22) zum Herunterladen eines von einer externen Vorrichtung (10) bereitgestellten Schlüssels (12) zum Entschlüsseln eines von der externen Vorrichtung (10) mit dem Schlüssel verschlüsselten Computerprogramms (3), einer Entschlüsselungseinrichtung (27) zur Entschlüsselung des verschlüsselten Computerprogramms (3), und einer Speicherplatzverwaltungseinrichtung (22) zur Verwaltung von Speicherplatz derart, dass das verschlüsselte Computerprogramm (3) in einer Computerprogramm-Speichereinrichtung (23) gespeichert wird, der von der Herunterladeeinrichtung (22) heruntergeladene Schlüssel in einem SRAM-Bereich (25) einer Arbeitsspeichereinrichtung (24) gespeichert wird, und das von der Entschlüsselungseinrichtung (27) entschlüsselte Computerprogramm (4) oder von der Entschlüsselungseinrichtung (27) entschlüsselte Computerprogrammteile (4) in einem SRAM-Bereich (25) der Arbeitsspeichereinrichtung (24) gespeichert wird/werden.
  9. Vorrichtung (20) nach Anspruch 8, wobei die Vorrichtung (20) eine Steuervorrichtung zur Steuerung einer numerisch gesteuerten Werkzeugmaschine ist, das Computerprogramm (2) das Steuerprogramm der numerisch gesteuerten Werkzeugmaschine ist, und die Computerprogramm-Speichereinrichtung (23) ein Netzwerkdateisystem der numerisch gesteuerten Werkzeugmaschine ist.
  10. System (1) zum Schutz eines Computerprogramms (2) gegen unberechtigte Benutzung, mit einer Vorrichtung (20) nach Anspruch 8 oder 9, und einer externen Vorrichtung (10) zum Erzeugen, Speichern und Bereitstellen eines Schlüssels (12) zum Verschlüsseln des Computerprogramms (2) und/oder zum Entschlüsseln des verschlüsselten Computerprogramms (3).
DE102011120175A 2011-12-06 2011-12-06 Verfahren und Vorrichtung zum Schutz einesComputerprogramms gegen unberechtigte Benutzung Pending DE102011120175A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102011120175A DE102011120175A1 (de) 2011-12-06 2011-12-06 Verfahren und Vorrichtung zum Schutz einesComputerprogramms gegen unberechtigte Benutzung
PCT/EP2012/004658 WO2013083224A1 (de) 2011-12-06 2012-11-09 Verfahren und vorrichtung zum schutz eines computerprogramms gegen unberechtigte benutzung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102011120175A DE102011120175A1 (de) 2011-12-06 2011-12-06 Verfahren und Vorrichtung zum Schutz einesComputerprogramms gegen unberechtigte Benutzung

Publications (1)

Publication Number Publication Date
DE102011120175A1 true DE102011120175A1 (de) 2013-06-06

Family

ID=47278743

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102011120175A Pending DE102011120175A1 (de) 2011-12-06 2011-12-06 Verfahren und Vorrichtung zum Schutz einesComputerprogramms gegen unberechtigte Benutzung

Country Status (2)

Country Link
DE (1) DE102011120175A1 (de)
WO (1) WO2013083224A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102016015023B4 (de) 2015-12-24 2023-12-07 Fanuc Corporation Numerische Steuervorrichtung, numerisches Steuerverfahren und Computerprogramm zum Steuern einer Werkzeugmaschine

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7492783B2 (en) 2003-12-12 2009-02-17 Broadcom Corporation Method and system for LIPf7 origination detection and LIPf8 suppression in a port bypass controller
EP1556743B1 (de) 2003-10-17 2011-08-10 Trinary Anlagenbau GmbH Verfahren und vorrichtung zur vermeidung einer fehlansteuerung einer werkzeugmaschine

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4670857A (en) * 1981-10-26 1987-06-02 Rackman Michael I Cartridge-controlled system whose use is limited to authorized cartridges
EP1056015A4 (de) * 1998-01-21 2005-01-05 Tokyo Electron Ltd Speichervorrichtung, ver- und entschlüsselungsvorrichtung und zugriffsverfahren auf nichtflüchtige speicher
DE10249677A1 (de) 2002-10-24 2004-05-19 Siemens Ag Programmier-und Betriebsverfahren für eine programmierbare industrielle Steuerung, insbesondere eine CNC-Steuerung
US20060059368A1 (en) * 2004-09-10 2006-03-16 International Business Machines Corporation System and method for processing by distinct entities securely configurable circuit chips
JP4851182B2 (ja) * 2005-12-28 2012-01-11 ルネサスエレクトロニクス株式会社 マイクロコンピュータ、マイクロコンピュータに対するプログラム書込み方法、及び書込み処理システム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1556743B1 (de) 2003-10-17 2011-08-10 Trinary Anlagenbau GmbH Verfahren und vorrichtung zur vermeidung einer fehlansteuerung einer werkzeugmaschine
US7492783B2 (en) 2003-12-12 2009-02-17 Broadcom Corporation Method and system for LIPf7 origination detection and LIPf8 suppression in a port bypass controller

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102016015023B4 (de) 2015-12-24 2023-12-07 Fanuc Corporation Numerische Steuervorrichtung, numerisches Steuerverfahren und Computerprogramm zum Steuern einer Werkzeugmaschine

Also Published As

Publication number Publication date
WO2013083224A1 (de) 2013-06-13

Similar Documents

Publication Publication Date Title
EP3012761B1 (de) Schutz von softwaremodellen
EP1393146B1 (de) Verfahren und system zur verteilten erstellung eines programms für einen programmierbaren, tragbaren datenträger
DE102007005638B4 (de) Verfahren zur Autorisierung des Zugriffs auf mindestens eine Automatisierungskompente einer technischen Anlage
DE102009041176B4 (de) Compiler-System und Verfahren zum Kompilieren eines Quellencodes zu einem verschlüsselten Maschinensprachcode
DE102012110499A1 (de) Sicherheitszugangsverfahren für elektronische Automobil-Steuergeräte
WO2019034509A1 (de) Verfahren zum sicheren ersetzen eines bereits in ein gerät eingebrachten ersten herstellerzertifikats
WO2011054639A1 (de) Kryptographisches Hardwaremodul bzw. Verfahren zur Aktualisierung eines kryptographischen Schlüssels
EP1798653B1 (de) Verfahren, Computerprogrammprodukt und Vorrichtung zum Schützen eines einen Funktionsblock aufweisenden Programms
EP0280035B1 (de) Verfahren zum Sichern von Programmen und zur Integritätskontrolle gesicherter Programme
DE102015201298A1 (de) Verfahren zum kryptographischen Bearbeiten von Daten
WO2005047993A1 (de) Verfahren und vorrichtung zur vermeidung einer fehlansteuerung einer werkzeugmaschine
WO2019238345A1 (de) Sichere verwaltung von zugangsdaten für steuereinrichtungen
EP1784756A2 (de) Verfahren und sicherheitssystem zur sicheren und eindeutigen kodierung eines sicherheitsmoduls
DE102011120175A1 (de) Verfahren und Vorrichtung zum Schutz einesComputerprogramms gegen unberechtigte Benutzung
DE102005046696B4 (de) Verfahren zum Erzeugen von geschütztem Programmcode und Verfahren zum Ausführen von Programmcode eines geschützten Computerprogramms sowie Computerprogrammprodukt
DE102009052454A1 (de) Verfahren und System zum vertraulichen Bereitstellen von Softwarekomponenten
WO2006072568A1 (de) Tragbarer datenträger mit wasserzeichen-funktionalität
WO2005093668A1 (de) Dokumentation von servicemassnahmen an einem kraftfahrzeug
DE10324507A1 (de) Verfahren zum Laden von Daten in eine Speichereinrichtung
EP2184695A1 (de) Verfahren zum Kombinieren von Daten mit einer zur Verarbeitung der Daten vorgesehenen Vorrichtung, korrespondierende Funktionalität zur Ausführung einzelner Schritte des Verfahrens und Computerprogram zur Implementierung des Verfahrens
WO2024110546A1 (de) Verfahren zum verschlüsseln eines quelltextes, verfahren zum entschlüsseln eines quelltextes und entwicklungssystem
DE102014113441A1 (de) Schutz vor Software-Komponenten mittels Verschlüsselung
DE102020205657A1 (de) Verfahren und Vorrichtung zum Verwalten von Daten
DE102022102616A1 (de) Verfahren zur Analyse einer Automatisierungssoftware einer Automatisierungseinrichtung
EP4141722A1 (de) Sicheres betreiben einer industriellen steuerungsvorrichtung zusammen mit einem ai-modul

Legal Events

Date Code Title Description
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0021220000

Ipc: G06F0021100000

R012 Request for examination validly filed
R082 Change of representative

Representative=s name: THUERER, ANDREAS, DIPL.-PHYS., DE