DE102006057297A1 - Verfahren zur Überwachung des Ablaufs eines Programms - Google Patents

Verfahren zur Überwachung des Ablaufs eines Programms Download PDF

Info

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
Application number
DE200610057297
Other languages
English (en)
Inventor
Franz Dr. Weikmann
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Giesecke and Devrient GmbH
Original Assignee
Giesecke and Devrient GmbH
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 Giesecke and Devrient GmbH filed Critical Giesecke and Devrient GmbH
Priority to DE200610057297 priority Critical patent/DE102006057297A1/de
Publication of DE102006057297A1 publication Critical patent/DE102006057297A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test 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 schreibt EP 1 16 725 B1 ein Verfahren, bei dem vor der Ausführung eines Programms ein Referenzwert über aus den Befehlen einer abzuarbeitenden Befehlssequenz des Programms extrahierte Werte berechnet wird, während der Abarbeitung des Programms ein Prüfwert über die Befehle der abzuarbeitenden Befehlssequenz berechnet wird und der Prüfwert mit dem Referenzwert verglichen wird. Falls der Prüfwert und der Referenzwert nicht übereinstimmen, wird eine von mehreren möglichen Fehlerbehandlungen veranlasst.
  • 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, liefert EP 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 Befehlen 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11. Gemäß der Erfindung sind zwischen einigen der Befehle Startmarkierungen 2*, Stoppmarkierungen 10*, 7* oder kombinierte Start-/Stoppmarkierungen 6*, 9* vorgesehen. An den Befehlen 4 und 7 ist jeweils eine Programmverzweigung vorgesehen. Je nach Programmablauf an der Programmverzweigung bei Befehl 4 wird ein erster Prüfwert unter Berücksichtigung der Befehle (2,) 3, 4, 5 und 6 berechnet oder unter Berücksichtigung der Befehle (2,) 3, 4, 8 und 9 berechnet (Programmverzweigung bei 4). Im ersten Fall (linker Programmzweig; erster Prüfwert mit Befehlen (2,) 3, 4, 5 und 6) wird in Abhängigkeit vom Programmablauf an der Programmverzweigung bei Befehl 7 ein zweiter Prüfwert unter Berücksichtigung der Befehle (6,) 7 und 10 oder der Befehle 6 und 7 bzw. nur des Befehls 7 berechnet (Programmverzweigung bei 7). Im zweiten Fall (rechter Programmzweig; erster Prüfwert mit Befehlen (2,) 3, 4, 8 und 9) wird in Abhängigkeit vom Programmablauf an der Programmverzweigung bei Befehl 7 ein zweiter Prüfwert unter Berücksichtigung der Befehle (9,) 7, und 10 oder der Befehle 9 und 7 bzw. nur des Befehls 7 berechnet. Der Befehl zu Beginn der mit der Startmarkierung 2*, 6* bzw. 9* markierten Befehlssequenz wird bei der Berechnung der jeweiligen Prüfsumme wahlweise mit berücksichtigt oder nicht mit berücksichtigt.

Claims (10)

  1. 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.
  2. Verfahren nach Anspruch 1, wobei der Referenzwert vor der Ausführung des Programms berechnet wird und im abzuarbeitenden Programm abgespeichert wird.
  3. 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.
  4. Verfahren nach einem der Ansprüche 1 bis 3, wobei in die Berechnung des Prüfwerts der Befehlscode der Befehle der abzuarbeitenden Befehlssequenz eingeht.
  5. 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.
  6. 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.
  7. 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.
  8. 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.
  9. Datenträger nach Anspruch 8, wobei der Referenzwert gemäß dem Verfahren nach Anspruch 2 berechnet ist.
  10. Datenträger nach Anspruch 8 oder 9, wobei der Prüfwert gemäß dem Verfahren nach einem der Ansprüche 3 bis 6 berechnet ist.
DE200610057297 2006-12-05 2006-12-05 Verfahren zur Überwachung des Ablaufs eines Programms Ceased DE102006057297A1 (de)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108153285A (zh) * 2017-12-28 2018-06-12 上汽通用五菱汽车股份有限公司 汽车安全监控方法、装置、存储介质及系统

Citations (8)

* Cited by examiner, † Cited by third party
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

Patent Citations (9)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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