WO2024022830A1 - Verfahren zum programmieren einer speicherprogrammierbaren steuerung mittels eines ausführbaren steuerprogramms und speicherprogrammierbare steuerungsanlage - Google Patents

Verfahren zum programmieren einer speicherprogrammierbaren steuerung mittels eines ausführbaren steuerprogramms und speicherprogrammierbare steuerungsanlage Download PDF

Info

Publication number
WO2024022830A1
WO2024022830A1 PCT/EP2023/069384 EP2023069384W WO2024022830A1 WO 2024022830 A1 WO2024022830 A1 WO 2024022830A1 EP 2023069384 W EP2023069384 W EP 2023069384W WO 2024022830 A1 WO2024022830 A1 WO 2024022830A1
Authority
WO
WIPO (PCT)
Prior art keywords
programmable logic
logic controller
execution environment
control program
executable control
Prior art date
Application number
PCT/EP2023/069384
Other languages
English (en)
French (fr)
Inventor
Rainer Falk
Christian Peter Feist
Stefan Pyka
Thomas Zeschg
Original Assignee
Siemens Aktiengesellschaft
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
Priority claimed from DE102022207883.7A external-priority patent/DE102022207883A1/de
Application filed by Siemens Aktiengesellschaft filed Critical Siemens Aktiengesellschaft
Publication of WO2024022830A1 publication Critical patent/WO2024022830A1/de

Links

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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • 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
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Definitions

  • the invention relates to a method for programming a programmable logic controller using an executable control program and a programmable logic controller system.
  • Programmable memory controls are known in which a program code, a so-called project, is created in a high-level language and translated in a project tool into a hardware-independent intermediate code, which is also known as bytecode and, in the context of this application, also as intermediate program text referred to as .
  • the project planning realizes e.g. B. a block in which the hardware-independent intermediate code is loaded onto the controller and translated there into an executable binary code, i.e. an executable control program, for the existing processor hardware.
  • the building block i.e. H . its underlying program code is protected, for example by means of know-how protection, by means of block privacy or by means of a copy protection procedure.
  • better protection would be desirable.
  • an intermediate program text is, at least partially, compiled into the executable control program in a trustworthy execution environment and the programmable logic controller is programmed with the executable control program.
  • the intermediate program text is compiled into an executable control program in a trustworthy execution environment, i.e. H . translated .
  • a trustworthy execution environment i.e. H . translated .
  • at least part of the intermediate program text is compiled into the executable control program in the trustworthy execution environment in the method according to the invention.
  • compilation can be carried out when the intermediate program text is loaded and/or before the executable control program is executed for the first time and/or when changing from a configuration mode of the programmable logic controller to an operational operating mode of the programmable logic controller, during a system start, i.e. H . a boot, the programmable logic controller and / or before starting the executable control program and / or when starting a, in particular real or virtualized, programmable logic controller.
  • the intermediate program text is preferably a hardware-independent intermediate program text.
  • the hardware-independent intermediate program text is preferably translated into a hardware-specific, executable control program. Compiling the intermediate program text therefore ensures that the executable control program is coordinated with the hardware of the programmable logic controller.
  • the executable control program preferably forms or comprises an executable binary code.
  • the executable control program can also be a different executable file format.
  • the trustworthy execution environment is a Trusted Execution Environment.
  • the trustworthy execution environment is or includes Intel Software Guard Extensions (Intel SGX) and/or Intel TME-MT, which have previously also been known as MKTME, and/or AMD SME and/or AMD SEV and/or an ARM trust zone and /or a hardware secure element and/or a separate security processor and/or a separate security processor core integrated in an integrated circuit and/or a confidential computing execution environment of a cloud infrastructure, such as a backend cloud and/or Edge Cloud.
  • Intel Software Guard Extensions Intel SGX
  • Intel TME-MT Intel TME-MT
  • MKTME Microwave Access Management Entity
  • AMD SME and/or AMD SEV and/or an ARM trust zone and /or a hardware secure element and/or a separate security processor and/or a separate security processor core integrated in an integrated circuit and/or a confidential computing execution environment of a cloud infrastructure, such as a backend cloud and/or Edge Cloud.
  • a cloud infrastructure such as a backend cloud and/or Edge Cloud.
  • the executable control program is compiled using a compiler and the compiler is cryptographically protected in the trustworthy execution environment.
  • the compiler is suitably protected by hardware in the trustworthy execution environment.
  • such a trustworthy execution environment is preferably used, which is in particular set up to cryptographically protect a compiler running in the trustworthy execution environment, also referred to as a compiler in the context of this description, for compiling the intermediate program text, i.e. H . to ensure cryptographic integrity protection.
  • a compiler running in the trustworthy execution environment
  • at least one cryptographic key is preferably used that is specific to the instance of the trustworthy execution environment, i.e. H . specific to a specific program code executed in the trusted execution environment, in particular the compiler's program code.
  • the closures Development functions and key storage and key formation can be hardware-based, in particular in a processor or a system-on-chip of the trustworthy execution environment, so that the compiler can be protected from software-based attacks.
  • the key used to protect the compiler can only be used if the corresponding compiler is running in the trustworthy execution environment. However, if another compiler is to be executed, the key cannot be used and therefore the intermediate program text cannot be manipulated or decrypted with another compiler. This ensures that no other software can manipulate the intermediate program text or the executable control program.
  • the trusted execution environment can check a cryptographic checksum, in particular a digital signature and/or a message authentication code and/or a cryptographic hash value, of the compiler before the compiler is executed in the trusted execution environment. This means the compiler cannot be manipulated.
  • the compiler executed in the trustworthy execution environment can be isolated from other software executed on the programmable logic controller. Since, according to the invention, such isolation can be implemented using cryptographic methods, its reliability is higher than with conventional isolation methods, in which access to certain memory areas is blocked by a memory management unit only via memory access control.
  • the compiled, executable control program is preferably attested using cryptographic attestation information.
  • Such cryptographic attestation information preferably contains information about the type of trustworthy execution environment in which compilation took place. in particular information that it is actually a trustworthy execution environment and preferably information about the technical implementation type of the trustworthy execution environment.
  • the cryptographic attestation information can contain information about an instance, such as identification information, the trustworthy execution environment and/or a time of compilation.
  • the cryptographic attestation information can contain information about an instance of the compiler.
  • the cryptographic attestation information includes information about the translated intermediate program text, i.e.
  • the cryptographic attestation information can advantageously be a compilation information, in particular security options activated during compilation for hardening the executable control program, preferably a shadow stack option and/or a memory layout randomization option and/or ASLR option and/or a pointer authentication option and/or use of branch target indicators.
  • the cryptographic attestation information can expediently and optionally include integrity check information, such as one or more hash values, of the generated executable control program, i.e. the output during compilation.
  • This integrity check information can be checked at start or during execution of the executable control program in order to monitor the integrity of the executable control program. If the executable control program located in the main memory were to be manipulated by an attack, for example by exploiting a vulnerability, this could be recognized using the integrity check information. In particular, an alarm signal can then be provided and/or the execution of the control program can be terminated. the, preferably by terminating the corresponding operating system process.
  • This integrity check information therefore makes it possible to reliably check the integrity and trustworthiness of an executable control program before or while it is being executed.
  • the integrity check information can be stored for later auditing in a log server, in a database or in a distributed ledger, i.e. H . a blockchain infrastructure.
  • the executable control program is preferably compiled on the controller in the trustworthy execution environment which is programmed with the executable control program.
  • the translation can take place in a trusted execution environment of the same system on which the generated program code is executed.
  • control program is not compiled on the controller in the trusted execution environment which is programmed with the executable control program.
  • spatially separate, different devices that are in communication with one another can be used as a trustworthy execution environment and as a programmable logic controller.
  • the programmable logic controller system is designed to carry out a method according to the invention for programming a programmable logic controller by means of an executable control program, as described above, wherein the programmable logic controller system has a programmable logic controller and a trustworthy execution environment, the trustworthy execution environment having a compiler which is designed to compile at least part of an intermediate program text, and wherein the programmable logic controller system has a projector which is designed to load the compiled intermediate text onto the programmable logic controller.
  • the programmable logic control system is preferably in one piece, i.e. H. one-piece, manageable.
  • the trusted execution environment may be part of the same device on which the executable control program is executed, i.e. H. Be part of the programmable logic controller.
  • the trusted execution environment and programmable logic controller are spatially separate, different devices that are in communication connection with one another. For example, it is possible that the translation and/or execution takes place in a virtualized edge/backend cloud environment.
  • the only drawing figure 1 shows an automation network with control systems according to the invention, each with a programmable logic controller PLCI, PLC2 for carrying out the method according to the invention, schematically in a schematic diagram.
  • PLCI programmable logic controller
  • control systems In addition to the programmable logic controllers PLCI, PLC2, the control systems also include sensors S and actuators A, which are controlled with the programmable logic controllers PLC1, PLC2.
  • the programmable logic controller PLC1 comprises a download component DLD, which is set up in a manner known per se to download a bytecode PBC from a download server DS connected to the automation network AN.
  • the downloaded bytecode PBC is transmitted to a trustworthy execution environment TEE.
  • the trustworthy execution environment TEE is formed in the form of a “Trusted Execution Environment” and is implemented in particular as a hardware-protected trustworthy execution environment TEE.
  • the trusted execution environment TEE has a bytecode compiler BCC, which receives the transmitted bytecode PBC within the trusted execution environment TEE.
  • the trustworthy execution environment TEE cryptographically protects the executable compiler code of the bytecode compiler BCC in hardware, so that the bytecode compiler BCC is protected by means of a cryptographic integrity protection BPP.
  • a cryptographic integrity protection BPP for this purpose, in the exemplary embodiment shown, at least one cryptographic key is used that is specific to the instance of the TEE execution environment, i.e. H . specific to the specific compiler code of the bytecode compiler BCC.
  • the encryption functions and the key storage and key generation take place in hardware in a processor of the platform, so that the implementation is protected against software-based attacks.
  • the key used to protect the compiler code executed in the trustworthy execution environment can only be used if this corresponding compiler code is currently being executed in the TEE. If another compiler code is executed, the key is not usable and thus the bytecode PBC is not compilable or uncompilable by an alternative compiler. keyable.
  • the bytecode can therefore only be processed by the compiler code executed in the trusted execution environment.
  • the trusted execution environment TEE can check a cryptographic checksum or a cryptographic check value, such as a digital signature or a message authentication code or a cryptographic hash value, of the compiler code before it is executed in the trusted execution environment.
  • the trustworthy execution environment TEE includes a compiler process attester CPA, which is also protected, for example, by means of a cryptographic integrity protection BPP and can in principle be implemented as a software program in the trustworthy execution environment TEE.
  • This compiler process attester CPA is designed to generate and provide cryptographically protected confirmation information.
  • This cryptographic confirmation information includes, on the one hand, information about the type of trustworthy execution environment TEE in which the translation was carried out, i.e. H . whether, as in the present case, it is a trustworthy TEE execution environment and which technical implementation type the trustworthy TEE execution environment corresponds to.
  • the cryptographic confirmation information contains information about the instance, i.e. an identification, of the trustworthy execution environment TEE and/or a time of the compilation process by the bytecode compiler BCC.
  • the cryptographic confirmation information contains information about the instance of the bytecode compiler BCC, here an identification and a version of the bytecode compiler BCC.
  • the cryptographic confirmation information contains information about the translated bytecode, i.e. H . from the bytecode BBC before translation using the bytecode compiler BCC, in the exemplary embodiment shown an identifier of the bytecode PBC, a cryptographic hash value of the bytecode PBC, the download server DSD from which the bytecode PBC was downloaded, and optionally information about one if necessary. existing block protection of the bytecode PBC.
  • the cryptographic confirmation information contains information about the selected compile options of the bytecode compiler BCC, security options activated here for hardening the program code, for example shadow stack and/or memory layout randomization ASLR and/or pointer authentication and/or one Use of branch target indicators.
  • the cryptographic confirmation information contains integrity check information of a compiled executable binary code BC of the bytecode compiler BCC generated from the bytecode PBC, for example one or more hash values of the generated executable binary code BC.
  • integrity check information of a compiled executable binary code BC of the bytecode compiler BCC generated from the bytecode PBC for example one or more hash values of the generated executable binary code BC.
  • hash values can be checked at startup or during execution of the executable binary code BC in order to monitor the integrity of the executable binary code BC. If caused by an attack, e.g. B.
  • the executable binary code BC located in the main memory would be manipulated, this would be detected because the hash values would change accordingly.
  • an alarm signal can be provided or the execution of the executable binary code can be ended, for example by terminating a corresponding operating system process.
  • the programmable logic controller PLC1 uses the bytecode compiler BCC to translate the bytecode PBC into a binary code BC that can be executed on the PLC1.
  • TLS Transport Layer Security
  • the programmable logic controller PLC contains a code integrity attester CIA outside the trusted execution environment, to which the bytecode compiler BCC passes the executable binary code BC.
  • the code integrity attester CIA for example, is also designed as software and provides a cryptographically protected code integrity attestation assigned to the executable binary code BC compiled by the bytecode compiler BCC.
  • the executable binary code BC is transferred to a programmable memory of the programmable logic controller PLC1, i.e. H .
  • the memory is programmed with the binary code BC.
  • the binary code BC in the example shown by a runtime health check component RTHC, is monitored with regard to admissibility and integrity.
  • bottom right in Fig. 1 shows the runtime health check component RTHC to also be executed in the trustworthy execution environment TEE.
  • the executed binary code BC stored in memory
  • the control application programmed on the programmable logic controller PLC2 can be transmitted for checking by a runtime environment PLCRT of the control system PLC2 as a whole or in sections in partial blocks of the runtime health check component RTHC implemented in the trustworthy execution environment TEE.
  • a checksum here for example a cryptographic hash value
  • DMA direct memory access
  • the programmable logic controller PLC1 shown on the left is a real device.
  • the PLC2 programmable logic controller shown on the right is a virtualized device.
  • the trustworthy execution environment TEE is implemented directly on the real device in one piece with the programmable logic controller PLC1.
  • the trustworthy execution environment TEE is cloud-based and connected to the automation network AN via the Internet NW.
  • the trustworthy execution environment TEE is implemented here as a virtualized trustworthy execution environment VMC, which is cloud-based in addition to other virtualized components VMR.
  • the virtualized trustworthy execution environment VMC is in communication connection with the programmable logic controller PLC2 of the virtualized device via the Internet NW and the automation network AN, with the data transfer otherwise taking place in the same way as in the PLC1 programmable logic controller of the real device.
  • the code integrity attester CIA is a separate component with the programmable logic controller PLC2 of the virtualized device and with the virtualized trustworthy execution environment VMC in a cryptographically protected communication connection.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)

Abstract

Bei dem Verfahren zum Programmieren einer speicherprogrammierbaren Steuerung mittels eines ausführbaren Steuerprogramms wird ein Zwischenprogrammtext in einer vertrauenswürdigen Ausführungsumgebung zum ausführbaren Steuerprogramm kompiliert und die speicherprogrammierbare Steuerung wird mit dem ausführbaren Steuerprogramm programmiert. Die Speicherprogrammierbare Steuerungsanlage ist zur Ausführung eines solchen Verfahrens zum Programmieren einer speicherprogrammierbaren Steuerung mittels eines ausführbaren Steuerprogramms ausgebildet und weist eine speicherprogrammierbaren Steuerung und eine vertrauenswürdigen Ausführungsumgebung auf, wobei die vertrauenswürdige Ausführungsumgebung einen Kompilator aufweist, welcher zur Kompilation eines Zwischenprogrammtextes ausgebildet ist, wobei die speicherprogrammierbare Steuerungsanlage einen Projektierer aufweist, welcher ausgebildet ist, den kompilierten Zwischentext auf die speicherprogrammierbare Steuerung zu laden.

Description

Beschreibung
Verfahren zum Programmieren einer speicherprogrammierbaren Steuerung mittels eines aus führbaren Steuerprogramms und speicherprogrammierbare S t eue rungs anl age
Die Erfindung betri f ft ein Verfahren zum Programmieren einer speicherprogrammierbaren Steuerung mittels eines aus führbaren Steuerprogramms und eine speicherprogrammierbare Steuerungsanlage .
Es ist sind speicherprogrammierbare Steuerungen bekannt , bei welchen ein Programmcode , eine sogenannte Proj ektierung, in einer Hochsprache erstellt wird und in einem Pro ektierungs- Tool in einen hardwareunabhängigen Zwischencode übersetzt wird, der auch als Bytecode bekannt ist und im Rahmen dieser Anmeldung auch als Zwischenprogrammtext bezeichnet wird . Die Proj ektierung realisiert z . B . einen Baustein, indem der hardwareunabhängige Zwischencode auf die Steuerung geladen wird und dort in einen aus führbaren Binärcode , also eines aus führbaren Steuerprogramms , für die j eweils vorhandene Prozessor-Hardware übersetzt wird .
Grundsätzlich kann der Baustein, d . h . dessen zugrundeliegender Programmcode , geschützt werden, etwa mittels eines Know- How-Schut zes , mittels Block-Privacy oder mittels eines Kopierschutzverfahrens . Allerdings wäre ein besserer Schutz wünschenswert .
Es besteht daher ein Bedarf an einem verbesserten Generieren eines aus führbaren Programmcodes auf einer speicherprogrammierbaren Steuerung, welche physikalisch oder virtualisiert realisiert sein kann . Insbesondere sollen die Integrität und/oder die Vertraulichkeit eines aus führbaren Steuerprogramms einer speicherprogrammierbaren Steuerung bei einer Programmcode-Übersetzung besser gewährleistet werden können . Vor diesem Hintergrund des Standes der Technik ist es daher Aufgabe der Erfindung, ein verbessertes Verfahren zum Programmieren einer speicherprogrammierbaren Steuerung anzugeben . Ferner ist es Aufgabe der Erfindung, eine verbesserte speicherprogrammierbare Steuerungsanlage anzugeben .
Diese Aufgabe der Erfindung wird mit einem Verfahren zum Programmieren einer speicherprogrammierbaren Steuerung mit den in Anspruch 1 angegebenen Merkmalen sowie mit einer speicherprogrammierbaren Steuerungsanlage mit den in Anspruch 10 angegebenen Merkmalen gelöst . Bevorzugte Weiterbildungen der Erfindung sind in den zugehörigen Unteransprüchen, der nachfolgenden Beschreibung und der Zeichnung angegeben .
Bei dem erfindungsgemäßen Verfahren zum Programmieren einer speicherprogrammierbaren Steuerung mittels eines aus führbaren Steuerprogramms wird ein Zwischenprogrammtext , zumindest zum Teil , in einer vertrauenswürdigen Aus führungsumgebung zum aus führbaren Steuerprogramm kompiliert und die speicherprogrammierbare Steuerung wird mit dem aus führbaren Steuerprogramm programmiert .
Mittels des erfindungsgemäßen Verfahrens wird der Zwischenprogrammtext , zumindest zu einem Teil , in einer vertrauenswürdigen Aus führungsumgebung zum aus führbaren Steuerprogramm kompiliert , d . h . übersetzt . Mit anderen Worten, zumindest ein Teil des Zwischenprogrammtexts wird bei dem erfindungsgemäßen Verfahren in der vertrauenswürdigen Aus führungsumgebung zum aus führbaren Steuerprogramm kompiliert .
Dies hat den Vorteil , dass die Übersetzung des Zwischenprogrammtexts in einer vertrauenswürdigen, d . h . speziellen, manipulations- und/oder vertraulichkeitsgeschützten, Aus führungsumgebung erfolgt . Somit ist eine Gefahr einer Manipulation des Zwischenprogrammtexts und/oder ein Kompilieren des Zwischenprogrammtexts zum aus führbaren Steuerprogramm wirksam reduziert . Eine Integrität des aus führbaren Steuerprogramms ist erfindungsgemäß folglich besser gewährleistet . Zudem kön- nen vorteilhaft bei einem geschützten Zwischentext die zum Kompilieren erforderlichen Schutz funktionen in der vertrauenswürdigen Aus führungsumgebung selbst realisiert sein . Eine Vertraulichkeit des Zwischenprogrammtexts ist erfindungsgemäß folglich gegenüber dem Stand der Technik besser gewährleistet . Dies ist insbesondere in solchen Fällen besonders vorteilhaft , in denen die speicherprogrammierbare Steuerung softwarebasiert realisiert ist und auf einer of fenen Compute- Plattform, wie insbesondere einem Industrial Personal Computer, ausgeführt wird .
Beim erfindungsgemäßen Verfahren kann das Kompilieren bei einem Laden des Zwischenprogrammtexts und/oder vor einer erstmaligen Aus führung des aus führbaren Steuerprogramms und/oder bei einem Wechsel von einem Konfigurationsmodus der speicherprogrammierbaren Steuerung zu einem operativen Betriebsmodus der speicherprogrammierbaren Steuerung, bei einem Systemstart , d . h . einem Booten, der speicherprogrammierbaren Steuerung und/oder vor einem Start des aus führbaren Steuerprogramms und/oder beim Start einer, insbesondere realen oder virtualisierten, speicherprogrammierbaren Steuerung erfolgen .
Bevorzugt ist bei dem erfindungsgemäßen Verfahren der Zwischenprogrammtext ein hardwareunabhängiger Zwischenprogrammtext . In dieser Weiterbildung der Erfindung wird der hardwareunabhängige Zwischenprogrammtext bevorzugt in ein hardwarespezi fisches , aus führbares Steuerprogramm übersetzt . Das Kompilieren des Zwischenprogrammtexts gewährleistet folglich die Abstimmung des aus führbaren Steuerprogramms auf die Hardware der speicherprogrammierbaren Steuerung .
Bevorzugt bildet oder umfasst bei dem Verfahren gemäß der Erfindung das aus führbare Steuerprogramm einen aus führbaren Binärcode . Alternativ und ebenfalls bevorzugt kann es sich bei dem aus führbaren Steuerprogramm auch um ein anderes aus führbares Datei format handeln . In einer vorteilhaften Weiterbildung des Verfahrens gemäß der Erfindung ist die vertrauenswürdige Aus führungsumgebung ein Trusted Execution Environment .
Besonders bevorzugt ist oder umfasst die vertrauenswürdige Aus führungsumgebung Intel Software Guard Extensions ( Intel SGX ) und/oder Intel TME-MT , welche bislang auch als MKTME bekannt sind, und/oder AMD SME und/oder AMD SEV und/oder eine ARM Trustzone und/oder ein Hardware Secure Element und/oder einen separaten Security-Prozessor und/oder einen in einem integrierten Schaltkreis integrierten separaten Security- Prozessor-Kern und/oder eine Conf idential-Computing- Aus führungsumgebung einer Cloud- Inf rastruktur, etwa einer Backend Cloud und/oder Edge Cloud .
In einer bevorzugten Weiterbildung des erfindungsgemäßen Verfahrens wird das aus führbare Steuerprogramm mittels eines Kompilierers kompiliert und der Kompilierer ist in der vertrauenswürdigen Aus führungsumgebung kryptographisch geschützt .
Geeignet ist bei dem Verfahren gemäß der Erfindung der Kompilierer mittels Hardware in der vertrauenswürdigen Aus führungsumgebung geschützt .
Bei dem erfindungsgemäßen Verfahren wird vorzugsweise eine solche vertrauenswürdige Aus führungsumgebung herangezogen, die insbesondere eingerichtet ist , hardwarebasiert einen in der vertrauenswürdigen Aus führungsumgebung ausgeführten Kompilierer, im Rahmen dieser Beschreibung auch als Compiler bezeichnet , zum Kompilieren des Zwischenprogrammtexts kryptographisch zu schützen, d . h . einen kryptographischen Integritätsschutz zu gewährleisten . Dazu wird vorzugsweise zumindest ein kryptographischer Schlüssel herangezogen, der spezi fisch für die Instanz der vertrauenswürdigen Aus führungsumgebung ist , d . h . spezi fisch für einen bestimmten in der vertrauenswürdigen Aus führungsumgebung ausgeführten Programmcode , insbesondere dem Programmcode des Compilers . Die Verschlüsse- lungs funktionen und die Schlüsselspeicherung und Schlüsselbildung können dabei hardwarebasiert insbesondere in einem Prozessor oder einem System-on-Chip der vertrauenswürdigen Aus führungsumgebung erfolgen, sodass der Compiler vor softwarebasierten Angri f fen geschützt werden kann . Der zum Schutz des Compilers verwendete Schlüssel ist dabei nur dann nutzbar, wenn gerade dieser entsprechende Compiler in der vertrauenswürdigen Aus führungsumgebung ausgeführt wird . Soll hingegen ein anderer Compiler ausgeführt werden, so ist der Schlüssel nicht nutzbar und folglich der Zwischenprogrammtext mit einem anderen Compiler nicht manipulierbar oder entschlüsselbar . Somit kann gewährleistet werden, dass keine andere Software den Zwischenprogrammtext oder das aus führbare Steuerprogramm manipulieren kann . Die vertrauenswürdige Ausführungsumgebung kann dazu eine kryptographische Prüfsumme , insbesondere eine digitale Signatur und/oder einen Message Authentication Code und/oder einen kryptographischen Hash- Wert , des Compilers zu prüfen, bevor der Compiler in der vertrauenswürdigen Aus führungsumgebung ausgeführt wird . Somit kann der Compiler nicht manipuliert werden .
Erfindungsgemäß kann also der in der vertrauenswürdigen Ausführungsumgebung ausgeführte Compiler von anderer auf der speicherprogrammierbaren Steuerung ausgeführten Software isoliert werden . Da sich gemäß der Erfindung eine solche I solation über kryptographische Verfahren umsetzen lässt , ist deren Verlässlichkeit höher als bei herkömmlichen I solations- Verfahren, bei denen lediglich über eine Speicherzugri f fskontrolle ein Zugri f f auf bestimmte Speicherbereiche durch eine Memory Management Unit gesperrt wird .
Vorzugsweise wird bei dem erfindungsgemäßen Verfahren das kompilierte aus führbare Steuerprogramm mittels einer kryptographischen Attestierungsinformation attestiert .
Eine solche kryptographische Attestierungsinformation enthält vorzugsweise eine Information, in welcher Art von vertrauenswürdiger Aus führungsumgebung das Kompilieren erfolgt ist , insbesondere eine Information, dass es sich überhaupt um eine vertrauenswürdige Aus führungsumgebung handelt und vorzugsweise eine Information über die technische Realisierungsart der vertrauenswürdigen Aus führungsumgebung . Vorzugsweise kann die kryptographische Attestierungsinformation eine Information zu einer Instanz , etwa eine Identi fikationsinformation, der vertrauenswürdigen Aus führungsumgebung und/oder einen Zeitpunkt des Kompilierens enthalten . Optional und vorteilhaft kann die kryptographische Attestierungsinformation eine Information zu einer Instanz des Kompilierers enthalten . Vorzugsweise umfasst die kryptographische Attestierungsinformation eine Information zum übersetzten Zwischenprogrammtext , also zum Input des Kompilierens , insbesondere einen Bezeichner und/oder einen kryptographischen Hash-Wert und/oder eine Quelle , etwa einen Downloadserver und/oder eine URL, mittels welchem oder welcher der Programmcode bezogen wurde und/oder eine Information, ob ein Baustein-Schutz des Zwischenprogrammtexts vorlag . Vorteilhaft kann die kryptographische Attestierungsinformation eine Kompilierinformation, insbesondere beim Kompilieren aktivierte Security-Optionen zur Härtung des aus führbaren Steuerprogramms , vorzugsweise eine Shadow-Stack-Option und/oder eine Memory-Layout-Randomi zation-Option und/oder ASLR-Option und/oder eine Pointer-Authentication-Option und/oder eine Nutzung von Branch Target Indicators , umfassen .
Zweckmäßig und optional kann die kryptographische Attestierungsinformation eine Integritätsprüfinformation, etwa einen oder mehrere Hash-Werte , des generierten aus führbaren Steuerprogramms , also des Outputs beim Kompilieren, umfassen . Diese Integritätsprüfinformation kann beim Start oder während der Aus führung des aus führbaren Steuerprogramms überprüft werden, um die Integrität des aus führbaren Steuerprogramms zu überwachen . Falls durch einen Angri f f , etwa durch Ausnutzen einer Schwachstelle , das im Arbeitsspeicher befindliche , aus führbare Steuerprogramm manipuliert werden würde , so könnte dies anhand der Integritätsprüfinformation erkannt werden . Es kann daraufhin insbesondere ein Alarmsignal bereitgestellt werden und/oder die Aus führung des Steuerprogramms kann beendet wer- den, vorzugsweise durch Terminieren des entsprechenden Betriebssystem-Prozesses .
Diese Integritätsprüfinformation ermöglicht es also , zuverlässig, die Integrität und die Vertrauenswürdigkeit eines aus führbaren Steuerprogramms zu prüfen, bevor oder während es ausgeführt wird . Zusätzlich kann die Integritätsprüfinformation für eine spätere Auditierung in einem Log-Server, in einer Datenbank oder einem Distributed Ledger, d . h . einer Blockchain- Inf rastruktur, abgelegt werden .
Bevorzugt wird bei dem Verfahren in einer Weiterbildung der Erfindung das aus führbare Steuerprogramm auf derj enigen Steuerung in der vertrauenswürdigen Aus führungsumgebung kompiliert , welche mit dem aus führbaren Steuerprogramm programmiert wird .
Die Übersetzung kann in einer vertrauenswürdigen Aus führungsumgebung des gleichen Systems erfolgen, auf dem der generierte Programmcode ausgeführt wird .
Alternativ und ebenfalls bevorzugt wird bei dem Verfahren gemäß der Erfindung das Steuerprogramm nicht auf derj enigen Steuerung in der vertrauenswürdigen Aus führungsumgebung kompiliert , welche mit dem aus führbaren Steuerprogramm programmiert wird . Insbesondere können als vertrauenswürdige Aus führungsumgebung und als speicherprogrammierbare Steuerung räumlich getrennte , unterschiedliche Geräte herangezogen werden, die miteinander in Kommunikationsverbindung stehen .
Die erfindungsgemäße speicherprogrammierbare Steuerungsanlage ist zur Aus führung eines erfindungsgemäßen Verfahrens zum Programmieren einer speicherprogrammierbaren Steuerung mittels eines aus führbaren Steuerprogramms , wie es oben beschrieben ist , ausgebildet , wobei die speicherprogrammierbare Steuerungsanlage eine speicherprogrammierbaren Steuerung und eine vertrauenswürdige Aus führungsumgebung aufweist , wobei die vertrauenswürdige Aus führungsumgebung einen Kompilator aufweist, welcher zur Kompilation zumindest eines Teils eines Zwischenprogrammtextes ausgebildet ist, und wobei die speicherprogrammierbare Steuerungsanlage einen Projektierer aufweist, welcher ausgebildet ist, den kompilierten Zwischentext auf die speicherprogrammierbare Steuerung zu laden.
Bevorzugt ist die speicherprogrammierbare Steuerungsanlage einstückig, d. h. einteilig, handhabbar.
Die vertrauenswürdige Ausführungsumgebung kann Teil desselben Geräts sein, auf dem das ausführbare Steuerprogramm ausgeführt wird, d. h. Teil der speicherprogrammierbaren Steuerung sein. Alternativ und ebenfalls bevorzugt ist sind vertrauenswürdige Ausführungsumgebung und speicherprogrammierbare Steuerung räumlich getrennte, unterschiedliche Geräte, die miteinander in Kommunikationsverbindung stehen. So ist es z.B. möglich, dass die Übersetzung und/oder die Ausführung in einer virtualisierten Edge/Backend-Cloud-Umgebung erfolgt/ erfolgen .
Nachfolgend wird die Erfindung anhand eines in der Zeichnung dargestellten Ausführungsbeispiels näher erläutert.
Die einzige Zeichnungsfigur 1 zeigt ein Automatisierungsnetzwerk mit erfindungsgemäßen Steueranlagen mit je einer speicherprogrammierbaren Steuerung PLCI, PLC2 zur Ausführung des erfindungsgemäßen Verfahrens schematisch in einer Prinzipskizze.
Die Steuerungsanlagen umfassen neben den speicherprogrammierbaren Steuerungen PLCI, PLC2 jeweils Sensoren S und Aktoren A, welche mit den speicherprogrammierbaren Steuerungen PLC1, PLC2 gesteuert werden.
In Fig. 1 sind zwei unterschiedliche Ausführungsbeispiele der erfindungsgemäßen Steueranlagen gleichzeitig verwirklicht. Dazu sind sämtliche erfindungsgemäßen Steueranlagen über ein Automatisierungsnetzwerk AN miteinander verbunden. In einem ersten Aus führungsbeispiel (unten links in Fig . 1 gezeigt ) umfasst die speicherprogrammierbare Steuerung PLC1 eine Downloadkomponente DLD, welche in an sich bekannter Weise eingerichtet ist , einen Bytecode PBC von einem an das Automatisierungsnetzwerk AN angebundenen Downloadserver DS herunterzuladen .
In der speicherprogrammierbaren Steuerung PLC1 wird der heruntergeladene Bytecode PBC einer vertrauenswürdigen Aus führungsumgebung TEE übermittelt . Die vertrauenswürdige Aus führungsumgebung TEE ist dabei in der Art eines „Trusted Execution Environment" gebildet und insbesondere als hardwaregeschützte vertrauenswürdige Aus führungsumgebung TEE realisiert .
Die vertrauenswürdige Aus führungsumgebung TEE weist einen Bytecode-Compiler BCC auf , welcher den übermittelten Bytecode PBC innerhalb der vertrauenswürdigen Aus führungsumgebung TEE entgegennimmt . Die vertrauenswürdige Aus führungsumgebung TEE schützt in Hardware kryptographisch den aus führbaren Compilercode des Bytecode-Compilers BCC, sodass der Bytecode- Compiler BCC mittels eines kryptographischen Integritätsschutzes BPP geschützt ist . Dazu wird im dargestellten Ausführungsbeispiel zumindest ein kryptographischer Schlüssel verwendet , der spezi fisch für die Instanz der TEE- Aus führungsumgebung ist , d . h . spezi fisch für den konkreten Compilercode des Bytecode-Compilers BCC . Die Verschlüsselungs funktionen und die Schlüsselspeicherung und Schlüsselbildung erfolgen dabei in Hardware in einem Prozessor der Plattform, sodass die Realisierung vor softwarebasierten Angri f fen geschützt ist . Der zum Schutz des in der vertrauenswürdigen Aus führungsumgebung ausgeführten Compilercodes verwendete Schlüssel ist dabei nur dann nutzbar, wenn gerade dieser entsprechende Compilercode in der TEE ausgeführt wird . Wenn ein anderer Compilercode ausgeführt wird, ist der Schlüssel nicht nutzbar, und somit ist der Bytecode PBC durch einen alternativen Compiler nicht kompilierbar oder ent- schlüsselbar . Der Bytecode kann also nur durch den in der vertrauenswürdigen Aus führungsumgebung ausgeführten Compilercode verarbeitet werden . Die vertrauenswürdige Aus führungsumgebung TEE kann eine kryptographische Prüfsumme oder einen kryptographischen Prüfwert , etwa eine digitale Signatur oder einen Message Authentication Code oder einen kryptographischen Hash-Value , des Compilercodes prüfen, bevor er in der vertrauenswürdigen Aus führungsumgebung ausgeführt wird .
Dadurch ist gewährleistet , dass der in der vertrauenswürdigen Aus führungsumgebung ausgeführte Compilercode nicht manipuliert ist .
Zusätzlich umfasst die vertrauenswürdige Aus führungsumgebung TEE einen Compilerprozess-Attestierer CPA, der beispielsweise ebenfalls mittels eines kryptographischen Integritätsschutzes BPP geschützt ist und grundsätzlich als Softwareprogramm in der vertrauenswürdigen Aus führungsumgebung TEE realisiert sein kann . Dieser Compilerprozess-Attestierer CPA ist ausgebildet , eine kryptographisch geschützte Bestätigungsinformation zu generieren und bereitzustellen .
Diese kryptographische Bestätigungsinformation umfasst zum einen eine Information, in welcher Art von vertrauenswürdiger Aus führungsumgebung TEE die Übersetzung erfolgt ist , d . h . ob es sich überhaupt , wie vorliegend, um eine vertrauenswürdige Aus führungsumgebung TEE handelt und welcher technischen Realisierungsart die vertrauenswürdige Aus führungsumgebung TEE entspricht .
Optional ist im dargestellten Aus führungsbeispiel in der kryptographischen Bestätigungsinformation eine Information zur Instanz , also eine Identi fikation, der vertrauenswürdigen Aus führungsumgebung TEE und/oder ein Zeitpunkt des Kompilationsvorgangs durch den Bytecode-Compiler BCC enthalten .
Weiterhin enthält die kryptographische Bestätigungsinformation eine Information zu der Instanz des Bytecode-Compilers BCC, hier eine Identi fikation und eine Version des Bytecode- Compilers BCC .
Zudem enthält die kryptographische Bestätigungsinformation eine Information zum übersetzten Bytecode , d . h . vom Bytecode BBC vor der Übersetzung mittels des Bytecode-Compilers BCC, im dargestellten Aus führungsbeispiel einen Bezeichner des Bytecodes PBC, einen kryptographischen Hash-Wert des Bytecodes PBC, den Downloadserver DSD, von dem der Bytecode PBC heruntergeladen worden ist , sowie optional eine Information zu einem ggf . vorhandenen Baustein-Schutz des Bytecodes PBC .
Weiterhin enthält die kryptographische Bestätigungsinformation Informationen über die gewählten Compile-Optionen des Bytecode-Compilers BCC, hier aktivierte Security-Optionen zur Härtung des Programmcodes , beispielsweise Shadow Stack und/oder Memory-Layout-Randomi zation ASLR und/oder Pointer Authentication und/oder eine Nutzung von Branch Target Indicators .
Zudem enthält die kryptographische Bestätigungsinformation eine Integritätsprüfinformation eines aus den Bytecode PBC generierten kompilierten aus führbaren Binarycodes BC des Bytecode-Compilers BCC, beispielsweise ein oder mehrere Hash- Werte des generierten aus führbaren Binarycodes BC . Diese Hash-Werte können beim Start oder während der Aus führung des aus führbaren Binarycodes BC überprüft werden, um die Integrität des aus führbaren Binarycodes BC zu überwachen . Falls durch einen Angri f f , z . B . durch Ausnutzen einer Schwachstelle , der sich im Arbeitsspeicher befindende , aus führbare Binarycode BC manipuliert werden würde , so würde dies erkannt werden, da sich die Hash-Werte entsprechend ändern würden . Es kann in diesem Falle beispielsweise ein Alarmsignal bereitgestellt werden oder die Aus führung des aus führbaren Binarycodes kann beendet werden, beispielsweise durch Terminieren eines entsprechenden Betriebssystem-Prozesses . Die speicherprogrammierbare Steuerung PLC1 verwendet den darin vorliegenden Bytecode-Compiler BCC für die Übersetzung des Bytecodes PBC in einen auf der PLC1 aus führbaren Binarycode BC . Die Kommunikation erfolgt dabei kryptographisch geschützt , hier beispielsweise mittels eines TLS-Protokolls ( TLS = engl . „Transport Layer Security" ) , nämlich authentisiert , integritätsgeschützt und verschlüsselt .
Zusätzlich zur kryptographischen Bestätigungsinformation des Compilerprozess-Attestierers CPA enthält die speicherprogrammierbare Steuerung PLC außerhalb der vertrauenswürdigen Ausführungsumgebung einen Code- Integrity-Attestierer CIA, dem der Bytecode-Compiler BCC den aus führbaren Binarycode BC übergibt .
Der Code- Integrity-Attestierer CIA ist beispielsweise ebenfalls als Software ausgebildet und stellt eine dem von dem Bytecode-Compiler BCC kompilierten aus führbaren Binarycode BC zugeordnete kryptographisch geschützte Code- Integrity- Attestierung bereit .
Nachfolgend wird der aus führbare Binarycode BC einem programmierbaren Speicher der speicherprogrammierbaren Steuerung PLC1 übergeben, d . h . der Speicher wird mit dem Binarycode BC programmiert .
Während der Aus führung des Binarycodes BC im Speicher der speicherprogrammierbaren Steuerung PLC1 wird der Binarycode BC, im dargestellten Beispiel von einer Runtime-Health-Check- Komponente RTHC, hinsichtlich der Zulässigkeit und Integrität überwacht .
Alternativ kann wie bei der speicherprogrammierbaren Steuerung PLC2 rechts unten in Fig . 1 dargestellt die Runtime- Health-Check-Komponente RTHC ebenfalls in der vertrauenswürdigen Aus führungsumgebung TEE ausgeführt werden . Der im Arbeitsspeicher gespeicherte , ausgeführte Binarycode BC einer auf der speicherprogrammierbaren Steuerung PLC2 programmierten Steuerungsapplikation kann dabei durch eine Lauf zeitumgebung PLCRT der Steuerungsanlage PLC2 als Ganzes oder abschnittsweise in Teilblöcken der in der vertrauenswürdigen Aus führungsumgebung TEE realisierten Runtime-Health-Check- Komponente RTHC zur Überprüfung übermittelt werden . Im dargestellten Aus führungsbeispiel ist es möglich, statt des eigentlichen Binarycodes BC der Steuerungsapplikation oder eines Blocks der Steuerungsapplikation eine Prüfsumme , hier beispielsweise einen kryptographischen Hash-Wert , zu bilden und lediglich diesen der Runtime-Health-Check-Komponente RTHC zur Überprüfung zu übermitteln . Weiterhin ist es möglich, dass die Runtime-Health-Check-Komponente RTHC einen direkten Speicherzugri f f , beispielsweise einen DMA ( DMA = engl . „direct memory access" ) aus führt und den zur Aus führung bestimmten aus führbaren Binarycode BC ausliest und überprüft .
Bei dem in Fig . 1 dargestellten Aus führungsbeispiel ist die links dargestellte speicherprogrammierbaren Steuerung PLC1 ein reales Gerät . Die rechts abgebildete speicherprogrammierbare Steuerung PLC2 hingegen ist ein virtualisiertes Gerät .
Bei dem realen Gerät mit der speicherprogrammierbaren Steuerung PLC1 ist die vertrauenswürdige Aus führungsumgebung TEE direkt auf den realen Gerät einstückig mit der speicherprogrammierbaren Steuerung PLC1 realisieren . Bei der speicherprogrammierbaren Steuerung PLC2 des virtualisierten Geräts hingegen ist die vertrauenswürdige Aus führungsumgebung TEE cloudbasiert und mittels des Internets NW an das Automatisierungsnetzwerk AN angebunden . Die vertrauenswürdige Aus führungsumgebung TEE ist hier als virtualisierte vertrauenswürdige Aus führungsumgebung VMC realisiert , die zusätzlich zu sonstigen virtualisierten Komponenten VMR cloudbasiert vorliegt . Die virtualisierte vertrauenswürdige Aus führungsumgebung VMC steht mit der speicherprogrammierbaren Steuerung PLC2 des virtualisierten Geräts über das Internet NW und das Automatisierungsnetzwerk AN in Kommunikationsverbindung, wobei der Datentrans fer im Übrigen gleichartig erfolgt wie bei der speicherprogrammierbaren Steuerung PLC1 des realen Geräts . Allerdings ist im dargestellten Aus führungsbeispiel der Code- Integrity-Attestierer CIA als separate Komponente mit der speicherprogrammierbaren Steuerung PLC2 des virtualisier- ten Geräts und mit der virtualisierten vertrauenswürdigen Aus führungsumgebung VMC in kryptographisch geschützter Kommunikationsverbindung .

Claims

Ansprüche :
1. Verfahren zum Programmieren einer speicherprogrammierbaren Steuerung (PLCI, PLC2) mittels eines ausführbaren Steuerprogramms (BC) , bei welchem ein Zwischenprogrammtext (PBC) , zumindest zum Teil, in einer vertrauenswürdigen Ausführungsumgebung (TEE) zum ausführbaren Steuerprogramm (BC) kompiliert wird und die speicherprogrammierbare Steuerung (PLCI, PLC2) mit dem ausführbaren Steuerprogramm (BC) programmiert wird.
2. Verfahren nach einem der vorhergehenden Ansprüche, bei welchem der Zwischenprogrammtext (PBC) ein hardwareunabhängiger Zwischenprogrammtext ist.
3. Verfahren nach einem der vorhergehenden Ansprüche, bei welchem das ausführbare Steuerprogramm (BC) einen ausführbaren Binärcode bildet oder umfasst.
4. Verfahren nach einem der vorhergehenden Ansprüche, bei welchem die vertrauenswürdige Ausführungsumgebung (TEE) ein Trusted Execution Environment ist.
5. Verfahren nach einem der vorhergehenden Ansprüche, bei welchem das ausführbare Steuerprogramm (BC) mittels eines Kompilators (BCC) kompiliert wird und der Kompilator (BCC) in der vertrauenswürdigen Ausführungsumgebung (TEE) kryptographisch geschützt ist.
6. Verfahren nach einem der vorhergehenden Ansprüche, bei welchem der Kompilierer mittels Hardware in der vertrauenswürdigen Ausführungsumgebung (TEE) geschützt ist.
7. Verfahren nach einem der vorhergehenden Ansprüche, bei welchem das kompilierte ausführbare Steuerprogramm (BC) mittels einer kryptographischen Attestierungsinformation (CIA) attestiert wird.
8. Verfahren nach einem der vorhergehenden Ansprüche, bei welchem das ausführbare Steuerprogramm (BC) auf derjenigen speicherprogrammierbaren Steuerung (PLCI, PLC2) in der vertrauenswürdigen Ausführungsumgebung (TEE) kompiliert wird, welche mit dem ausführbaren Steuerprogramm (BC) programmiert wird .
9. Verfahren nach einem der vorhergehenden Ansprüche, bei welchem das Steuerprogramm nicht auf derjenigen speicherprogrammierbaren Steuerung (PLCI, PLC2) in der vertrauenswürdigen Ausführungsumgebung (VMC) kompiliert wird, welche mit dem ausführbaren Steuerprogramm (BC) programmiert wird.
10. Speicherprogrammierbare Steuerungsanlage zur Ausführung eines Verfahrens zum Programmieren einer speicherprogrammierbaren Steuerung (PLCI, PLC2) mittels eines ausführbaren Steuerprogramms (BC) , mit einer speicherprogrammierbaren Steuerung (PLCI, PLC2) und mit einer vertrauenswürdigen Ausführungsumgebung (TEE, VMC) , bei welchem die vertrauenswürdige Ausführungsumgebung (TEE, VMC) einen Kompilator (BCC) aufweist, welcher zur Kompilation zumindest eines Teils eines Zwischenprogrammtextes (PBC) ausgebildet ist, wobei die speicherprogrammierbare Steuerungsanlage einen Projektierer (PLCRT) aufweist, welcher ausgebildet ist, den kompilierten Zwischentext auf die speicherprogrammierbare Steuerung (PLC1, PLC2) zu laden.
11. Speicherprogrammierbare Steuerungsanlage nach dem vorhergehenden Anspruch, welche einstückig handhabbar ist.
PCT/EP2023/069384 2022-07-29 2023-07-12 Verfahren zum programmieren einer speicherprogrammierbaren steuerung mittels eines ausführbaren steuerprogramms und speicherprogrammierbare steuerungsanlage WO2024022830A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
DE102022207883.7 2022-07-29
DE102022207883.7A DE102022207883A1 (de) 2022-07-29 2022-07-29 Verfahren zum Programmieren einer speicherprogrammierbaren Steuerung mittels eines ausführbaren Steuerprogramms und speicherprogrammierbare Steuerungsanlage
EP22189098.1 2022-08-05
EP22189098.1A EP4312140A1 (de) 2022-07-29 2022-08-05 Verfahren zum programmieren einer speicherprogrammierbaren steuerung mittels eines ausführbaren steuerprogramms und speicherprogrammierbare steuerungsanlage

Publications (1)

Publication Number Publication Date
WO2024022830A1 true WO2024022830A1 (de) 2024-02-01

Family

ID=87474271

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2023/069384 WO2024022830A1 (de) 2022-07-29 2023-07-12 Verfahren zum programmieren einer speicherprogrammierbaren steuerung mittels eines ausführbaren steuerprogramms und speicherprogrammierbare steuerungsanlage

Country Status (1)

Country Link
WO (1) WO2024022830A1 (de)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2672414A1 (de) * 2012-06-08 2013-12-11 Sodge IT GmbH Verfahren zur Übertragung von Konfigurationsdaten zu Steuerungsvorrichtungen, ein System und ein Computerprogrammprodukt
US20200210585A1 (en) * 2018-12-31 2020-07-02 Microsoft Technology Licensing, Llc Trusted execution broker

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2672414A1 (de) * 2012-06-08 2013-12-11 Sodge IT GmbH Verfahren zur Übertragung von Konfigurationsdaten zu Steuerungsvorrichtungen, ein System und ein Computerprogrammprodukt
US20200210585A1 (en) * 2018-12-31 2020-07-02 Microsoft Technology Licensing, Llc Trusted execution broker

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MENETREY JAMES ET AL: "WaTZ: A Trusted WebAssembly Runtime Environment with Remote Attestation for TrustZone", 2022 IEEE 42ND INTERNATIONAL CONFERENCE ON DISTRIBUTED COMPUTING SYSTEMS (ICDCS), IEEE, 10 July 2022 (2022-07-10), pages 1177 - 1189, XP034207166, DOI: 10.1109/ICDCS54860.2022.00116 *
ZHICHUANG SUN ET AL: "OEI: Operation Execution Integrity for Embedded Devices", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 9 February 2018 (2018-02-09), XP081220504 *

Similar Documents

Publication Publication Date Title
EP3437012B1 (de) Verfahren, prozessor und gerät zur integritätsprüfung von nutzerdaten
DE102009013384B4 (de) System und Verfahren zur Bereitstellung einer sicheren Anwendungsfragmentierungsumgebung
DE102012215196A1 (de) Schützen von Anwendungsprogrammen vor zerstörerischer Software oder Malware
EP3557463B1 (de) Verfahren und ausführungsumgebung zum ausführen von programmcode auf einem steuergerät
EP3111355B1 (de) Verfahren zum schutz eines computerprogramms gegen beeinflussung und computersystem
EP3451576A1 (de) System und verfahren zur kryptographisch geschützten überwachung wenigstens einer komponente eines geräts oder einer anlage
WO2024022830A1 (de) Verfahren zum programmieren einer speicherprogrammierbaren steuerung mittels eines ausführbaren steuerprogramms und speicherprogrammierbare steuerungsanlage
DE102022207883A1 (de) Verfahren zum Programmieren einer speicherprogrammierbaren Steuerung mittels eines ausführbaren Steuerprogramms und speicherprogrammierbare Steuerungsanlage
DE102005046696B4 (de) Verfahren zum Erzeugen von geschütztem Programmcode und Verfahren zum Ausführen von Programmcode eines geschützten Computerprogramms sowie Computerprogrammprodukt
EP3595256A1 (de) Vorrichtung und verfahren zum betreiben einer durch software gestalteten verarbeitungseinheit für ein gerät
DE102021110768B3 (de) Forensik-Modul und eingebettetes System
DE102021110766B3 (de) Forensik-Modul und eingebettetes System
EP3690690B1 (de) Verfahren zum prüfen einer validität von daten und computerimplementierte vorrichtung zum verarbeiten von daten
EP4141722A1 (de) Sicheres betreiben einer industriellen steuerungsvorrichtung zusammen mit einem ai-modul
EP4254235A1 (de) Verfahren zum ausführen von workload (app) in einer ausführungsumgebung und system
EP4307148A1 (de) Attestierung einer cloud-basierten ausführungsumgebung für eine projektierung
WO2023094181A1 (de) Verfahren und vorrichtung zur autorisierung einer einen zugang anfragenden applikation
EP4254096A1 (de) Verfahren zur implementierung einer automatisierungsfunktionalität auf einer automatisierungskomponente mit programmierbarer automatisierungsfunktionalität und system
WO2022229153A1 (de) Emulationssystem und verfahren
DE102015223335A1 (de) Verfahren zum Betreiben eines Mikrocontrollers
DE102017219750A1 (de) Vorkompilieren und Verschlüsseln von industriellem geistigen Eigentum
EP3786790A1 (de) Ausführungsumgebung und verfahren für einen prozess
DE102014113441A1 (de) Schutz vor Software-Komponenten mittels Verschlüsselung
EP4114050A1 (de) Überprüfung einer lizenz für die nutzung mindestens eines leistungsmerkmals in einem internet der dinge (iot)-gerät
EP4068126A1 (de) Verfahren zur überwachung von containeranwendungen auf einem hostsystem und anlage

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23745424

Country of ref document: EP

Kind code of ref document: A1