DE102006057297A1 - Verfahren zur Überwachung des Ablaufs eines Programms - Google Patents
Verfahren zur Überwachung des Ablaufs eines Programms Download PDFInfo
- Publication number
- DE102006057297A1 DE102006057297A1 DE200610057297 DE102006057297A DE102006057297A1 DE 102006057297 A1 DE102006057297 A1 DE 102006057297A1 DE 200610057297 DE200610057297 DE 200610057297 DE 102006057297 A DE102006057297 A DE 102006057297A DE 102006057297 A1 DE102006057297 A1 DE 102006057297A1
- Authority
- DE
- Germany
- Prior art keywords
- program
- test value
- calculated
- value
- command sequence
- 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.)
- Ceased
Links
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/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
Die Erfindung schafft ein Verfahren zur Überwachung des Ablaufs eines Programms, wobei während der Abarbeitung des Programms ein Prüfwert auf Grundlage der Befehle einer abzuarbeitenden Befehlssequenz des Programms berechnet wird und der Prüfwert mit einem im Programm abgespeicherten Referenzwert verglichen wird. Im Programm wird eine Startmarkierung und eine Stoppmarkierung vorgesehen, durch die die Befehlssequenz innerhalb des Programms abgegrenzt ist.
Description
- Die Erfindung betrifft ein Verfahren zur Überwachung des Ablaufs eines Programms, gemäß dem Oberbegriff von Anspruch 1, und einen entsprechenden Datenträger.
- Ein Datenträger im Sinn der Erfindung ist ein Rechnersystem, bei dem die Ressourcen, d.h. Speicherressourcen und/oder Rechenkapazität (Rechenleistung) begrenzt sind, z.B. eine Chipkarte (Smart Card, Mikroprozessor-Chipkarte). Der Datenträger hat einen Körper, in dem eine CPU (ein Mikroprozessor) angeordnet ist, und der jede beliebige standardisierte oder nicht standardisierte Gestalt haben kann, beispielsweise die Gestalt einer flachen Chipkarte ohne Norm oder nach einer Norm wie z.B. ISO 7810 (z.B. ID-1, ID-00, ID-000) oder die eines volumigen Tokens. Der Datenträger kann weiter eine oder mehrere beliebige Schnittstellen für kontaktlose und/oder kontaktbehaftete Kommunikation mit einem Lesegerät oder Datenverarbeitungssystem (z.B. Personal Computer, Workstation, Server) haben.
- Programmierfehler oder Angriffe durch Hacker können dazu führen, dass der Ablauf eines Programms gestört wird, so dass die Befehle des Programms nicht korrekt abgearbeitet werden. Gerade bei sicherheitstechnisch kritischen Programmen wie z.B. kryptographischen Programmen mit geheimen Schlüsseln kann ein solcher unkorrekter Programmablauf unangenehme Folgen haben, da beispielsweise Sprünge des Programmablaufs in eigentlich für den Zugriff gesperrte Speicherbereiche ermöglicht werden können, in denen geheime Schlüssel abgespeichert sind. Die Erfindung zielt darauf ab, den korrekten Ablauf eines Programms zu überwachen und möglichst sicherzustellen.
-
EP 1 161 725 B1 beschreibt ein Verfahren zur Überwachung des Ablaufs eines Programms, gemäß dem Oberbegriff von Anspruch 1. Genauer be schreibtEP 1 16 725 B1 - Das Verfahren aus
EP 1 161 725 B1 liefert für komplette Programme oder für in sich abgegrenzte Befehlssequenzen eine Möglichkeit, die Abarbeitung der Befehle des Programms zu überwachen und Fehler im Programmablauf zu detektieren. Für Programmteile, die nicht in sich abgeschlossen sind, liefertEP 1 161 725 B1 keine Überwachungsmöglichkeit. - Der Erfindung liegt die Aufgabe zu Grunde, ein Verfahren zur Überwachung des Ablaufs eines Programms zu schaffen, das eine Überwachung auch von nicht in sich abgeschlossenen Programmteilen ermöglicht.
- Die Aufgabe wird gelöst durch ein Verfahren nach dem unabhängigen Verfahrensanspruch. Ein entsprechender Datenträger ist im unabhängigen Vorrichtungsanspruch angegeben. Vorteilhafte Ausgestaltungen der Erfindung sind in den abhängigen Ansprüchen angegeben.
- Das erfindungsgemäße Verfahren gemäß dem unabhängigen Anspruch 1 ist zur Überwachung des Ablaufs eines Programms eingerichtet. Während der Abarbeitung des Programms wird ein Prüfwert auf Grundlage der Befehle einer abzuarbeitenden Befehlssequenz des Programms berechnet. Der Prüfwert wird mit einem im Programm abgespeicherten Referenzwert vergli chen. Das Verfahren zeichnet sich dadurch aus, dass im Programm eine Startmarkierung und eine Stoppmarkierung vorgesehen sind, durch die die Befehlssequenz innerhalb des Programms abgegrenzt ist.
- Durch die Startmarkierung wird der Beginn der für den Prüfwert zu berücksichtigenden Befehle des Programms markiert. Durch den Stoppwert wird das Ende der für den Prüfwert zu berücksichtigenden Befehle des Programms markiert. Durch die Startmarkierung und die Stoppmarkierung kann somit ein Prüfwert über eine beliebige Befehlssequenz des Programms berechnet werden, wobei die Befehlssequenz nicht in sich abgeschlossen zu sein braucht.
- Daher ist gemäß Anspruch 1 ein Verfahren zur Überwachung des Ablaufs eines Programms geschaffen, das eine Überwachung auch von nicht in sich abgeschlossenen Programmteilen ermöglicht.
- Wahlweise sind weitere Start- und/oder Stoppmarkierungen im Programm vorgesehen. Einige der Start- oder Stoppmarkierungen können wahlweise kombinierte Start- und Stoppmarkierungen sein, durch welche zugleich ein Ende einer ersten Sequenz von für einen ersten Prüfwert zu berücksichtigenden Befehlen und ein Beginn einer zweiten Sequenz von für einen zweiten Prüfwert zu berücksichtigenden Befehlen markiert ist. Die Start- bzw. Stoppmarkierung ist derart gestaltet, dass sie vom Programm, insbesondere von einem Compiler zum Compilieren oder einem Interpreter zum Interpretieren des Programms, erkannt und ausgewertet werden kann.
- Der Referenzwert wird wahlweise vor der Ausführung des Programms berechnet und im abzuarbeitenden Programm abgespeichert.
- Der Prüfwert oder/und der Referenzwert wird/werden wahlweise durch Bildung einer Prüfsumme mittels eines Algorithmus berechnet, z.B. durch Hashwertbildung.
- In die Berechnung des Prüfwerts geht wahlweise der Befehlscode der Befehle der abzuarbeitenden Befehlssequenz ein, wahlweise die Befehlscodes aller Befehle von der Startmarkierung bis zur Stoppmarkierung.
- In die Berechnung des Prüfwerts geht wahlweise ein Wert mindestens eines parallel zur Abarbeitung des Programms geführten Programmzählers ein. Wahlweise gehen in die Berechnung des Prüfwerts mindestens einige und höchstens sämtliche Werte des Programmzählers ein, die der Programmzähler während des Ablaufs des Programms von der Startmarkierung bis zu der Stoppmarkierung einnimmt.
- Wahlweise wird eine Fehlerbehandlungsroutine veranlasst, falls der Vergleich ergibt, dass der Prüfwert und der Referenzwert unterschiedlich sind. Die Fehlerbehandlungsroutine kann beispielsweise in einem Programmabbruch bestehen oder/und in einem Löschen von vorbestimmten Speicherbereichen eines Datenträgers, mit welchem das Verfahren ausgeführt wird, oder/und in einem Sperren des Datenträgers für einen weiteren Zugriff.
- Das Verfahren ist insbesondere für einen tragbaren Datenträger, insbesondere für eine Smart Card (Mikroprozessorchipkarte) geeignet und wird wahlweise teilweise oder ganz durch den Mikroprozessor der Smart Card durchgeführt. Der Prüfwert wird vorzugsweise innerhalb des Datenträgers berechnet, insbesondere durch den Mikroprozessor des Datenträgers. Der vorab berechnete Referenzwert wird wahlweise innerhalb des Datenträgers be rechnet oder alternativ außerhalb des Datenträgers berechnet und im Datenträger abgespeichert.
- Der erfindungsgemäße Datenträger, insbesondere Smart Card, ist mit einem darin implementierten Programm, mit einer Prüfwerteinrichtung zur Berechnung eines Prüfwerts auf Grundlage der Befehle einer abzuarbeitenden Befehlssequenz des Programms, und mit einer Vergleichseinrichtung zum Vergleichen des Prüfwerts mit einem im Programm abgespeicherten Referenzwert ausgestattet. Der Datenträger zeichnet sich dadurch aus, dass im Programm eine Startmarkierung und eine Stoppmarkierung vorgesehen sind, durch die die Befehlssequenz innerhalb des Programms abgegrenzt ist.
- Die Prüfwerteinrichtung und/oder die Vergleichseinrichtung sind wahlweise in einem Mikroprozessor des Datenträgers implementiert, insbesondere in einer CPU.
- Wahlweise ist der Referenzwert in einem nichtflüchtigen Speicher des Datenträgers, insbesondere in einem Register des Datenträgers, abgespeichert. Wahlweise ist der Prüfwert n einem nichtflüchtigen Speicher des Datenträgers, insbesondere in einem Register des Datenträgers, abgespeichert. Der Mikroprozessor hat vorzugsweise die erforderliche Zugriffsmöglichkeit auf den nichtflüchtigen Speicher, insbesondere auf die Register.
- Im Folgenden wird die Erfindung an Hand von Ausführungsbeispielen und unter Bezugnahme auf die Zeichnung näher erläutert, in der zeigt:
-
1 ein Flussdiagramm zur Veranschaulichung eines Verfahrens zur Ü-berwachung des Ablaufs eines Programms, gemäß einer Ausführungsform der Erfindung. -
1 zeigt ein Flussdiagramm zur Veranschaulichung eines Verfahrens zur Überwachung des Ablaufs eines Programms, gemäß einer Ausführungsform der Erfindung. Das Programm hat einen Startpunkt „START", einen Endpunkt „STOP", und dazwischen eine Mehrzahl von abzuarbeitenden Befehlen1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10 ,11 . Gemäß der Erfindung sind zwischen einigen der Befehle Startmarkierungen2* , Stoppmarkierungen10* ,7* oder kombinierte Start-/Stoppmarkierungen6* ,9* vorgesehen. An den Befehlen4 und7 ist jeweils eine Programmverzweigung vorgesehen. Je nach Programmablauf an der Programmverzweigung bei Befehl4 wird ein erster Prüfwert unter Berücksichtigung der Befehle (2 ,)3 ,4 ,5 und6 berechnet oder unter Berücksichtigung der Befehle (2 ,)3 ,4 ,8 und9 berechnet (Programmverzweigung bei4 ). Im ersten Fall (linker Programmzweig; erster Prüfwert mit Befehlen (2 ,)3 ,4 ,5 und6 ) wird in Abhängigkeit vom Programmablauf an der Programmverzweigung bei Befehl7 ein zweiter Prüfwert unter Berücksichtigung der Befehle (6 ,)7 und10 oder der Befehle6 und7 bzw. nur des Befehls7 berechnet (Programmverzweigung bei7 ). Im zweiten Fall (rechter Programmzweig; erster Prüfwert mit Befehlen (2 ,)3 ,4 ,8 und9 ) wird in Abhängigkeit vom Programmablauf an der Programmverzweigung bei Befehl7 ein zweiter Prüfwert unter Berücksichtigung der Befehle (9 ,)7 , und10 oder der Befehle9 und7 bzw. nur des Befehls7 berechnet. Der Befehl zu Beginn der mit der Startmarkierung2* ,6* bzw.9* markierten Befehlssequenz wird bei der Berechnung der jeweiligen Prüfsumme wahlweise mit berücksichtigt oder nicht mit berücksichtigt.
Claims (10)
- Verfahren zur Überwachung des Ablaufs eines Programms, wobei während der Abarbeitung des Programms ein Prüfwert auf Grundlage der Befehle einer abzuarbeitenden Befehlssequenz des Programms berechnet wird und der Prüfwert mit einem im Programm abgespeicherten Referenzwert verglichen wird, dadurch gekennzeichnet, dass im Programm eine Startmarkierung (
2* ,6* ,9* ) und eine Stoppmarkierung (6* ,9* ,7* ,10* ) vorgesehen sind, durch die die Befehlssequenz innerhalb des Programms abgegrenzt ist. - Verfahren nach Anspruch 1, wobei der Referenzwert vor der Ausführung des Programms berechnet wird und im abzuarbeitenden Programm abgespeichert wird.
- Verfahren nach Anspruch 1 oder 2, wobei der Prüfwert oder/und der Referenzwert durch Bildung einer Prüfsumme mittels eines Algorithmus berechnet wird/werden.
- Verfahren nach einem der Ansprüche 1 bis 3, wobei in die Berechnung des Prüfwerts der Befehlscode der Befehle der abzuarbeitenden Befehlssequenz eingeht.
- Verfahren nach einem der Ansprüche 1 bis 4, wobei in die Berechnung des Prüfwerts ein Wert mindestens eines parallel zur Abarbeitung des Programms geführten Programmzählers eingeht.
- Verfahren nach Anspruch 5, wobei in die Berechnung des Prüfwerts mindestens einige und höchstens sämtliche Werte des Programmzählers eingehen, die der Programmzähler während des Ablaufs des Programms von der Startmarkierung (
2* ,6* ,9* ) bis zu der Stoppmarkierung (6* ,9* ,7* ,10* ) einnimmt. - Verfahren nach einem der Ansprüche 1 bis 6, wobei eine Fehlerbehandlungsroutine veranlasst wird, falls der Vergleich ergibt, dass der Prüfwert und der Referenzwert unterschiedlich sind.
- Datenträger, insbesondere Smart Card, mit einem darin implementierten Programm, und mit einer Prüfwerteinrichtung zur Berechnung eines Prüfwerts auf Grundlage der Befehle einer abzuarbeitenden Befehlssequenz des Programms, und mit einer Vergleichseinrichtung zum Vergleichen des Prüfwerts mit einem im Programm abgespeicherten Referenzwert, dadurch gekennzeichnet, dass im Programm eine Startmarkierung (
2* ,6* ,9* ) und eine Stoppmarkierung (6* ,9* ,7* ,10* ) vorgesehen sind, durch die die Befehlssequenz innerhalb des Programms abgegrenzt ist. - Datenträger nach Anspruch 8, wobei der Referenzwert gemäß dem Verfahren nach Anspruch 2 berechnet ist.
- Datenträger nach Anspruch 8 oder 9, wobei der Prüfwert gemäß dem Verfahren nach einem der Ansprüche 3 bis 6 berechnet ist.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE200610057297 DE102006057297A1 (de) | 2006-12-05 | 2006-12-05 | Verfahren zur Überwachung des Ablaufs eines Programms |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE200610057297 DE102006057297A1 (de) | 2006-12-05 | 2006-12-05 | Verfahren zur Überwachung des Ablaufs eines Programms |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102006057297A1 true DE102006057297A1 (de) | 2008-06-12 |
Family
ID=39363043
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE200610057297 Ceased DE102006057297A1 (de) | 2006-12-05 | 2006-12-05 | Verfahren zur Überwachung des Ablaufs eines Programms |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102006057297A1 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108153285A (zh) * | 2017-12-28 | 2018-06-12 | 上汽通用五菱汽车股份有限公司 | 汽车安全监控方法、装置、存储介质及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3705736C2 (de) * | 1987-02-23 | 1988-12-01 | Nixdorf Computer Ag, 4790 Paderborn, De | |
US4920538A (en) * | 1985-06-28 | 1990-04-24 | International Business Machines Corporation | Method of checking the execution of microcode sequences |
GB2366879A (en) * | 2000-09-16 | 2002-03-20 | Ibm | Tracing a computer program execution path |
EP1161725B1 (de) * | 1999-03-09 | 2003-02-12 | Gemplus | Verfahren zur überwachung des programmablaufs |
EP1378834A2 (de) * | 2002-07-04 | 2004-01-07 | Sap Ag | Dynamische Haltepunkte für Computersoftware |
DE102005028943A1 (de) * | 2004-07-02 | 2006-02-16 | Okuma Corporation, Niwa | Numerische Steuerung, die ein in einer Schriftsprache geschriebenes Programm aufrufen kann |
DE102004051771A1 (de) * | 2004-10-15 | 2006-04-20 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Vorrichtungen und Verfahren zum Prüfen und Ermitteln von Prüfwerten |
DE102006001873A1 (de) * | 2006-01-13 | 2007-07-19 | Infineon Technologies Ag | Vorrichtung und Verfahren zum Überprüfen einer Fehlererkennungsfunktionaltität einer Speicherschaltung |
-
2006
- 2006-12-05 DE DE200610057297 patent/DE102006057297A1/de not_active Ceased
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4920538A (en) * | 1985-06-28 | 1990-04-24 | International Business Machines Corporation | Method of checking the execution of microcode sequences |
DE3705736C2 (de) * | 1987-02-23 | 1988-12-01 | Nixdorf Computer Ag, 4790 Paderborn, De | |
EP1161725B1 (de) * | 1999-03-09 | 2003-02-12 | Gemplus | Verfahren zur überwachung des programmablaufs |
DE60001393T2 (de) * | 1999-03-09 | 2003-12-11 | Gemplus, Gemenos | Verfahren zur überwachung des programmablaufs |
GB2366879A (en) * | 2000-09-16 | 2002-03-20 | Ibm | Tracing a computer program execution path |
EP1378834A2 (de) * | 2002-07-04 | 2004-01-07 | Sap Ag | Dynamische Haltepunkte für Computersoftware |
DE102005028943A1 (de) * | 2004-07-02 | 2006-02-16 | Okuma Corporation, Niwa | Numerische Steuerung, die ein in einer Schriftsprache geschriebenes Programm aufrufen kann |
DE102004051771A1 (de) * | 2004-10-15 | 2006-04-20 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Vorrichtungen und Verfahren zum Prüfen und Ermitteln von Prüfwerten |
DE102006001873A1 (de) * | 2006-01-13 | 2007-07-19 | Infineon Technologies Ag | Vorrichtung und Verfahren zum Überprüfen einer Fehlererkennungsfunktionaltität einer Speicherschaltung |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108153285A (zh) * | 2017-12-28 | 2018-06-12 | 上汽通用五菱汽车股份有限公司 | 汽车安全监控方法、装置、存储介质及系统 |
CN108153285B (zh) * | 2017-12-28 | 2020-12-15 | 上汽通用五菱汽车股份有限公司 | 汽车安全监控方法、装置、存储介质及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE60001393T2 (de) | Verfahren zur überwachung des programmablaufs | |
DE69316516T2 (de) | Gesichertes Chipkartensystem mit wiederverwendbarer Prototypkarte | |
DE60224937T2 (de) | Verfahren und anordnung zum verknüpfen von verwandelten appletdateien | |
DE102006057297A1 (de) | Verfahren zur Überwachung des Ablaufs eines Programms | |
DE102006021382B4 (de) | Personalisierung von portablen Datenträgern | |
DE102006035610A1 (de) | Speicherzugriffssteuerung und Verfahren zur Speicherzugriffssteuerung | |
DE4341887A1 (de) | Vorrichtung und Verfahren zum Verhindern einer unberechtigten Datenänderung bei einem nichtflüchtigen Speicher | |
EP2987078B1 (de) | Verfahren zum bereitstellen einer applikation auf einem sicherheitsmodul sowie ein solches sicherheitsmodul | |
EP1932122A2 (de) | Verfahren zur initialisierung und/oder personalisierung eines tragbaren datenträgers | |
WO2016096139A1 (de) | Verfahren zum bereitstellen einer sicherheitskritischen softwareapplikation auf einer computereinheit | |
DE19716015A1 (de) | Einbringen von Information auf einer Chipkarte | |
EP2619734A2 (de) | Sensor zur prüfung von wertdokumenten | |
EP2430582B1 (de) | Elektronischer schlüssel zur authentifizierung | |
WO2009086896A1 (de) | Softwareidentifikation | |
DE102010054446A1 (de) | Portabler Datenträger mit Fehlbedienungszähler | |
EP0977160B1 (de) | Verfahren und Datenverarbeitungsanordnung zum gesicherten Ausführen von Befehlen | |
EP3278265B1 (de) | Laufzeitmessung | |
DE102007027935A1 (de) | Tragbarer Datenträger und Verfahren zur Personalisierung eines tragbaren Datenträgers | |
DE19548903A1 (de) | Verfahren zur Durchführung eines Geheimcodevergleiches bei einem mikroprozessorgestützten tragbaren Datenträger | |
WO2013178426A1 (de) | Elektronisches zugangsschutzsystem, verfahren zum betrieb eines computersystems, chipkarte und firmwarekomponente | |
AT508649A2 (de) | Chipkarte mit überwachung der integrität auf softwarebasis | |
EP1638058A2 (de) | Verifizierung eines Datenträgers vor der Installation eines Anwendungsprogramms | |
DE102007007481A1 (de) | Verfahren zur Analyse einer Softwarekonfiguration eines tragbaren Datenträgers | |
EP1750217B1 (de) | Absicherung von Speichereinhalten eines Datenträgers | |
EP1564639B1 (de) | Verfahren zum Betreiben einer Datenträgervorrichtung mit Ablaufdiagnosespeicher |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OM8 | Search report available as to paragraph 43 lit. 1 sentence 1 patent law | ||
R012 | Request for examination validly filed |
Effective date: 20121108 |
|
R016 | Response to examination communication | ||
R002 | Refusal decision in examination/registration proceedings | ||
R003 | Refusal decision now final | ||
R003 | Refusal decision now final |
Effective date: 20150306 |