DE102017208199A1 - Arithmetic unit and operating method for a computing unit - Google Patents
Arithmetic unit and operating method for a computing unit Download PDFInfo
- Publication number
- DE102017208199A1 DE102017208199A1 DE102017208199.6A DE102017208199A DE102017208199A1 DE 102017208199 A1 DE102017208199 A1 DE 102017208199A1 DE 102017208199 A DE102017208199 A DE 102017208199A DE 102017208199 A1 DE102017208199 A1 DE 102017208199A1
- Authority
- DE
- Germany
- Prior art keywords
- function
- machine code
- code
- arithmetic unit
- ref
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000011017 operating method Methods 0.000 title description 7
- 238000004590 computer program Methods 0.000 claims abstract description 48
- 238000000034 method Methods 0.000 claims abstract description 19
- 238000012545 processing Methods 0.000 claims description 11
- 230000006870 function Effects 0.000 description 122
- 230000015654 memory Effects 0.000 description 14
- 230000015572 biosynthetic process Effects 0.000 description 6
- 239000013256 coordination polymer Substances 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/28—Error detection; Error correction; Monitoring by checking the correct order of processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Storage Device Security (AREA)
Abstract
Die Erfindung betrifft ein Verfahren zum Betreiben einer Recheneinheit (100), die dazu ausgebildet ist, ein Computerprogramm (CP) auszuführen, wobei das Computerprogramm (CP) wenigstens einen Funktionsaufruf einer in Form von Maschinencode bereitgestellten Funktion aufweist, umfassend die folgenden Schritte: Laden (200) wenigstens eines Teils des Maschinencodes der Funktion, Vergleichen (210) des wenigstens einen Teils des Maschinencodes der Funktion oder von hieraus abgeleiteten sekundären Daten mit einem vorgebbaren Referenzcode (REF).The invention relates to a method for operating a computing unit (100) which is designed to execute a computer program (CP), the computer program (CP) having at least one function call of a function provided in the form of machine code, comprising the following steps: loading ( 200) of at least a portion of the machine code of the function, comparing (210) the at least a portion of the machine code of the function or secondary data derived therefrom with a predetermined reference code (REF).
Description
Stand der TechnikState of the art
Die Erfindung betrifft eine Recheneinheit, die dazu ausgebildet ist, ein Computerprogramm auszuführen, wobei das Computerprogramm wenigstens einen Funktionsaufruf einer in Form von Maschinencode bereitgestellten Funktion aufweist. Die Erfindung betrifft ferner ein Betriebsverfahren für eine derartige Recheneinheit.The invention relates to a computing unit which is designed to execute a computer program, wherein the computer program has at least one function call of a function provided in the form of machine code. The invention further relates to an operating method for such a computing unit.
Recheneinheiten und Betriebsverfahren der vorstehend genannten Art sind bekannt. Über den Funktionsaufruf wird ermöglicht, die Funktionalität des Computerprogramms durch andere Computerprogramme bzw. Programmbibliotheken zu erweitern, indem das Computerprogramm unter Verwendung der genannten Funktionsaufrufe die in den anderen Computerprogrammen bzw. Programmbibliotheken vorliegenden Funktionen aufruft. Insbesondere ist dadurch auch eine getrennte Wartung und Modifikation des Computerprogramms einerseits und der Programmbibliotheken andererseits ermöglicht. Beispielsweise können Erweiterungen an der Programmbibliothek und den darin enthaltenen Funktionen vorgenommen werden, ohne dass das Computerprogramm geändert werden muss, und umgekehrt.Arithmetic units and operating methods of the aforementioned type are known. The function call makes it possible to extend the functionality of the computer program by other computer programs or program libraries in that the computer program calls the functions present in the other computer programs or program libraries using the function calls mentioned. In particular, this also allows separate maintenance and modification of the computer program on the one hand and the program libraries on the other hand. For example, extensions to the program library and the functions contained therein can be made without having to change the computer program, and vice versa.
Die in Form von Maschinencode bereitgestellte Funktion kann beispielsweise zusammen mit dem Computerprogramm, also in demselben Speicher der Recheneinheit, gespeichert werden, oder auch in einem anderen Speicher, insbesondere auch extern zu der Recheneinheit. Insbesondere kann die Funktion auch als Bestandteil von Systembibliotheken (libc, „stdio.h“, *.dll, usw.) von Betriebssystemen für die Recheneinheit oder Standardbibliotheken vorgesehen sein. Betriebssysteme bzw. Standardbibliotheken können beispielsweise bei einer Inbetriebnahme der Recheneinheit auf einem Speicher bzw. einer Speichereinrichtung der Recheneinheit vorab installiert werden und ein oder mehrere der vorstehend genannten Funktionen, insbesondere vorgesehen in Form von Standardbibliotheken, umfassen. Gegebenenfalls später auf der Recheneinheit auszuführende Anwendungsprogramme wie beispielsweise das vorstehend genannte Computerprogramm können dann vorteilhaft auf die bereits vorinstallierten Funktionen zugreifen, im Wege der vorstehend beschriebenen Funktionsaufrufe.The function provided in the form of machine code can be stored, for example, together with the computer program, that is to say in the same memory of the arithmetic unit, or also in another memory, in particular also externally to the arithmetic unit. In particular, the function may also be provided as part of system libraries (libc, "stdio.h", * .dll, etc.) of operating systems for the computing unit or standard libraries. Operating systems or standard libraries, for example, can be installed in advance on a memory or a memory device of the arithmetic unit during commissioning of the arithmetic unit and comprise one or more of the aforementioned functions, in particular provided in the form of standard libraries. Optionally later on the arithmetic unit to be executed application programs such as the aforementioned computer program can then advantageously access the already pre-installed functions, by way of the function calls described above.
Es ist bekannt, dass Angriffe auf bestehende Systeme und deren Implementierungen derart möglich sind, dass bestehende Funktionen, die beispielsweise Bestandteil von Systembibliotheken oder Standardbibliotheken sind, gegen manipulierte Funktionen ausgetauscht werden, welche z.B. zusätzlich zu oder anstelle der regulären Funktionalitäten der bestehenden Programmfunktionen Schadcode und dergleichen enthalten. Beispielsweise kann direkt der Maschinencode der betreffenden Funktion ausgetauscht bzw. manipuliert („gepatcht“) werden. Dadurch werden die manipulierten Funktionen gleichsam in eine man-in-the-middle-Angriffsposition versetzt, die es ihnen ermöglicht, Funktionsaufrufe bzw. Systemaufrufe (Funktionsaufrufe von Funktionen, die von einem Betriebssystem bereitgestellt werden) von auf der Recheneinheit ablaufenden Anwendungsprogrammen zu manipulieren und/oder deren Ausgabe bzw. Rückgabewerte an das Anwendungsprogramm zu verändern bzw. zu kopieren und ggf. an einen unbefugten Empfänger zu übermitteln.It is known that attacks on existing systems and their implementations are possible in such a way that existing functions, which for example are part of system libraries or standard libraries, are exchanged for manipulated functions, which are e.g. in addition to or instead of the regular functionalities of the existing program functions include malicious code and the like. For example, the machine code of the relevant function can be exchanged or manipulated ("patched") directly. This places the manipulated functions, as it were, in a man-in-the-middle attack position, allowing them to manipulate function calls or system calls (function calls of functions provided by an operating system) from application programs running on the arithmetic unit, and / or to change or copy their output or return values to the application program and if necessary to transmit them to an unauthorized recipient.
Offenbarung der ErfindungDisclosure of the invention
Demgemäß ist es Aufgabe der vorliegenden Erfindung, eine Recheneinheit der eingangs genannten Art und ein Betriebsverfahren der eingangs genannten Art dahingehend zu verbessern, dass eine gesteigerte Zuverlässigkeit und Sicherheit gegenüber den vorstehend genannten Angriffen gegeben ist.Accordingly, it is an object of the present invention to improve a computing unit of the type mentioned and an operating method of the type mentioned in that an increased reliability and security against the aforementioned attacks is given.
Diese Aufgabe wird bei dem Verfahren der eingangs genannten Art erfindungsgemäß durch die folgenden Schritte gelöst: Laden wenigstens eines Teils des Maschinencodes der Funktion, Vergleichen des wenigstens einen Teils des Maschinencodes der Funktion mit einem vorgebbaren Referenzcode. This object is achieved in the method of the type mentioned according to the invention by the following steps: loading at least a part of the machine code of the function, comparing the at least part of the machine code of the function with a predetermined reference code.
Alternativ können auch sekundäre Daten, die aus dem wenigstens einen geladenen Teil des Maschinencodes der Funktion abgeleitet worden sind, mit einem vorgebbaren Referenzcode verglichen werden.Alternatively, secondary data derived from the at least one loaded part of the machine code of the function may also be compared with a predefinable reference code.
Dies ermöglicht vorteilhaft die Feststellung der „Echtheit“ des betreffenden Maschinencodes bzw. wenigstens des geladenen Teils des Maschinencodes. Beispielsweise kann die Recheneinheit bei ihrer Herstellung oder zu einem späteren Zeitpunkt mit einem Referenzcode für eine bestimmte Funktion versehen werden, für die das Computerprogramm der Recheneinheit ein oder mehrere Funktionsaufrufe aufweist. Unter Anwendung des erfindungsgemäßen Prinzips kann die Recheneinheit dann, beispielsweise bevor der Funktionsaufruf der bestimmten Funktion erfolgen soll, wenigstens einen Teil des Maschinencodes der Funktion laden, und diesen geladenen Teil mit dem bereits in der Recheneinheit vorhandenen Referenzcode vergleichen. Sofern diese Informationen übereinstimmen, kann darauf geschlossen werden, dass es sich bei der Funktion bzw. dem Maschinencode, dessen Teil zuvor geladen und mit dem Referenzcode abgeglichen worden ist, um einen nicht manipulierten Maschinencode der Funktion handelt, mithin einen Maschinencode, der dem Referenzcode entspricht. Sofern diese Informationen nicht übereinstimmen, kann darauf geschlossen werden, dass es sich bei der Funktion bzw. dem Maschinencode, dessen Teil geladen und mit dem Referenzcode verglichen worden ist, um einen gegenüber dem ursprünglich vorhandenen Maschinencode der Funktion geänderten bzw. manipulierten Maschinencode handelt.This advantageously makes it possible to ascertain the "authenticity" of the relevant machine code or at least of the loaded part of the machine code. For example, the arithmetic unit can be provided with a reference code for a specific function during its manufacture or at a later time, for which the computer program of the arithmetic unit has one or more function calls. Using the principle according to the invention, the arithmetic unit can then load at least part of the machine code of the function, for example before the function call of the specific function is to take place, and Compare this loaded part with the already existing in the arithmetic unit reference code. If this information matches, it can be concluded that the function or machine code whose part has been previously loaded and matched with the reference code is a non-manipulated machine code of the function, hence a machine code corresponding to the reference code , Unless this information matches, it can be concluded that the function or machine code whose part has been loaded and compared to the reference code is a machine code modified or manipulated from the original machine code of the function.
Bei einer bevorzugten Ausführungsform umfasst der Schritt des Ladens wenigstens einen der folgenden Schritte: - Laden einer vorgebbaren Anzahl von Bytes von dem Anfang des Maschinencodes der Funktion, also beispielsweise das Laden von n vielen Bytes beginnend mit der Startadresse des Maschinencodes der Funktion, - Laden einer vorgebbaren Anzahl von Bytes von dem Ende des Maschinencodes der Funktion, also beispielsweise das Laden von m vielen Bytes bis hin zu der Endadresse des Maschinencodes der Funktion, - Laden einer vorgebbaren Anzahl von Bytes von einer vorgebbaren Stelle des Maschinencodes der Funktion, wobei die vorgebbare Stelle von dem Anfang und dem Ende des Maschinencodes bzw. der Startadresse und der Endadresse verschieden ist, - Laden einer vorgebbaren Anzahl von Bytes von einer pseudozufällig oder zufällig gewählten Stelle des Maschinencodes der Funktion. In a preferred embodiment, the loading step comprises at least one of the following steps: loading a predeterminable number of bytes from the beginning of the machine code of the function, eg loading n many bytes starting with the starting address of the machine code of the function, loading one predeterminable number of bytes from the end of the machine code of the function, thus, for example, the loading of m many bytes up to the end address of the machine code of the function, - loading a predefinable number of bytes from a predefinable position of the machine code of the function, wherein the specifiable location is different from the beginning and the end of the machine code and the starting address and the end address, respectively - Loading a predefinable number of bytes from a pseudorandom or randomly selected location of the machine code of the function.
Bei der vorstehend gewählten Variante - oder einer Kombination mehrerer Varianten hieraus - ist es zweckmäßig, einen hierzu passenden vorgebbaren Referenzcode für die Recheneinheit für den Vergleich mit den geladenen Daten bereitzustellen bzw. der Recheneinheit spätestens für den Zeitpunkt des Vergleichs verfügbar zu machen.In the above-selected variant - or a combination of several variants thereof - it is expedient to provide a matching predefinable reference code for the arithmetic unit for comparison with the loaded data or to make the arithmetic unit available at the latest for the time of comparison.
Das Bereitstellen des vorgebbaren Referenzcodes kann beispielsweise während einer Fertigung der Recheneinheit erfolgen, indem der vorgebbare Referenzcode in einen der Recheneinheit zugeordneten internen und/oder externen Speicher geschrieben wird. Alternativ oder ergänzend kann das Bereitstellen auch später, beispielsweise auch im Feld, erfolgen, indem ein oder mehrere entsprechende Referenzcodes an die Recheneinheit übermittelt werden, wobei diese von der Recheneinheit zumindest zeitweise, insbesondere für eine zukünftige Verwendung, gespeichert werden können.The predeterminable reference code can be provided, for example, during production of the arithmetic unit by writing the predefinable reference code into an internal and / or external memory assigned to the arithmetic unit. Alternatively or additionally, the provision can also be made later, for example also in the field, by transmitting one or more corresponding reference codes to the arithmetic unit, which can be stored by the arithmetic unit at least temporarily, in particular for future use.
Bei einer weiteren vorteilhaften Ausführungsform können die sekundären Daten in Abhängigkeit des geladenen wenigstens einen Teils des Maschinencodes unter Verwendung einer Hashfunktion (Streuwertfunktion) ermittelt werden. Insbesondere ist es bei weiteren Ausführungsformen möglich, ein oder mehrere Bereiche des Maschinencodes der Funktion zu laden und der Hashwertbildung zugrunde zu legen. Besonders bevorzugt kann eine kryptografisch sichere Hashfunktion, z.B. nach dem SHA-2-Standard (Spezifikation z.B. verfügbar unter der Internetadresse http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf), verwendet werden, wodurch die Manipulationssicherheit weiter gesteigert wird.In a further advantageous embodiment, the secondary data can be determined as a function of the loaded at least part of the machine code using a hash function (scatter value function). In particular, in further embodiments it is possible to load one or more areas of the machine code of the function and to base the hash value formation on. Particularly preferred may be a cryptographically secure hash function, e.g. according to the SHA-2 standard (specification available, for example, available at the Internet address http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf), thereby further enhancing tamper resistance.
Sofern sekundäre Daten von dem wenigstens einen geladenen Teil des Maschinencodes der Funktion abgeleitet werden, kann der Schritt des Vergleichens mit einem vorgebbaren Referenzcode einen Vergleich des Referenzcodes mit den sekundären Daten, z.B. dem entsprechenden Hashwert, umfassen. Beispielsweise kann in diesem Fall ein Referenz-Hashwert als Referenzcode vorgesehen sein.If secondary data is derived from the at least one loaded portion of the machine code of the function, the step of comparing with a predeterminable reference code may comprise comparing the reference code with the secondary data, e.g. the corresponding hash value. For example, in this case, a reference hash value may be provided as the reference code.
Bei einer weiteren vorteilhaften Ausführungsform ist vorgesehen, dass eine Fehlerreaktion eingeleitet wird, wenn der Vergleich einen Unterschied zwischen dem wenigstens einen Teil des Maschinencodes der Funktion und dem Referenzcode oder zwischen den sekundären Daten und dem Referenzcode bzw. Referenz-Hashwert ergibt.In a further advantageous embodiment it is provided that an error reaction is initiated if the comparison results in a difference between the at least one part of the machine code of the function and the reference code or between the secondary data and the reference code or reference hash value.
Sofern der vorgenannte Vergleich keinen Unterschied ergibt, kann bei weiteren Ausführungsformen vorgesehen sein, dass die Funktion aufgerufen wird. In diesem Fall kann durch den vorangehenden erfindungsgemäßen Vergleich nämlich darauf geschlossen werden, dass der betreffende Funktionsaufruf des Computerprogramms gefahrlos ausgeführt werden kann, weil der Maschinencode der aufzurufenden Funktion als nicht manipuliert eingestuft worden ist.If the aforementioned comparison does not result in a difference, it can be provided in further embodiments that the function is called. In this case, it can be concluded from the preceding comparison according to the invention that the relevant function call of the computer program can be carried out without danger, because the machine code of the function to be called has been classified as non-manipulated.
Weitere Aspekte der vorliegenden Erfindung betreffen eine Recheneinheit gemäß Patentanspruch 7. Bei weiteren bevorzugten Ausführungsformen ist die Recheneinheit zur Ausführung wenigstens einer Ausführungsform des vorstehend beschriebenen Verfahrens ausgebildet.Further aspects of the present invention relate to a computing unit according to claim 7. In further preferred embodiments, the computing unit is designed to carry out at least one embodiment of the method described above.
Ein weiterer Aspekt der vorliegenden Erfindung ist durch eine Vorrichtung zur Verarbeitung von Daten gemäß Patentanspruch 9 angegeben. Die Vorrichtung ist zur Ausführung der folgenden Schritte ausgebildet: Speichern wenigstens eines Teils eines Maschinencodes einer mittels einer Recheneinheit, insbesondere mittels der erfindungsgemäßen Recheneinheit, ausführbaren Funktion, Übertragen des wenigstens einen Teils des Maschinencodes als Referenzcode an die Recheneinheit. Die erfindungsgemäße Vorrichtung ermöglicht vorteilhaft die effiziente Bereitstellung der Referenzcodes für die Anwendung des erfindungsgemäßen Prinzips innerhalb der Recheneinheit. Another aspect of the present invention is provided by a data processing apparatus according to claim 9. The device is designed to carry out the following steps: storing at least a part of a machine code of a function that can be executed by means of a computing unit, in particular by means of the inventive computing unit, transmitting the at least one part of the machine code as the reference code to the computing unit. The device according to the invention advantageously enables the efficient provision of the reference codes for the application of the inventive principle within the computing unit.
Bei einer bevorzugten Ausführungsform kann der Vorrichtung eine Datenbank zur Speicherung der Referenzcodes zugeordnet sein. Bei weiteren Ausführungsformen kann die Vorrichtung auch dazu ausgebildet sein, eine Hashfunktion auf dem wenigstens einen Teil des Maschinencodes auszuführen, um den Referenzcode zu erhalten. Auch die hierbei als Referenzcode erhaltenen Referenz-Hashwerte können zumindest zeitweise in der Datenbank oder in einem sonstigen Speicher gespeichert werden und ggf. ein oder mehreren Recheneinheiten als Referenzcode zur Verfügung gestellt werden, damit diese Recheneinheiten zukünftig unter Anwendung des erfindungsgemäßen Prinzips die Echtheit eines Maschinencodes einer bereitgestellten Funktion überprüfen können.In a preferred embodiment, the device may be associated with a database for storing the reference codes. In further embodiments, the device may also be configured to execute a hash function on the at least part of the machine code to obtain the reference code. The reference hash values obtained here as reference code can also be stored at least temporarily in the database or in other memory and possibly one or more arithmetic units provided as reference code, so that these arithmetic units in the future using the inventive principle, the authenticity of a machine code can check the provided function.
Ein weiterer Aspekt der vorliegenden Erfindung ist durch ein Verfahren zur Verarbeitung von Daten gemäß Patentanspruch 11 angegeben. Das Verfahren kann beispielsweise durch die vorstehend beschriebene Vorrichtung zur Verarbeitung von Daten ausgeführt werden.Another aspect of the present invention is provided by a method of processing data according to claim 11. The method may be performed, for example, by the data processing apparatus described above.
Weitere Merkmale, Anwendungsmöglichkeiten und Vorteile der Erfindung ergeben sich aus der nachfolgenden Beschreibung von Ausführungsbeispielen der Erfindung, die in den Figuren der Zeichnung dargestellt sind. Dabei bilden alle beschriebenen oder dargestellten Merkmale für sich oder in beliebiger Kombination den Gegenstand der Erfindung, unabhängig von ihrer Zusammenfassung in den Patentansprüchen oder deren Rückbeziehung sowie unabhängig von ihrer Formulierung bzw. Darstellung in der Beschreibung bzw. in der Zeichnung.Other features, applications and advantages of the invention will become apparent from the following description of embodiments of the invention, which are illustrated in the figures of the drawing. All described or illustrated features, alone or in any combination form the subject matter of the invention, regardless of their summary in the claims or their dependency and regardless of their formulation or representation in the description or in the drawing.
In der Zeichnung zeigt:
-
1A ,1B ,1C jeweils schematisch ein vereinfachtes Flussdiagramm einer Ausführungsform eines erfindungsgemäßen Betriebsverfahrens für eine Recheneinheit, -
2 schematisch ein Blockdiagramm einer Ausführungsform einer erfindungsgemäßen Recheneinheit, -
3 schematisch einen Maschinencode einer Funktion gemäß einer Ausführungsform, -
4 schematisch ein Blockdiagramm einer Ausführungsform einer erfindungsgemäßen Vorrichtung zur Verarbeitung von Daten, -
5 schematisch ein vereinfachtes Flussdiagramm einer Ausführungsform eines erfindungsgemäßen Verfahrens zur Verarbeitung von Daten, -
6 schematisch ein Betriebsszenario gemäß einer Ausführungsform, -
7 schematisch ein Betriebsszenario gemäß einer weiteren Ausführungsform, und -
8 schematisch ein Betriebsszenario gemäß einer weiteren Ausführungsform.
-
1A .1B .1C each schematically a simplified flowchart of an embodiment of an operating method according to the invention for a computing unit, -
2 1 is a schematic block diagram of an embodiment of a computing unit according to the invention; -
3 schematically a machine code of a function according to an embodiment, -
4 1 is a schematic block diagram of an embodiment of a data processing device according to the invention; -
5 1 is a simplified flowchart of an embodiment of a method according to the invention for processing data; -
6 schematically an operating scenario according to an embodiment, -
7 schematically an operating scenario according to another embodiment, and -
8th schematically an operating scenario according to another embodiment.
Die Recheneinheit
Das Computerprogramm CP kann ein oder mehrere Funktionsaufrufe FA (englisch: function calls; im Falle des Aufrufs von Systemfunktionen z.B. des Betriebssystems BS auch „system calls“) enthalten, die in an sich bekannter Weise die Ausführung von entsprechenden Funktionen F einleiten. Die Funktion F bzw. ein ihr zugeordneter Maschinencode, der durch den Rechenkern
Das erfindungsgemäße Verfahren, vergleiche
Danach erfolgt in Schritt
Wenn der Vergleich
Mit anderen Worten kann bei manchen Ausführungsformen ein durch das Computerprogramm
Bei einer weiteren Ausführungsform kann der Schritt
Optional kann die Vorrichtung
Die mittels der Vorrichtung
Optional kann auch ein Schritt
Das vorstehend unter Bezugnahme auf
Bei weiteren Ausführungsformen ist jedoch auch denkbar, dass die Vorrichtung
Nach der Übertragung an die Recheneinheit
Bezugszeichen
Nachfolgend ist beispielhaft als „Listing 1“ ein Quellcode eines in der Programmiersprache C abgefassten Computerprogramms zur Veranschaulichung von Aspekten der Ausführungsformen wiedergegeben. Den einzelnen Codezeilen sind Zeilennummern, vorliegend von 1-33, vorangestellt, um eine nachfolgende Erläuterung und Referenzierung auf den Quellcode zu vereinfachen:
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <dlfcn.h> 4 5 // The assembler of the function fopen starts with 6 const unsigned char g_FirstSomeByte[3] = 7 { 0x83, 0xec, 0x1c}; 8 9 int main() 10 { 11 // 12// 13 const unsigned char* ptFopenCode = 14 (const unsigned char*)dlsym( RTLD_NEXT, „fopen“); 15 // only for debugging purpose: 16 printf(„fopen = %p [0x%02X, 0x%02X, 0x%02X, ... ]\n“, 17 &fopen, 18 ptFopenCode[0], ptFopenCode[1], 19 ptFopenCode[2]); 20 21 // this check for the correct function - depends on the glibc version !! 22 if ( 23 (ptFopenCode[0]!=g_FirstSomeByte[0]) || 24 (ptFopenCode[1]!=g_FirstSomeByte[1]) || 25 (ptFopenCode[2]!=g_FirstSomeByte[2]) 26 ){ 27 printf(„»> It seems to be i am hacked !!!\n“); 28 printf(„»> I will leave the program ...\n“); 29 exit(-1); 30 } 31 printf(„Hello World\n“); 32 return 0; 33 }Hereinafter, by way of example, "Listing 1" is a source code of a computer program written in the C programming language to illustrate aspects of the embodiments. The individual lines of code are preceded by line numbers, in this case 1-33, in order to simplify a following explanation and referencing to the source code:
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <dlfcn.h> 4 5 // The assembler of the function fopen starts with 6 const unsigned char g_FirstSomeByte [3] = 7 {0x83, 0xec, 0x1c}; 8th 9 int main () 10 { 11 // 12 // 13 const unsigned char * ptFopenCode = 14 (const unsigned char *) dlsym (RTLD_NEXT, "fopen"); 15 // only for debugging purpose: 16 printf ("fopen =% p [0x% 02X, 0x% 02X, 0x% 02X, ...] \ n", 17 & fopen, 18 ptFopenCode [0], ptFopenCode [1], 19 ptFopenCode [2]); 20 21 // this check for the correct function - depends on the glibc version !! 22 if ( 23 (ptFopenCode [0]! = G_FirstSomeByte [0]) || 24 (ptFopenCode [1]! = G_FirstSomeByte [1]) || 25 (ptFopenCode [2]! = G_FirstSomeByte [2]) 26) { 27 printf (""> It seems to be on the hacked !!! \ n "); 28 printf (""> I will leave the program ... \ n "); 29 exit (-1); 30} 31 printf ("Hello World \ n"); 32 return 0; 33}
Die Zeilen
In den Zeilen
In den Zeilen
Das erfindungsgemäße Prinzip ermöglicht vorteilhaft, Angriffe auf beispielsweise eine Laufzeitumgebung für Computerprogramme
Das erfindungsgemäße Prinzip arbeitet insbesondere unabhängig von Schedulingalgorithmen bzw. zeitlichen Schwankungen während der Ausführung der Funktion
Das erfindungsgemäße Prinzip kann sehr flexibel und bedarfsgerecht eingesetzt werden. Beispielsweise kann ein Softwareentwickler, der das Computerprogramm
Besonders vorteilhaft bedingt die Anwendung des erfindungsgemäßen Prinzips vergleichsweise wenig Zusatzaufwand, insbesondere bezüglich der Ausführungszeit des Computerprogramms
Des Weiteren ist das erfindungsgemäße Prinzip auch dann effizient nutzbar, wenn sich die Laufzeitumgebung bzw. die Programmbibliothek(en) bzw. darin enthaltene Funktionen F oder deren Maschinencode
Claims (11)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102017208199.6A DE102017208199A1 (en) | 2017-05-16 | 2017-05-16 | Arithmetic unit and operating method for a computing unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102017208199.6A DE102017208199A1 (en) | 2017-05-16 | 2017-05-16 | Arithmetic unit and operating method for a computing unit |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102017208199A1 true DE102017208199A1 (en) | 2018-11-22 |
Family
ID=64278211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102017208199.6A Pending DE102017208199A1 (en) | 2017-05-16 | 2017-05-16 | Arithmetic unit and operating method for a computing unit |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102017208199A1 (en) |
-
2017
- 2017-05-16 DE DE102017208199.6A patent/DE102017208199A1/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE602004008413T2 (en) | Device and method for dynamic security management | |
EP3891642B1 (en) | Method for ensuring the trustworthiness of source codes | |
EP1798653B1 (en) | Method, computer program product and device for protecting a program comprising a function block | |
EP2913772A1 (en) | Method and computer system for protecting a computer program against influence | |
DE102014117971B4 (en) | A method of data processing for determining whether an error has occurred during execution of a program and data processing arrangements for generating program code | |
EP3811260B1 (en) | Cryptography module and method for operating same | |
WO2022008201A1 (en) | Method for the extended validation of a container image | |
EP1636700A1 (en) | Method for booting up a software in the boot sector of a programmable read-only memory | |
DE102005046696B4 (en) | A method for generating protected program code and method for executing program code of a protected computer program and computer program product | |
DE102017208199A1 (en) | Arithmetic unit and operating method for a computing unit | |
DE10131577A1 (en) | Process for protecting a microcomputer system against manipulation of its program | |
DE102021114574A1 (en) | COMPUTER PROGRAM TRUST ASSURANCE FOR INTERNET OF THINGS (IOT) DEVICES | |
EP3588340B1 (en) | Computer-implemented method for operating a data storage device | |
DE102021212994B3 (en) | Method for detecting anomalies indicating tampering during a secure boot process of a software-controlled device | |
EP3876123B1 (en) | Arrangement and operating method for a secure start-up of an electronic device | |
DE102007059798B3 (en) | Executable program code i.e. executable file, coding method for computer, involves combining chains of sequential instructions to code fragments, and coding and storing detected code fragments belonging to methods in program library | |
EP4254174A1 (en) | Method for producing software containers in a build process | |
EP3786818A1 (en) | Method for protecting a software application against unauthorzed use | |
EP1105798A1 (en) | Method, array and set of several arrays for protecting several programs and/or files from unauthorized access by a process | |
DE102015016059A1 (en) | Method for executing a program code | |
DE102020212988A1 (en) | Safe booting of a computer system | |
DE102022207883A1 (en) | Method for programming a programmable logic controller using an executable control program and programmable logic controller system | |
AT524619A1 (en) | Computer-implemented method for authorized execution of software, data processing system, computer program product and computer-readable storage medium | |
WO2024022830A1 (en) | Method for programming a programmable logic controller by means of an executable control programme, and programmable logic controller system | |
DE102017208192A1 (en) | Arithmetic unit and operating method for a computing unit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed |