DE112017005726T5 - System zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung, Verfahren zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung, Engineering-Werkzeug, Lizenzabgabe-Server und programmierbare Steuerung - Google Patents

System zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung, Verfahren zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung, Engineering-Werkzeug, Lizenzabgabe-Server und programmierbare Steuerung Download PDF

Info

Publication number
DE112017005726T5
DE112017005726T5 DE112017005726.4T DE112017005726T DE112017005726T5 DE 112017005726 T5 DE112017005726 T5 DE 112017005726T5 DE 112017005726 T DE112017005726 T DE 112017005726T DE 112017005726 T5 DE112017005726 T5 DE 112017005726T5
Authority
DE
Germany
Prior art keywords
ladder program
transformation
programmable controller
engineering tool
unit
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.)
Withdrawn
Application number
DE112017005726.4T
Other languages
English (en)
Inventor
Takashi YUGUCHI
Daisuke Suzuki
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of DE112017005726T5 publication Critical patent/DE112017005726T5/de
Withdrawn 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/343Logical level

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Automation & Control Theory (AREA)
  • Geometry (AREA)
  • Evolutionary Computation (AREA)
  • Programmable Controllers (AREA)
  • Storage Device Security (AREA)

Abstract

Ein System zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung umfasst ein Engineering-Werkzeug zum Decodieren eines Kontaktplanprogramms, das unter Verwendung eines privaten Anbieterschlüssels verschlüsselt worden ist, unter Verwendung eines öffentlichen Anbieterschlüssels, der mit dem privaten Anbieterschlüssel gekoppelt ist, und zum Verschlüsseln des decodierten Kontaktplanprogramms unter Verwendung eines öffentlichen Steuerungsschlüssels, so dass das Kontaktplanprogramm auf einer spezifischen programmierbaren Steuerung betreibbar ist, aber auf anderen programmierbaren Steuerungen nicht betreibbar ist, und eine programmierbare Steuerung zum Decodieren des Kontaktplanprogramms, das unter Verwendung des öffentlichen Steuerungsschlüssels verschlüsselt worden ist, unter Verwendung eines privaten Steuerungsschlüssels, der mit dem öffentlichen Steuerungsschlüssel gekoppelt ist, und zum Ausführen des Kontaktplanprogramms, das unter Verwendung des privaten Steuerungsschlüssels decodiert worden ist.

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf ein System zur Verhinderung von nicht autorisierter Verwendung eines Kontaktplanprogramms, das ein Kontaktplanprogramm zum Betreiben einer programmierbaren Steuerung abgibt, auf ein Verfahren zur Verhinderung von nicht autorisierter Verwendung eines Kontaktplanprogramms, auf ein Engineering-Werkzeug, auf einen Lizenzabgabe-Server und auf eine programmierbare Steuerung.
  • Hintergrund
  • Ein in einer programmierbaren Steuerung eingesetztes Kontaktplanprogramm ist ein wesentlicher Bauartvorteil und muss daher durch eine Sicherheitsfunktion vor einem bösartigen Dritten geschützt werden. Ein Beispiel für ein typisches Schutzverfahren ist eine Zugriffskontrolle unter Verwendung eines Passworts beim Lesen oder Schreiben eines Kontaktplanprogramms, das von der programmierbaren Steuerung durchgeführt wird.
  • Die Patentschrift 1 offenbart ein Programmschutzverfahren, das eine dedizierte Schutzanweisung in einem Kontaktplanprogramm verwendet. Dieses Programmschutzverfahren spezifiziert einen Schutzbereich im Kontaktplanprogramm entsprechend einer Schutzanweisung und eines Sch u tzanweisungs- Endes.
  • Zitierliste
  • Patentschriften
  • Patentschrift 1: Japanische Patentanmeldung, offengelegt, Nr. H10-124308
  • Zusammenfassung
  • Technisches Problem
  • Allerdings kann die oben genannte herkömmliche Technologie, die in der Patentschrift 1 offenbart wird, ein Kontaktplanprogramm nicht geeignet schützen, das in einem gebündelten Produkt enthalten ist, das eine programmierbare Steuerung und eine Peripherieeinrichtung in Kombination umfasst, d. h. ein in einer programmierbaren Steuerung eingesetztes Kontaktplanprogramm. Dies ist darauf zurückzuführen, dass die in der Patentschrift 1 beschriebene Technologie nur ein Kontaktplanprogramm schützen kann, das allein verwendet wird, jedoch nicht das in einem gebündelten Produkt enthaltene Kontaktplanprogramm schützen kann, indem sie zulässt, dass das Kontaktplanprogramm nur auf einer spezifischen programmierbaren Steuerung läuft. Dies stellt insofern ein Problem dar, als dass eine programmierbare Steuerung, die nicht zum Verwenden des Kontaktplanprogramms autorisiert ist, das Kontaktplanprogramm auch ohne Autorisierung verwenden kann.
  • Die vorliegende Erfindung erfolgte angesichts der obigen Ausführungen, und es ist ein Ziel der vorliegenden Erfindung, ein System zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung bereitzustellen, das in der Lage ist, nicht autorisierte Verwendung eines Kontaktplanprogramms zu verhindern, das zum Beispiel in einem Zustand abgegeben wird, bei dem es in einem gebündelten Handelsprodukt enthalten ist.
  • Lösung des Problems
  • Um das Problem zu lösen und das oben beschriebene Ziel zu erreichen, bezieht sich ein Aspekt der vorliegenden Erfindung auf ein System zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung, das Folgendes umfasst: ein Engineering-Werkzeug zum Durchführen einer ersten Inverstransformation an einem Kontaktplanprogramm, das einer ersten Transformation unter Verwendung von ersten privaten Informationen unterzogen wird, unter Verwendung von ersten öffentlichen Informationen, die mit den ersten privaten Informationen gekoppelt sind, und zum Durchführen einer zweiten Transformation unter Verwendung von zweiten öffentlichen Informationen am Kontaktplanprogramm, das der ersten Inverstransformation unterzogen wird, so dass das Kontaktplanprogramm auf einer spezifischen programmierbaren Steuerung betreibbar ist, aber auf einer anderen programmierbaren Steuerung als der spezifischen programmierbaren Steuerung nicht betreibbar ist. Das System zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung der vorliegenden Erfindung umfasst des Weiteren eine programmierbare Steuerung zum Durchführen einer zweiten Inverstransformation am Kontaktplanprogramm, das der zweiten Transformation unterzogen wird, unter Verwendung der zweiten privaten Informationen, die mit den zweiten öffentlichen Informationen gekoppelt sind, und zum Ausführen des Kontaktplanprogramms, das der zweiten Inverstransformation unterzogen wird.
  • Vorteilhafte Wirkungen der Erfindung
  • Ein System zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung, ein Verfahren zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung, ein Engineering-Werkzeug, ein Lizenzabgabe-Server und eine programmierbare Steuerung gemäß der vorliegenden Erfindung stellen einen Vorteil dahingehend bereit, dass die nicht autorisierte Verwendung eines abgegebenen Kontaktplanprogramms verhindert werden kann.
  • Figurenliste
    • 1 ist ein Diagramm, das eine Konfiguration eines Systems zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung gemäß einer ersten Ausführungsform veranschaulicht.
    • 2 ist ein Blockdiagramm, das eine beispielhafte Konfiguration des Lizenzabgabe-Servers gemäß der ersten Ausführungsform veranschaulicht.
    • 3 ist ein Blockdiagramm, das eine beispielhafte Funktionskonfiguration des Engineering-Werkzeugs gemäß der ersten Ausführungsform veranschaulicht.
    • 4 ist ein Blockdiagramm, das eine beispielhafte Konfiguration der programmierbaren Steuerung gemäß der ersten Ausführungsform veranschaulicht.
    • 5 ist ein Flussdiagramm, das einen Operationsverlauf veranschaulicht, der vom System zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung gemäß der ersten Ausführungsform durchgeführt wird.
    • 6 ist ein Diagramm, das eine Hardware-Konfiguration des Systems zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung gemäß der ersten Ausführungsform veranschaulicht.
    • 7 ist ein Diagramm zum Beschreiben eines Prozesses, der von einem Lizenzabgabe-Server gemäß einer zweiten Ausführungsform durchgeführt wird.
    • 8 ist ein Diagramm zum Beschreiben eines Prozesses, der von einem Engineering-Werkzeug gemäß der zweiten Ausführungsform durchgeführt wird.
    • 9 ist ein Diagramm zum Beschreiben eines Simulationsprozesses für einen Funktionsblock (FB), der von dem Engineering-Werkzeug gemäß der zweiten Ausführungsform durchgeführt wird.
  • Beschreibung von Ausführungsformen
  • Ein System zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung, ein Verfahren zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung, ein Engineering-Werkzeug, ein Lizenzabgabe-Server und eine programmierbare Steuerung gemäß Ausführungsformen der vorliegenden Erfindung werden nachstehend ausführlich unter Bezugnahme auf die Zeichnungen beschrieben. Es sei angemerkt, dass diese Ausführungsformen diese Erfindung nicht einschränken sollen.
  • Erste Ausführungsform.
  • Die 1 ist ein Diagramm, das eine Konfiguration eines Systems zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung gemäß einer ersten Ausführungsform veranschaulicht. Ein System 1 zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung gemäß der ersten Ausführungsform ist ein System, das ein Kontaktplanprogramm 42, das in einem gebündelten Produkt enthalten ist, an eine externe Einrichtung, wie zum Beispiel eine programmierbare Steuerung 30A, abgibt. Das gebündelte Produkt ist eine Gruppe von Produkten, die von einem Anbieter, d. h. einem Verkäufer, einem Nutzer, d. h. einem Abnehmer, angeboten werden. Als das gebündelte Produkt werden die programmierbare Steuerung 30A, eine Peripherieeinrichtung und das Kontaktplanprogramm 42 zum Steuern dieser Einrichtungen in einem Paket verkauft. Zu Beispielen für die Peripherieeinrichtung zählen eine Eingabe-/Ausgabe- (E/A-) Einheit und eine Leistungsversorgungseinheit.
  • Das System 1 zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung umfasst einen Lizenzabgabe-Server 10A, der vom Anbieter des gebündelten Produkts gemanagt wird; die programmierbare Steuerung 30A, die ein Teil des gebündelten Produkts ist; und einen Entwicklungs-Personal-Computer (-PC) 20 zur Verwendung in der Entwicklung durch den Nutzer, um die programmierbare Steuerung 30A betriebsfähig zu machen. Der Lizenzabgabe-Server 10A, der Entwicklungs-PC 20 und die programmierbare Steuerung 30A sind mit dem Internet 2 verbunden. Der Entwicklungs-PC 20 und die programmierbare Steuerung 30A sind ebenfalls mit einem Netzwerk verbunden, das dem Nutzer gehört. Es sei angemerkt, dass die programmierbare Steuerung 30A nicht notwendigerweise mit dem Internet 2 verbunden ist. Obwohl die 1 das Internet 2 im System 1 zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung veranschaulicht, umfasst das System 1 zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung nicht das Internet 2.
  • Ein Beispiel für den Lizenzabgabe-Server 10A ist ein Server-PC. Der Entwicklungs-PC 20 umfasst ein Engineering-Werkzeug 21A zur Entwicklung des Kontaktplanprogramms 42, das von der programmierbaren Steuerung 30A verwendet wird.
  • Das Engineering-Werkzeug 21A ist ein Beispiel einer Engineering-Umgebung zur Entwicklung des Kontaktplanprogramms 42 und wird auch als Engineering-Umgebungs-Software bezeichnet. Das Engineering-Werkzeug 21A, das ein Anwendungsprogramm ist, ist im Entwicklungs-PC 20 installiert und läuft auf dem Entwicklungs-PC 20.
  • Die programmierbare Steuerung 30A ist mit einer Steuerzieleinrichtung (nicht dargestellt), wie zum Beispiel einem Sensor oder einem Roboter, verbunden. Die programmierbare Steuerung 30A steuert die Steuerzieleinrichtung unter Verwendung des Kontaktplanprogramms 42. Die programmierbare Steuerung 30A wird auch als speicherprogrammierbare Steuerung (SPS) bezeichnet.
  • Der Anbieter des gebündelten Produkts schreibt das Kontaktplanprogramm 42, das ermöglicht, dass die programmierbare Steuerung 30A die Steuerzieleinrichtung steuert, auf ein transportierbares Aufzeichnungsmedium 43, wie zum Beispiel eine Digital Versatile Disc (DVD), zur Abgabe an den Nutzer. Der Anbieter gibt auch ein Lizenzzertifikat 41 an den Nutzer ab, zum Beispiel über das Internet 2 oder per Post. Das Lizenzzertifikat 41 umfasst Informationen zur Lizenz für die programmierbare Steuerung 30A, die eine spezifische programmierbare Steuerung ist. Das Lizenzzertifikat 41 umfasst Informationen zum Ablaufzeitpunkt der Lizenz, Informationen zu den im gebündelten Produkt enthaltenen Merkmalen und den öffentlichen Schlüssel, der der programmierbaren Steuerung 30A zugeordnet ist, die das Ausstellungsziel ist.
  • Das System 1 zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung der ersten Ausführungsform schützt einen Abgabeprozess des Kontaktplanprogramms 42, einen Editierprozess in der Engineering-Umgebung des Nutzers, einen Simulationsprozess in der Engineering-Umgebung des Nutzers und einen Prozess des Einbettens in die programmierbare Steuerung 30A.
  • Jetzt werden einschränkende Bedingungen für Bereitstellen von Schutz für das Kontaktplanprogramm 42, das im gebündelten Produkt enthalten ist, beschrieben.
    • < 1 > Das Kontaktplanprogramm 42, das in dem gebündelten Produkt enthalten ist, das verkauft worden ist, ist auf der spezifischen programmierbaren Steuerung 30A betreibbar, arbeitet jedoch nicht auf einer anderen programmierbaren Steuerung als der programmierbaren Steuerung 30A.
    • <2> Das System 1 zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung stellt das Lizenzzertifikat 41 für einen Nutzer auf einer Basis pro Nutzer aus.
    • <3> Das System 1 zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung gibt das Kontaktplanprogramm 42 über das Aufzeichnungsmedium 43 oder online über das Internet 2 an einen Nutzer ab.
    • <4> Ein Teil des geschützten Kontaktplanprogramms 42 kann von einem Nutzer unter Verwendung des Engineering-Werkzeugs 21A editiert werden.
    • <5> Das geschützte Kontaktplanprogramm 42 umfasst einen nicht vom Nutzer zu editierenden Teil, der Funktionsblock genannt wird.
    • <6> Ein Nutzer kann eine Simulation durchführen, die ein Prozess ist, das Kontaktplanprogramm 42 auf dem Engineering-Werkzeug 21A virtuell zu betreiben.
  • Im System 1 zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung gibt der Lizenzabgabe-Server 10A das Kontaktplanprogramm 42, das nutzerspezifisch ist, auf einer Basis pro Nutzer unter den oben beschriebenen einschränkenden Bedingungen <1> bis <6> ab. Es sei angemerkt, dass, wie unter der Bedingung <3> beschrieben wird, das System 1 zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung das Kontaktplanprogramm 42 online abgeben kann, jedoch wird in der nachstehenden Beschreibung angenommen, dass der Lizenzabgabe-Server 10A das Kontaktplanprogramm 42 über das Aufzeichnungsmedium 43 abgibt.
  • Als Nächstes werden die öffentlichen Schlüssel und die privaten Schlüssel, die vom System 1 zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung verwendet werden, beschrieben. Das System 1 zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung verwendet einen privaten Anbieterschlüssel Vsec, das heißt erste private Informationen; einen öffentlichen Engineering-Umgebungsschlüssel Epub_1; einen öffentlichen Anbieterschlüssel Vpub, das heißt erste öffentliche Informationen; einen privaten Engineering-Umgebungsschlüssel Esec; einen öffentlichen Steuerungsschlüssel Cpub, das heißt zweite öffentliche Informationen; einen öffentlichen Engineering-Umgebungsschlüssel Epub_2; und einen privaten Steuerungsschlüssel Csec, das heißt zweite private Informationen.
  • <Privater Anbieterschlüssel Vsec>
  • Der private Anbieterschlüssel Vsec ist ein privater Schlüssel, der vom Lizenzabgabe-Server 10A verwendet wird, der ein Anbieter ist. Der Lizenzabgabe-Server 10A verwendet den privater Anbieterschlüssel Vsec beim Bereitstellen des Kontaktplanprogramms 42 für das Engineering-Werkzeug 21A. Insbesondere verwendet der Lizenzabgabe-Server 10A den privaten Anbieterschlüssel Vsec beim Verschlüsseln des Kontaktplanprogramms 42.
  • <Öffentlicher Engineering-Umgebungsschlüssel Epub_1 >
  • Der öffentliche Engineering-Umgebungsschlüssel Epub1_1 ist ein öffentlicher Schlüssel, der vom Lizenzabgabe-Server 10A verwendet wird. Der Lizenzabgabe-Server 10A verwendet den öffentlichen Engineering-Umgebungsschlüssel Epub_1 beim Bereitstellen des Kontaktplanprogramms 42 für das Engineering-Werkzeug 21A. Insbesondere verwendet der Lizenzabgabe-Server 10A den öffentlichen Engineering-Umgebungsschlüssel Epub_1 beim Verschlüsseln des Kontaktplanprogramms 42.
  • <Öffentlicher Anbieterschlüssel Vpub>
  • Der öffentliche Anbieterschlüssel Vpub ist ein öffentlicher Schlüssel, der vom Engineering-Werkzeug 21A verwendet wird. Das Engineering-Werkzeug 21A verwendet den öffentlichen Anbieterschlüssel Vpub beim Bezug des Kontaktplanprogramms 42 vom Lizenzabgabe-Server 10A. Insbesondere verwendet das Engineering-Werkzeug 21A den öffentlichen Anbieterschlüssel Vpub beim Decodieren von Abgabedateidaten 101 (werden hier später beschrieben), die das Kontaktplanprogramm 42 sind, das verschlüsselt worden ist. Der öffentliche Anbieterschlüssel Vpub bildet ein Paar mit dem privaten Anbieterschlüssel Vsec. Somit kann auch gesagt werden, dass die Beziehung zwischen dem öffentlichen Anbieterschlüssel Vpub und dem privaten Anbieterschlüssel Vsec vom Lizenzabgabe-Server 10A und dem Engineering-Werkzeug 21A gemeinsam genutzt wird.
  • <Privater Engineering-Umgebungsschlüssel Esec>
  • Der private Engineering-Umgebungsschlüssel Esec ist ein privater Schlüssel, der vom Engineering-Werkzeug 21A verwendet wird. Das Engineering-Werkzeug 21A verwendet den privaten Engineering-Umgebungsschlüssel Esec beim Bezug des Kontaktplanprogramms 42 vom Lizenzabgabe-Server 10A. Insbesondere verwendet das Engineering-Werkzeug 21A den privaten Engineering-Umgebungsschlüssel Esec beim Decodieren der Abgabedateidaten 101. Der private Engineering-Umgebungsschlüssel Esec bildet mit dem öffentlichen Engineering-Umgebungsschlüssel Epub_1 ein Paar. Somit kann auch gesagt werden, dass die Beziehung zwischen dem privaten Engineering-Umgebungsschlüssel Esec und dem öffentlichen Engineering-Umgebungsschlüssel Epub_1 vom Lizenzabgabe-Server 10A und dem Engineering-Werkzeug 21A gemeinsam genutzt wird.
  • <Öffentlicher Steuerungsschlüssel Cpub>
  • Der öffentliche Steuerungsschlüssel Cpub ist ein öffentlicher Schlüssel, der vom Engineering-Werkzeug 21A verwendet wird. Das Engineering-Werkzeug 21A verwendet den öffentlichen Anbieterschlüssel Cpub beim Bereitstellen des Kontaktplanprogramms 42 für die programmierbare Steuerung 30A. Insbesondere verwendet das Engineering-Werkzeug 21A den öffentlichen Steuerungsschlüssel Cpub beim Transformieren einer ausführbaren Datei 201 (wird hier später beschrieben), die vom Engineering-Werkzeug 21A decodiert worden ist, in eine Datei, die nur auf der programmierbaren Steuerung 30A betreibbar ist.
  • <Öffentlicher Engineering-Umgebungsschlüssel Epub_2>
  • Der öffentliche Engineering-Umgebungsschlüssel Epub_2 ist ein öffentlicher Schlüssel, der von der programmierbaren Steuerung 30A verwendet wird. Die programmierbare Steuerung 30A verwendet den öffentlichen Engineering-Umgebungsschlüssel Epub_2 beim Bezug der ausführbaren Datei 201 des Kontaktplanprogramms 42 vom Engineering-Werkzeug 21A. Insbesondere verwendet die programmierbare Steuerung 30A den öffentlichen Engineering-Umgebungsschlüssel Epub_2 beim Decodieren einer geschützten ausführbaren Datei 202 (die hier später beschrieben wird), welche die ausführbare Datei 201 ist, die verschlüsselt worden ist.
  • <Privater Steuerungsschlüssel Csec>
  • Der private Steuerungsschlüssel Csec ist ein privater Schlüssel, der von der programmierbaren Steuerung 30A verwendet wird. Die programmierbare Steuerung 30A verwendet den privaten Steuerungsschlüssel Csec beim Bezug der ausführbaren Datei 201 des Kontaktplanprogramms 42 aus dem Engineering-Werkzeug 21A. Insbesondere verwendet die programmierbare Steuerung 30A den privaten Steuerungsschlüssel Csec beim Decodieren der geschützten ausführbaren Datei 202, die eine geschützte Datei ist. Der private Steuerungsschlüssel Csec bildet mit dem öffentlichen Steuerungsschlüssel Cpub ein Paar. Somit kann auch gesagt werden, dass die Beziehung zwischen dem privaten Steuerungsschlüssel Csec und dem öffentlichen Steuerungsschlüssel Cpub vom Engineering-Werkzeug 21A und der programmierbaren Steuerung 30A gemeinsam genutzt wird.
  • Der Anbieter, d. h. der Verkäufer, installiert private Informationen, wie zum Beispiel private Schlüssel, und öffentliche Informationen, wie zum Beispiel öffentliche Schlüssel, im Engineering-Werkzeug 21A und in der programmierbaren Steuerung 30A, bevor er das oben genannte gebündelte Produkt an einen Nutzer, d. h. einen Abnehmer, verkauft. Bei dieser Operation gibt der Lizenzabgabe-Server 10A die oben beschriebenen zweiten privaten Informationen und die oben beschriebenen ersten öffentlichen Informationen an das spezifische Engineering-Werkzeug 21A und die oben beschriebenen zweiten öffentlichen Informationen an die spezifische programmierbare Steuerung 30A ab.
  • Eine beispielhafte Konfiguration des Lizenzabgabe-Servers 10A wird als Nächstes beschrieben. Die 2 ist ein Blockdiagramm, das eine beispielhafte Konfiguration des Lizenzabgabe-Servers gemäß der ersten Ausführungsform veranschaulicht. Der Lizenzabgabe-Server 10A umfasst eine Datenbank (DB) 11 für öffentliche Schlüsselpaare, die Paare öffentlicher Schlüssel speichert, von denen jedes ein Paar aus einem öffentlichen Schlüssel und einem privaten Schlüssel ist, und eine Nutzer-DB 12, die Nutzerinformationen speichert, die Informationen zum Nutzer sind.
  • Der Lizenzabgabe-Server 10A umfasst des Weiteren eine Lizenzzertifikats-Generierungseinheit 13, die das Lizenzzertifikat 41 generiert, und eine Kontaktplanprogramm-Transformationseinheit 14, die das Kontaktplanprogramm 42 in die Abgabedateidaten 101 transformiert. Die Abgabedateidaten 101 sind eine Datei, die durch Verschlüsselung des Kontaktplanprogramms 42 generiert wird, das der Anbieter dem Nutzer bereitstellt. Somit sind die Abgabedateidaten 101 Dateidaten des Kontaktplanprogramms 42, die durch den Lizenzabgabe-Server 10A sicher gemacht werden. Der Lizenzabgabe-Server 10A umfasst des Weiteren einen Speicher (nicht dargestellt), der den privaten Anbieterschlüssel Vsec, den öffentlichen Engineering-Umgebungsschlüssel Epub_1 und das Kontaktplanprogramm 42 speichert.
  • Die DB 11 für öffentliche Schlüsselpaare speichert Paare öffentlicher Schlüssel, die mehreren programmierbaren Steuerungen zugeordnet sind, einschließlich der programmierbaren Steuerung 30A und einer oder mehreren anderen programmierbaren Steuerungen. Mit anderen Worten: die DB 11 für öffentliche Schlüsselpaare speichert ein Paar aus einem öffentlichen Schlüssel und einem privaten Schlüssel für jede der programmierbaren Steuerungen 30A. Der in der DB 11 für öffentliche Schlüsselpaare gespeicherte öffentliche Schlüssel ist der öffentliche Steuerungsschlüssel Cpub, der später beschrieben wird, und der in der DB 11 für öffentliche Schlüsselpaare gespeicherte private Schlüssel ist der private Steuerungsschlüssel Csec, der später beschrieben wird.
  • Die Nutzer-DB 12 speichert Nutzerinformationen, die den Nutzer, der eine Lizenz des gebündelten Produkts abgenommen hat, mit Einrichtungsinformationen zur programmierbaren Steuerung 30A, die im gebündelten Produkt enthalten ist, das dem Nutzer geliefert worden ist, verknüpft.
  • Die Lizenzzertifikats-Generierungseinheit 13, die ein LizenzGenerierungseinheit ist, ist mit der DB 11 für öffentliche Schlüsselpaare und der Nutzer-DB 12 verbunden. Die Lizenzzertifikats-Generierungseinheit 13 generiert das Lizenzzertifikat 41 für den Nutzer auf der Basis eines öffentlichen Schlüsselpaars in der DB 11 für öffentliche Schlüsselpaare und der Nutzerinformationen in der Nutzer-DB 12. Insbesondere liest die Lizenzzertifikats-Generierungseinheit 13 aus der Nutzer-DB 12 die Einrichtungsinformationen zur programmierbaren Steuerung 30A, die das Ausgabeziel des Lizenzzertifikats 41 ist. Die Lizenzzertifikats-Generierungseinheit 13 liest aus der DB 11 für öffentliche Schlüsselpaare auch das öffentliche Schlüsselpaar, das den Einrichtungsinformationen zugeordnet ist, die gelesen worden sind. Die Lizenzzertifikats-Generierungseinheit 13 bindet in das Lizenzzertifikat 41 Folgendes ein: Informationen zum Ablaufzeitpunkt der Lizenz, Informationen zu im gebündelten Produkt enthaltenen Merkmalen und das öffentliche Schlüsselpaar, das der programmierbaren Steuerung 30A zugeordnet ist, die das Ausstellungsziel ist.
  • Die Lizenzzertifikats-Generierungseinheit 13 gibt das Lizenzzertifikat 41 an den Nutzer über ein elektronisches Medium, wie zum Beispiel elektronische Post (E-Mail), oder über ein Papiermedium ab. Falls das Lizenzzertifikat 41 unter Verwendung eines elektronischen Mediums abgegeben werden soll, generiert die Lizenzzertifikats-Generierungseinheit 13 eine E-Mail mit einer daran angehängten Datei des Lizenzzertifikats 41. Somit sendet der Lizenzabgabe-Server 10A die durch die Lizenzzertifikats-Generierungseinheit 13 generierte E-Mail an den Nutzer. Falls das Lizenzzertifikat 41 unter Verwendung eines Papiermediums abgegeben werden soll, gibt der Lizenzabgabe-Server 10A andernfalls Daten zum Ausdrucken des Lizenzzertifikats 41 auf einem Papiermedium an einen Drucker (nicht dargestellt) aus. Dann druckt der Drucker das Lizenzzertifikat 41 aus, um das Lizenzzertifikat 41 auf einem Papiermedium fertigzustellen. Das Lizenzzertifikat 41 auf einem Papiermedium wird dann an den Nutzer durch ein Abgabeverfahren, wie zum Beispiel per Post, abgegeben.
  • Die Kontaktplanprogramm-Transformationseinheit 14 verwendet den privaten Anbieterschlüssel Vsec und den öffentlichen Engineering-Umgebungsschlüssel Epub_1, um eine erste Transformation am Kontaktplanprogramm 42 durchzuführen. Insbesondere verwendet die Kontaktplanprogramm-Transformationseinheit 14 eine Schlüsselherleitungsfunktion (KDF), die eine Funktion der Schlüsselherleitung ist, eine Verschlüsselungsfunktion Enc und eine Manipulationsdetektionscode-Generierungsfunktion MAC, um das Kontaktplanprogramm 42 in die Abgabedateidaten 101 zur Abgabe an den Nutzer zu transformieren. Die KDF ist eine Funktion des Herleitens eines privaten Schlüssels. Die Verschlüsselungsfunktion Enc ist eine Funktion des Durchführens von Verschlüsselung. Die Manipulationsdetektionscode-Generierungsfunktion MAC ist eine Funktion des Generierens eines Manipulationsdetektionscodes zur Nachrichtenauthentifizierung.
  • Die Kontaktplanprogramm-Transformationseinheit 14 generiert einen Schlüssel für die Verschlüsselung und einen Schlüssel für die Manipulationsdetektion anhand des privaten Anbieterschlüssels Vsec und anhand des öffentlichen Engineering-Umgebungsschlüssels Epub_1 unter Verwendung der KDF. Der von der Kontaktplanprogramm-Transformationseinheit 14 generierte Schlüssel für die Verschlüsselung ist ein temporärer Schlüssel zur Verschlüsselung, und der Schlüssel für die Manipulationsdetektion ist ein temporärer Schlüssel zur Manipulationsdetektion. Der private Anbieterschlüssel Vsec ist ein privater Schlüssel, der für den Anbieter spezifisch ist, der das gebündelte Produkt liefert. Der öffentliche Engineering-Umgebungsschlüssel Epub_1 ist ein Verschlüsselungsschlüssel, um den privaten Anbieterschlüssel Vsec geheim zu halten. Zusätzlich verwendet die Kontaktplanprogramm-Transformationseinheit 14 den Schlüssel zur Verschlüsselung und den Schlüssel zur Manipulationsdetektion, die generiert worden sind, um das Kontaktplanprogramm 42 in die Abgabedateidaten 101 zu transformieren. Das Kontaktplanprogramm 42 ist ein Satz aus einem Teil, den ein Nutzer editieren darf, und einem Funktionsblock, der eine Funktionseinheit ist, die nicht von einem Nutzer editiert werden soll. Der Lizenzabgabe-Server 10A schreibt die Abgabedateidaten 101 in das Aufzeichnungsmedium 43.
  • Ein Betrieb des Lizenzabgabe-Servers 10A wird als Nächstes beschrieben. Der Lizenzabgabe-Server 10A speichert vorbereitend das öffentliche Schlüsselpaar in der DB 11 für öffentliche Schlüsselpaare und speichert die Nutzerinformationen in der Nutzer-DB 12.
  • Die Lizenzzertifikats-Generierungseinheit 13 generiert das Lizenzzertifikat 41 für den Nutzer auf der Basis eines öffentlichen Schlüsselpaars in der DB 11 für öffentliche Schlüsselpaare und der Nutzerinformationen in der Nutzer-DB 12. In dieser Operation liest die Lizenzzertifikats-Generierungseinheit 13 nutzerspezifische Einrichtungsinformationen aus der Nutzer-DB 12, und die Lizenzzertifikats-Generierungseinheit 13 liest aus der DB 11 für öffentliche Schlüsselpaare das öffentliche Schlüsselpaar, das den Einrichtungsinformationen zugeordnet ist, die gelesen worden sind. Die Lizenzzertifikats-Generierungseinheit 13 bindet dann in das Lizenzzertifikat 41 Folgendes ein: Informationen zum Ablaufzeitpunkt der Lizenz, Informationen zu im gebündelten Produkt enthaltenen Merkmalen und das öffentliche Schlüsselpaar, das der programmierbaren Steuerung 30A zugeordnet ist, die das Ausstellungsziel ist.
  • Unterdessen generiert die Kontaktplanprogramm-Transformationseinheit 14 den Schlüssel für die Verschlüsselung und den Schlüssel für die Manipulationsdetektion anhand des privaten Anbieterschlüssels Vsec und des Engineering-Umgebungsschlüssels Epub_1 unter Verwendung der KDF, die eine Schlüsselherleitungsfunktion ist. Das heißt: die Kontaktplanprogramm-Transformationseinheit 14 führt die nachstehende Verarbeitung (1) unter Verwendung des Verschlüsselungsschlüssels Kenc und des Schlüssels für die Manipulationsdetektion (hier nachstehend auch als Manipulationsdetektionsschlüssel bezeichnet) Kmac durch, wobei u den privaten Anbieterschlüssel Vsec darstellt und V den öffentlichen Engineering-Umgebungsschlüssel Epub_1 darstellt. In der nachstehenden Beschreibung wird das Symbol || verwendet, um Bit-Konkatenation darzustellen. KDF(uV) Kmac||Kenc
    Figure DE112017005726T5_0001
  • Es sei angemerkt, dass das Symbol „→“ in jeder Beschreibung der Verarbeitung in der ersten Ausführungsform eine Datenherleitungsverarbeitung darstellt. Insbesondere führt das System 1 zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung die auf der linken Seite des Symbols „→“ beschriebene Verarbeitung durch, um auf der rechten Seite des Symbols „→“ beschriebene Daten herzuleiten.
  • Es sei angemerkt, dass hier angenommen wird, dass eine Beziehung uV = vU gilt, wobei U den öffentlichen Anbieterschlüssel Vpub darstellt und v den privaten Engineering-Umgebungsschlüssel Esec darstellt. Ein Beispiel für die KDF ist die in RFC 2898, PKCS #5: Password-Based Cryptography Specification, Version 2.0. verwendete KDF.
  • Dann führt die Kontaktplanprogramm-Transformationseinheit 14 Verschlüsselungsverarbeitung und Manipulationsdetektionscode-Hinzufügungsverarbeitung am Kontaktplanprogramm 42, das einen Funktionsblock umfasst, durch. Das heißt: die Kontaktplanprogramm-Transformationseinheit 14 führt die nachstehende Verarbeitung (2) bzw. Verarbeitung (3) unter Verwendung der Verschlüsselungsfunktion Enc und der Manipulationsdetektionscode-Generierungsfunktion MAC durch, wobei m das Kontaktplanprogramm 42 darstellt. Enc(Kenc ,m) c
    Figure DE112017005726T5_0002
    MAC(Kmac ,c) tag
    Figure DE112017005726T5_0003
  • In den oben genannten Darstellungen stellt „c“ die Datei dar, die durch Verschlüsselung des Kontaktplanprogramms 42 unter Verwendung des Verschlüsselungsschlüssels generiert wird, und „tag“ stellt den Manipulationsdetektionscode dar, der durch Anwenden des Manipulationsdetektionsschlüssels auf c generiert wird. Die Kontaktplanprogramm-Transformationseinheit 14 verwendet c||tag als die Abgabedateidaten 101. Der Lizenzabgabe-Server 10A schreibt dann die Abgabedateidaten 101 in das Aufzeichnungsmedium 43. Dann wird das Aufzeichnungsmedium 43, das die Abgabedateidaten 101 speichert, durch den Anbieter an den Nutzer abgegeben.
  • Eine beispielhafte Funktionskonfiguration des Engineering-Werkzeugs 21A wird als Nächstes beschrieben. Die 3 ist ein Blockdiagramm, das eine beispielhafte Funktionskonfiguration des Engineering-Werkzeugs gemäß der ersten Ausführungsform veranschaulicht. Das Engineering-Werkzeug 21A umfasst eine Kontaktplanprogramm-Inverstransformationseinheit 22, welche die Abgabedateidaten 101, die vom Lizenzabgabe-Server 10A abgegeben werden, in das Kontaktplanprogramm 42 vor der Verschlüsselung invers transformiert, und eine Einheit 23 zur Transformation in ausführbares Format, die das Kontaktplanprogramm 42 in die ausführbare Datei 201 transformiert. Die ausführbare Datei 201 ist eine ausführbare Datei, die von der programmierbaren Steuerung 30A als ein Programm erkannt wird. Das Engineering-Werkzeug 21A umfasst des Weiteren eine Kontaktplanprogramm-Rücktransformationseinheit 24, welche die ausführbare Datei 201 in eine Datei transformiert, die nur auf der programmierbaren Steuerung 30A betreibbar ist.
  • Das Engineering-Werkzeug 21A umfasst des Weiteren einen Speicher (nicht dargestellt), der den öffentlichen Anbieterschlüssel Vpub und den privaten Engineering-Umgebungsschlüssel Esec speichert. Das Engineering-Werkzeug 21A liest die Abgabedateidaten 101 und das Lizenzzertifikat 41, die jeweils vom Lizenzabgabe-Server 10A aus einem Speicher im Entwicklungs-PC 20 abgegeben werden, und führt verschiedene Verarbeitungen durch. Der öffentliche Anbieterschlüssel Vpub ist ein öffentlicher Schlüssel, der für den Anbieter spezifisch ist, der das gebündelte Produkt liefert, und bildet ein Paar mit dem privaten Anbieterschlüssel Vsec. Das heißt: Daten, die unter Verwendung des privaten Anbieterschlüssels Vsec verschlüsselt worden sind, können unter Verwendung des öffentlichen Anbieterschlüssels Vpub decodiert werden. Der private Engineering-Umgebungsschlüssel Esec ist ein privater Schlüssel, der für das Engineering-Werkzeug 21A spezifisch ist, das im Engineering-Werkzeug 21A eingebettet ist, und bildet ein Paar mit dem öffentlichen Engineering-Umgebungsschlüssel Epub_2. Das heißt: Daten, die unter Verwendung des privaten Engineering-Umgebungsschlüssels Esec verschlüsselt worden sind, können unter Verwendung des öffentlichen Engineering-Umgebungsschlüssels Epub_2 decodiert werden.
  • Die Kontaktplanprogramm-Inverstransformationseinheit 22 führt eine erste Inverstransformation an den Abgabedateidaten 101 unter Verwendung des öffentlichen Anbieterschlüssels Vpub und des privaten Engineering-Umgebungsschlüssels Esec durch. Das heißt: die Kontaktplanprogramm-Inverstransformationseinheit 22 führt Inverstransformation durch, d. h. Decodieren unter Verwendung des öffentlichen Anbieterschlüssels Vpub und des privaten Engineering-Umgebungsschlüssels Esec, die jeweils vorher im Engineering-Werkzeug 21A eingebettet worden sind. Insbesondere invers transformiert die Kontaktplanprogramm-Inverstransformationseinheit 22 die Abgabedateidaten 101 in das Kontaktplanprogramm 42 vor der Verschlüsselung unter Verwendung des öffentlichen Anbieterschlüssels Vpub und des privaten Engineering-Umgebungsschlüssels Esec. Das heißt: die Kontaktplanprogramm-Inverstransformationseinheit 22 decodiert das Kontaktplanprogramm 42, das verschlüsselt worden ist, um somit das Kontaktplanprogramm 42 zu beziehen. Die Kontaktplanprogramm-Inverstransformationseinheit 22 sendet das Kontaktplanprogramm 42, das durch die Inverstransformation generiert worden ist, an die Einheit 23 zur Transformation in ausführbares Format.
  • Die Einheit 23 zur Transformation in ausführbares Format transformiert das Kontaktplanprogramm 42, das durch die von der Kontaktplanprogramm-Inverstransformationseinheit 22 durchgeführte Inverstransformation generiert worden ist, in die ausführbare Datei 201. Die Einheit 23 zur Transformation in ausführbares Format sendet die ausführbare Datei 201, die durch die Transformation generiert worden ist, an die Kontaktplanprogramm-Rücktransformationseinheit 24.
  • Die Kontaktplanprogramm-Rücktransformationseinheit 24 führt eine zweite Transformation auf der ausführbaren Datei 201 unter Verwendung des öffentlichen Steuerungsschlüssels Cpub durch. Insbesondere transformiert die Kontaktplanprogramm-Rücktransformationseinheit 24 die ausführbare Datei 201, die durch die von der Einheit 23 zur Transformation in ausführbares Format ausgeführte Transformation generiert worden ist, in eine Datei, die nur auf der programmierbaren Steuerung 30A betreibbar ist, die mit dem Lizenzzertifikat 41 verknüpft ist. Die Datei, die nur auf der programmierbaren Steuerung 30A betreibbar ist, die mit dem Lizenzzertifikat 41 verknüpft ist, ist die geschützte ausführbare Datei 202. Die geschützte ausführbare Datei 202 ist so geschützt, dass sie nicht in einer anderen programmierbaren Steuerung als der programmierbaren Steuerung 30A betrieben werden kann. Die geschützte ausführbare Datei 202 ist eine ausführbare Datei, die von der programmierbaren Steuerung 30A als ein Programm erkannt wird. Das Engineering-Werkzeug 21A sendet die geschützte ausführbare Datei 202, die von der Kontaktplanprogramm-Rücktransformationseinheit 24 generiert worden ist, an die programmierbare Steuerung 30A.
  • Ein Betrieb des Engineering-Werkzeugs 21A wird als Nächstes beschrieben. Der Entwicklungs-PC 20 speichert vorbereitend in einem seiner Speicher (nicht dargestellt) die Abgabedateidaten 101 und das Lizenzzertifikat 41, das aus dem Lizenzabgabe-Server 10A abgegeben worden ist.
  • Dann liest die Kontaktplanprogramm-Inverstransformationseinheit 22 des Engineering-Werkzeugs 21A die Abgabedateidaten 101, die aus dem Lizenzabgabe-Server 10A abgegeben worden sind, aus dem Speicher und invers transformiert die Abgabedateidaten 101 in das Kontaktplanprogramm 42 vor der Verschlüsselung. In dieser Operation führt die Kontaktplanprogramm-Inverstransformationseinheit 22 Inverstransformation durch, d. h. Decodieren unter Verwendung des öffentlichen Anbieterschlüssels Vpub und des privaten Engineering-Umgebungsschlüssels Esec, die vorher im Engineering-Werkzeug 21A eingebettet worden sind. Das heißt: die Kontaktplanprogramm-Inverstransformationseinheit 22 führt die nachstehende Verarbeitung (4) durch, wobei U den korrekten öffentlichen Anbieterschlüssel Vpub darstellt und v den privaten Engineering-Umgebungsschlüssel Esec darstellt. KDF(vU) Kmac||Kenc
    Figure DE112017005726T5_0004
  • Dies ermöglicht der Kontaktplanprogramm-Inverstransformationseinheit 22, den Verschlüsselungsschlüssel Kenc und den Manipulationsdetektionsschlüssel Kmac, die vom Lizenzabgabe-Server 10A generiert werden, zu reproduzieren. Die Kontaktplanprogramm-Inverstransformationseinheit 22 führt dann die nachstehende Verarbeitung (5) durch. Dec(Kenc ,c) m
    Figure DE112017005726T5_0005
  • In dieser Verarbeitung führt eine nicht vorhandene Manipulation von c zu einer Übereinstimmung zwischen dem tag, der zu den Abgabedateidaten 101 hinzugefügt worden ist, und dem tag, der durch die Verarbeitung (5) berechnet worden ist. Falls somit diese tags nicht übereinstimmen, bestimmt die Kontaktplanprogramm-Inverstransformationseinheit 22, dass das Kontaktplanprogramm 42 ein nicht autorisiertes Programm ist. Falls andernfalls eine Übereinstimmung zwischen diesen tags vorhanden ist, bestimmt die Kontaktplanprogramm-Inverstransformationseinheit 22, dass das Kontaktplanprogramm 42 ein normales Programm ist. Das heißt: falls eine Übereinstimmung zwischen diesen tags vorhanden ist, bestimmt die Kontaktplanprogramm-Inverstransformationseinheit 22, dass die Abgabedateidaten 101 eine Datei sind, die auf der programmierbaren Steuerung 30A betreibbar ist. Die Kontaktplanprogramm-Inverstransformationseinheit 22 identifiziert dann die Abgabedateidaten 101 als nicht manipuliert. Die Kontaktplanprogramm-Inverstransformationseinheit 22 führt des Weiteren die nachstehende Verarbeitung (6) unter Verwendung einer Decodierfunktion durch, die mit der Enc verknüpft ist. Dec(Kenc ,c) m
    Figure DE112017005726T5_0006
  • Somit bezieht die Kontaktplanprogramm-Inverstransformationseinheit 22 das Kontaktplanprogramm 42 durch Decodieren. Die Wiederherstellung des Kontaktplanprogramms 42 durch die Decodierung, die durch das Engineering-Werkzeug 21A wie oben beschrieben durchgeführt wird, ermöglicht es dem Nutzer, das Kontaktplanprogramm 42 zu editieren und das Kontaktplanprogramm 42 zu simulieren. Es sei angemerkt, dass eine in der Patentschrift 1, d. h. der japanischen offengelegten Patentanmeldung H10-124308 , beschriebene Sicherheitsfunktion auf dieser Stufe durchgeführt werden kann.
  • Die Kontaktplanprogramm-Inverstransformationseinheit 22 sendet das Kontaktplanprogramm 42, das durch Decodieren generiert worden ist, an die Einheit 23 zur Transformation in ausführbares Format. Die Einheit 23 zur Transformation in ausführbares Format transformiert dann das Kontaktplanprogramm 42 in die ausführbare Datei 201 und sendet die ausführbare Datei 201 an die Kontaktplanprogramm-Rücktransformationseinheit 24.
  • Dann transformiert die Kontaktplanprogramm-Rücktransformationseinheit 24 die ausführbare Datei 201 in eine Datei, die nur auf der programmierbaren Steuerung 30A betreibbar ist, die mit dem Lizenzzertifikat 41 verknüpft ist. Das heißt: die Kontaktplanprogramm-Rücktransformationseinheit 24 führt die nachstehende Verarbeitung (7) bis Verarbeitung (9) unter Verwendung eines Manipulationsdetektionsschlüssels K'mac und eines Verschlüsselungsschlüssels K'enc durch, wobei P1 den öffentlichen Steuerungsschlüssel Cpub darstellt, der im Lizenzzertifikat 41 angegeben ist, und v den privaten Engineering-Umgebungsschlüssel Esec darstellt. Es sei angemerkt, dass die ausführbare Datei 201 hier durch m' dargestellt wird. Zusätzlich stellt c' die Datei dar, die durch Verschlüsselung der ausführbaren Datei 201 unter Verwendung des Verschlüsselungsschlüssels K'enc generiert wird, und tag' stellt den Manipulationsdetektionscode dar, der durch Anwenden des Manipulationsdetektionsschlüssels K'mac auf c' generiert wird. KDF(vP1) K'mac||K'enc
    Figure DE112017005726T5_0007
    Enc(K'enc ,m') c'
    Figure DE112017005726T5_0008
    MAC(K'mac ,c') tag'
    Figure DE112017005726T5_0009
  • Die Kontaktplanprogramm-Rücktransformationseinheit 24 verwendet c'||tag' als die geschützte ausführbare Datei 202. Der Entwicklungs-PC 20 gibt dann die geschützte ausführbare Datei 202 an die programmierbare Steuerung 30A aus.
  • Eine beispielhafte Konfiguration der programmierbaren Steuerung 30A wird als Nächstes beschrieben. Die 4 ist ein Blockdiagramm, das eine beispielhafte Konfiguration der programmierbaren Steuerung gemäß der ersten Ausführungsform veranschaulicht. Die programmierbare Steuerung 30A umfasst eine Kontaktplanprogramm-Inverstransformationseinheit 31, die eine Bestimmungseinheit ist, die bestimmt, ob die geschützte ausführbare Datei 202 darauf betreibbar ist, und falls sie betreibbar ist, die geschützte ausführbare Datei 202 in die ausführbare Datei 201 invers transformiert, die in einer Steuerverarbeitungseinheit 32 ausführbar ist. Die Kontaktplanprogramm-Inverstransformationseinheit 31 führt eine zweite Inverstransformation an der geschützten ausführbaren Datei 202 unter Verwendung des öffentlichen Engineering-Umgebungsschlüssels Epub_2 und des privaten Steuerungsschlüssels Csec durch. Die programmierbare Steuerung 30A umfasst des Weiteren die Steuerverarbeitungseinheit 32, welche die Steuerzieleinrichtung unter Verwendung der ausführbaren Datei 201 steuert.
  • Die programmierbare Steuerung 30A umfasst des Weiteren einen Speicher (nicht dargestellt), der den öffentlichen Engineering-Umgebungsschlüssel Epub_2 und den privaten Steuerungsschlüssel Csec speichert. Der öffentliche Engineering-Umgebungsschlüssel Epub_2 bildet mit dem privaten Engineering-Umgebungsschlüssel Esec ein Paar.
  • Eine Operation der programmierbaren Steuerung 30A wird als Nächstes beschrieben. Die programmierbare Steuerung 30A speichert vorbereitend die geschützte ausführbare Datei 202, die vom Engineering-Werkzeug 21A gesendet worden ist, im Speicher (nicht dargestellt).
  • Dann invers transformiert die Kontaktplanprogramm-Inverstransformationseinheit 31 der programmierbaren Steuerung 30A die geschützte ausführbare Datei 202, die vom Engineering-Werkzeug 21A gesendet worden ist, in die ausführbare Datei 201, die in der Steuerverarbeitungseinheit 32 ausführbar ist. In dieser Operation führt die Kontaktplanprogramm-Inverstransformationseinheit 31 Inverstransformation durch, d. h. Decodieren unter Verwendung des öffentlichen Engineering-Umgebungsschlüssels Epub_2 und des privaten Steuerungsschlüssels Csec, die jeweils im Speicher gespeichert sind, der in der programmierbaren Steuerung 30A enthalten ist. Das heißt: da eine Beziehung vP1 = p1V gilt, wobei V den korrekten öffentlichen Engineering-Umgebungsschlüssel Epub darstellt und p1 den privaten Steuerungsschlüssel Csec darstellt, führt die Kontaktplanprogramm-Inverstransformationseinheit 31 die nachstehende Verarbeitung (10) durch. KDF(p1V) K'mac||K'enc
    Figure DE112017005726T5_0010
  • Somit reproduziert die Kontaktplanprogramm-Inverstransformationseinheit 31 den Verschlüsselungsschlüssel K'enc und den Manipulationsdetektionsschlüssel K'mac, die vom Engineering-Werkzeug 21A generiert sind. Die Kontaktplanprogramm-Inverstransformationseinheit 31 führt dann die nachstehende Verarbeitung (11) durch. MAC(K'mac ,c') tag'
    Figure DE112017005726T5_0011
  • In dieser Verarbeitung führt eine nicht vorhandene Manipulation von c' zu einer Übereinstimmung zwischen dem tag', der zur geschützten ausführbaren Datei 202 hinzugefügt worden ist, und dem durch die Verarbeitung (11) berechneten tag'. Falls somit diese tags nicht übereinstimmen, bestimmt die Kontaktplanprogramm-Inverstransformationseinheit 31, dass das Kontaktplanprogramm 42 ein nicht autorisiertes Programm ist. Falls andernfalls eine Übereinstimmung zwischen diesen tags vorhanden ist, bestimmt die Kontaktplanprogramm-Inverstransformationseinheit 31, dass das Kontaktplanprogramm 42 ein normales Programm ist. Das heißt: falls eine Übereinstimmung zwischen diesen tags vorhanden ist, bestimmt die Kontaktplanprogramm-Inverstransformationseinheit 31, dass die geschützte ausführbare Datei 202 eine Datei ist, die auf der programmierbaren Steuerung 30A betreibbar ist. Die Kontaktplanprogramm-Inverstransformationseinheit 31 identifiziert dann die geschützte ausführbare Datei 202 als nicht manipuliert. Die Kontaktplanprogramm-Inverstransformationseinheit 31 führt des Weiteren die nachstehende Verarbeitung (12) unter Verwendung der Decodierfunktion Dec durch, die mit der Enc verknüpft ist. Dec(K'enc ,c') m'
    Figure DE112017005726T5_0012
  • Somit decodiert die Kontaktplanprogramm-Inverstransformationseinheit 31 die geschützte ausführbare Datei 202. Die Kontaktplanprogramm-Inverstransformationseinheit 31 sendet die ausführbare Datei 201, die durch Decodieren wiederhergestellt worden ist, an die Steuerverarbeitungseinheit 32. Die Steuerverarbeitungseinheit 32 steuert dann die Steuerzieleinrichtung unter Verwendung der ausführbaren Datei 201. Die Wiederherstellung der ausführbaren Datei 201 durch die programmierbare Steuerung 30A wie oben beschrieben ermöglicht es der programmierbaren Steuerung 30A, die ausführbare Datei 201 auszuführen.
  • Es sei angemerkt, dass, wenn das Engineering-Werkzeug 21A anfordert, dass die programmierbare Steuerung 30A eine Datei liest, die programmierbare Steuerung 30A die geschützte ausführbare Datei 202 statt der durch Decodieren wiederhergestellten ausführbaren Datei 201 an das Engineering-Werkzeug 21A ausgibt.
  • Ein Operationsverlauf, der vom System 1 zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung durchgeführt wird, wird als Nächstes beschrieben. Die 5 ist ein Flussdiagramm, das einen Operationsverlauf veranschaulicht, der vom System zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung gemäß der ersten Ausführungsform durchgeführt wird.
  • <Lizenzabgabe-Server 10A>
  • Im Schritt S10 verschlüsselt der Lizenzabgabe-Server 10A das Kontaktplanprogramm 42 unter Verwendung von u, das den privaten Anbieterschlüssel Vsec darstellt, und von V, das den öffentlichen Engineering-Umgebungsschlüssel Epub_1 darstellt, und generiert somit die Abgabedateidaten 101. Dann generiert der Lizenzabgabe-Server 10A im Schritt S20 das Lizenzzertifikat 41 für den Nutzer auf der Basis des öffentlichen Schlüsselpaars in der DB 11 für öffentliche Schlüsselpaare und der Nutzerinformationen in der Nutzer-DB 12.
  • <Engineering-Werkzeug 21A>
  • Das Engineering-Werkzeug 21A bezieht die Abgabedateidaten 101, die vom Lizenzabgabe-Server 10A generiert werden, vom Lizenzabgabe-Server 10A. Dann prüft das Engineering-Werkzeug 21A im Schritt S30 den tag der Abgabedateidaten 101, die vom Lizenzabgabe-Server 10A generiert werden, unter Verwendung von U, das den öffentliche Anbieterschlüssel Vpub darstellt, und von v, das den privaten Engineering-Umgebungsschlüssel Esec darstellt.
  • Dann bestimmt das Engineering-Werkzeug 21A im Schritt S35, ob eine Übereinstimmung zwischen dem tag, der zu den Abgabedateidaten 101 hinzugefügt worden ist, und dem tag, der durch das Engineering-Werkzeug 21A berechnet worden ist, vorhanden ist.
  • Falls keine Übereinstimmung zwischen dem tag, der zu den Abgabedateidaten 101 hinzugefügt worden ist, und dem tag, der durch das Engineering-Werkzeug 21A berechnet worden ist, vorhanden ist, das heißt Nein im Schritt S35, bricht das Engineering-Werkzeug 21A den Prozess unter der Annahme ab, dass die Abgabedateidaten 101 manipuliert sind.
  • Falls eine Übereinstimmung zwischen dem tag, der zu den Abgabedateidaten 101 hinzugefügt worden ist, und dem tag, der durch das Engineering-Werkzeug 21A berechnet worden ist, vorhanden ist, das heißt Ja im Schritt S35, decodiert das Engineering-Werkzeug 21A die Abgabedateidaten 101 im Schritt S40. Somit stellt das Engineering-Werkzeug 21A das Kontaktplanprogramm 42 wieder her. Die Wiederherstellung des Kontaktplanprogramms 42 durch das Engineering-Werkzeug 21A ermöglicht es dem Nutzer, das Kontaktplanprogramm 42 zu editieren und das Kontaktplanprogramm 42 zu simulieren. Wie hier verwendet, bezieht sich der Begriff „simulieren“ auf die Ausführung des Kontaktplanprogramms 42 auf Software.
  • Nach der Wiederherstellung des Kontaktplanprogramms 42 transformiert das Engineering-Werkzeug 21A im Schritt S50 das Kontaktplanprogramm 42 in ein ausführbares Format, um das Kontaktplanprogramm 42 in die programmierbare Steuerung 30A einzubetten. Insbesondere transformiert das Engineering-Werkzeug 21A das Kontaktplanprogramm 42 in die ausführbare Datei 201.
  • Das Engineering-Werkzeug 21A bezieht auch das Lizenzzertifikat 41, das vom Lizenzabgabe-Server 10A generiert wird, vom Lizenzabgabe-Server 10A. Dann verschlüsselt das Engineering-Werkzeug 21A im Schritt S60 die ausführbare Datei 201 unter Verwendung von P1, das den öffentlichen Steuerungsschlüssel Cpub darstellt, der im Lizenzzertifikat 41 registriert ist, und generiert somit die geschützte ausführbare Datei 202.
  • <Programmierbare Steuerung 30A>
  • Die programmierbare Steuerung 30A bezieht die geschützte ausführbare Datei 202 vom Engineering-Werkzeug 21A. Dann prüft die programmierbare Steuerung 30A im Schritt S70 den tag' der geschützten ausführbaren Datei 202 unter Verwendung von V, das den öffentlichen Engineering-Umgebungsschlüssels Epub_2 darstellt, und p1, das den privaten Steuerungsschlüssel Csec darstellt.
  • Im Schritt S75 bestimmt die programmierbare Steuerung 30A, ob eine Übereinstimmung zwischen dem tag', der zur geschützten ausführbaren Datei 202 hinzugefügt worden ist, und dem tag', der von der programmierbaren Steuerung 30A berechnet worden ist, vorhanden ist.
  • Falls keine Übereinstimmung zwischen dem tag', der zur geschützten ausführbaren Datei 202 hinzugefügt worden ist, und dem tag', der von der programmierbaren Steuerung 30A berechnet worden ist, vorhanden ist, das heißt Nein im Schritt S75, bricht die programmierbare Steuerung 30A den Prozess unter der Annahme ab, dass die geschützte ausführbare Datei 202 manipuliert ist, oder unter der Annahme, dass die geschützte ausführbare Datei 202 eine Datei ist, die für eine andere programmierbare Steuerung als die programmierbare Steuerung 30A gedacht ist.
  • Falls andernfalls eine Übereinstimmung zwischen dem tag', der zur geschützten ausführbaren Datei 202 hinzugefügt worden ist, und dem tag', der von der programmierbaren Steuerung 30A berechnet worden ist, vorhanden ist, das heißt Ja im Schritt S75, speichert die programmierbare Steuerung 30A die geschützte ausführbare Datei 202 im Schritt S80.
  • Im Schritt S90 decodiert die programmierbare Steuerung 30A die geschützte ausführbare Datei 202. Somit stellt das Engineering-Werkzeug 21A die ausführbare Datei 201 wieder her. Dann steuert die programmierbare Steuerung 30A im Schritt S100 die Steuerzieleinrichtung unter Verwendung der ausführbaren Datei 201 und beendet dann den Prozess normal.
  • Eine Hardware-Konfiguration des Systems 1 zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung wird als Nächstes beschrieben. Die 6 ist ein Diagramm, das eine Hardware-Konfiguration des Systems zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung gemäß der ersten Ausführungsform veranschaulicht.
  • Der Lizenzabgabe-Server 10A des Systems 1 zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung umfasst einen Prozessor 61, eine Speichereinheit 62, eine Kommunikationseinheit 63 und eine Ausgabeeinheit 64. Im Lizenzabgabe-Server 10A sind der Prozessor 61, die Speichereinheit 62, die Kommunikationseinheit 63 und die Ausgabeeinheit 64 mit einem Bus verbunden.
  • Die Kommunikationseinheit 63 kommuniziert mit dem Entwicklungs-PC 20 über das Internet 2. Es sei angemerkt, dass die Kommunikationseinheit 63 mit einer anderen Einrichtung als dem Entwicklungs-PC 20 kommunizieren kann. Für den Fall, dass der Lizenzabgabe-Server 10A das Lizenzzertifikat 41 dem Nutzer online bereitstellt, sendet die Kommunikationseinheit 63 das Lizenzzertifikat 41 an den Entwicklungs-PC 20 über das Internet 2. Auch für den Fall, dass der Lizenzabgabe-Server 10A die Abgabedateidaten 101 dem Nutzer online bereitstellt, sendet die Kommunikationseinheit 63 die Abgabedateidaten 101 an den Entwicklungs-PC 20 über das Internet 2.
  • Die Ausgabeeinheit 64 gibt Informationen im Lizenzabgabe-Server 10A an eine externe Einrichtung aus. Für den Fall, dass der Lizenzabgabe-Server 10A das Lizenzzertifikat 41 dem Nutzer per Post bereitstellt, gibt die Ausgabeeinheit 64 Daten des Lizenzzertifikats 41, die von der Lizenzzertifikats-Generierungseinheit 13 generiert werden, an eine externe Einrichtung aus, wie zum Beispiel einen Drucker. Die Ausgabeeinheit 64 kann die Daten des Lizenzzertifikats 41 auch in das transportierbare Aufzeichnungsmedium 43 schreiben, wie zum Beispiel eine DVD. Die Ausgabeeinheit 64 kann auch die Abgabedateidaten 101 in das Aufzeichnungsmedium 43 schreiben.
  • Die Speichereinheit 62 umfasst die DB 11 für öffentliche Schlüsselpaare und die Nutzer-DB 12. Die Speichereinheit 62 speichert den privaten Anbieterschlüssel Vsec, den öffentlichen Engineering-Umgebungsschlüssel Epub_1 und das Kontaktplanprogramm 42. Die Speichereinheit 62 speichert auch ein Programm zum Durchführen der Verarbeitung der Lizenzzertifikats-Generierungseinheit 13 und ein Programm zum Durchführen der Verarbeitung der Kontaktplanprogramm-Transformationseinheit 14. Die Speichereinheit 62 speichert des Weiteren das Lizenzzertifikat 41, das ein Ergebnis der Verarbeitung der Lizenzzertifikats-Generierungseinheit 13 ist, und die Abgabedateidaten 101, die ein Ergebnis der Verarbeitung der Kontaktplanprogramm-Transformationseinheit 14 sind.
  • Der Lizenzabgabe-Server 10A wird vom Prozessor 61 durch Lesen und Ausführen eines Programms implementiert, das in der Speichereinheit 62 gespeichert ist, um eine Operation des Lizenzabgabe-Servers 10A bereitzustellen. Es kann auch gesagt werden, dass dieses Programm bewirkt, dass der Computer eine Prozedur oder ein Verfahren des Lizenzabgabe-Servers 10A durchführt. Der Prozessor 61 der ersten Ausführungsform verwendet verschiedene Programme, um die Verarbeitung der Lizenzzertifikats-Generierungseinheit 13 und der Kontaktplanprogramm-Transformationseinheit 14 durchzuführen. Die Speichereinheit 62 wird auch als ein temporärer Speicher beim Durchführen verschiedener Verarbeitungen durch den Prozessor 61 verwendet.
  • Somit sind Programme, die vom Prozessor 61 ausgeführt werden, ein Computerprogrammprodukt, das in einem nichtflüchtigen computerlesbaren Aufzeichnungsmedium enthalten ist, das mehrere vom Computer ausführbare Anweisungen zum Durchführen von Datenverarbeitung umfasst. Die mehreren Anweisungen eines Programms, das vom Prozessor 61 ausgeführt wird, bewirken, dass der Computer Datenverarbeitung durchführt.
  • Im Lizenzabgabe-Server 10A kann die Funktion der Lizenzzertifikats-Generierungseinheit 13 oder der Kontaktplanprogramm-Transformationseinheit 14 in einem dedizierten Hardware-Element implementiert werden. Alternativ können die Funktionen des Lizenzabgabe-Servers 10A zum Teil in einem dedizierten Hardware-Element und zum Teil in Software oder Firmware implementiert werden.
  • Der Entwicklungs-PC 20 des Systems 1 zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung umfasst einen Prozessor 71, eine Speichereinheit 72, eine Kommunikationseinheit 73, eine Ausgabeeinheit 74 und eine Eingabeeinheit 75. Im Entwicklungs-PC 20 sind der Prozessor 71, die Speichereinheit 72, die Kommunikationseinheit 73, die Ausgabeeinheit 74 und die Eingabeeinheit 75 mit einem Bus verbunden. Die Eingabeeinheit 75 empfängt die Abgabedateidaten 101 und das Lizenzzertifikat 41, die von einer externen Einrichtung gesendet werden, und gibt die Abgabedateidaten 101 und das Lizenzzertifikat 41 in die Speichereinheit 72 ein.
  • Die Kommunikationseinheit 73 weist Funktionen ähnlich den Funktionen der Kommunikationseinheit 63 auf. Die Ausgabeeinheit 74 weist Funktionen ähnlich den Funktionen der Ausgabeeinheit 64 auf. Die Kommunikationseinheit 73 kommuniziert mit dem Lizenzabgabe-Server 10A über das Internet 2. Es sei angemerkt, dass die Kommunikationseinheit 73 mit einer anderen Einrichtung als dem Lizenzabgabe-Server 10A kommunizieren kann. Für den Fall, dass der Lizenzabgabe-Server 10A das Lizenzzertifikat 41 dem Nutzer online bereitstellt, empfängt die Kommunikationseinheit 73 das Lizenzzertifikat 41 über das Internet 2. Auch für den Fall, dass der Lizenzabgabe-Server 10A die Abgabedateidaten 101 dem Nutzer online bereitstellt, empfängt die Kommunikationseinheit 73 die Abgabedateidaten 101 über das Internet 2.
  • Die Ausgabeeinheit 74 schreibt die geschützte ausführbaren Datei 202 in das transportierbare Aufzeichnungsmedium 43, wie zum Beispiel einen Universal Serial Bus (USB-) Speicher. In diesem Fall ist das Aufzeichnungsmedium 43, das die darin geschriebene geschützte ausführbare Datei 202 umfasst, mit der programmierbaren Steuerung 30A verbunden. Die programmierbare Steuerung 30A liest dann die geschützte ausführbare Datei 202, die in das Aufzeichnungsmedium 43 geschrieben ist. Es sei angemerkt, dass die Kommunikationseinheit 73 stattdessen die geschützte ausführbare Datei 202 an die programmierbare Steuerung 30A senden kann. In diesem Fall verwendet die Kommunikationseinheit 73 für die Kommunikation zum Beispiel Ethernet- (eingetragene Marke) Kommunikation. Die geschützte ausführbare Datei 202, die über die Ausgabeeinheit 74 oder über die Kommunikationseinheit 73 an die programmierbare Steuerung 30A gesendet worden ist, wird dann in einer Speichereinheit 82, die später beschrieben wird, der programmierbaren Steuerung 30A gespeichert.
  • Der Prozessor 71 weist Funktionen ähnlich den Funktionen des Prozessors 61 auf. Die Speichereinheit 72 weist Funktionen ähnlich den Funktionen der Speichereinheit 62 auf. Die Speichereinheit 72 speichert den öffentlichen Anbieterschlüssel Vpub und den privaten Engineering-Umgebungsschlüssel Esec. Der öffentliche Anbieterschlüssel Vpub und der private Engineering-Umgebungsschlüssel Esec, die in diesem Prozess verwendet werden, sind vom Nutzer nicht zu editierende Informationen. Die Speichereinheit 72 speichert auch die Abgabedateidaten 101 und das Lizenzzertifikat 41. Die Speichereinheit 72 speichert des Weiteren Programme zum Durchführen der Verarbeitungen der Kontaktplanprogramm-Inverstransformationseinheit 22, der Einheit 23 zur Transformation in ausführbares Format und der Kontaktplanprogramm-Rücktransformationseinheit 24. Die Speichereinheit 72 speichert auch das Kontaktplanprogramm 42, das ein Ergebnis der Verarbeitung der Kontaktplanprogramm-Inverstransformationseinheit 22 ist, die ausführbare Datei 201, die ein Ergebnis der Verarbeitung der Einheit 23 zur Transformation in ausführbares Format ist, und die geschützte ausführbare Datei 202, die ein Ergebnis der Verarbeitung der Kontaktplanprogramm-Rücktransformationseinheit 24 ist.
  • Der Entwicklungs-PC 20 wird vom Prozessor 71 durch Lesen und Ausführen eines Programms implementiert, das in der Speichereinheit 72 gespeichert ist, um eine Operation des Entwicklungs-PCs 20 bereitzustellen. Es kann auch gesagt werden, dass dieses Programm bewirkt, dass der Computer eine Prozedur oder ein Verfahren des Entwicklungs-PCs 20 durchführt. Der Entwicklungs-PC 20 lässt das Engineering-Werkzeug 21A, das ein Anwendungsprogramm ist, durch den Prozessor 71 laufen. Der Prozessor 71 der ersten Ausführungsform verwendet das Engineering-Werkzeug 21A, das eines der Programme ist, die im Entwicklungs-PC 20 enthalten sind, um die Verarbeitungen der Kontaktplanprogramm-Inverstransformationseinheit 22, der Einheit 23 zur Transformation in ausführbares Format und der Kontaktplanprogramm-Rücktransformationseinheit 24 durchzuführen. Die Speichereinheit 72 wird auch als ein temporärer Speicher beim Durchführen verschiedener Verarbeitungen durch den Prozessor 71 verwendet.
  • Somit sind Programme, die vom Prozessor 71 ausgeführt werden, ein Computerprogrammprodukt, das in einem nichtflüchtigen computerlesbaren Aufzeichnungsmedium enthalten ist, das mehrere vom Computer ausführbare Anweisungen zum Durchführen von Datenverarbeitung umfasst. Die mehreren Anweisungen eines Programms, das vom Prozessor 71 ausgeführt wird, bewirken, dass der Computer Datenverarbeitung durchführt.
  • Im Entwicklungs-PC 20 kann die Funktion der Kontaktplanprogramm-Inverstransformationseinheit 22, der Einheit 23 zur Transformation in ausführbares Format oder der Kontaktplanprogramm-Rücktransformationseinheit 24 in einem dedizierten Hardware-Element implementiert werden. Alternativ können die Funktionen des Entwicklungs-PCs 20 zum Teil in einem dedizierten Hardware-Element und zum Teil in Software oder Firmware implementiert werden.
  • Die programmierbare Steuerung 30A des Systems 1 zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung umfasst einen Prozessor 81, die Speichereinheit 82, eine Kommunikationseinheit 83 und eine Steuersignal-Ausgabeeinheit 86. In der programmierbaren Steuerung 30A sind der Prozessor 81, die Speichereinheit 82, die Kommunikationseinheit 83 und die Steuersignal-Ausgabeeinheit 86 mit einem Bus verbunden.
  • Die Kommunikationseinheit 83 kommuniziert mit der Kommunikationseinheit 73. Die Kommunikationseinheit 83 empfängt die geschützte ausführbare Datei 202, die von der Kommunikationseinheit 73 gesendet wird. Die Kommunikationseinheit 83 verwendet für die Kommunikation zum Beispiel Ethernet-Kommunikation. Die Kommunikationseinheit 83 speichert die geschützte ausführbare Datei 202, die von der Kommunikationseinheit 73 empfangen wird, in der Speichereinheit 82. Es sei angemerkt, dass die Kommunikationseinheit 83 mit einer anderen Einrichtung als dem Entwicklungs-PC 20 kommunizieren kann. Die Steuersignal-Ausgabeeinheit 86 gibt Anweisungen, die der ausführbaren Datei 201 entsprechen, an die Steuerzieleinrichtung aus. Die Steuersignal-Ausgabeeinheit 86 gibt an die Steuerzieleinrichtung einen Signalwert aus, der das Ergebnis der Verarbeitung durch die oben beschriebene Steuerverarbeitungseinheit 32 ist.
  • Der Prozessor 81 weist Funktionen ähnlich den Funktionen jedes der Prozessoren 61 und 71 auf. Die Speichereinheit 82 weist Funktionen ähnlich den Funktionen jeder der Speichereinheiten 62 und 72 auf. Die Speichereinheit 82 speichert den öffentlichen Engineering-Umgebungsschlüssel Epub_2, den privaten Steuerungsschlüssel Csec und die geschützte ausführbare Datei 202. Die Speichereinheit 82 speichert auch Programme zum Durchführen der Verarbeitungen der Kontaktplanprogramm-Inverstransformationseinheit 31 und der Steuerverarbeitungseinheit 32. Die Speichereinheit 82 speichert des Weiteren die ausführbare Datei 201, die ein Ergebnis der Verarbeitung der Kontaktplanprogramm-Inverstransformationseinheit 31 ist.
  • Die programmierbare Steuerung 30A wird vom Prozessor 81 durch Lesen und Ausführen eines Programms implementiert, das in der Speichereinheit 82 gespeichert ist, um eine Operation der programmierbaren Steuerung 30A bereitzustellen. Es kann auch gesagt werden, dass dieses Programm bewirkt, dass der Computer eine Prozedur oder ein Verfahren der programmierbaren Steuerung 30A durchführt. Der Prozessor 81 der ersten Ausführungsform verwendet Programme, um die Verarbeitungen der Kontaktplanprogramm-Inverstransformationseinheit 31 und der Steuerverarbeitungseinheit 32 durchzuführen. Die Speichereinheit 82 wird auch als ein temporärer Speicher beim Durchführen verschiedener Verarbeitungen durch den Prozessor 81 verwendet.
  • Somit sind Programme, die vom Prozessor 81 ausgeführt werden, ein Computerprogrammprodukt, das in einem nichtflüchtigen computerlesbaren Aufzeichnungsmedium enthalten ist, das mehrere vom Computer ausführbare Anweisungen zum Durchführen von Datenverarbeitung umfasst. Die mehreren Anweisungen eines Programms, das vom Prozessor 81 ausgeführt wird, bewirken, dass der Computer Datenverarbeitung durchführt.
  • In der programmierbaren Steuerung 30A kann die Funktion der Kontaktplanprogramm-Inverstransformationseinheit 31 oder der Steuerverarbeitungseinheit 32 in einem dedizierten Hardware-Element implementiert werden. Alternativ können die Funktionen der programmierbaren Steuerung 30A zum Teil in einem dedizierten Hardware-Element und zum Teil in Software oder Firmware implementiert werden.
  • Die Prozessoren 61, 71 und 81 sind jeweils eine zentrale Recheneinheit (CPU) (die auch als eine Verarbeitungseinheit, eine Recheneinheit, ein Mikroprozessor, ein Mikrocomputer, ein Prozessor, ein Digital-Signal-Prozessor (DSP) bezeichnet wird), ein Large-Scale-Integration- (LSI-) System oder dergleichen.
  • Die Speichereinheiten 62, 72 und 82 können jeweils ein nichtflüchtiger oder flüchtiger Halbleiterspeicher sein, wie zum Beispiel ein Direktzugriffspeicher (RAM), ein Nur-Lese-Speicher (ROM) oder ein Flash-Speicher, oder sie können eine Magnetplatte oder eine Flexible Disk sein.
  • Das Liefern des gebündelten Produkts einschließlich der programmierbaren Steuerung 30A, des Kontaktplanprogramms 42 und der Peripherieeinrichtung kombiniert in einem Bündel an den Nutzer kann die Einrichtungszeit der vom Nutzer verwendeten Fertigungsstrecke reduzieren. Ein derartiges gebündeltes Produkt gestattet einem nicht autorisierten Nutzer, das Kontaktplanprogramm 42 anderer Nutzer zu verwenden, es sei denn, es wird eine Beschränkung der Verwendung des Kontaktplanprogramms 42 auferlegt. Somit führt der Lizenzabgabe-Server 10A in der ersten Ausführungsform Verschlüsselung auf einer Basis je Nutzer durch, und das Engineering-Werkzeug 21A führt eine Verschlüsselung für jede programmierbare Steuerung 30A durch. In der ersten Ausführungsform stellt dies die Sicherheit des gebündelten Produkts unter den oben beschriebenen einschränkenden Bedingungen sicher. Dies kann nicht autorisiertes Durchsuchen, Editieren, Kopieren und Ausführen des Kontaktplanprogramms 42 im gebündelten Produkt verhindern.
  • Somit transformiert das System 1 zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung durch den Lizenzabgabe-Server 10A das zu schützende Kontaktplanprogramm 42 in die Abgabedateidaten 101 mit einem Format, das nur durch das autorisierte Engineering-Werkzeug 21A decodierbar ist. Dies kann das Kontaktplanprogramm 42 in den Abgabedateidaten 101 schützen, sogar wenn die Abgabedateidaten 101, die an das autorisierte Engineering-Werkzeug 21A abgegeben werden sollen, durchsickern.
  • Zusätzlich führt das Engineering-Werkzeug 21A Verschlüsselung unter Verwendung des Lizenzzertifikats 41 durch, das vom Lizenzabgabe-Server 10A abgegeben wird, und kann somit das Kontaktplanprogramm 42 in eine Datei transformieren, die nur auf der spezifischen programmierbaren Steuerung 30A betreibbar ist. Somit kann das Engineering-Werkzeug 21A das Kontaktplanprogramm 42 vor Missbrauch schützen, wie zum Beispiel für den Fall, dass das Kontaktplanprogramm 42 ohne Autorisierung von einer anderen programmierbaren Steuerung verwendet wird.
  • Wie oben beschrieben wird, führt das Engineering-Werkzeug 21A in der ersten Ausführungsform verschiedene Verarbeitungen auf dem Kontaktplanprogramm 42 durch, das unter Verwendung des öffentlichen Engineering-Umgebungsschlüssels Epub_1 verschlüsselt worden ist, und verschlüsselt dann unter Verwendung des öffentlichen Steuerungsschlüssels Cpub das Kontaktplanprogramm 42, das verarbeitet worden ist, damit es auf der programmierbaren Steuerung 30A betreibbar ist, jedoch auf anderen programmierbaren Steuerungen nicht betreibbar ist. Die programmierbare Steuerung 30A bestimmt dann, ob das Kontaktplanprogramm 42, das unter Verwendung des öffentlichen Steuerungsschlüssels Cpub verschlüsselt worden ist, auf dieser programmierbaren Steuerung 30A betreibbar ist. Somit ist das Kontaktplanprogramm 42, das für die programmierbare Steuerung 30A generiert worden ist, auf der programmierbaren Steuerung 30A betreibbar, jedoch auf anderen programmierbaren Steuerungen nicht betreibbar. Dies kann nicht autorisierte Verwendung des Kontaktplanprogramms 42, das vom Lizenzabgabe-Server 10A abgegeben wird, verhindern.
  • Zusätzlich verschlüsselt das Engineering-Werkzeug 21A das Kontaktplanprogramm 42 auf der Basis des Lizenzzertifikats 41 für die programmierbare Steuerung 30A. Dies kann ein Decodieren des Kontaktplanprogramms 42 durch eine andere programmierbare Steuerung als die programmierbare Steuerung 30A verhindern.
  • Außerdem bestimmt das Engineering-Werkzeug 21A, ob das Kontaktplanprogramm 42 ein nicht autorisiertes Programm ist oder nicht, und die programmierbare Steuerung 30A bestimmt, ob das Kontaktplanprogramm 42 ein nicht autorisiertes Programm ist oder nicht. Dies ermöglicht, dass Manipulation des Kontaktplanprogramms 42 einfach detektiert wird.
  • Zweite Ausführungsform.
  • Eine zweite Ausführungsform wird als Nächstes unter Bezugnahme auf die 7 bis 9 beschrieben. Um nicht autorisierte Verwendung des Kontaktplanprogramms 42 zu verhindern, trennt ein Lizenzabgabe-Server 10B, der später beschrieben wird, den Funktionsblock vom Kontaktplanprogramm 42 und verschlüsselt den Funktionsblock, um zu verhindern, dass der Funktionsblock von einem Engineering-Werkzeug 21B, das später beschrieben wird, wiederhergestellt wird.
  • Die 7 ist ein Diagramm zum Beschreiben eines Prozesses, der von dem Lizenzabgabe-Server gemäß der zweiten Ausführungsform durchgeführt wird. Der Lizenzabgabe-Server 10B weist Funktionen ähnlich den Funktionen des Lizenzabgabe-Servers 10A auf, der in der ersten Ausführungsform beschrieben wird. Die Kontaktplanprogramm-Transformationseinheit 14 des Lizenzabgabe-Servers 10B trennt das Kontaktplanprogramm 42, das einen Funktionsblock FB 46 umfasst, in ein Kontaktplanprogramm 45 ohne den FB 46 und den FB 46. Mit anderen Worten: die Kontaktplanprogramm-Transformationseinheit 14 trennt das Kontaktplanprogramm 42 in ein erstes und zweites Segment.
  • Die Kontaktplanprogramm-Transformationseinheit 14 transformiert das erste Segment, d. h. das Kontaktplanprogramm 45, in ein geschütztes Kontaktplanprogramm 47 auf eine ähnliche Art und Weise wie in der ersten Ausführungsform. Insbesondere transformiert die Kontaktplanprogramm-Transformationseinheit 14 das Kontaktplanprogramm 45 durch einen Prozess, der ähnlich dem Prozess des Generierens der Abgabedateidaten 101 aus dem Kontaktplanprogramm 42 ist, in das geschützte Kontaktplanprogramm 47.
  • Die Kontaktplanprogramm-Transformationseinheit 14 transformiert auch das zweite Segment, d. h. den FB 46, in ein ausführbares Format, um eine ausführbare FB-Datei 210 zu generieren. Die ausführbare FB-Datei 210 ist eine ausführbare Datei, die auf der programmierbaren Steuerung 30A betreibbar ist und sich aus der Transformation des FB 46 ergibt. Mit anderen Worten: ähnlich der ausführbaren Datei 201 der ersten Ausführungsform ist die ausführbare FB-Datei 210 eine ausführbare Datei, die von der programmierbaren Steuerung 30A als ein Programm erkannt wird.
  • Zusätzlich führt die Kontaktplanprogramm-Transformationseinheit 14 eine Verschlüsselungsoperation, die für die programmierbare Steuerung 30A gedacht ist, an der ausführbaren FB-Datei 210 durch. Das heißt: im Gegensatz zur ersten Ausführungsform, bei der das Engineering-Werkzeug 21A Verschlüsselung durchführt, die für die programmierbare Steuerung 30A gedacht ist, wird die Verschlüsselungsoperation in der zweiten Ausführungsform von der Kontaktplanprogramm-Transformationseinheit 14 durchgeführt. Somit verschlüsselt der Lizenzabgabe-Server 10B in der zweiten Ausführungsform die ausführbare FB-Datei 210, um somit eine geschützte ausführbare FB-Datei 211 vor der Abgabe des Kontaktplanprogramms 42 an den Nutzer zu generieren. Die geschützte ausführbare FB-Datei 211 ist eine Datei, die nur auf der programmierbaren Steuerung 30A betreibbar ist und sich aus der Transformation der ausführbaren FB-Datei 210 ergibt. Der Lizenzabgabe-Server 10B gibt sowohl das geschützte Kontaktplanprogramm 47 als auch die generierte ausführbare FB-Datei 210 an den Nutzer ab.
  • Die 8 ist ein Diagramm zum Beschreiben eines Prozesses, der von einem Engineering-Werkzeug gemäß der zweiten Ausführungsform durchgeführt wird. Das Engineering-Werkzeug 21B weist Funktionen ähnlich den Funktionen des Engineering-Werkzeugs 21A auf, das in der ersten Ausführungsform beschrieben wird, und stellt somit das geschützte Kontaktplanprogramm 47 in einer ähnlichen Art und Weise wie in der ersten Ausführungsform wieder her. Das heißt: Das Engineering-Werkzeug 21B stellt das Kontaktplanprogramm 45 aus dem geschützten Kontaktplanprogramm 47 durch einen Prozess ähnlich dem Prozess des Wiederherstellens des Kontaktplanprogramms 42 aus den Abgabedateidaten 101 wieder her. Insbesondere invers transformiert die Kontaktplanprogramm-Inverstransformationseinheit 22 des Engineering-Werkzeugs 21B das geschützte Kontaktplanprogramm 47 in das Kontaktplanprogramm 45 vor der Verschlüsselung. Dies ermöglicht es, dass das Engineering-Werkzeug 21B ein Wiederherstellungsergebnis ähnlich dem der ersten Ausführungsform in Bezug auf das Kontaktplanprogramm 45 ohne den FB 46 erreicht. Dies bewirkt, dass der andere Programmteil als der FB 46 durch das Engineering-Werkzeug 21B editierbar ist. Es sei angemerkt, dass, da der FB 46 in einem geschützten Format vorliegt, das Engineering-Werkzeug 21B keine Simulation durchführen kann, es sei denn, eine bestimmte geeignete Verarbeitung wird durchgeführt. Die Verarbeitung, um zu ermöglichen, dass das Engineering-Werkzeug 21B eine Simulation durchführt, wird hier später beschrieben.
  • Dann transformiert die Einheit 23 zur Transformation in ein ausführbares Format das Kontaktplanprogramm 45, das von der Kontaktplanprogramm-Inverstransformationseinheit 22 generiert wird, durch eine Inverstransformation in eine ausführbare Datei 220. Ähnlich der ausführbaren Datei 201 der ersten Ausführungsform ist die ausführbare Datei 220 in diesem Prozess eine ausführbare Datei, die von der programmierbaren Steuerung 30A als ein Programm erkannt wird. Dann transformiert die Kontaktplanprogramm-Rücktransformationseinheit 24 die ausführbare Datei 220, die von der Einheit 23 zur Transformation in ausführbares Format generiert wird, in eine geschützte ausführbare Datei 221, die nur auf der programmierbaren Steuerung 30A betreibbar ist, die mit dem Lizenzzertifikat 41 verknüpft ist. Ähnlich der geschützten ausführbaren Datei 202 der ersten Ausführungsform ist die geschützte ausführbare Datei 221 in diesem Prozess eine Datei, die so geschützt, ist, dass sie nicht in einer anderen programmierbaren Steuerung als der programmierbaren Steuerung 30A betrieben werden kann.
  • Die Kontaktplanprogramm-Rücktransformationseinheit 24 konkateniert die geschützte ausführbare Datei 221 und die geschützte ausführbare FB-Datei 211. Somit kann die Kontaktplanprogramm-Rücktransformationseinheit 24 die geschützte ausführbare Datei 202 äquivalent zur geschützten ausführbaren Datei 202 beziehen, die in der ersten Ausführungsform beschrieben wird. Dann sendet der Entwicklungs-PC 20 die geschützte ausführbare Datei 202 an die programmierbare Steuerung 30A, und die programmierbare Steuerung 30A steuert dann die Steuerzieleinrichtung unter Verwendung der geschützten ausführbaren Datei 202.
  • Ein Simulationsprozess des FB 46, der vom Engineering-Werkzeug 21B der zweiten Ausführungsform durchgeführt wird, wird als Nächstes beschrieben. Die 9 ist ein Diagramm zum Beschreiben eines Simulationsprozesses für den FB, der vom Engineering-Werkzeug gemäß der zweiten Ausführungsform durchgeführt wird. Wie hier verwendet, bezieht sich die Formulierung „Simulationsprozess des FB 46“ auf die Ausführung des FB 46 auf Software.
  • Das Engineering-Werkzeug 21B gemäß der zweiten Ausführungsform umfasst eine FB-Vertrauenseinheit 91. Für den Fall, dass das Engineering-Werkzeug 21B einen Simulationsprozess des FB 46 durchführt, wird eine programmierbare Steuerung 30B anstelle der programmierbaren Steuerung 30A verwendet. Die programmierbare Steuerung 30B umfasst des Weiteren eine FB-betraute Recheneinheit 92 zusätzlich zu den in der programmierbaren Steuerung 30A enthaltenen Funktionen.
  • Die FB-Vertrauenseinheit 91 weist eine Funktion auf, beim Empfang einer Simulationsanforderung vom Nutzer zur Simulation des FB 46 die Simulationsanforderung an die programmierbare Steuerung 30B auszugeben. Wenn somit der Nutzer eine Simulationsanforderung zur Simulation des FB 46 stellt, akzeptiert die FB-Vertrauenseinheit 91 die Simulationsanforderung und überträgt die akzeptierte Simulationsanforderung an die FB-betraute Recheneinheit 92 der programmierbaren Steuerung 30B.
  • Die FB-betraute Recheneinheit 92 berechnet die Verarbeitung im FB 46 auf der Basis der Simulationsanforderung aus der FB-Vertrauenseinheit 91. Das heißt: die FB-betraute Recheneinheit 92 berechnet eine Ausgabe des FB 46 entsprechend der Eingabe aus der FB-Vertrauenseinheit 91. Die FB-betraute Recheneinheit 92 sendet ein Berechnungsergebnis, das ein Simulationsergebnis der Verarbeitung unter Verwendung des FB 46 ist, an die FB-Vertrauenseinheit 91. Wie oben beschrieben wird, fordert die FB-Vertrauenseinheit 91 von der FB-betrauten Recheneinheit 92 an, eine Simulation unter Verwendung des FB 46 durchzuführen, und die FB-betraute Recheneinheit 92 führt eine Simulation unter Verwendung des FB 46 durch und gibt das Simulationsergebnis an die FB-Vertrauenseinheit 91 zurück.
  • Dies ermöglicht es dem Engineering-Werkzeug 21B, eine Simulation ohne Wiederherstellung des FB 46 in der Engineering-Umgebung durchzuführen. Das Hinzufügen solcher Funktionen der FB-Vertrauenseinheit 91 und der FB-betrauten Recheneinheit 92 zum System 1 zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung, das in der ersten Ausführungsform beschrieben wird, ermöglicht es, dass das Kontaktplanprogramm 42 der programmierbaren Steuerung 30B im System 1 zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung ohne Wiederherstellung des FB 46 in der Engineering-Umgebung entwickelt wird. Somit kann das System 1 zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung zuverlässigen Schutz für den FB 46 im gebündelten Produkt bereitstellen.
  • Somit verhindert gemäß der zweiten Ausführungsform der Schutz des FB 46 die Wiederherstellung des FB 46, sogar falls das Engineering-Werkzeug 21B das Kontaktplanprogramm 45 wiederhergestellt hat. Dies kann verhindern, dass Informationen zu den bei der Wiederherstellung und dem FB 46 verwendeten Schlüsseln entwendet werden, sogar falls das Engineering-Werkzeug 21B reverseengineered wird.
  • Die in den vorherigen Ausführungsformen beschriebenen Konfigurationen sind lediglich Beispiele für verschiedene Aspekte der vorliegenden Erfindung. Diese Konfigurationen können mit einer bekannten anderen Technologie kombiniert werden, und außerdem kann ein Teil solcher Konfigurationen weggelassen und/oder modifiziert werden, ohne von Gedanken der vorliegenden Erfindung abzuweichen.
  • Bezugszeichenliste
  • 1
    System zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung;
    10A, 10B
    Lizenzabgabe-Server;
    11
    DB für öffentliche Schlüsselpaare;
    12
    Nutzer-DB;
    13
    Lizenzzertifikats-Generierungseinheit;
    14
    Kontaktplanprogramm-Transformationseinheit;
    20
    Entwicklungs-PC;
    21A, 21B
    Engineering-Werkzeug;
    22
    Kontaktplanprogramm-Inverstransformationseinheit;
    23
    Einheit zur Transformation in ausführbares Format;
    24
    Kontaktplanprogramm-Rücktransformationseinheit;
    30A, 30B
    programmierbare Steuerung;
    31
    Kontaktplanprogramm-Inverstransformationseinheit;
    32
    Steuerverarbeitungseinheit;
    41
    Lizenzzertifikat;
    42,45
    Kontaktplanprogramm;
    91
    FB-Vertrauenseinheit;
    92
    FB-betraute Recheneinheit;
    101
    Abgabedateidaten;
    201, 220
    ausführbare Datei;
    202, 221
    geschützte ausführbare Datei;
    210
    ausführbare FB-Datei;
    211
    geschützte ausführbare FB-Datei.
  • 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
    • JP H10124308 [0004, 0052]

Claims (14)

  1. System zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung, umfassend: ein Engineering-Werkzeug zum Durchführen einer ersten Inverstransformation an einem Kontaktplanprogramm, das einer ersten Transformation unter Verwendung von ersten privaten Informationen unterzogen wird, unter Verwendung von ersten öffentlichen Informationen, die mit den ersten privaten Informationen gekoppelt sind, und zum Durchführen einer zweiten Transformation unter Verwendung von zweiten öffentlichen Informationen am Kontaktplanprogramm, das der ersten Inverstransformation unterzogen wird, so dass das Kontaktplanprogramm auf einer spezifischen programmierbaren Steuerung betreibbar ist, aber auf einer anderen programmierbaren Steuerung als der spezifischen programmierbaren Steuerung nicht betreibbar ist; und eine programmierbare Steuerung zum Durchführen einer zweiten Inverstransformation am Kontaktplanprogramm, das der zweiten Transformation unterzogen wird, unter Verwendung von zweiten privaten Informationen, die mit den zweiten öffentlichen Informationen gekoppelt sind, und zum Ausführen des Kontaktplanprogramms, das der zweiten Inverstransformation unterzogen wird.
  2. System zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung nach Anspruch 1, wobei das Engineering-Werkzeug die zweite Transformation auf einer Basis von Informationen zur Lizenz für die spezifische programmierbare Steuerung durchführt.
  3. System zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung nach Anspruch 1 oder 2, wobei das Engineering-Werkzeug bestimmt, ob das Kontaktplanprogramm, das der ersten Transformation unterzogen wird, ein nicht autorisiertes Programm ist oder nicht, und die programmierbare Steuerung bestimmt, ob das Kontaktplanprogramm, das der zweiten Transformation unterzogen wird, ein nicht autorisiertes Programm ist oder nicht.
  4. System zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung nach einem der Ansprüche 1 bis 3, wobei das Engineering-Werkzeug die erste Inverstransformation am Kontaktplanprogramm, das der ersten Transformation unterzogen wird, durchführt und die zweite Transformation am Kontaktplanprogramm, das unter Verwendung der ersten Inverstransformation wiederhergestellt wird, durchführt.
  5. System zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung nach Anspruch 3, wobei die programmierbare Steuerung die zweite Inverstransformation am Kontaktplanprogramm, das der zweiten Transformation unterzogen wird, zum Wiederherstellen des Kontaktplanprogramms durchführt, die Bestimmung am wiederhergestellten Kontaktplanprogramm vornimmt und für den Fall, dass das Kontaktplanprogramm betreibbar ist, eine Steuerzieleinrichtung unter Verwendung des wiederhergestellten Kontaktplanprogramms steuert.
  6. System zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung nach einem der Ansprüche 1 bis 5, wobei das Kontaktplanprogramm ein erstes und zweites Segment umfasst, das erste Segment so verschlüsselt ist, dass es durch das Engineering-Werkzeug decodierbar ist, und das zweite Segment so verschlüsselt ist, dass es durch das Engineering-Werkzeug nicht decodierbar ist, jedoch durch die programmierbare Steuerung decodierbar ist.
  7. System zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung nach Anspruch 6, wobei das Engineering-Werkzeug von der programmierbaren Steuerung anfordert, eine Simulation unter Verwendung des zweiten Segments durchzuführen, und die programmierbare Steuerung die Simulation unter Verwendung des zweiten Segments durchführt und ein Simulationsergebnis an das Engineering-Werkzeug zurückgibt.
  8. System zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung nach Anspruch 2, wobei die erste Transformation in einem Lizenzabgabe-Server durchgeführt wird, der die Informationen zur Lizenz generiert und die Informationen zur Lizenz dem Engineering-Werkzeug bereitstellt.
  9. System zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung nach Anspruch 2, wobei die Informationen zur Lizenz Informationen sind, die unter Verwendung eines öffentlichen Schlüsselpaars generiert werden, das ein Paar der zweiten öffentlichen Informationen und der zweiten privaten Informationen ist.
  10. System zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung, umfassend: einen Lizenzabgabe-Server zum Durchführen einer ersten Transformation an einem Kontaktplanprogramm unter Verwendung erster privater Informationen; ein Engineering-Werkzeug zum Durchführen einer ersten Inverstransformation am Kontaktplanprogramm, das der ersten Transformation unterzogen wird, unter Verwendung von ersten öffentlichen Informationen, die mit den ersten privaten Informationen gekoppelt sind, und zum Durchführen einer zweiten Transformation unter Verwendung von zweiten öffentlichen Informationen am Kontaktplanprogramm, das der ersten Inverstransformation unterzogen wird, so dass das Kontaktplanprogramm auf einer spezifischen programmierbaren Steuerung betreibbar ist, aber auf einer anderen programmierbaren Steuerung als der spezifischen programmierbaren Steuerung nicht betreibbar ist; und eine programmierbare Steuerung zum Durchführen einer zweiten Inverstransformation am Kontaktplanprogramm, das der zweiten Transformation unterzogen wird, unter Verwendung der zweiten privaten Informationen, die mit den zweiten öffentlichen Informationen gekoppelt sind, und zum Ausführen des Kontaktplanprogramms, das der zweiten Inverstransformation unterzogen wird.
  11. Verfahren zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung, umfassend: einen ersten Transformationsschritt, der von einem Engineering-Werkzeug durchgeführt wird, eine erste Inverstransformation unter Verwendung erster öffentlicher Informationen an einem Kontaktplanprogramm durchzuführen, das einer ersten Transformation unter Verwendung erster privater Informationen unterzogen wird; einen zweiten Transformationsschritt, der vom Engineering-Werkzeug durchgeführt wird, eine zweite Transformation unter Verwendung zweiter öffentlicher Informationen am Kontaktplanprogramm, das der ersten Inverstransformation unterzogen wird, durchzuführen, so dass das Kontaktplanprogramm auf einer spezifischen programmierbaren Steuerung betreibbar ist, aber auf einer anderen programmierbaren Steuerung als der spezifischen programmierbaren Steuerung nicht betreibbar ist; und einen Ausführungsschritt, der von einer programmierbaren Steuerung durchgeführt wird, eine zweite Inverstransformation am Kontaktplanprogramm, das der zweiten Transformation unterzogen wird, unter Verwendung zweiter privater Informationen durchzuführen und das Kontaktplanprogramm, das der zweiten Inverstransformation unterzogen wird, auszuführen.
  12. Engineering-Werkzeug, umfassend: eine Kontaktplanprogramm-Inverstransformationseinheit zum Durchführen einer ersten Inverstransformation unter Verwendung erster öffentlicher Informationen an einem Kontaktplanprogramm, das einer ersten Transformation unter Verwendung erster privater Informationen unterzogen wird; und eine Kontaktplanprogramm-Rücktransformationseinheit zum Durchführen einer zweiten Transformation am Kontaktplanprogramm, das der ersten Inverstransformation unterzogen wird, unter Verwendung zweiter öffentlicher Informationen, die mit den zweiten privaten Informationen, die in einer spezifischen programmierbaren Steuerung gehalten werden, gekoppelt sind, so dass das Kontaktplanprogramm auf der spezifischen programmierbaren Steuerung betreibbar ist, aber auf einer anderen programmierbaren Steuerung als der spezifischen programmierbaren Steuerung nicht betreibbar ist.
  13. Lizenzabgabe-Server, umfassend: eine Kontaktplanprogramm-Transformationseinheit zum Durchführen einer ersten Transformation an einem Kontaktplanprogramm unter Verwendung erster privater Informationen; und eine Lizenzgenerierungseinheit zum Generieren von Informationen zur Lizenz für eine spezifische programmierbare Steuerung, wobei das Kontaktplanprogramm, das der ersten Transformation unterzogen wird, und die Informationen zur Lizenz einem Engineering-Werkzeug bereitgestellt werden, das mit der spezifischen programmierbaren Steuerung verbunden ist, und wobei das Engineering-Werkzeug eine erste Inverstransformation am Kontaktplanprogramm, das der ersten Transformation unterzogen wird, unter Verwendung erster öffentlicher Informationen, die mit den ersten privaten Informationen gekoppelt sind, durchführt und eine zweite Transformation am Kontaktplanprogramm, das der ersten Inverstransformation unterzogen wird, unter Verwendung zweiter öffentlicher Informationen durchführt, so dass das Kontaktplanprogramm auf der spezifischen programmierbaren Steuerung betreibbar ist, aber auf einer anderen programmierbaren Steuerung als der spezifischen programmierbaren Steuerung nicht betreibbar ist.
  14. Programmierbare Steuerung, umfassend: eine Kontaktplanprogramm-Inverstransformationseinheit, um beim Empfang eines Kontaktplanprogramms, das einer zweiten Transformation unterzogen wird, aus einem Engineering-Werkzeug, das eine erste Inverstransformation am Kontaktplanprogramm, das einer ersten Transformation unter Verwendung erster privater Informationen unterzogen wird, unter Verwendung erster öffentlicher Informationen durchführt, die mit den ersten privaten Informationen gekoppelt sind, und das eine zweite Transformation unter Verwendung zweiter öffentlicher Informationen am Kontaktplanprogramm durchführt, das der ersten Inverstransformation unterzogen wird, so dass das Kontaktplanprogramm auf einer spezifischen programmierbaren Steuerung betreibbar ist, aber auf einer anderen programmierbaren Steuerung als der spezifischen programmierbaren Steuerung nicht betreibbar ist, eine zweite Inverstransformation am Kontaktplanprogramm, das der zweiten Transformation unterzogen wird, unter Verwendung zweiter privater Informationen, die mit den zweiten öffentlichen Informationen gekoppelt sind, durchzuführen; und eine Steuerverarbeitungseinheit zum Ausführen des Kontaktplanprogramms, das der zweiten Inverstransformation unterzogen wird.
DE112017005726.4T 2017-06-23 2017-06-23 System zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung, Verfahren zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung, Engineering-Werkzeug, Lizenzabgabe-Server und programmierbare Steuerung Withdrawn DE112017005726T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/023222 WO2018235268A1 (ja) 2017-06-23 2017-06-23 ラダープログラム不正利用防止システム、ラダープログラム不正利用防止方法、エンジニアリングツール、ライセンス配信サーバおよびプログラマブルコントローラ

Publications (1)

Publication Number Publication Date
DE112017005726T5 true DE112017005726T5 (de) 2019-08-14

Family

ID=63354853

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112017005726.4T Withdrawn DE112017005726T5 (de) 2017-06-23 2017-06-23 System zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung, Verfahren zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung, Engineering-Werkzeug, Lizenzabgabe-Server und programmierbare Steuerung

Country Status (6)

Country Link
US (1) US20190362085A1 (de)
JP (1) JP6381857B1 (de)
KR (1) KR102052489B1 (de)
CN (1) CN110114772B (de)
DE (1) DE112017005726T5 (de)
WO (1) WO2018235268A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190095593A1 (en) * 2017-09-25 2019-03-28 Hewlett Packard Enterprise Development Lp License information based on baseboard management controller

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10124308A (ja) 1996-10-25 1998-05-15 Mitsubishi Electric Corp プログラマブルコントローラのプログラム保護方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4325261A (en) * 1979-10-09 1982-04-20 Emerson Electric Co. Pulsed DC constant current magnetic flowmeter
US5321829A (en) * 1990-07-20 1994-06-14 Icom, Inc. Graphical interfaces for monitoring ladder logic programs
NO302388B1 (no) * 1995-07-13 1998-02-23 Sigurd Sigbjoernsen Fremgangsmåte og anordning for å beskytte programvare mot bruk uten tillatelse
US20030061349A1 (en) * 2001-09-24 2003-03-27 George Lo Method and system for collaboratively developing programming code for programmable controllers
US7724907B2 (en) * 2002-11-05 2010-05-25 Sony Corporation Mechanism for protecting the transfer of digital content
JP4099039B2 (ja) * 2002-11-15 2008-06-11 松下電器産業株式会社 プログラム更新方法
US20050172132A1 (en) * 2004-01-30 2005-08-04 Chen Sherman (. Secure key authentication and ladder system
JP2008067162A (ja) * 2006-09-08 2008-03-21 Pit:Kk 制御システムおよびシステムの制御方法
EP2058974A1 (de) * 2007-08-28 2009-05-13 Panasonic Corporation Schlüsselendgerät, lsi für verschlüsselungsverfahren, verfahren zur erzeugung eines einzigen schlüssels und inhaltssystem
KR101053104B1 (ko) * 2009-10-28 2011-08-02 엘에스산전 주식회사 전산기기 소프트웨어 테스트 방법 및 시스템
JP5404463B2 (ja) * 2010-02-12 2014-01-29 三菱電機株式会社 制御装置及び管理装置
US8756041B2 (en) * 2011-03-07 2014-06-17 Rockwell Automation Technologies, Inc. Industrial simulation using redirected I/O module configurations
EP2506174B1 (de) * 2011-03-30 2019-01-09 Irdeto B.V. Aktivierung einer softwareanwendung, die auf einer hardwarevorrichtung ausgeführt werden soll
JP5900143B2 (ja) * 2012-05-15 2016-04-06 富士電機株式会社 制御システム、制御装置及びプログラム実行制御方法
GB201305734D0 (en) * 2013-03-28 2013-05-15 Irdeto Bv Enabling a content receiver to access encrypted content
CN103529749B (zh) * 2013-10-29 2017-07-25 威海麦科电气技术有限公司 一种plc可编程控制器的梯形图程序开发系统及方法
CN104573423B (zh) * 2015-01-26 2017-10-31 无锡信捷电气股份有限公司 一种plc软硬件结合加密保护方法
US10372104B2 (en) * 2015-02-27 2019-08-06 Rockwell Automation Technologies, Inc. Industrial automation control system content protection
KR101625338B1 (ko) 2015-10-20 2016-05-27 홍익대학교세종캠퍼스산학협력단 악성 경유지를 탐지하는 시스템 및 방법
BR112018011779B1 (pt) * 2015-12-23 2024-01-23 Nagravision Sa Método para exploração e dispositivo cliente

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10124308A (ja) 1996-10-25 1998-05-15 Mitsubishi Electric Corp プログラマブルコントローラのプログラム保護方法

Also Published As

Publication number Publication date
US20190362085A1 (en) 2019-11-28
JP6381857B1 (ja) 2018-08-29
WO2018235268A1 (ja) 2018-12-27
KR102052489B1 (ko) 2019-12-05
JPWO2018235268A1 (ja) 2019-06-27
CN110114772A (zh) 2019-08-09
CN110114772B (zh) 2020-08-28
KR20190084117A (ko) 2019-07-15

Similar Documents

Publication Publication Date Title
DE69534757T2 (de) System und Verfahren zur sicheren Speicherung und Verteilung von Daten unter Verwendung digitaler Unterschriften
DE69837303T2 (de) Informationsverarbeitungsvorrichtung und Verfahren und Aufzeichnungsmedium zum Ausführen mittels öffentlicher Schlüssel verschlüsselter Programme
EP2742643B1 (de) Vorrichtung und verfahren zum entschlüsseln von daten
DE69534212T2 (de) Verfahren und Vorrichtung zur Verbesserung der Softwaresicherheit und zur Software-Verteilung
DE69634880T2 (de) Verfahren und gerät zum kontrollierten zugriff zu verschlüsselten datenakten in einem computersystem
DE112012007242T5 (de) Steuersystem, Programmübertragungsvorrichtung, Authentifizierungsserver , Programmschutzverfahren,Programmübertragungsverfahren und Programm für Programmübertragungsvorrichtung
EP1184771A1 (de) Verfahren zum Schutz von Computer-Software und/oder computerlesbaren Daten sowie Schutzgerät
DE102013224578A1 (de) Codeschutz unter verwendung von online-authentifizierung und verschlüsselter ausführung von code
DE102007054052A1 (de) System und Verfahren zum Verhindern einer nicht autorisierten Installation eines Softwareprogramms
WO2011061020A1 (de) Verfahren und vorrichtung zum zugreifen auf steuerungsdaten gemäss einer bereitgestellten rechteinformation
EP1164456A1 (de) Software-Schutzmechanismus
DE60114915T2 (de) Begrenztes Drucken einer elektronisch übertragenen Information
DE112017005726T5 (de) System zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung, Verfahren zur Verhinderung von nicht autorisierter Kontaktplanprogramm-Verwendung, Engineering-Werkzeug, Lizenzabgabe-Server und programmierbare Steuerung
DE102010009458A1 (de) Hardware-Einrichtung
WO2021069621A1 (de) Verfahren zum sicheren ausführen eines workflows in einem computersystem
EP3497606B1 (de) Individuelles verschlüsseln von steuerbefehlen
EP1807808B1 (de) Verfahren und vorrichtung zum frankieren von postsendungen
EP2491513B1 (de) Verfahren und system zum bereitstellen von edrm-geschützten datenobjekten
DE102005046696A1 (de) Verfahren zum Erzeugen von geschütztem Programmcode und Verfahren zum Ausführen von Programmcode eines geschützten Computerprogramms sowie Computerprogrammprodukt
EP3268888B1 (de) Vorrichtung, system, verfahren und computerprogrammprodukt zum anpassen einer nutzung eines geräts
DE102020206039A1 (de) Erstellen einer Container-Instanz
CN107423584A (zh) 应用软件的运行方法、装置、终端和计算机可读存储介质
DE102013108073B4 (de) Datenverarbeitungsanordnung und verfahren zur datenverarbeitung
EP2923264B1 (de) Verfahren und system zur applikationsinstallation in einem sicherheitselement
DE4019652A1 (de) Verfahren zum schutz von software gegen unzulaessiges kopieren

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee