WO2017137256A1 - Verfahren und ausführungsumgebung zum gesicherten ausführen von programmbefehlen - Google Patents

Verfahren und ausführungsumgebung zum gesicherten ausführen von programmbefehlen Download PDF

Info

Publication number
WO2017137256A1
WO2017137256A1 PCT/EP2017/051476 EP2017051476W WO2017137256A1 WO 2017137256 A1 WO2017137256 A1 WO 2017137256A1 EP 2017051476 W EP2017051476 W EP 2017051476W WO 2017137256 A1 WO2017137256 A1 WO 2017137256A1
Authority
WO
WIPO (PCT)
Prior art keywords
program instructions
validity information
execution environment
application
execution
Prior art date
Application number
PCT/EP2017/051476
Other languages
English (en)
French (fr)
Inventor
Rainer Falk
Kai Fischer
Markus Heintel
Dominik Merli
Hans Aschauer
Wolfgang Klasen
Axel Pfau
Stefan Pyka
Daniel Schneider
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
Application filed by Siemens Aktiengesellschaft filed Critical Siemens Aktiengesellschaft
Priority to MX2017013621A priority Critical patent/MX2017013621A/es
Priority to CN201780001351.6A priority patent/CN108351770B/zh
Priority to EP17702800.8A priority patent/EP3274825B1/de
Priority to CA2984386A priority patent/CA2984386C/en
Priority to KR1020177031659A priority patent/KR101862348B1/ko
Priority to US15/568,803 priority patent/US10489564B2/en
Priority to ES17702800T priority patent/ES2701702T3/es
Priority to JP2017556821A priority patent/JP6516870B2/ja
Publication of WO2017137256A1 publication Critical patent/WO2017137256A1/de
Priority to IL255690A priority patent/IL255690B/en

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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • 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
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/52Binary to binary
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44589Program code verification, e.g. Java bytecode verification, proof-carrying code
    • 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

Definitions

  • the invention relates to a method and an execution environment for safely executing program instructions of an application.
  • IT systems and applications are used for control.
  • highly specialized individual solutions are replaced by generic-specific multi-purpose systems.
  • These multipurpose systems are adapted to the respective application by dynamic configuration (the application).
  • the functionality not used for the special purpose remains on the system.
  • provides redundant / unused functiona ⁇ formality is a potential risk.
  • the function can be intended (by Ma ⁇ nipulation) or advertising executed inadvertently cause the system and to an unwanted condition.
  • One example is the heartbleed error during SSL / TLS was long hidden in ei ⁇ nem typically not required, part of the SSL / TLS library concerned. Nevertheless, the feature was available on most systems and could be exploited.
  • the object of the present invention is to provide a method and an execution environment for safely executing program instructions of an application which can be carried out with little effort.
  • the object is solved by the features specified in the independent claims. In the dependent claims advantageous developments of the invention are shown.
  • a learning mode of exporting approximately ⁇ environment is turned on.
  • the application in the execution environment is executed during the learning mode is switched on ⁇ , said program instructions of the application for a selected predetermined application scenario through the ⁇ and the execution environment, a first
  • a working mode of the execution environment is switched on, wherein in the work mode the execution environment checks the first validity information of the program instructions, and wherein the execution environment executes the program instructions depending on their validity information.
  • an execution environment can be understood as a virtual machine, for example a Java virtual machine, a processor or an operating system environment.
  • the execution environment can be realized on a physical computing unit (processor, microcontroller, CPU, CPU core).
  • the exporting ⁇ tion of the application in a learning mode to another physical computer unit takes place.
  • he can ⁇ follow the teaching, for example, in a special Annd-processing unit.
  • the execution in an execution mode takes place in ⁇ example in a second arithmetic unit, in which case the determined during training validity information is used in the execution in the execution arithmetic unit.
  • Annd Gul ⁇ tmaschinesinformation is preferably provided tamper protected.
  • program instructions can be understood program command under process, which includes an application as a whole, preferably including the use ⁇ th libraries.
  • portions of the application are understood to comprise a plurality of directly successive executed Pro ⁇ program commands and the associated particular portion of a certain functionality of the application. May also be part areas approximately paths exporting ⁇ , which depends on a condition "if-else" condition are executed, for example.
  • validity information can be used for initial validity information
  • an application scenario for an application can be understood that serves only a specific purpose. This can be, for example, a control unit (on which the application is running), which monitors voltage peaks in a power plant and, if necessary, intervenes in a controlled manner.
  • the hard ⁇ ware components can communicated with the control unit and the operating environment to be precisely defined.
  • the switching on of the working mode is also possible, for example, for the switching on of the working mode to be protected by a security mechanism, for example a password or an activation code or a cryptographic method, in particular in the form of a digital certificate or a license file structure.
  • a security mechanism for example a password or an activation code or a cryptographic method, in particular in the form of a digital certificate or a license file structure.
  • different operating modes are also conceivable. It is thus possible, for example, for the learning mode and the working mode to be executed in parallel, so that the program instructions passed through are used as completely as possible for the application scenario.
  • the executed program instructions are assigned executed execution paths of the application and a second one is created
  • Application scenario-specific validity information is assigned to an execution path.
  • the first validity information is allocated during a first learning phase and, during a second learning phase by the execution environment, a third application-scenario-specific validity information is assigned to the program instructions being executed.
  • the second learning phase may then be performed at the customer where the device and the application is executing the selected default application scenario, such as overload control in a power grid. This makes it possible for the customer to reduce the duration for acquiring the validity information.
  • a processor and / or virtual machine and / or an operating system kernel or operating system kernel using a memory management unit is used as the off ⁇ execution environment.
  • CPU instructions to use can also be called Binary
  • the validity ⁇ information is integrated directly into the execution environment by a special memory or Speicherbeich is provided for this purpose.
  • the validity information can also be outside the execution environment, for example as a file, which is preferably cryptographically protected, till ⁇ sets. The execution environment then accesses the validity information in the file at runtime of the program. For this purpose, it may be necessary for the execution environment to have the appropriate cryptographic keys.
  • the first validity information and / or the second validity information and / or the third validity information of the program instructions are deleted by a trigger.
  • the unneeded functions (or their program instructions) for monitoring the first voltage range no longer have validity information.
  • the trigger which is preferably protected by abutme ⁇ mechanism, such as a password or a kryptog ⁇ raphischen method, the valid ⁇ keitsinformation can optionally be simply deleted.
  • the first validity information and / or the second validity information and / or the third validity information are stored in a security-protected manner.
  • the validity information can be stored in a security-protected manner by encrypting cryptographic methods such as symmetric encryption, asymmetric encryption or a digital signature. information is formed so that its integrity can be checked.
  • a security protected SpeI ⁇ manuals can be achieved by that the apparatus, such as a control device for monitoring of high voltage, on which the application is running, can be sealed, so that a SpeI ⁇ submodule on which the validity information is stored, spatially unreachable ( secured in space). This has the advantage that the security of the process is increased again.
  • the security mode can be realized, for example, by means of cryptographic methods, or switching on the learning mode is possible only at predefined times and / or situations. This may, for example, be during the manufacture of a device on which the application is executed. Here, for example, an access to a sealable storage unit that is not accessible during a regular operation (in the operating mode at the particular location where the Ge ⁇ rätes). For example, a predefined time may also be a phase for system testing or debugging the application on the device.
  • the first validity information and / or the second validity information and / or the third validity information are provided to a further device.
  • the validity ⁇ information for applications with the same appli cation scenario can be transmitted in the simplest possible way.
  • several devices are used with the application to assist
  • the validity information for the program commands for a device and its application can first be detected and the validity information transmitted to the other devices, for example.
  • the validity information can again be cryptographically protected and the transmission could preferably be carried out automatically.
  • the method is carried out from the lead ⁇ the application in the execution environment during the turned-on learning mode on a device and / or on an identical test device and / or a simulation environment of the device.
  • the validity information can be detected in the simplest possible way.
  • the first validity information and / or the second validity information and / or the third validity information are assigned to the program instructions by instruction and / or subroutine-wise and / or library-wise.
  • the validity information can be allocated flexibly in this way, the validity information is not allocated to each individual line in the program code of the application, for example, but depending on the situation, validity information can also be assigned to a subroutine / function or a program library. This has, for example, the execution time of the application is improved because not a valid ⁇ keitsinformation must be evaluated for each program line the advantage.
  • program instructions issued by the program instructions with the first validity information and / or the second validity information and / or depend on the third validity information, associated with a corresponding validity information are issued by the program instructions with the first validity information and / or the second validity information and / or depend on the third validity information, associated with a corresponding validity information.
  • validity information can already be assigned by the programmer of the application. This has the advantage that the duration of the Lernmo ⁇ dus to allocate all necessary validity information can be shortened for an application scenario.
  • signaling information is provided when executing non-valid program instructions.
  • the signaling information may be communicated to a control console or a security monitoring system such that technicians inspect, for example, a power plant, the application, and the device on which the application is installed.
  • a control console or a security monitoring system such that technicians inspect, for example, a power plant, the application, and the device on which the application is installed.
  • This signaling information can be generated, for example, by an interruption or an exception, which is stored in valid information-free program instructions.
  • valid program instructions are removed from the application when the working mode is switched on.
  • the invention relates to an off ⁇ execution environment to the secure computerized executing program instructions of an application.
  • the execution environment includes a first switching module for turning on a learning environment of the execution environment.
  • the execution environment additionally comprises an execution module for executing the application in the execution environment during the learning mode is scarf ⁇ tet, said program instructions of the application are run through for a predetermined out ⁇ selective application scenario and the execution environment, a first
  • the execution environment further comprises a second switching module to the Power On ⁇ th of a working mode of the execution environment, wherein in the working mode, the execution environment examines the first validity information of the program instructions, and wherein the off ⁇ execution environment the program instructions depending on their validity information executes.
  • the first switching module and the second switching module may be configured as game at ⁇ as an integral switch module, which allows each switch to the learning mode or the working mode, a ⁇ .
  • the execution environment is a processor or a virtual machine, an operating system kernel or an operating system kernel using a memory management unit.
  • the invention relates to a Sys tem ⁇ that includes an execution environment of the present invention.
  • a variant of the computer program product with program instructions for configuring a Raets for example, a 3D printer or similar device, claimed, wherein the creation unit is supplied with the missing Programmbe ⁇ configured such that said ⁇ OF INVENTION dung proper execution environment is created.
  • a provision device for storing and / or providing the computer program product is claimed .
  • the provisioning device is, for example, a data carrier which stores and / or makes available the computer program product.
  • the provisioning device is, for example, a network service, a computer system, a server system, in particular a distributed computer system, a cloud-based computer system and / or a virtual computer system which preferably stores and / or provides the computer program product in the form of a data stream.
  • This provision takes place, for example, as a download in the form of a program data block and / or command data block, preferably as a file, in particular as a download file, or as a data stream, in particular as a download data stream, of the complete computer program product.
  • This provision for example, but also as a partial download SUC ⁇ gen, which consists of several parts, in particular through a peer-to-peer network downloaded or is provided as a data stream.
  • a computer program product is read into the system using the data carrier provisioning device and executes the program instructions, so that the method of the invention is executed on a computer or the authoring device is configured to create the execution environment of the present invention.
  • Fig. 2 illustrates a second embodiment of the disclosed method
  • Fig. 3 illustrates a third embodiment of the disclosed method
  • Fig. 4 is an execution environment of a fourth embodiment.
  • 5 shows a system with an execution environment.
  • the method 100 is for securely executing program instructions of an application on a computer or a device, such as a controller for a fire extinguishing system, a monitor for monitoring high voltage spikes, or a field device, suitable.
  • the method 100 has for this purpose a first method step for switching on 110 a learning mode of an execution environment.
  • the execution environment is used in particular to run the application, and this may be a processor, an operating system linker, a program linker or a virtual machine or a virtual machine, game as act as ⁇ the Java Virtual Machine.
  • Turning on the learning mode is protected, for example with abutmecha ⁇ mechanism such as password input or cryptographically protected ge ⁇ user authentication.
  • the method 100 additionally comprises a second process step for executing 120 the application in the execution environment during the learning mode is turned on, said program instructions of the application for a selected pre give ⁇ nes application scenario are traversed and the execution environment, a first application scenario-specific Gul ⁇ tmaschinesinformation the traveled program instructions assigns.
  • a data structure can be used which stores validity information for each program instruction that has been executed.
  • unperformed program instructions may be assigned an invalidation information, in particular in the form of a data block set to zero, an exception or an interrupt.
  • the data structure can only contain invalidation information as an initial value, and these are then partially or completely overwritten with validity information during the learning phase.
  • the invalidation information is determined by the absence of validity information for a program command.
  • the method 100 additionally comprises a third process step for switching 130 an operational mode of the off ⁇ execution environment, wherein in the working mode, the execution environment examines the first validity information of the program instructions, and wherein said execution environment, the Programmbe ⁇ missing depending on their validity information executes. If, however, a program command with an invalidation information is to be erroneously executed during the working mode, for example, the associated exception can be thrown and, in particular, an administrator can be informed with a signaling information. With the signaling information but also the application, the Execution environment or the device on which the application is running, be brought into a secure state. The corresponding program command with the invalidation information is then preferably not executed.
  • the switching on of the working mode is protected, for example, with a security mechanism, such as a password input or a cryptographically protected user authentication.
  • the disclosed method 100 makes it possible to render unused functionalities of an application, for example a library or an application in operational operation, unattainable.
  • the identification of unused program instructions or code parts is as automatic and transparent as possible for the user.
  • evaluations can be provided which specify which program commands have been assigned validity information and to which invalidation information has been assigned.
  • a developer can still manually assign validity information to individual program instructions, if this is necessary in the context of certain input data for the application.
  • Fig. 2 shows a first block of program instructions 210, each of which validity information E is assigned, egg ⁇ NEN second block of program instructions 215, each associated with an invalidation information NE, and a third block of program instructions 220, each of which a Validity information E is assigned.
  • all valid must preferably stands to ⁇ , so all states, which may take the application for the chosen from ⁇ given application scenario will be run by ⁇ .
  • the learning mode for example, can take place on different stake:
  • the data 225 can be stored directly in the program code, for example as a flag in the opcode, as a flag at entry points (functions) of a program library, also as annotation of object code or annotation of binary code referred to as. Alternatively, these data can be stored as separate metadata.
  • the code is modified.
  • Unchecked opcodes meaning validity-free program instructions 215, are replaced by NOPs, TRAPs or exceptions.
  • the learning mode can be switched on during a first learning phase be ⁇ already during the system test the manufacturer of a device to be tested dung scenarios in which some or typical application. This can create a record with a basic configuration with validity information for the application. This pre-established base configuration can then be further configured by the user by turning the learn mode back on. This makes it possible to shorten a second learning phase directly at the place of use, ie the selected predefined application scenario of the device.
  • This base configuration can for example be created using the data from the test system, which can be refined during an opera ⁇ tive learning phase where the equipment.
  • the learned data 225 (separate metadata or annotated object code / binary code), ie validity information and / or invalidity information, can be provided in a variant to another device in cryptographically protected form, for example as a digitally signed data record.
  • the learning mode can also be switched on on different devices or the learning phases can be executed on different devices:
  • blurred learning is also conceivable, ie in the activated learning mode, because in an extended area a program instruction is assigned validity information.
  • every instruction used for a program instruction ie also the instructions of the subroutines and program libraries, is assigned a validity information E.
  • the subroutines of the passed program commands are assigned a validity information E.
  • This is also a call depth of subroutines can be considered, for example, to minimize the overhead of an assignment of the validity information E especially in marach ⁇ telten functions.
  • the Deten by the application verwen- program libraries are each assigned to a Gültmaschinesinformati ⁇ on E, to assign characterized in particular all the program instructions the program library validity information.
  • the granularity increments may for example be controlled by suitable structure information also during code development of the application . This could a developer dedicated program instructions and dependent program instructions in ⁇ constructions, manually assign subroutines or libraries validity information.
  • a validity information E which can also be referred to as a permissible program instruction. If a non-valid program command NE, ie a program command not marked as permitted, is jumped, this leads, for example, to an exception or another command which has been deposited. Or in other words, the command that has overwritten, for example, the unzuläsy ⁇ program command.
  • a processor which is the Ar ⁇ beitsum repertoire, for example, a CPU, a first mode, the learning mode, and a second mode, the working has beitsmodus.
  • the running opcodes ie the program instructions that have been executed, are marked, that is, a validity information is assigned, and stored in the program image. After switching to working mode, only the selected commands of an application are accepted.
  • the method is realized by means of a working environment in the form of a virtual machine.
  • the virtual machine is characterized in a learning mode the ist ⁇ working lines of code of an application, so the traversed program instructions of the application, and generates a Proto ⁇ kolldatei containing the program instructions the associated validity information.
  • the assignment of validity information can be made directly when creating an entry in the log file.
  • the virtual machine checks whether a program command may be executed. For example, the integrity / authenticity of the log file may be secured by a digital signature that is validated by the virtual machine.
  • Fig. 3 illustrates a third embodiment of the disclosed method.
  • the method is realized by means of an operating system kernel.
  • the application is started in learn mode by the kernel in a controlled environment, such as a debugger.
  • the executed program instructions 310, 320 are detected, in which a validity information is assigned.
  • the program instructions and the validity information can then be stored.
  • the runtime loader uses this validity information to instrument the program code, ie the program instructions of the application. For example, all non-traversed lines of code, that is, the validity-information-free program instructions, can be replaced by traps.
  • the method using an operating system kernel, using the memory management unit ⁇ is also called memory management unit MMU, realized.
  • An application is started in learn mode by the kernel in a controlled environment, such as a debugger.
  • the executed program instructions are recorded, in each of which a validity information is assigned.
  • the program instructions and the validity information can then be stored.
  • the program instructions which are not assigned a validity information, so validity information loose Programmbe lacking ⁇ - unlabeled called code portions are represented by the memory management unit as non-executable or marked as not readable.
  • a trap or Un ⁇ interruption (engl. Interrupt) When accessing (loading the program instructions from external memory in the cache) is preferably triggered by the memory management unit, a trap or Un ⁇ interruption (engl. Interrupt).
  • 4 shows an execution environment 400 of a fourth embodiment for the secure computer-aided execution of program instructions of an application.
  • the execution environment 400 includes a first switching module 410, an execution module 420, a second switching module 430, and an interface 485 communicatively coupled to one another via a first bus 480.
  • the first switching module 410 switches on a learning mode of the execution environment 400.
  • the execution module 420 executes the application in the exporting ⁇ approximately environment 400, during the learning mode is switched on, wherein the application program instructions for a selected go through the given application scenario and the execution environment 400 a first
  • the second switching module 430 switches an operation mode of the execution environment 400, where in the operating mode the off ⁇ execution environment 400 checks the first validity information of the program instructions and wherein the execution environment carries out the program instructions depending on their validity information.
  • the execution environment can be installed, for example, as a processor or as a virtual machine on a chip, in particular in the form of embedded Java, in a device, for example a field device, a control device or a measuring device.
  • a device for example a field device, a control device or a measuring device.
  • the device may be part of a system, the device being connected via a data bus to a workstation of an operator.
  • Fig. 5 shows a system, for example a monitoring system for high voltage in a power plant.
  • a workstation for example, an IBM-compatible Compu ⁇ tersystem comprising a display device 532 such as egg ⁇ NEN screen, and a plurality of input devices, such as egg ⁇ ne computer mouse 533 and a keyboard 530 is connected via a third bus 580 and a second interface 575 of a Ge ⁇ advises communicatively coupled 501 with the device five hundred and first
  • the third bus 580 may for example be an Ethernet bus or a Univer ⁇ Serial Bus (USB).
  • the device 501 comprises an execution environment 400 for gesi ⁇ cherten computerized executing program instructions of an application in selected predetermined application scenario, for example, a high-voltage monitoring with the to- associated measuring method.
  • the execution environment is connected by means of the interface 485 to a detection device 510, for example a voltage measuring sensor , and the second interface 575.
  • the execution environment may throw an exception, which will then be displayed to an operator on the workstation. If necessary, the operator can then carry out checks as to whether the application was accidentally misbehaving or whether the application was tampered with by an unauthorized third party.

Abstract

Die Erfindung betrifft ein Verfahren (100) zum gesicherten rechnergestützten Ausführen von Programmbefehlen einer Anwendung mit den die folgenden Verfahrensschritten. Das Verfahren umfasst einen Verfahrensschritt zum Einschalten (110) eines Lernmodus einer Ausführungsumgebung (400). Das Verfahren umfasst einen weiteren Verfahrensschritt zum Ausführen (120) der Anwendung in der Ausführungsumgebung (400) während der Lernmodus eingeschaltet ist, wobei Programmbefehle der Anwendung für ein ausgewähltes vorgegebenes Anwendungsszenario durchlaufen werden und die Ausführungsumgebung (400) eine erste anwendungsszenariospezifische Gültigkeitsinformation den durchlaufenen Programmbefehlen (210, 220, 310, 320) zuordnet. Das Verfahren umfasst einen Verfahrensschritt zum Einschalten (130) eines Arbeitsmodus der Ausführungsumgebung (400), wobei im Arbeitsmodus die Ausführungsumgebung (400) die erste Gültigkeitsinformation der Programmbefehle überprüft, und wobei die Ausführungsumgebung (400) die Programmbefehle abhängig von ihrer Gültigkeitsinformation ausführt.

Description

Beschreibung
Verfahren und Ausführungsumgebung zum gesicherten Ausführen von Programmbefehlen
Die Erfindung bezieht sich auf ein Verfahren und eine Ausführungsumgebung zum gesicherten Ausführen von Programmbefehlen einer Anwendung. In modernen Automatisierungssystemen werden zur Steuerung IT- Systeme und Anwendungen eingesetzt. Im Zuge der Digitalisie¬ rung werden hochspezialisierte Einzellösungen durch generi- sche Mehrzwecksysteme abgelöst. Diese Mehrzwecksysteme werden durch dynamische Konfiguration (der Anwendung) an den jewei- ligen Einsatzzweck angepasst. Die für den speziellen Einsatzzweck nicht genutzte Funktionalität verbleibt dabei auf dem System. Prinzipiell stellt überflüssige/ungenutzte Funktiona¬ lität ein mögliches Risiko dar. Die Funktion kann (durch Ma¬ nipulation) beabsichtigt oder unbeabsichtigt ausgeführt wer- den und zu einem ungewollten Systemzustand führen. Ein Beispiel ist der Heartbleed-Fehler bei SSL/TLS der lange in ei¬ nem typischerweise nicht benötigtem Teil der betroffenen SSL/TLS Bibliothek verborgen war. Dennoch stand die Funktion auf den meisten Systemen zur Verfügung und konnte ausgenutzt werden.
Aus dem Stand der Technik sind das Dokument US 8,531,247 B2, das Dokument US 8,892,616 B2, das Dokument US 8,300,811 B2, das Dokument US 9,147,088 B2, das Dokument EP 2 605 445 Bl, das Dokument EP 2 870 565 AI, das Dokument EP 2 891 102 AI und das Dokument US 8 843 761 B2 bekannt.
Die Aufgabe der vorliegenden Erfindung ist es, ein Verfahren und eine Ausführungsumgebung zum gesicherten Ausführen von Programmbefehlen einer Anwendung bereitzustellen, das mit einem geringen Aufwand durchführbar ist. Die Aufgabe wird durch die in den unabhängigen Ansprüchen angegebenen Merkmale gelöst. In den Unteransprüchen sind vorteilhafte Weiterbildungen der Erfindung dargestellt.
Gemäß einem ersten Aspekt betrifft die Erfindung zum gesi¬ cherten rechnergestützten Ausführen von Programmbefehlen einer Anwendung ein Verfahren mit den folgenden Verfahrensschritten :
In einem Verfahrensschritt wird ein Lernmodus einer Ausfüh¬ rungsumgebung eingeschaltet.
In einem weiteren Verfahrensschritt wird die Anwendung in der Ausführungsumgebung ausgeführt, während der Lernmodus einge¬ schaltet ist, wobei Programmbefehle der Anwendung für ein ausgewähltes vorgegebenes Anwendungsszenario durchlaufen wer¬ den und die Ausführungsumgebung eine erste
anwendungsszenariospezifische Gültigkeitsinformation den durchlaufenen Programmbefehlen zuordnet.
In einem weiteren Verfahrensschritt wird ein Arbeitsmodus der Ausführungsumgebung eingeschaltet, wobei im Arbeitsmodus die Ausführungsumgebung die erste Gültigkeitsinformation der Programmbefehle überprüft, und wobei die Ausführungsumgebung die Programmbefehle abhängig von ihrer Gültigkeitsinformation ausführt .
Im Zusammenhang mit der Patentanmeldung kann unter einer Anwendung eine ausführbare Datei oder auch eine Programmbiblio¬ thek verstanden werden.
Im Zusammenhang mit der Patentanmeldung kann unter einer Ausführungsumgebung eine virtuelle Maschine, beispielsweise eine Java Virtual Machine, ein Prozessor oder eine Betriebssystemumgebung verstanden werden. Die Ausführungsumgebung kann auf einer physikalischen Recheneinheit (Prozessor, Mikrocontrol- ler, CPU, CPU Core) realisiert sein. Dabei kann die Ausfüh¬ rung der Anwendung in einem Lernmodus und in einem Ausfüh- rungsmodus auf der selben physikalischen Recheneinheit erfol¬ gen. Ebenso ist es beispielsweise möglich, dass die Ausfüh¬ rung der Anwendung in einem Lernmodus in einer anderen physikalischen Recheneinheit erfolgt. So kann z.B. das Anlernen beispielsweise in einer speziellen Anlern-Recheneinheit er¬ folgen. Die Ausführung in einem Ausführungsmodus erfolgt bei¬ spielsweise in einer zweiten Recheneinheit, wobei dabei die beim Anlernen ermittelte Gültigkeitsinformation bei der Ausführung in der Ausführungs-Recheneinheit verwendet wird. Die durch die Anlern-Recheneinheit beispielsweise ermittelte Gül¬ tigkeitsinformation wird vorzugsweise manipulationsgeschützt bereitgestellt .
Im Zusammenhang mit der Patentanmeldung können unter Pro- grammbefehlen, die Programmbefehle verstanden werden, die eine Anwendung als Ganzes vorzugsweise inklusive der verwende¬ ten Bibliotheken umfasst.
Im Zusammenhang mit der Patentanmeldung können unter Ausfüh- rungspfaden, Teilbereiche der Anwendung verstanden werden, die mehrere direkt aufeinander folgende auszuführende Pro¬ grammbefehle umfassen und die insbesondere einer bestimmten Teilfunktionalität der Anwendung zugeordnet sind. Ausfüh¬ rungspfaden können auch Teilbereiche sein, die abhängig von einer Bedingung, beispielsweise „If-Else"-Bedingung ausgeführt werden.
Im Zusammenhang mit der Patentanmeldung können unter Gültig- keitsinformation/en eine erste Gültigkeitsinformation
und/oder eine zweite Gültigkeitsinformation und/oder eine dritte Gültigkeitsinformation verstanden werden.
Im Zusammenhang mit der Patentanmeldung kann unter einem Gerät beispielsweise ein Steuergerät für ein Feuerlöschsystem, ein Überwachungsgerät zur Überwachung von Spannungsspitzen bei Hochspannung oder ein Feldgerät verstanden werden. Im Zusammenhang mit der Patentanmeldung kann unter einem Anwendungsszenario oder einem ausgewählten vorgegebenen Anwendungsszenario, ein Anwendungsszenario für eine Anwendung ver¬ standen werden, das nur einem bestimmten Zweck dient. Dies kann beispielsweise ein Steuergerät (auf dem die Anwendung läuft) sein, das in einer Kraftwerksanlage Spannungsspitzen überwacht und ggf. steuernd eingreift. Dabei können die Hard¬ warekomponenten mit denen das Steuerungsgerät kommuniziert und die Einsatzumgebung genau festgelegt sein. Das kann be- deuten, dass an die Anwendung beispielsweise nur Eingabewerte mit bestimmten erwarteten Wertebereichen übergeben werden, und auch nur Funktionen, oder deren Programmbefehle genutzt werden, die beispielsweise für eine Überwachung eines be¬ stimmten Spannungsbereichs bei Hochspannung notwendig sind. Funktionen, die nur für Niederspannung verwendet werden würden, würden in einem ausgewählten vorgegebenen Anwendungsszenario für Hochspannung nicht durchlaufen bzw. verwendet werden . Im Zusammenhang mit der Patentanmeldung kann unter „gültig- keitsinformationslos" verstanden werden, dass einem Programmbefehl und/oder einer Subroutine/Funktion und/oder einer Programmbibliothek keine Gültigkeitsinformation zugeordnet ist. Falls beispielsweise jedem Programmbefehl ein bestimmter Speicherbereich zugeordnet ist, indem die Gültigkeitsinforma¬ tion abgelegt werden kann, so kann für einen gültigkeitsin- formationslosen Programmbefehl dieser Speicherbereich beispielsweise mit Nullen oder einem anderen Wert belegt werden, der angibt, dass für diesen Programmbefehl keine Gültigkeits- Information verfügbar ist. Unter „gültigkeitsinformationslos" kann zusätzlich verstanden werden, dass einem Programmbefehl eine Ungültigkeitsinformation zugeordnet ist.
Durch das Verfahren wird eine hohe Sicherheit für Anwendungen erreicht, die beispielsweise auf einem bestimmten Gerät, bei¬ spielsweise ein Feldgerät, ausgeführt werden, da eine Ausfüh¬ rung von gültigkeitsinformationslosen Programmbefehlen unterdrückt wird. Das bedeutet beispielsweise, dass nicht durch- laufene Programmbefehle gültigkeitsinformationslos , also kei¬ ne Gültigkeitsinformation aufweisen. Bevor der Lernmodus aktiviert wird, können beispielsweise vorhandene Gültigkeitsin¬ formationen wahlweise gelöscht werden, sodass vor dem Ein- schalten des Lernmodus keinem Programmbefehl eine Gültigkeitsinformation zugeordnet ist.
Auch ist es beispielsweise möglich, dass das Einschalten des Arbeitsmodus durch einen Sicherheitsmechanismus, beispiels- weise einem Passwort oder einem Freischaltcode oder einem kryptographischen Verfahren insbesondere in Form eines digitalen Zertifikats oder einer Lizenzdateistruktur, geschützt ist . Es sind beispielsweise auch unterschiedliche Betriebsmodi denkbar. So ist es beispielsweise möglich, dass der Lernmodus und der Arbeitsmodus parallel ausgeführt werden kann, damit die durchlaufenen Programmbefehle für das Anwendungsszenario möglichst vollständig erfasst werden. Es ist beispielsweise aber auch möglich, dass durch das Einschalten des Arbeitsmodus, der Lernmodus automatisch ausgeschaltet wird. Wird hin¬ gegen der Lernmodus eingeschaltet, wird der Arbeitsmodus au¬ tomatisch ausgeschaltet. Je nach gewünschtem Verhalten der Betriebsmodi der Arbeitsumgebung, kann dies vorzugsweise kon- figuriert werden.
Bei einer ersten Ausführungsform des Verfahrens werden die durchlaufenen Programmbefehle durchlaufenen Ausführungspfaden der Anwendung zugeordnet und es wird eine zweite
anwendungsszenariospezifische Gültigkeitsinformation jeweils einem Ausführungspfad zugeordnet.
Dadurch, dass nur dem Ausführungspfad, beispielsweise bei ei¬ ner „If-Else"-Bedingung, eine Gültigkeitsinformation zugeord- net wird, kann die Ausführungszeit des Verfahrens verbessert werden . Bei weiteren Ausführungsformen des Verfahrens wird die erste Gültigkeitsinformation während einer ersten Lernphase zugeordnet und es wird während einer zweiten Lernphase durch die Ausführungsumgebung eine dritte anwendungsszenariospezifische Gültigkeitsinformation den durchlaufenen Programmbefehlen zuordnet .
Hierdurch ist es möglich, die Zuordnung der Gültigkeitsinformationen zu verbessern. Dies kann beispielsweise dadurch er- folgen, dass die erste Lernphase durchgeführt wird, wenn
Funktionstests bei der Fertigung eines Gerätes auf dem die Anwendung ausgeführt werden soll, vorgenommen werden. Die zweite Lernphase kann dann beim Kunden ausgeführt werden, bei dem das Gerät und die Anwendung das ausgewählte vorgegebene Anwendungsszenario, beispielsweise eine Überlaststeuerung in einem Stromversorgungsnetz, ausführt. Dadurch ist es möglich, beim Kunden die Dauer zum Erfassen der Gültigkeitsinformation zu reduzieren. Bei weiteren Ausführungsformen des Verfahrens wird als Aus¬ führungsumgebung ein Prozessor und/oder eine virtuelle Maschine und/oder ein Betriebssystemkern oder ein Betriebssystemkern unter Verwendung einer Speicherverwaltungseinheit verwendet .
Je nach Anwendungsfall lässt sich hierdurch entweder eine einfacher zu implementierende Variante realisieren, indem beispielsweise den Programmbefehlen im Bytecode einer Java- Anwendung die Gültigkeitsinformation zugeordnet wird. Oder es wird eine sehr hohe Sicherheit beim Ausführen der Anwendung zu erreichen, indem auf einem Prozessor jeweils einem Maschinenbefehl eine Gültigkeitsinformation zugeordnet wird.
Es ist aber auch möglich, CPU Instruktionen der Anwendung (kann auch Binary genannt werden) eine Gültigkeitsinformation zuzuordnen, um beispielsweise eine mittlere Sicherheit zu er¬ reichen . Generell ist es beispielsweise möglich, dass die Gültigkeits¬ information direkt in die Ausführungsumgebung integriert wird, indem hierfür ein spezieller Speicher bzw. Speicherbeich vorgesehen ist. Die Gültigkeitsinformation kann aber auch außerhalb der Ausführungsumgebung, beispielsweise als Datei, die vorzugsweise kryptographisch geschützt ist, abge¬ legt sein. Die Ausführungsumgebung greift dann zu Laufzeit des Programms auf die Gültigkeitsinformationen in der Datei zu. Hierzu kann es notwendig sein, dass die Ausführungsumge- bung ggf. über die entsprechenden kryptographischen Schlüssel verfügt .
Bei weiteren Ausführungsformen des Verfahrens werden durch einen Trigger die erste Gültigkeitsinformation und/oder die zweite Gültigkeitsinformation und/oder die dritte Gültigkeitsinformation der Programmbefehle gelöscht.
In Situationen in denen beispielsweise ein Steuergerät zur Überwachung von Hochspannung eines ersten Spannungsbereiches eingesetzt wurde und jetzt für die Überwachung von Hochspan¬ nung eines zweiten Spannungsbereiches eingesetzt werden soll, ist es sinnvoll, dass die nicht mehr benötigten Funktionen (oder deren Programmbefehle) zur Überwachung des ersten Spannungsbereiches keine Gültigkeitsinformation mehr aufweisen. Durch den Trigger der vorzugsweise durch einen Sicherheitsme¬ chanismus, beispielsweise einem Passwort oder einem kryptog¬ raphischen Verfahren, geschützt ist, kann ggf. die Gültig¬ keitsinformation einfach gelöscht werden. Bei weiteren Ausführungsformen des Verfahrens werden die erste Gültigkeitsinformation und/oder die zweite Gültigkeitsinformation und/oder die dritte Gültigkeitsinformation sicherheitsgeschützt gespeichert. Die Gültigkeitsinformationen können beispielsweise sicherheitsgeschützt gespeichert werden, indem kryptographische Verfahren wie eine symmetrische Verschlüsslung, asymmetrische Verschlüsslung oder eine digitale Signatur über die Gültig- keitsinformationen gebildet wird, damit deren Integrität überprüfbar ist. Auch kann ein sicherheitsgeschütztes Spei¬ chern dadurch erreicht werden, dass das Gerät, beispielsweise ein Steuergerät zur Überwachung von Hochspannung, auf dem die Anwendung ausgeführt wird, versiegelbar ist, sodass ein Spei¬ chermodul auf denen die Gültigkeitsinformationen abgelegt sind, auch räumlich nicht erreichbar (räumlich gesichert) ist. Dies hat den Vorteil, dass die Sicherheit des Verfahrens nochmals erhöht wird.
Bei weiteren Ausführungsformen des Verfahrens ist das Einschalten des Lernmodus durch einen Sicherheitsmechanismus ge¬ schützt ist.
Dadurch, dass das Einschalten des Lernmodus oder auch des Arbeitsmodus durch einen Sicherheitsmechanismus geschützt ist, wird eine höhere Sicherheit des Verfahrens erreicht. Der Sicherheitsmodus kann beispielsweise mittels kryptographi- scher Verfahren realisiert werden, oder das Einschalten des Lernmodus ist nur zu vordefinierten Zeitpunkten und/oder Situationen möglich. Dies kann beispielsweise während der Fertigung eines Gerätes sein, auf dem die Anwendung ausgeführt wird. Hier besteht beispielsweise ein Zugriff auf eine versiegelbare Speichereinheit, die während eines regulären Betriebes (im Arbeitsmodus insbesondere am Einsatzort des Ge¬ rätes) nicht zugreifbar ist. Ein vordefinierter Zeitpunkt kann beispielsweise auch eine Phase für Systemtests oder beim Debugging der Anwendung auf dem Gerät sein.
Bei weiteren Ausführungsformen des Verfahrens werden die ers- te Gültigkeitsinformation und/oder die zweite Gültigkeitsin- formation und/oder die dritte Gültigkeitsinformation einem weiteren Gerät bereitgestellt.
Hierdurch können auf möglichst einfache Weise die Gültig¬ keitsinformationen für Anwendungen mit dem gleichen Anwen dungsszenario übertragen werden. Werden in einer Kraftwer anläge mehrere Geräte mit der Anwendung verwendet, um bei spielsweise an verschiedenen Stellen auf die identische Weise Spannungsspitzen bei Hochspannung zu überwachen, kann zunächst die Gültigkeitsinformation für die Programmbefehle für ein Gerät und deren Anwendung erfasst werden und die Gültig- keitsinformation beispielsweise an die anderen Geräte übertragen werden. Für die Übertragung können die Gültigkeitsinformationen wiederum kryptographisch geschützt sein und die Übertragung könnte vorzugsweise automatisiert durchgeführt werden .
Bei weiteren Ausführungsformen des Verfahrens wird das Aus¬ führen der Anwendung in der Ausführungsumgebung während dem eingeschalteten Lernmodus auf einem Gerät und/oder auf einem baugleichen Testgerät und/oder einer Simulationsumgebung des Gerätes durchgeführt.
Hierdurch lassen sich die Gültigkeitsinformationen auf möglichst einfache Weise erfassen. Bei weiteren Ausführungsformen des Verfahrens werden die erste Gültigkeitsinformation und/oder die zweite Gültigkeitsinformation und/oder die dritte Gültigkeitsinformation den Programmbefehlen instruktionsweise und/oder subroutinenweise und/oder bibliotheksweise zugeordnet.
Dadurch, dass die Gültigkeitsinformation derart flexibel zugeordnet werden kann, wird die Gültigkeitsinformation beispielsweise nicht jeder einzelnen Zeile im Programmcode der Anwendung zugeordnet, sondern es kann situationsbedingt auch einer Subroutine/Funktion oder einer Programmbibliothek eine Gültigkeitsinformation zugeordnet werden. Dies hat den Vorteil, dass beispielsweise die Ausführungszeit der Anwendung verbessert wird, da nicht für jede Programmzeile eine Gültig¬ keitsinformation ausgewertet werden muss.
Bei weiteren Ausführungsformen des Verfahrens wird Programmbefehlen, die von den Programmbefehlen mit der ersten Gültigkeitsinformation und/oder der zweiten Gültigkeitsinformation und/oder der dritten Gültigkeitsinformation abhängen, eine entsprechende Gültigkeitsinformation zugeordnet.
Hierdurch können beispielsweise durch den Programmierer der Anwendung bereits Gültigkeitsinformationen zugeordnet werden. Dies hat insbesondere den Vorteil, dass die Dauer des Lernmo¬ dus zum Zuordnen aller notwendigen Gültigkeitsinformationen für ein Anwendungsszenario verkürzt werden kann. Bei weiteren Ausführungsformen des Verfahrens wird beim Ausführen von gültigkeitsinformationslosen Programmbefehlen eine SignalisierungsInformation bereitgestellt .
Hierdurch kann vorzugsweise erkannt werden, wenn Programmbe- fehle ausgeführt werden, die eigentlich für das Anwendungs¬ szenario nicht notwendig sind. Die Signalisierungsinformation kann beispielsweise an eine Steuerkonsole oder eine Sicher- heitsüberwachungssystem übermittelt werden, sodass Techniker beispielsweise in einer Kraftwerksanlage, die Anwendung und das Gerät auf dem die Anwendung installiert ist, überprüfen. Dadurch ist es vorzugsweise möglich, Manipulationen der Anwendung bzw. des Gerätes oder der Arbeitsumgebung des Gerätes zu erkennen. Diese Signalisierungsinformation kann beispielsweise durch eine Unterbrechung oder eine Ausnahme erzeugt werden, die bei gültigkeitsinformationslosen Programmbefehlen hinterlegt ist.
Bei weiteren Ausführungsformen des Verfahrens werden beim Einschalten des Arbeitsmodus gültigkeitsinformationslose Pro- grammbefehle aus der Anwendung entfernt.
Hierdurch wird die Sicherheit der Anwendung erhöht, da unnö¬ tige Programmbefehle oder auch Programmcodes aus der Anwen¬ dung entfernt werden. Dadurch hat ein Angreifer keine Mög- lichkeit, Programmteile zu nutzen, die für das Anwendungssze¬ nario ungenutzt sind. Gemäß einem weiteren Aspekt betrifft die Erfindung eine Aus¬ führungsumgebung zum gesicherten rechnergestützten Ausführen von Programmbefehlen einer Anwendung. Die Ausführungsumgebung umfasst ein erstes Schaltmodul zum Einschalten eines Lernmo- dus der Ausführungsumgebung. Die Ausführungsumgebung umfasst zusätzlich ein Ausführungsmodul zum Ausführen der Anwendung in der Ausführungsumgebung während der Lernmodus eingeschal¬ tet ist, wobei Programmbefehle der Anwendung für ein ausge¬ wähltes vorgegebenes Anwendungsszenario durchlaufen werden und die Ausführungsumgebung eine erste
anwendungsszenariospezifische Gültigkeitsinformation den durchlaufenen Programmbefehlen zuordnet. Die Ausführungsumgebung umfasst zusätzlich ein zweites Schaltmodul zum Einschal¬ ten eines Arbeitsmodus der Ausführungsumgebung, wobei im Ar- beitsmodus die Ausführungsumgebung die erste Gültigkeitsinformation der Programmbefehle überprüft, und wobei die Aus¬ führungsumgebung die Programmbefehle abhängig von ihrer Gültigkeitsinformation ausführt. Das erste Schaltmodul und das zweite Schaltmodul können bei¬ spielsweise als integrales Schaltmodul ausgestaltet sein, das es erlaubt, jeweils den Lernmodus oder den Arbeitsmodus ein¬ zuschalten . Bei einer ersten Ausführungsform der Ausführungsumgebung ist die Ausführungsumgebung ein Prozessor oder eine virtuelle Maschine, ein Betriebssystemkern oder ein Betriebssystemkern unter Verwendung einer Speicherverwaltungseinheit. Gemäß einem weiteren Aspekt betrifft die Erfindung ein Sys¬ tem, dass eine erfindungsgemäße Ausführungsumgebung aufweist.
Des Weiteren wird ein Computerprogrammprodukt mit Programmbe¬ fehlen zur Durchführung des genannten erfindungsgemäßen Ver- fahrens beansprucht.
Zusätzlich wird eine Variante des Computerprogrammproduktes mit Programmbefehlen zur Konfiguration eines Erstellungsge- räts, beispielsweise ein 3D-Drucker oder ein ähnliches Gerät, beansprucht, wobei das Erstellungsgerät mit den Programmbe¬ fehlen derart konfiguriert wird, dass die genannte erfin¬ dungsgemäße Ausführungsumgebung erstellt wird.
Darüber hinaus wird eine Bereitstellungsvorrichtung zum Speichern und/oder Bereitstellen des Computerprogrammprodukts be¬ ansprucht. Die Bereitstellungsvorrichtung ist beispielsweise ein Datenträger, der das Computerprogrammprodukt speichert und/oder bereitstellt. Alternativ und/oder zusätzlich ist die Bereitstellungsvorrichtung beispielsweise ein Netzwerkdienst, ein Computersystem, ein Serversystem, insbesondere ein verteiltes Computersystem, ein cloudbasiertes Rechnersystem und/oder virtuelles Rechnersystem, welches das Computerpro- grammprodukt vorzugsweise in Form eines Datenstroms speichert und/oder bereitstellt.
Diese Bereitstellung erfolgt beispielsweise als Download in Form eines Programmdatenblocks und/oder Befehlsdatenblocks, vorzugsweise als Datei, insbesondere als Downloaddatei, oder als Datenstrom, insbesondere als Downloaddatenstrom, des vollständigen Computerprogrammprodukts. Diese Bereitstellung kann beispielsweise aber auch als partieller Download erfol¬ gen, der aus mehreren Teilen besteht und insbesondere über ein Peer-to-Peer Netzwerk heruntergeladen oder als Datenstrom bereitgestellt wird. Ein solches Computerprogrammprodukt wird beispielsweise unter Verwendung der Bereitstellungsvorrichtung in Form des Datenträgers in einem System eingelesen und führt die Programmbefehle aus, sodass das erfindungsgemäße Verfahren auf einem Computer zur Ausführung gebracht wird oder das Erstellungsgerät derart konfiguriert, dass dieses die erfindungsgemäße Ausführungsumgebung erstellt.
Die oben beschriebenen Eigenschaften, Merkmale und Vorteile dieser Erfindung sowie die Art und Weise, wie diese erreicht werden, werden klarer und deutlicher verständlich im Zusammenhang mit der folgenden Beschreibung der Ausführungsbei- spiele, die im Zusammenhang mit den Figuren näher erläutert werden. Dabei zeigen in schematischer Darstellung:
Fig. 1 ein Ablaufdiagramm eines ersten Ausführungsbeispiels des offenbarten Verfahrens;
Fig. 2 veranschaulicht ein zweites Ausführungsbeispiel des offenbarten Verfahrens;
Fig. 3 veranschaulicht ein drittes Ausführungsbeispiel des offenbarten Verfahrens;
Fig. 4 eine Ausführungsumgebung eines vierten Ausführungsbeispiels; und
Fig. 5 ein System mit einer Ausführungsumgebung.
In den Figuren sind funktionsgleiche Elemente mit denselben Bezugszeichen versehen, sofern nichts anderes angegeben ist.
Die nachfolgenden Erläuterungen beziehen sich dabei auf sämtliche Ausführungsbeispiele.
Fig. 1 zeigt ein Ablaufdiagramm eines ersten Ausführungsbei- spiels des offenbarten Verfahrens 100. Das Verfahren 100 ist zum gesicherten Ausführen von Programmbefehlen einer Anwendung auf einem Rechner oder einem Gerät, beispielsweise ein Steuergerät für ein Feuerlöschsystem, ein Überwachungsgerät zur Überwachung von Spannungsspitzen bei Hochspannung oder ein Feldgerät, geeignet.
Das Verfahren 100 weist dazu einen ersten Verfahrensschritt zum Einschalten 110 eines Lernmodus einer Ausführungsumgebung auf. Die Ausführungsumgebung dient insbesondere zum Ausführen der Anwendung und es kann sich dabei um einen Prozessor, einen Betriebssystemlinker, einem Programmlinker oder einen virtuellen Prozessor oder eine virtuelle Maschine, wie bei¬ spielsweise die Java Virtual Machine handeln. Das Einschalten des Lernmodus ist beispielsweise mit einem Sicherheitsmecha¬ nismus wie eine Passworteingabe oder kryptographisch ge¬ schützten Nutzerauthentifizierung geschützt. Das Verfahren 100 umfasst zusätzlich einen zweiten Verfahrensschritt zum Ausführen 120 der Anwendung in der Ausführungsumgebung während der Lernmodus eingeschaltet ist, wobei Programmbefehle der Anwendung für ein ausgewähltes vorgegebe¬ nes Anwendungsszenario durchlaufen werden und die die Ausfüh- rungsumgebung eine erste anwendungsszenariospezifische Gül¬ tigkeitsinformation den durchlaufenen Programmbefehlen zuordnet. Hierzu kann beispielsweise eine Datenstruktur verwendet werden, die zu jedem durchlaufenen Programmbefehl eine Gültigkeitsinformation speichert. Nicht-durchlaufenen Programm- befehlen kann beispielsweise eine Ungültigkeitsinformation insbesondere in Form eines auf Null gesetzten Datenblocks, einer Ausnahme (engl. Exception) oder einer Unterbrechung (engl. Interrupt) zugeordnet werden. Die Datenstruktur kann zunächst als Initialwert nur Ungültigkeitsinformationen ent- halten und diese werden dann während der Lernphase teilweise oder ganz mit Gültigkeitsinformationen überschrieben.
In einer Variante wird die Ungültigkeitsinformation dadurch bestimmt, dass keine Gültigkeitsinformation zu einem Pro- grammbefehl vorhanden ist.
Das Verfahren 100 umfasst zusätzlich einen dritten Verfahrensschritt zum Einschalten 130 eines Arbeitsmodus der Aus¬ führungsumgebung, wobei im Arbeitsmodus die Ausführungsumge- bung die erste Gültigkeitsinformation der Programmbefehle überprüft, und wobei die Ausführungsumgebung die Programmbe¬ fehle abhängig von ihrer Gültigkeitsinformation ausführt. Soll während des Arbeitsmodus dennoch irrtümlicherweise ein Programmbefehl mit einer Ungültigkeitsinformation ausgeführt werden, kann beispielsweise die zugeordnete Ausnahme geworfen werden und insbesondere mit einer Signalisierungsinformation vorzugsweise ein Administrator informiert werden. Mit der Signalisierungsinformation kann aber auch die Anwendung, die Ausführungsumgebung oder das Gerät auf dem die Anwendung ausgeführt wird, in einen gesicherten Zustand gebracht werden. Der entsprechende Programmbefehl mit der Ungültigkeitsinformation wird dann vorzugsweise nicht ausgeführt.
Das Einschalten des Arbeitsmodus ist beispielsweise mit einem Sicherheitsmechanismus, wie eine Passworteingabe oder eine kryptographisch geschützten Nutzerauthentifizierung, geschützt .
Durch das offenbarte Verfahren 100 ist es möglich ungenutzte Funktionalitäten einer Anwendung, beispielsweise einer Bibliothek oder einer Applikation im operativen Betrieb, unerreichbar zu machen.
Die Identifikation ungenutzter Programmbefehle oder Codeteile erfolgt dabei möglichst automatisch und transparent für den Anwender. Es können hierzu beispielsweise Auswertungen bereitgestellt werden, die angeben welchen Programmbefehlen Gültigkeitsinformationen zugeordnet wurden, und welchen Ungültigkeitsinformationen zugeordnet wurden.
Beispielsweise kann ein Entwickler nach Begutachtung der Auswertung noch manuell Gültigkeitsinformationen einzelnen Pro- grammbefehlen zuweisen, falls dies im Rahmen von bestimmten Eingabedaten für die Anwendung notwendig ist.
Mit anderen Worten, protokolliert die Ausführungsumgebung im Lernmodus die Programmbefehle aller durchlaufenen/erreichten Ausführungspfade mit. Dies ist beispielsweise in einem zwei¬ ten Ausführungsbeispiel in Fig. 2 veranschaulicht. Dabei zeigt Fig. 2 einen ersten Block von Programmbefehlen 210, denen jeweils eine Gültigkeitsinformation E zugeordnet ist, ei¬ nen zweiten Block von Programmbefehlen 215, denen jeweils ei- ne Ungültigkeitsinformation NE zugeordnet ist, und einen dritten Block von Programmbefehlen 220, denen jeweils eine Gültigkeitsinformation E zugeordnet ist. Während dem Lernmodus müssen vorzugsweise alle gültigen Zu¬ stände, also alle Zustände, welche die Anwendung für das aus¬ gewählte vorgegebene Anwendungsszenario annehmen kann, durch¬ laufen werden.
Der Lernmodus kann beispielsweise zu unterschiedlichen Zeit¬ punkten erfolgen:
Es kann beispielsweise eine Lernphase für ein Anwendungssze- nario erfolgen, beispielsweise bei einer Softwarevalidierung, bei der Abnahme/Zertifizierung für eine Automatisierungsanla¬ ge. Dies kann aber auch beim Versiegeln von Konfigurationseinstellungen des Gerätes, beim Laden bzw. Installieren von Programmcode für die Anwendung erfolgen. Diese Information wird zusammen mit dem ausgeführten Programmcode der Anwendung abgelegt. Die Daten 225, also die Gültigkeitsinformation E und/oder die Ungültigkeitsinformation NE, können direkt im Programmcode, beispielsweise als Flag im Opcode, als Flag an Einsprungstellen (Funktionen) einer Programmbibliothek abge- legt werden, dass auch als Annotieren von Objektcode oder annotieren von Binärcode bezeichnet wird. Alternativ können diese Daten als separate Metadaten abgelegt werden.
In einer anderen Variante wird der Code modifiziert. So kön- nen z.B. nicht markierte Opcodes, also gültigkeitsinformati- onslose Programmbefehle 215, durch NOPs, TRAPs oder Ausnahmen ersetzt werden.
Es können aber auch mehrere Lernphasen zum Zuordnen der Gül- tigkeitsinformationen 225 genutzt werden:
Hierzu kann der Lernmodus während einer ersten Lernphase be¬ reits während des Systemtests des Herstellers eines Gerätes eingeschaltet werden, in dem bestimmte oder typische Anwen- dungsszenarien getestet werden. Hierdurch kann ein Datensatz mit einer Basiskonfiguration mit Gültigkeitsinformationen für die Anwendung erzeugt werden. Diese vorab erzeugte Basiskonfiguration kann dann beim Anwender durch ein erneutes Einschalten des Lernmodus weiter konfiguriert werden. Hierdurch lässt sich eine zweite Lernphase direkt am Einsatzort, also das ausgewählte vorgegebene Anwen- dungsszenario, des Gerätes verkürzen.
Diese Basiskonfiguration kann beispielsweise über die Daten aus dem Systemtest erstellt werden, die während einer opera¬ tiven Lernphase am Einsatzort des Gerätes noch verfeinert werden können. Die gelernten Daten 225 (separate Metadaten oder annotierter Objektcode / Binärcode), also Gültigkeitsinformationen und/oder Ungültigkeitsinformation, können in einer Variante einem anderen Gerät in kryptographisch geschützter Form bereitgestellt werden, beispielsweise als digital signierter Datensatz.
Auch kann der Lernmodus auf unterschiedlichen Geräten eingeschaltet werden bzw. die Lernphasen auf unterschiedlichen Geräten ausgeführt werden:
Auf dem Zielgerät selbst, also das Gerät das das ausge¬ wählte vorgegebene Anwendungsszenario verwendet werden soll ;
Auf einem baugleichen Testgerät (z.B. nicht operativ im Einsatz für das das ausgewählte vorgegebene Anwendungs¬ szenario) ;
In einer Simulationsumgebung des Zielgeräts (Digital Twin) ; Bei strenger Interpretation werden während des eingeschalte¬ ten Lernmodus vorzugsweise alle mit einem Anwendungsszenario assoziierten Programmteile (also die Programmbefehle der Pro¬ grammteile) , die später ablauffähig sein sollen, tatsächlich durchlaufen .
In einer weiteren Variante ist aber auch ein unscharfes Lernen vorstellbar, d.h. im eingeschalteten Lernmodus wird je- weils in einem erweiterten Bereich einem Programmbefehl eine Gültigkeitsinformation zugeordnet .
Hierzu sind beispielsweise unterschiedliche Abstufungen denk- bar :
In der Abstufung „fein" wird jeder verwendeten Instruktion eines Programmbefehls, also auch die Instruktionen der Sub- routinen und Programmbibliotheken, eine Gültigkeitsinformati- on E zugeordnet.
In der Abstufung „mittel" wird den Subroutinen der durchlaufenen Programmbefehle eine Gültigkeitsinformation E zugeordnet. Hier kann beispielsweise auch eine Aufruftiefe von Sub- routinen berücksichtigt werden, um insbesondere bei geschach¬ telten Funktionen den Aufwand für eine Zuordnung der Gültigkeitsinformation E gering zu halten.
In der Abstufung „grob" werden den von der Anwendung verwen- deten Programmbibliotheken jeweils eine Gültigkeitsinformati¬ on E zugeordnet, um dadurch insbesondere allen Programmbefehlen der Programmbibliothek eine Gültigkeitsinformation zuzuordnen . Die Granularität Abstufungen könnte beispielsweise auch bei der Codeentwicklung der Anwendung durch geeignete Strukturangaben gesteuert werden. Hierzu könnte ein Entwickler bestimmten Programmbefehlen und davon abhängige Programmbefehle, In¬ struktionen, Subroutinen oder Programmbibliotheken manuell eine Gültigkeitsinformation zuordnen.
Dies kann beispielsweise auch dadurch realisiert werden, dass die Gültigkeitsinformationen derart berücksichtigt wird, dass Abhängigkeiten berücksichtigt werden können. Wenn beispiels- weise ein erster Befehlspfad gültig ist (diesem als eine Gül¬ tigkeitsinformation zugewiesen wurde) dann ist automatisch auch ein zweiter abhängiger Befehlspfad ebenfalls gültig. Da¬ bei kann entweder dem zweiten Befehlspfad automatisch eben- falls eine Gültigkeitsinformation zugewiesen werden oder der zweite Befehlspfad ist beispielsweise durch seine Abhängig¬ keit gültig. Mit anderen Worten, kann beispielsweise die Gül¬ tigkeitsinformation von dem ersten Befehlspfad an den zweiten Befehlspfad aufgrund der Abhängigkeit des zweiten Befehlspfa¬ des von dem ersten Befehlspfades vererbt werden.
Im Arbeitsmodus werden von der Ausführungsumgebung vorzugsweise nur Programmbefehle akzeptiert oder ausgeführt, denen eine Gültigkeitsinformation E zugeordnet ist, was auch als zulässig markierter Programmbefehl bezeichnet werden kann. Wird ein gültigkeitsinformationsloser Programmbefehl NE, also ein nicht als zulässig markierter Programmbefehl, angesprungen, führt dies beispielsweise zu einer Ausnahme oder einem anderen Befehl, der hinterlegt wurde. Oder mit andere Worten ausgedrückt, der Befehl, der beispielsweise den nicht zuläs¬ sigen Programmbefehl überschrieben hat.
Sollte nach dem Zuordnen der Gültigkeitsinformationen 225 ein Gerät durch eine Umkonfiguration oder Anwendung in einem leicht veränderten Anwendungsszenario einen erweiterten oder neuen Satz von Programmbefehlen und/oder Funktionen und/oder Subroutinen und/oder Bibliotheken benötigen, besteht die Möglichkeit, gesteuert durch einen Trigger, wie beispielsweise ein Konfigurationsdatum und/oder einen manueller Trigger in einer Neulernphase, die zugeordneten Gültigkeitsinformationen 225 wieder zu entfernen. Hierzu wird der Lernmodus wieder eingeschaltet und Gültigkeitsinformationen entsprechend der veränderten Anwendungsszenario oder der Umkonfiguration den Programmbefehlen zugeordnet. Hierdurch können die vorher nicht zulässige Programmbefehle (oder gültigkeitsinformati- onslose Programmbefehle) wieder nutzbar gemacht werden. Soll¬ ten Code- Bereich durch NOPs, Traps oder Ausnahmen entfernt worden sein, können diese Codeanteile aus einer Sicherungsko- pie der unveränderten Anwendung oder deren Programmbibliotheken zurückgespielt werden. In einer weiteren Variante wird das Verfahren direkt in Hard¬ ware realisiert. Hierbei verfügt ein Prozessor, der die Ar¬ beitsumgebung darstellt, beispielsweise eine CPU, über einen ersten Modus, den Lernmodus, und einen zweiten Modus, den Ar- beitsmodus. Im ersten Modus werden die durchlaufenen Opcodes, also die durchlaufenen Programmbefehle markiert, also eine Gültigkeitsinformation zugewiesen, und im Programmimage abgelegt. Nach Umschalten in den Arbeitsmodus werden nur noch die markierten Befehle einer Anwendung akzeptiert.
In einer weiteren Variante wird das Verfahren mittels einer Arbeitsumgebung in Form einer virtuellen Maschine realisiert. Die virtuelle Maschine zeichnet in einem Lernmodus die abge¬ arbeiteten Codezeilen einer Anwendung, also die durchlaufenen Programmbefehle der Anwendung, auf und erzeugt eine Proto¬ kolldatei, welche die den Programmbefehlen zugeordneten Gültigkeitsinformationen enthält. Die Zuordnung der Gültigkeitsinformation kann direkt beim Erzeugen eines Eintrags in die Protokolldatei erfolgen.
Während einer späteren Ausführung der Anwendung prüft die virtuelle Maschine in einem Arbeitsmodus unter Verwendung der Protokolldatei, ob ein Programmbefehl ausgeführt werden darf. Die Integrität/Authentizität der Protokolldatei kann bei- spielsweise durch eine digitale Signatur gesichert sein, die von der virtuellen Maschine überprüft wird.
Fig. 3 veranschaulicht ein drittes Ausführungsbeispiel des offenbarten Verfahrens. In diesem Ausführungsbeispiel wird das Verfahren mittels eines Betriebssystemkerns realisiert.
Die Anwendung wird im Lernmodus vom Betriebssystemkern in einer kontrollierten Umgebung, beispielsweise einem Debugger, gestartet. Die durchlaufenen Programmbefehle 310, 320 werden erfasst, in dem diesen eine Gültigkeitsinformation zugeordnet wird. Die Programmbefehle und die Gültigkeitsinformation kann dann gespeichert werden. Im Arbeitsmodus nutzt der Runtime- Loader diese Gültigkeitsinformationen um den Programmcode, also die Programmbefehle der Anwendung, zu instrumentieren. Beispielsweise können alle nicht durchlaufenen Codezeilen, also die gültigkeitsinformationslosen Programmbefehle, durch Traps ersetzt werden. In einer weiteren Variante wird das Verfahren mittels eines Betriebssystemkerns unter Verwendung der Speicherverwaltungs¬ einheit, auch Memory Management Unit genannt MMU, realisiert.
Eine Anwendung wird im Lernmodus vom Betriebssystemkern in einer kontrollierten Umgebung, beispielsweise einem Debugger, gestartet. Die durchlaufenen Programmbefehle werden erfasst, in dem diesen jeweils eine Gültigkeitsinformation zugeordnet wird. Die Programmbefehle und die Gültigkeitsinformation kann dann gespeichert werden.
Den Programmbefehlen denen keine Gültigkeitsinformation zugeordnet werden, also gültigkeitsinformationslose Programmbe¬ fehle - auch nicht markierte Code-Teile genannt, werden durch die Speicherverwaltungseinheit als nicht ausführbar oder als nicht lesbar gekennzeichnet. Bei Zugriff (Laden der Programmbefehle aus externem Speicher in Cache) wird vorzugsweise durch die Speicherverwaltungseinheit eine Trap oder eine Un¬ terbrechung (engl. Interrupt) ausgelöst. Fig. 4 zeigt eine Ausführungsumgebung 400 eines vierten Ausführungsbeispiels zum gesicherten rechnergestützten Ausführen von Programmbefehlen einer Anwendung. Die Ausführungsumgebung 400 umfasst ein erstes Schaltmodul 410, ein Ausführungsmodul 420, ein zweites Schaltmodul 430 und eine Schnittstelle 485, die über einen ersten Bus 480 kommunikativ miteinander verbunden sind.
Das erste Schaltmodul 410 schaltet einen Lernmodus der Aus¬ führungsumgebung 400 ein.
Das Ausführungsmodul 420 führt die Anwendung in der Ausfüh¬ rungsumgebung 400 aus, während der Lernmodus eingeschaltet ist, wobei Programmbefehle der Anwendung für ein ausgewähltes vorgegebenes Anwendungsszenario durchlaufen werden und die Ausführungsumgebung 400 eine erste
anwendungsszenariospezifische Gültigkeitsinformation den durchlaufenen Programmbefehlen zuordnet.
Das zweite Schaltmodul 430 schaltet einen Arbeitsmodus der Ausführungsumgebung 400 ein, wobei im Arbeitsmodus die Aus¬ führungsumgebung 400 die erste Gültigkeitsinformation der Programmbefehle überprüft, und wobei die Ausführungsumgebung die Programmbefehle abhängig von ihrer Gültigkeitsinformation ausführt .
Die Ausführungsumgebung kann beispielsweise als Prozessor oder als virtuelle Maschine auf einem Chip, insbesondere in Form von embedded Java, in einem Gerät, beispielsweise ein Feldgeräte, ein Steuerungsgerät oder ein Messgerät, verbaut sein. Das Gerät kann Teil eines Systems sein, wobei das Gerät über einen Datenbus mit einer Workstation eines Operators verbunden ist.
Ein solches System wird beispielsweise in Fig. 5 als fünftes Ausführungsbeispiel gezeigt. Im Einzelnen zeigt Fig. 5 ein System, beispielsweise ein Überwachungssystem für Hochspannung in einer Kraftwerksanlage.
Eine Workstation, beispielsweise ein IBM-kompatibles Compu¬ tersystem, umfassend ein Anzeigegerät 532, beispielsweise ei¬ nen Bildschirm, und mehrere Eingabegeräte, beispielsweise ei¬ ne Computermaus 533 und eine Tastatur 530, ist über einen dritten Bus 580 und einer zweiten Schnittstelle 575 eines Ge¬ rät 501 mit dem Gerät 501 kommunikativ verbunden. Der dritte Bus 580 kann beispielsweise ein Ethernetbus oder ein Univer¬ sal Serial Bus (USB) sein. Das Gerät 501 umfasst eine Ausführungsumgebung 400 zum gesi¬ cherten rechnergestützten Ausführen von Programmbefehlen einer Anwendung in ausgewählten vorgegebenen Anwendungsszenario, beispielsweise eine Hochspannungsüberwachung mit den zu- gehörigen Messverfahren. Im Gerät 501 ist beispielsweise über einen zweiten Bus 585 die Ausführungsumgebung mittels der Schnittstelle 485, mit einem Erfassungsgerät 510, beispiels¬ weise einem Spannungsmesssensor, und der zweiten Schnittstel- le 575 verbunden.
Wird beispielsweise während der Überwachung von Hochspannung bzw. von Spannungsspitzen ein Programmbefehl ausgeführt, dem keine Gültigkeitsinformation zugeordnet ist, so kann die Aus- führungsumgebung eine Ausnahme werfen, die einem Operator auf der Workstation dann angezeigt wird. Der Operator kann dann ggf. Überprüfungen durchführen, ob es sich um ein zufälliges Fehlverhalten der Anwendung gehalten hat oder ob eine Manipulation der Anwendung durch einen unbefugten Dritten stattge- funden hat.
Obwohl die Erfindung im Detail durch die Ausführungsbeispiele näher illustriert und beschrieben wurde, ist die Erfindung nicht durch die offenbarten Beispiele eingeschränkt, und an- dere Variationen können vom Fachmann hieraus abgeleitet werden, ohne den Schutzumfang der Erfindung zu verlassen.

Claims

Verfahren (100) zum gesicherten rechnergestützten Ausführen von Programmbefehlen einer Anwendung mit den folgenden Verfahrensschritten:
Einschalten (110) eines Lernmodus einer Ausführungsumge¬ bung (400);
Ausführen (120) der Anwendung in der Ausführungsumgebung (400) während der Lernmodus eingeschaltet ist, wobei
Programmbefehle der Anwendung für ein ausgewähltes vorgegebenes Anwendungsszenario durchlaufen werden; die Ausführungsumgebung (400) eine erste
anwendungsszenariospezifische GültigkeitsInformati¬ on den durchlaufenen Programmbefehlen (210, 220, 310, 320) zuordnet;
Einschalten (130) eines Arbeitsmodus der Ausführungsumgebung (400), wobei im Arbeitsmodus die Ausführungsumge¬ bung (400) die erste Gültigkeitsinformation der Programmbefehle überprüft, und wobei die Ausführungsumge¬ bung (400) die Programmbefehle abhängig von ihrer Gül¬ tigkeitsinformation ausführt.
Verfahren (100) nach Anspruch 1, wobei die durchlaufenen Programmbefehle (210, 220, 310, 320) durchlaufenen Aus¬ führungspfaden der Anwendung zugeordnet werden und eine zweite anwendungsszenariospezifische Gültigkeitsinforma¬ tion jeweils einem Ausführungspfad zugeordnet wird.
Verfahren (100) nach Anspruch 1 oder 2, wobei
die erste Gültigkeitsinformation während einer ersten
Lernphase zugeordnet wird;
während einer zweiten Lernphase die Ausführungsumgebung (400) eine dritte anwendungsszenariospezifische Gültig¬ keitsinformation den durchlaufenen Programmbefehlen (210, 220, 310, 320) zuordnet.
4. Verfahren (100) nach einem der vorhergehenden Ansprüche, wobei als Ausführungsumgebung (400) ein Prozessor und/oder eine virtuelle Maschine und/oder ein Betriebs¬ systemkern oder ein Betriebssystemkern unter Verwendung einer Speicherverwaltungseinheit verwendet wird.
5. Verfahren (100) nach einem der vorhergehenden Ansprüche, wobei durch einen Trigger die erste Gültigkeitsinforma¬ tion und/oder die zweite Gültigkeitsinformation und/oder die dritte Gültigkeitsinformation der Programmbefehle gelöscht werden.
6. Verfahren (100) nach einem der vorhergehenden Ansprüche, wobei die erste Gültigkeitsinformation und/oder die zweite Gültigkeitsinformation und/oder die dritte Gültigkeitsinformation sicherheitsgeschützt gespeichert werden .
7. Verfahren (100) nach einem der vorhergehenden Ansprüche, wobei das Einschalten des Lernmodus durch einen Sicherheitsmechanismus geschützt ist.
8. Verfahren (100) nach einem der vorhergehenden Ansprüche, wobei die erste Gültigkeitsinformation und/oder die zweite Gültigkeitsinformation und/oder die dritte Gültigkeitsinformation einem weiteren Gerät bereitgestellt werden .
9. Verfahren (100) nach einem der vorhergehenden Ansprüche, wobei das Ausführen (120) der Anwendung in der Ausführungsumgebung (400) während dem eingeschalteten Lernmodus auf einem Gerät und/oder auf einem baugleichen Testgerät und/oder einer Simulationsumgebung des Gerätes durchgeführt wird.
10. Verfahren (100) nach einem der vorhergehenden Ansprüche, wobei die erste Gültigkeitsinformation und/oder die zweite Gültigkeitsinformation und/oder die dritte Gül- tigkeitsinformation den Programmbefehlen instruktionsweise und/oder subroutinenweise und/oder bibliothekswei¬ se zugeordnet werden.
Verfahren (100) nach einem der vorhergehenden Ansprüche, wobei Programmbefehle, die von den Programmbefehlen mit der ersten Gültigkeitsinformation und/oder der zweiten Gültigkeitsinformation und/oder der dritten Gültigkeitsinformation abhängen, eine entsprechende Gültigkeitsinformation zugeordnet wird.
Verfahren (100) nach einem der vorhergehenden Ansprüche, wobei beim Ausführen von gültigkeitsinformationslosen Programmbefehlen eine Signalisierungsinformation bereitgestellt wird.
Verfahren (100) nach einem der Ansprüche 1 bis 11, wobei beim Einschalten des Arbeitsmodus gültigkeitsinformati- onslose Programmbefehle aus der Anwendung entfernt wer¬ den .
Ausführungsumgebung (400) zum gesicherten rechnergestützten Ausführen von Programmbefehlen einer Anwendung, aufweisend :
ein erstes Schaltmodul (410) zum Einschalten eines Lern¬ modus der Ausführungsumgebung (400);
ein Ausführungsmodul (420) zum Ausführen der Anwendung in der Ausführungsumgebung (400) während der Lernmodus eingeschaltet ist, wobei
Programmbefehle der Anwendung für ein ausgewähltes vorgegebenes Anwendungsszenario durchlaufen werden; die Ausführungsumgebung (400) eine erste
anwendungsszenariospezifische Gültigkeitsinformati¬ on den durchlaufenen Programmbefehlen (210, 220, 310, 320) zuordnet;
ein zweites Schaltmodul (430) zum Einschalten (130) ei¬ nes Arbeitsmodus der Ausführungsumgebung (400), wobei im Arbeitsmodus die Ausführungsumgebung (400) die erste Gültigkeitsinformation der Programmbefehle überprüft, und wobei die Ausführungsumgebung (400) die Programmbe¬ fehle abhängig von ihrer Gültigkeitsinformation ausführt .
15. Ausführungsumgebung (400) nach Anspruch 14, wobei die Ausführungsumgebung (400) ein Prozessor oder eine virtu eile Maschine oder ein Betriebssystemkern oder ein Betriebssystemkern unter Verwendung einer Speicherverwaltungseinheit ist.
16. System mit einer Ausführungsumgebung (400) nach einem der Ansprüche 14-15.
17. Computerprogrammprodukt mit Programmbefehlen zur Durchführung des Verfahrens nach einem der Ansprüche 1-13.
18. Computerprogrammprodukt mit Programmbefehlen für ein Erstellungsgerät, das mittels der Programmbefehle konfi guriert wird, die Ausführungsumgebung (400) nach einem der Ansprüche 14-15 zu erstellen.
19. Bereitstellungsvorrichtung für das Computerprogrammprodukt nach Anspruch 17 oder 18, wobei die Bereitstel¬ lungsvorrichtung das Computerprogrammprodukt speichert und/oder bereitstellt.
PCT/EP2017/051476 2016-02-09 2017-01-25 Verfahren und ausführungsumgebung zum gesicherten ausführen von programmbefehlen WO2017137256A1 (de)

Priority Applications (9)

Application Number Priority Date Filing Date Title
MX2017013621A MX2017013621A (es) 2016-02-09 2017-01-25 Metodo y entorno de ejecucion para ejecutar instrucciones de programa de forma segura.
CN201780001351.6A CN108351770B (zh) 2016-02-09 2017-01-25 用于安全地实施程序命令的方法和实施环境
EP17702800.8A EP3274825B1 (de) 2016-02-09 2017-01-25 Verfahren und ausführungsumgebung zum gesicherten ausführen von programmbefehlen
CA2984386A CA2984386C (en) 2016-02-09 2017-01-25 Method and execution environment for the secure execution of program instructions
KR1020177031659A KR101862348B1 (ko) 2016-02-09 2017-01-25 프로그램 명령들의 안전한 실행을 위한 방법 및 실행 환경
US15/568,803 US10489564B2 (en) 2016-02-09 2017-01-25 Method and execution environment for the secure execution of program instructions
ES17702800T ES2701702T3 (es) 2016-02-09 2017-01-25 Procedimiento y entorno de ejecución para la ejecución asegurada de instrucciones de programa
JP2017556821A JP6516870B2 (ja) 2016-02-09 2017-01-25 プログラム命令を安全に実行する方法及び該方法用プログラム
IL255690A IL255690B (en) 2016-02-09 2017-11-15 Method and implementation environment for safe execution of program instructions

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102016201898.1 2016-02-09
DE102016201898 2016-02-09

Publications (1)

Publication Number Publication Date
WO2017137256A1 true WO2017137256A1 (de) 2017-08-17

Family

ID=57960406

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2017/051476 WO2017137256A1 (de) 2016-02-09 2017-01-25 Verfahren und ausführungsumgebung zum gesicherten ausführen von programmbefehlen

Country Status (11)

Country Link
US (1) US10489564B2 (de)
EP (1) EP3274825B1 (de)
JP (1) JP6516870B2 (de)
KR (1) KR101862348B1 (de)
CN (1) CN108351770B (de)
CA (1) CA2984386C (de)
ES (1) ES2701702T3 (de)
HU (1) HUE043151T2 (de)
IL (1) IL255690B (de)
MX (1) MX2017013621A (de)
WO (1) WO2017137256A1 (de)

Cited By (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017223099A1 (de) 2017-12-18 2019-06-19 Siemens Aktiengesellschaft Vorrichtung und Verfahren zum Übertragen von Daten zwischen einem ersten und einem zweiten Netzwerk
EP3502806A1 (de) 2017-12-22 2019-06-26 Siemens Aktiengesellschaft Verfahren zum schutz der produktionsdaten zur herstellung eines produkts
EP3503493A1 (de) 2017-12-22 2019-06-26 Siemens Aktiengesellschaft Kommunikationsvorrichtung und verfahren zum verarbeiten eines netzwerkpakets
EP3506143A1 (de) 2017-12-27 2019-07-03 Siemens Aktiengesellschaft Schnittstelle für ein hardware-sicherheitsmodul
EP3509004A1 (de) 2018-01-03 2019-07-10 Siemens Aktiengesellschaft Anpassung von mac-richtlinien in industrievorrichtungen
EP3509247A1 (de) 2018-01-03 2019-07-10 Siemens Aktiengesellschaft Verfahren und schlüsselgenerator zum rechnergestützten erzeugen eines gesamtschlüssels
EP3514743A1 (de) 2018-01-22 2019-07-24 Siemens Aktiengesellschaft Vorrichtung und verfahren zur bereitstellung von anweisungsdaten zur herstellung eines individualisierten produkts
EP3534282A1 (de) 2018-03-01 2019-09-04 Siemens Aktiengesellschaft Verfahren und sicherheitsmodul zum rechnergestützten ausführen von programmcode
EP3557463A1 (de) 2018-04-16 2019-10-23 Siemens Aktiengesellschaft Verfahren und ausführungsumgebung zum ausführen von programmcode auf einem feldgerät
EP3562090A1 (de) 2018-04-25 2019-10-30 Siemens Aktiengesellschaft Datenverarbeitungsvorrichtung zur verarbeitung eines funksignals
EP3562116A1 (de) 2018-04-26 2019-10-30 Siemens Aktiengesellschaft Kryptographischer schlüsselaustausch oder kryptographische schlüsselvereinbarung mit einer vorrichtung ohne netzwerkzugang
EP3561713A1 (de) 2018-04-25 2019-10-30 Siemens Aktiengesellschaft Abrufvorrichtung für authentifizierungsinformationen, system und verfahren zur sicheren authentifizierung
EP3562194A1 (de) 2018-04-23 2019-10-30 Siemens Aktiengesellschaft Verfahren zur identifizierung von mindestens einer netzwerk-slice-konfiguration eines mobilen netzwerks, kommunikationssystem und automatisierungssystem
EP3561709A1 (de) 2018-04-25 2019-10-30 Siemens Aktiengesellschaft Datenverarbeitungsvorrichtung, system und verfahren zum nachweis oder zur überprüfung der sicherheit einer datenverarbeitungsvorrichtung
EP3570489A1 (de) 2018-05-18 2019-11-20 Siemens Aktiengesellschaft Vorrichtung und verfahren zur umwandlung von blockchain-datenblöcken
EP3584654A1 (de) 2018-06-19 2019-12-25 Siemens Aktiengesellschaft Hierarchischer verteilter ledger
EP3598363A1 (de) 2018-07-17 2020-01-22 Siemens Aktiengesellschaft Ressourcenreservierung für transaktionen in einem verteilten datenbanksystem
EP3598365A1 (de) 2018-07-17 2020-01-22 Siemens Aktiengesellschaft Verkehrsformung für transaktionen eines verteilten datenbanksystems
EP3598364A1 (de) 2018-07-17 2020-01-22 Siemens Aktiengesellschaft Zeitliche beschränkung für transaktionen in einem verteilten datenbanksystem
EP3599740A1 (de) 2018-07-25 2020-01-29 Siemens Aktiengesellschaft Steuern eines datennetzes hinsichtlich eines einsatzes einer verteilten datenbank
EP3609240A1 (de) 2018-08-09 2020-02-12 Siemens Aktiengesellschaft Computerimplementiertes verfahren und netzwerkzugangsserver zum verbinden einer netzwerkkomponente mit einem netzwerk, insbesondere einem mobilfunknetz, mit einem erweiterten netzwerkzugangskennzeichen
EP3609148A1 (de) 2018-08-06 2020-02-12 Siemens Aktiengesellschaft Verfahren und netzwerkknoten zur verarbeitung von messdaten
EP3614319A1 (de) 2018-08-20 2020-02-26 Siemens Aktiengesellschaft Verfolgung der ausführung eines industriellen arbeitsflusses eines petri-netzes
EP3629332A1 (de) 2018-09-28 2020-04-01 Siemens Aktiengesellschaft Sicheres ausgeben einer substanz
EP3633914A1 (de) 2018-10-05 2020-04-08 Siemens Aktiengesellschaft Verfahren und system zur nachweisbaren datenverarbeitung unter anwendung von obfuskation
EP3637345A1 (de) 2018-10-10 2020-04-15 Siemens Aktiengesellschaft Verknüpfung von identitäten in einer verteilten datenbank
EP3687209A1 (de) 2019-01-25 2020-07-29 Siemens Aktiengesellschaft Sichere multihop-kommunikationspfade
EP3693918A1 (de) 2019-02-08 2020-08-12 Siemens Gamesa Renewable Energy A/S Betriebsdaten eines energiesystems
EP3736715A1 (de) 2019-05-10 2020-11-11 Siemens Aktiengesellschaft Verwaltung des zugangs zu einer verteilten datenbank auf basis eines konsensverfahrens
US11364102B2 (en) 2016-02-08 2022-06-21 Oralucent, Inc. Short wavelength visible light-emitting toothbrush with an electronic signal interlock control
US11487913B2 (en) 2017-12-14 2022-11-01 Inventio Ag Method and device for commissioning a passenger-transportation installation to be manufactured, by creation of a digital replica
US11577937B2 (en) 2017-12-14 2023-02-14 Inventio Ag Method and apparatus for monitoring a state of a passenger transport system by using a digital double

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6829168B2 (ja) * 2017-09-04 2021-02-10 株式会社東芝 情報処理装置、情報処理方法およびプログラム
US10963371B1 (en) * 2019-10-02 2021-03-30 Salesforce.Com, Inc. Testing integration and automation system
US11687440B2 (en) * 2021-02-02 2023-06-27 Thales Dis Cpl Usa, Inc. Method and device of protecting a first software application to generate a protected software application

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050039164A1 (en) * 2003-08-13 2005-02-17 International Business Machines Corporation Editor with commands for automatically disabling and enabling program code portions
US20110271344A1 (en) * 2009-02-16 2011-11-03 Yuji Unagami Illegal module identifying device, information processing device, illegal module identifying method, illegal module identifying program, integrated circuit, illegal module disabling system, and illegal module disabling method
US8300811B2 (en) 2008-12-10 2012-10-30 Siemens Aktiengesellschaft Method and device for processing data
US8531247B2 (en) 2008-04-14 2013-09-10 Siemens Aktiengesellschaft Device and method for generating a random bit sequence
US20130305228A1 (en) * 2012-05-10 2013-11-14 Mocana Corporation Reducing application startup time through algorithm validation and selection
US8843761B2 (en) 2007-08-16 2014-09-23 Siemens Aktiengesellschaft Method and apparatus for protection of a program against monitoring flow manipulation and against incorrect program running
US8892616B2 (en) 2007-08-27 2014-11-18 Siemens Aktiengesellschaft Device and method for generating a random bit sequence
EP2870565A1 (de) 2012-09-28 2015-05-13 Siemens Aktiengesellschaft Überprüfung einer integrität von eigenschaftsdaten eines gerätes durch ein prüfgerät
EP2891102A1 (de) 2013-01-02 2015-07-08 Siemens Aktiengesellschaft Rfid-tag und verfahren zum betreiben eines rfid-tags
US9147088B2 (en) 2011-04-18 2015-09-29 Siemens Aktiengesellschaft Method for monitoring a tamper protection and monitoring system for a field device having tamper protection
EP2605445B1 (de) 2011-12-14 2015-09-30 Siemens Aktiengesellschaft Verfahren und Vorrichtung zur Absicherung von Blockchiffren gegen Template-Attacken

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2A (en) * 1826-12-15 1836-07-29 mode of manufacturing wool or other fibrous materials
JPH11175369A (ja) 1997-12-10 1999-07-02 Toshiba Corp プログラム開発支援装置、プログラム開発支援方法及びプログラム開発支援プログラムを記録した媒体
JP3812239B2 (ja) * 1999-10-04 2006-08-23 株式会社日立製作所 ネットワーク中継装置
FI114416B (fi) 2001-06-15 2004-10-15 Nokia Corp Menetelmä elektroniikkalaitteen varmistamiseksi, varmistusjärjestelmä ja elektroniikkalaite
KR100462828B1 (ko) * 2004-06-22 2004-12-30 엔에이치엔(주) 명령어의 유효성 판단 방법 및 그 시스템
US8214191B2 (en) * 2005-08-29 2012-07-03 The Invention Science Fund I, Llc Cross-architecture execution optimization
KR100800999B1 (ko) * 2006-02-17 2008-02-11 삼성전자주식회사 프로그램의 실행흐름을 검사하는 방법 및 장치
JP4585534B2 (ja) * 2007-03-01 2010-11-24 富士通株式会社 システム監視プログラム、システム監視方法およびシステム監視装置
US20080224819A1 (en) * 2007-03-16 2008-09-18 The Chamberlain Group, Inc. Multiple barrier operator system
JP5574394B2 (ja) 2008-02-20 2014-08-20 日本電気株式会社 Osイメージ縮小プログラムおよびosイメージ縮小プログラムを記録した記録媒体
GB2466183A (en) * 2008-12-09 2010-06-16 Cambridge Entpr Ltd Closed loop diabetes management system
US8839458B2 (en) * 2009-05-12 2014-09-16 Nokia Corporation Method, apparatus, and computer program for providing application security
US9192773B2 (en) * 2009-07-17 2015-11-24 Peter Forsell System for voice control of a medical implant
JP2011070355A (ja) 2009-09-25 2011-04-07 Obic Business Consultants Ltd 情報処理装置、情報処理方法、およびプログラム
WO2011055417A1 (ja) 2009-11-09 2011-05-12 三菱電機株式会社 ソフトウェアライブラリ再構築装置及び方法並びにこれを用いたナビゲーション装置
US9335825B2 (en) * 2010-01-26 2016-05-10 Nokia Technologies Oy Gesture control
US9003543B2 (en) 2010-12-21 2015-04-07 Microsoft Technology Licensing, Llc Providing a security boundary
CN103514245B (zh) * 2012-06-06 2018-11-27 丛林网络公司 创建用户可见处理跟踪的可搜索和全局数据库
US20140317603A1 (en) * 2013-04-20 2014-10-23 Concurix Corporation Multiple Tracer Configurations Applied on a Function-by-Function Level
US20150023349A1 (en) * 2013-07-19 2015-01-22 Richard Lynn Wheeler Packet discovery and learning for vlan provisioning
US9630317B2 (en) * 2014-04-03 2017-04-25 Brain Corporation Learning apparatus and methods for control of robotic devices via spoofing
JP6361344B2 (ja) 2014-07-15 2018-07-25 株式会社リコー 情報処理システム、および情報処理方法

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050039164A1 (en) * 2003-08-13 2005-02-17 International Business Machines Corporation Editor with commands for automatically disabling and enabling program code portions
US8843761B2 (en) 2007-08-16 2014-09-23 Siemens Aktiengesellschaft Method and apparatus for protection of a program against monitoring flow manipulation and against incorrect program running
US8892616B2 (en) 2007-08-27 2014-11-18 Siemens Aktiengesellschaft Device and method for generating a random bit sequence
US8531247B2 (en) 2008-04-14 2013-09-10 Siemens Aktiengesellschaft Device and method for generating a random bit sequence
US8300811B2 (en) 2008-12-10 2012-10-30 Siemens Aktiengesellschaft Method and device for processing data
US20110271344A1 (en) * 2009-02-16 2011-11-03 Yuji Unagami Illegal module identifying device, information processing device, illegal module identifying method, illegal module identifying program, integrated circuit, illegal module disabling system, and illegal module disabling method
US9147088B2 (en) 2011-04-18 2015-09-29 Siemens Aktiengesellschaft Method for monitoring a tamper protection and monitoring system for a field device having tamper protection
EP2605445B1 (de) 2011-12-14 2015-09-30 Siemens Aktiengesellschaft Verfahren und Vorrichtung zur Absicherung von Blockchiffren gegen Template-Attacken
US20130305228A1 (en) * 2012-05-10 2013-11-14 Mocana Corporation Reducing application startup time through algorithm validation and selection
EP2870565A1 (de) 2012-09-28 2015-05-13 Siemens Aktiengesellschaft Überprüfung einer integrität von eigenschaftsdaten eines gerätes durch ein prüfgerät
EP2891102A1 (de) 2013-01-02 2015-07-08 Siemens Aktiengesellschaft Rfid-tag und verfahren zum betreiben eines rfid-tags

Cited By (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11364102B2 (en) 2016-02-08 2022-06-21 Oralucent, Inc. Short wavelength visible light-emitting toothbrush with an electronic signal interlock control
US11487913B2 (en) 2017-12-14 2022-11-01 Inventio Ag Method and device for commissioning a passenger-transportation installation to be manufactured, by creation of a digital replica
US11577937B2 (en) 2017-12-14 2023-02-14 Inventio Ag Method and apparatus for monitoring a state of a passenger transport system by using a digital double
DE102017223099A1 (de) 2017-12-18 2019-06-19 Siemens Aktiengesellschaft Vorrichtung und Verfahren zum Übertragen von Daten zwischen einem ersten und einem zweiten Netzwerk
WO2019120778A1 (de) 2017-12-18 2019-06-27 Siemens Aktiengesellschaft Vorrichtung und verfahren zum übertragen von daten zwischen einem ersten und einem zweiten netzwerk
EP3503493A1 (de) 2017-12-22 2019-06-26 Siemens Aktiengesellschaft Kommunikationsvorrichtung und verfahren zum verarbeiten eines netzwerkpakets
US11662702B2 (en) 2017-12-22 2023-05-30 Siemens Aktiengesellschaft Method for protecting the production data for producing a product
WO2019120786A1 (de) 2017-12-22 2019-06-27 Siemens Aktiengesellschaft Verfahren zum schutz der produktionsdaten zur herstellung eines produkts
EP3502806A1 (de) 2017-12-22 2019-06-26 Siemens Aktiengesellschaft Verfahren zum schutz der produktionsdaten zur herstellung eines produkts
WO2019129416A1 (en) 2017-12-27 2019-07-04 Siemens Aktiengesellschaft Interface for a hardware security module
EP3506143A1 (de) 2017-12-27 2019-07-03 Siemens Aktiengesellschaft Schnittstelle für ein hardware-sicherheitsmodul
US11755719B2 (en) 2017-12-27 2023-09-12 Siemens Aktiengesellschaft Interface for a hardware security module
EP3509004A1 (de) 2018-01-03 2019-07-10 Siemens Aktiengesellschaft Anpassung von mac-richtlinien in industrievorrichtungen
EP3509247A1 (de) 2018-01-03 2019-07-10 Siemens Aktiengesellschaft Verfahren und schlüsselgenerator zum rechnergestützten erzeugen eines gesamtschlüssels
WO2019141439A1 (en) 2018-01-22 2019-07-25 Siemens Aktiengesellschaft Device and method for providing instruction data for manufacturing an individualized product
EP3514743A1 (de) 2018-01-22 2019-07-24 Siemens Aktiengesellschaft Vorrichtung und verfahren zur bereitstellung von anweisungsdaten zur herstellung eines individualisierten produkts
WO2019166456A1 (de) 2018-03-01 2019-09-06 Siemens Aktiengesellschaft Verfahren und sicherheitsmodul zum rechnergestützten ausführen von programmcode
EP3534282A1 (de) 2018-03-01 2019-09-04 Siemens Aktiengesellschaft Verfahren und sicherheitsmodul zum rechnergestützten ausführen von programmcode
WO2019201598A1 (de) 2018-04-16 2019-10-24 Siemens Aktiengesellschaft Verfahren und ausführungsumgebung zum ausführen von programmcode auf einem feldgerät
EP3557463A1 (de) 2018-04-16 2019-10-23 Siemens Aktiengesellschaft Verfahren und ausführungsumgebung zum ausführen von programmcode auf einem feldgerät
EP3562194A1 (de) 2018-04-23 2019-10-30 Siemens Aktiengesellschaft Verfahren zur identifizierung von mindestens einer netzwerk-slice-konfiguration eines mobilen netzwerks, kommunikationssystem und automatisierungssystem
EP3562090A1 (de) 2018-04-25 2019-10-30 Siemens Aktiengesellschaft Datenverarbeitungsvorrichtung zur verarbeitung eines funksignals
US10715517B2 (en) 2018-04-25 2020-07-14 Siemens Aktiengesellschaft Retrieval device for authentication information, system and method for secure authentication
WO2019206674A1 (en) 2018-04-25 2019-10-31 Siemens Aktiengesellschaft Data processing apparatus, system, and method for proving or checking the security of a data processing apparatus
WO2019206676A1 (en) 2018-04-25 2019-10-31 Siemens Aktiengesellschaft Data processing device for processing a radio signal
US11609996B2 (en) 2018-04-25 2023-03-21 Siemens Aktiengesellschaft Data processing apparatus, system, and method for proving or checking the security of a data processing apparatus
EP3561709A1 (de) 2018-04-25 2019-10-30 Siemens Aktiengesellschaft Datenverarbeitungsvorrichtung, system und verfahren zum nachweis oder zur überprüfung der sicherheit einer datenverarbeitungsvorrichtung
EP3561713A1 (de) 2018-04-25 2019-10-30 Siemens Aktiengesellschaft Abrufvorrichtung für authentifizierungsinformationen, system und verfahren zur sicheren authentifizierung
EP3562116A1 (de) 2018-04-26 2019-10-30 Siemens Aktiengesellschaft Kryptographischer schlüsselaustausch oder kryptographische schlüsselvereinbarung mit einer vorrichtung ohne netzwerkzugang
WO2019206685A1 (en) 2018-04-26 2019-10-31 Siemens Aktiengesellschaft Cryptographic key exchange or key agreement involving a device without network access
EP3570489A1 (de) 2018-05-18 2019-11-20 Siemens Aktiengesellschaft Vorrichtung und verfahren zur umwandlung von blockchain-datenblöcken
EP3584654A1 (de) 2018-06-19 2019-12-25 Siemens Aktiengesellschaft Hierarchischer verteilter ledger
WO2019243201A1 (en) 2018-06-19 2019-12-26 Siemens Aktiengesellschaft Hierarchical distributed ledger
US11196564B2 (en) 2018-06-19 2021-12-07 Siemens Aktiengesellschaft Hierarchical distributed ledger
EP3598365A1 (de) 2018-07-17 2020-01-22 Siemens Aktiengesellschaft Verkehrsformung für transaktionen eines verteilten datenbanksystems
EP3598363A1 (de) 2018-07-17 2020-01-22 Siemens Aktiengesellschaft Ressourcenreservierung für transaktionen in einem verteilten datenbanksystem
EP3598364A1 (de) 2018-07-17 2020-01-22 Siemens Aktiengesellschaft Zeitliche beschränkung für transaktionen in einem verteilten datenbanksystem
WO2020015977A1 (en) 2018-07-17 2020-01-23 Siemens Aktiengesellschaft Timing constraint for transactions of a distributed database system
WO2020015978A1 (en) 2018-07-17 2020-01-23 Siemens Aktiengesellschaft Traffic shaping for transactions of a distributed database system
WO2020015979A1 (en) 2018-07-17 2020-01-23 Siemens Aktiengesellschaft Resource reservation for transactions of a distributed database system
WO2020020634A1 (de) 2018-07-25 2020-01-30 Siemens Aktiengesellschaft Steuern eines datennetzes hinsichtlich eines einsatzes einer verteilten datenbank
EP3599740A1 (de) 2018-07-25 2020-01-29 Siemens Aktiengesellschaft Steuern eines datennetzes hinsichtlich eines einsatzes einer verteilten datenbank
EP3609148A1 (de) 2018-08-06 2020-02-12 Siemens Aktiengesellschaft Verfahren und netzwerkknoten zur verarbeitung von messdaten
EP3609240A1 (de) 2018-08-09 2020-02-12 Siemens Aktiengesellschaft Computerimplementiertes verfahren und netzwerkzugangsserver zum verbinden einer netzwerkkomponente mit einem netzwerk, insbesondere einem mobilfunknetz, mit einem erweiterten netzwerkzugangskennzeichen
EP3609211A1 (de) 2018-08-09 2020-02-12 Siemens Aktiengesellschaft Computerimplementiertes verfahren und netzwerkzugangsserver zum verbinden einer netzwerkkomponente mit einem netzwerk, insbesondere einem mobilfunknetz, mit einem erweiterten netzwerkzugangskennzeichen
WO2020030540A1 (de) 2018-08-09 2020-02-13 Siemens Aktiengesellschaft Computerimplementiertes verfahren und netzwerkzugangsserver zum verbinden einer netzwerkkomponente mit einem netzwerk, insbesondere einem mobilfunknetz, mit einem erweiterten netzwerkzugangskennzeichen
WO2020038712A1 (en) 2018-08-20 2020-02-27 Siemens Aktiengesellschaft Tracking execution of an industrial workflow of a petri net
EP3614319A1 (de) 2018-08-20 2020-02-26 Siemens Aktiengesellschaft Verfolgung der ausführung eines industriellen arbeitsflusses eines petri-netzes
EP3629332A1 (de) 2018-09-28 2020-04-01 Siemens Aktiengesellschaft Sicheres ausgeben einer substanz
WO2020069912A1 (de) 2018-10-05 2020-04-09 Siemens Aktiengesellschaft Verfahren und system zur nachweisbaren datenverarbeitung unter anwendung von obfuskation
EP3633914A1 (de) 2018-10-05 2020-04-08 Siemens Aktiengesellschaft Verfahren und system zur nachweisbaren datenverarbeitung unter anwendung von obfuskation
WO2020074350A1 (de) 2018-10-10 2020-04-16 Siemens Aktiengesellschaft Verknüpfung von identitäten in einer verteilten datenbank
EP3637345A1 (de) 2018-10-10 2020-04-15 Siemens Aktiengesellschaft Verknüpfung von identitäten in einer verteilten datenbank
EP3687209A1 (de) 2019-01-25 2020-07-29 Siemens Aktiengesellschaft Sichere multihop-kommunikationspfade
EP3693918A1 (de) 2019-02-08 2020-08-12 Siemens Gamesa Renewable Energy A/S Betriebsdaten eines energiesystems
EP3736715A1 (de) 2019-05-10 2020-11-11 Siemens Aktiengesellschaft Verwaltung des zugangs zu einer verteilten datenbank auf basis eines konsensverfahrens

Also Published As

Publication number Publication date
IL255690A (en) 2018-01-31
KR101862348B1 (ko) 2018-05-29
MX2017013621A (es) 2018-03-08
US20180341755A1 (en) 2018-11-29
CN108351770A (zh) 2018-07-31
CA2984386A1 (en) 2017-08-17
IL255690B (en) 2018-10-31
KR20170125124A (ko) 2017-11-13
CN108351770B (zh) 2020-02-28
CA2984386C (en) 2019-01-29
ES2701702T3 (es) 2019-02-25
JP2018525697A (ja) 2018-09-06
JP6516870B2 (ja) 2019-05-22
EP3274825B1 (de) 2018-11-07
US10489564B2 (en) 2019-11-26
HUE043151T2 (hu) 2019-08-28
EP3274825A1 (de) 2018-01-31

Similar Documents

Publication Publication Date Title
EP3274825B1 (de) Verfahren und ausführungsumgebung zum gesicherten ausführen von programmbefehlen
DE102011005209B4 (de) Programmanweisungsgesteuerte Instruktionsflusskontrolle
DE102009041176B4 (de) Compiler-System und Verfahren zum Kompilieren eines Quellencodes zu einem verschlüsselten Maschinensprachcode
DE102007046475A1 (de) Überwachen eines Ausführungsmusters eines Target-Agents auf einem VT-fähigen System
AT521713B1 (de) Verfahren zur Detektion sicherheitsrelevanter Datenflüsse
DE102016205289A1 (de) Verfahren, Prozessor und Gerät zur Integritätsprüfung von Nutzerdaten
EP2642395A1 (de) Verfahren und Vorrichtung zum Ausführen von Workflow-Skripten
EP1798653B1 (de) Verfahren, Computerprogrammprodukt und Vorrichtung zum Schützen eines einen Funktionsblock aufweisenden Programms
DE102016210788B4 (de) Komponente zur Verarbeitung eines schützenswerten Datums und Verfahren zur Umsetzung einer Sicherheitsfunktion zum Schutz eines schützenswerten Datums in einer solchen Komponente
EP2111586B1 (de) Ein-chip-computer und tachograph
DE10340411B4 (de) Vorrichtung und Verfahren zur sicheren Ausführung eines Programms
EP3136268B1 (de) Verfahren zur sicherheitsanalyse einer logischen schaltung
DE102005046696B4 (de) Verfahren zum Erzeugen von geschütztem Programmcode und Verfahren zum Ausführen von Programmcode eines geschützten Computerprogramms sowie Computerprogrammprodukt
DE102021110768B3 (de) Forensik-Modul und eingebettetes System
WO2014191178A1 (de) Bereitstellung von zufallsbitfolgen in einer virtuellen ausführungsumgebung
DE60114416T2 (de) Vorrichtung und verfahren zur bewertung von algorithmen
EP2634700A1 (de) Verfahren und Entwicklungsumgebung zur Überwachung eines ablaufenden Programms
EP1879128B1 (de) Abgesicherter Programmcode
EP2386952A1 (de) Verfahren und Entwicklungsumgebung zur Überwachung eines ablaufenden Programms
WO2009077271A1 (de) Verfahren zum identifizieren gegenseitiger beeinflussung von softwarekomponenten
WO2022229153A1 (de) Emulationssystem und verfahren
WO2023186516A1 (de) Verfahren zur implementierung einer automatisierungsfunktionalität auf einer automatisierungskomponente mit programmierbarer automatisierungsfunktionalität und system
DE102022214443A1 (de) Verfahren, systeme und computerlesbare medien zum anpassen einer datenebenenpipelineverarbeitung unter verwendung von berkeley-paketfilter-(bpf)-hakeneintrittspunkten
EP4297335A2 (de) Verfahren zur implementierung und nutzung von kryptografischem material in wenigstens einer systemkomponente eines informationstechnischen systems
EP4330840A1 (de) Forensik-modul und eingebettetes system

Legal Events

Date Code Title Description
REEP Request for entry into the european phase

Ref document number: 2017702800

Country of ref document: EP

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

Ref document number: 17702800

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: MX/A/2017/013621

Country of ref document: MX

WWE Wipo information: entry into national phase

Ref document number: 15568803

Country of ref document: US

ENP Entry into the national phase

Ref document number: 2984386

Country of ref document: CA

Ref document number: 2017556821

Country of ref document: JP

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 20177031659

Country of ref document: KR

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 255690

Country of ref document: IL

NENP Non-entry into the national phase

Ref country code: DE