DE602004001293T2 - Programmintegritätsprüfung mittels Statistiken - Google Patents

Programmintegritätsprüfung mittels Statistiken Download PDF

Info

Publication number
DE602004001293T2
DE602004001293T2 DE602004001293T DE602004001293T DE602004001293T2 DE 602004001293 T2 DE602004001293 T2 DE 602004001293T2 DE 602004001293 T DE602004001293 T DE 602004001293T DE 602004001293 T DE602004001293 T DE 602004001293T DE 602004001293 T2 DE602004001293 T2 DE 602004001293T2
Authority
DE
Germany
Prior art keywords
program
execution
operations
numbers
occurrences
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.)
Active
Application number
DE602004001293T
Other languages
English (en)
Other versions
DE602004001293D1 (de
Inventor
Yannick 13011 TEGLIA
Pierre-Yvan 13790 LIARDET
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.)
STMicroelectronics SA
Original Assignee
STMicroelectronics SA
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 STMicroelectronics SA filed Critical STMicroelectronics SA
Publication of DE602004001293D1 publication Critical patent/DE602004001293D1/de
Application granted granted Critical
Publication of DE602004001293T2 publication Critical patent/DE602004001293T2/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/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/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting

Description

  • Die vorliegende Erfindung betrifft. allgemein die Ausführung von Programmen (Software-Codes) durch einen integrierten Mikroprozessor. Die Erfindung betrifft näherhin und speziell die Kontrolle der Integrität eines Programms bei seiner Ausführung, um zu überprüfen, dass das Programm seit seiner Installierung nicht absichtlich oder zufällig verändert wurde. Derartige Änderungen können von Informatikviren herrühren oder von Piraterieversuchen, die insbesondere in der Injektion von Fehlern in die Ausführung von Programmen bestehen.
  • Ein Angriff mittels Injektion von Fehlern, beispielsweise als Fehllenkung bezeichnet, kann darin bestehen, dass in der Stromspeisung des Prozessors während eines kurzen Zeitraums eine Störung eingeführt wird. Ein derartiger Angriff ruft einen unbeabsichtigten Sprung in der Sequenz der Programmausführung hervor. Zumeist tritt ein derartiger Angriff auf, wenn das Programm sich in einer Schleife befindet oder angehalten wurde infolge eines Sperrbefehls nach einem Berechtigungs-Versagen, beispielsweise in einer Anwendung, wo ein Prozessor entscheiden muss, ob eine spezielle Operation autorisiert ist (beispielsweise im Falle von Bankkarten, Autorisation einer Banküberweisung nach Authentifizierung des Benutzers).
  • Ein anderer Typ von Angriff, der die Ausführung eines Cryptographie-Algorithmus berührt, besteht darin, dass man den Programmzähler springen lässt, um einen unerwarteten Sprung in der Ausführungsfrequenz hervorzurufen, selbst wenn das Programm nicht in einer Schleife während einer Berechtigungsprüfung angehalten wurde. Beispielsweise können für crypto graphische, d. h. Verschlüsselungs-Algorithmen (DAS, RSA, DES, AES usw.) die geheimen Schlüssel mittels einer Befehlssprünge hervorrufenden Piraterie aufgedeckt werden.
  • Um den Software-Code während seiner Ausführung zu schützen, sieht man im allgemeinen eine periodische Überprüfung dieses Codes ausgehend von einem Authentifizierungsschlüssel vor, der in einem Speicher oder in der integrierten Schaltung gespeichert ist, beispielsweise bei der anfänglichen Speicherung des Programms oder seiner Installation.
  • Beispielsweise berechnet man bei der Installation oder dem Schreiben des Programms eine Signatur (Anwendung eines Chiffrier-Algorithmus auf wenigstens einen Teil des Software-Codes). Diese Signatur wird sodann innerhalb oder außerhalb der das Programm ausführenden integrierten Schaltung gespeichert. Bei der Ausführung des Software-Codes berechnet das Betriebssystem sodann erneut eine Signatur auf der Grundlage desselben Algorithmus wie dem, der bei der Erzeugung der anfänglichen Signatur verwendet wurde. Man vergleicht sodann die laufende Signatur mit der vorbestimmten Signatur. Eine Abweichung zwischen den beiden Signaturen bedeutet, dass das gespeicherte Programm verändert wurde, und ermöglicht daher die Identifizierung eines möglichen ungewollten oder zufälligen Angriffs.
  • Ein Beispiel eines derartigen Verfahrens zur Integritätsprüfung ist in der Amerikanischen Patentschrift 5 442 645 beschrieben.
  • Ein Nachteil der bekannten Lösungen ist, dass im Falle einer Aktualisierung des Software-Codes durch eine neuere Version es dann notwendig ist, die vorgegebene Signatur zu aktualisieren. Eine derartige Aktualisierung kann insbesondere bei häufiger Aktualisierung des Systems lästig sein.
  • Im übrigen kommen Aktualisierungen von Programmen immer mehr über Kommunikationsnetze vom Internet-Typ, es ist daher nicht erwünscht, die Signaturberechnungen zu vervielfachen, die in der integrierten Schaltung auf Seiten des Benutzers wieder aufgezeichnet werden müssen.
  • Ein anderer Nachteil der herkömmlichen Lösungen ist, dass die Integritätsprüfung statisch ist, d. h. zu Beginn des Programms wird überprüft, ob die Signatur autorisiert ist. Demzufolge ist ein derartiges Schutzsystem in der Praxis unwirksam, falls Fehler im Verlauf der Ausführung des Programms injiziert werden.
  • Das Dokument WO 0 169 356 zeigt eine Vorrichtung zur Detektion eines Informatikvirus, bei der die Zahl von Okkurenzen (Auftreten, Vorkommen) jedes Befehls oder jeder Befehlsgruppe während der Ausführung des Programms im Inneren einer virtuellen Maschine gezählt wird.
  • Die vorliegende Erfindung bezweckt die Schaffung eines Verfahrens zur Integritätsüberprüfung eines Programms im Verlauf der Ausführung, bei dem die Nachteile der bekannten Lösungen vermieden oder verringert werden.
  • Die Erfindung bezweckt insbesondere die Schaffung einer Lösung, welche nicht die jedesmalige Aktualisierung einer Signatur bei jeder Aktualisierung des zu schützenden Software-Codes erfordert.
  • Die Erfindung bezweckt auch die Ermöglichung einer dynamischen Überprüfung, d. h. einer Überprüfung, welche die Detektion der Einführung von Fehlern im Verlauf der Ausführung des Programms gestattet.
  • Zur Erreichung dieser und weiterer Ziele sieht die vorliegende Erfindung vor ein Verfahren zur Kontrolle der Ausführung eines Programms unter Benutzung aufeinanderfolgender Operationen, wobei das Verfahren darin besteht, dass
    • – während der Ausführung des Programms jeweils jede Operation mit einer vor-erstellten Liste verglichen wird und für jede in der Liste enthaltene Operation eine Zahl von Okkurenzen, d. h. Auftritten bzw. Vorkommen dieser Operation, inkrementiert und gespeichert wird, sowie
    • – zum Ende der Ausführung des Programms die Zahl von Okkurenzen der laufenden Ausführung des Programms für jede Operation mit zuvor gespeicherten und jeder Operation zugeordneten Bereichen von Okkurenzzahlen verglichen wird.
  • Gemäß einer Ausführungsform der vorliegenden Erfindung werden die genannten Bereiche von Werten durch Analyse der möglichen statistischen Abstände der Okkurenzzahlen bei einer oder mehreren Ausführungen des Programms bestimmt.
  • Gemäß einer Ausführungsform der vorliegenden Erfindung werden die laufenden Okkurenzzahlen in einer Tabelle gespeichert.
  • Gemäß einer Ausführungsform der vorliegenden Erfindung wird der Inkrementbetrag als Funktion der Art bzw. Natur und/oder der Stellung der Operation in dem Programm gewichtet.
  • Die Erfindung sieht auch einen Prozessor zur Ausführung eines Programms vor, der eine Zone zur Speicherung einer Tabelle von Okkurenzzahlen von Operationen während der Ausführung eines Programms umfasst.
  • Diese und weitere Ziele, Gegenstände, Merkmale, Eigenschaften und Vorteile der vorliegenden Erfindung werden in der folgenden nicht-einschränkenden Beschreibung spezieller Ausführungsbeispiele im einzelnen auseinandergesetzt, unter Bezugnahme auf die beigefügte Zeichnungsfigur, welche in sehr schematischer Form eine Ausführungsform der vorliegenden Erfindung veranschaulicht.
  • Aus Gründen der Klarheit und Übersichtlichkeit sind nur die für das Verständnis der Erfindung notwendigen Elemente und Stufen dargestellt und im folgenden beschrieben. Insbesondere wurden die von der Ausübung der Erfindung betroffenen Operatoren oder Befehle nicht im einzelnen detailliert, da die Erfindung unabhängig vom jeweiligen Typ des Operators anwendbar ist. Des weiteren wurden sämtliche Bestandteile, die für die Ausführung eines Programms, sei es mittels einer Software oder mittels einer Maschine mit verdrahteten Logikzuständen, notwendig sind, nicht im einzelnen detailliert, da es sich hierbei um die Anwendung herkömmlicher Elemente handelt.
  • Ein Merkmal der vorliegenden Erfindung ist, im Verlauf der Ausführung eines zu überwachenden Programms die Anzahl von Okkurenzen, d. h. des Auftretens bzw. Vorkommens von Operatoren, Befehlen oder vorgegebenen Gruppen von Befehlen zu kumulieren und am Ende der Ausführung des Programms zu kontrollieren, dass die Zahlen detektierter Okkurenzen in einem Bereich zulässiger Werte bleiben für die Annahme, dass das eben ausgeführte Programm authentisch ist.
  • Vorzugsweise werden die Bereiche zulässiger Änderungen in statistischer Weise in Abhängigkeit von dem jeweiligen Typ des betreffenden Operators, Befehls oder der betreffenden Befehlsgruppe berechnet. Für eine derartige Bestimmung trägt man insbesondere der mittleren Frequenz bzw. Häufigkeit des Auftretens einer gegebenen Operation in einem Programm Rechnung.
  • Im folgenden wird der Ausdruck Operator oder Operation verwendet, um die Elemente des Programms zu bezeichnen, deren Okkurenz-Zahlen (Zahlen von Auftritten bzw. Vorkommen) gemäß der Erfindung überwacht werden. So kann eine Operation ein Operations-Code, ein Befehl oder eine Gruppe von Befehlen (beispielsweise der Zugriff auf eine Speicheradresse oder auf ein Register, sei es zum Lesen oder zum Schreiben eines Datums oder zur Ausführung eines gespeicherten Codes) sein und allgemeiner jedes digitale Element, das sich zur Überwachung nach der Zahl seines Auftretens in einem Informatikprogramm eignet.
  • Gemäß einer bevorzugten Ausführungsform wird weiterhin eine Tabelle von Okkurenzen der zu überwachenden Operationen berechnet und bei einer oder mehreren Ausführung(en) des Programms (beispielsweise mit Zufallsdaten) gespeichert und hieraus werden Statistiken abgeleitet oder, als Variante, bei der Konzeption oder der Installation des Programms.
  • Die beigefügte Zeichnungsfigur veranschaulicht, in sehr schematischer Weise und in Blockform, eine Ausführungsform des Verfahrens gemäß der Erfindung. Diese Figur veranschaulicht die Ausführung eines Programms, das mit dem Verfahren der Erfindung überwacht werden soll.
  • Beim Start eines Programms (Block 1, START) werden bestimmte Bestandteile bzw. Komponenten in herkömmlicher Weise initialisiert (beispielsweise der Programmzähler). Gemäß der Erfindung nutzt man diese Initialisierungsstufe (Block 2, INIT(j, Nb, ...)) zur Initialisierung einer gespeicherten Tabelle 10 von Okkurenzen, die innerhalb oder außerhalb der das Programm ausführenden integrierten Schaltung gespeichert ist. Diese Tabelle 10 ordnet gemäß der Erfindung jeweils jedem Typ TYPE von zu überwachender Operation OPEi eine Zahl Nbi von Auftritten bzw. Okkurenzen dieser Operation während der Ausführung des Programms zu.
  • Die Okkurenzen-Tabelle und insbesondere die Typen von zu überwachenden Operationen werden gemäß einer Ausführungsform zu Beginn des ausgeführten Programms definiert. Als Abwandlung oder Alternative werden für ein gegebenes Werkzeug (integrierte Schaltung) bestimmte Operationen, deren Okkurenz-Zahlen unabhängig von dem Programm, das jeweils ausgeführt wird, überwacht werden sollen, vorher definiert.
  • In herkömmlicher Weise besteht die Ausführung eines Programms in der aufeinanderfolgenden Ausführung (Block 3, EXECUTE OPj) der verschiedenen Befehle, Operatoren oder Gruppen von Befehlen, bis zum Ende des Programms. So kann man diese Ausführung durch eine Schleife symboli sieren, in welcher man jedes Mal bei Beendigung einer Operation zur Ausführung des nächsten Operators übergeht (Block 4, NEXTj).
  • Gemäß der Erfindung führt man innerhalb der Ausführungsschleife, d. h. unmittelbar nach der Ausführung einer Operation (Block 3), eine Funktion (Block 5, Nbi(OPj)+1) der Inkrementierung der Okkurenz-Zahl der laufenden Operation in der Tabelle 10 aus.
  • Die Durchführung einer derartigen Funktion liegt im Bereich des fachmännischen Könnens, ausgehend von den in der vorliegenden Beschreibung gegebenen funktionellen Hinweisen. Vereinfacht gesagt handelt es sich um eine einfache Identitätssuchfunktion zwischen der laufenden Operation und einer vorerstellten Liste der Tabelle 10, und wenn die Operation einer aus der Liste entspricht, inkrementiert man in dieser Tabelle den Zähler der Okkurenzen-Zahl.
  • Sobald die Ausführung des Programms beendet ist, d. h. wenn es keine zu behandelnde Operation OPj mehr gibt, endet das mit der betreffenden Anwendung verknüpfte Programm selbst. Man führt dann eine spezielle Funktion (Block 6, STAT Nb) gemäß einer bevorzugten Ausführungsform der Erfindung aus, die darin besteht, dass man aus einem vorzugsweise nichtflüchtigen Speicher, aus einer externen Abfrage an einen Daten-Server usw. eine voretablierte Tabelle statistischer Okkurenzen auszieht.
  • Sodann vergleicht man (Block 7, COMP Nb) die laufenden Okkurenz-Zahlen der Tabelle 10 relativ mit dem Bereich zulässiger Werte nach der statistischen Tabelle 6.
  • Wenn die laufenden Zahlen in den zulässigen Bereichen liegen, endet das Programm (Block 8, END) in normaler Weise. Im gegenteiligen Fall erzeugt das Verfahren der Erfindung eine Alarmmeldung bzw. -botschaft (Block 9, ERROR).
  • Die Referenztabelle wird beispielsweise bei der Installation des Programms berechnet oder bei seiner ersten Ausführung, zur Bestimmung der Anzahl von Okkurenzen der verschiedenen für die Anwendung der Erfindung bedeutsamen Operationen.
  • Die Sammlung statistischer Informationen über das Auftreten der Operationen des Programms gestattet die Überprüfung bei späteren Anwendungen, dass es keinen im statistischen Sinn signifikanten Abstand zwischen den gespeicherten vorbestimmten Werten und den laufenden Werten gibt. Wenn so auf dem betreffenden Träger eine Aktualisierung des Programms registriert wird, besteht kein Grund für eine Änderung seiner statistischen Signatur. Falls es hingegen zu einem Piraterieversuch durch Fehlerinjektion kommt oder wenn eine Einführung eines Virus die Funktion des Programms stört, wird die statistische Signatur verschieden, was die Detektion einer Art von Fehlerwahrscheinlichkeit gestattet. Gemäß einer speziellen Ausführungsform ist es dabei möglich, nur die partiellen Statistiken betreffend den Teilen des Programms zu speichern, die als am kritischsten oder als am wenigsten einer Änderung unterworfen angesehen werden.
  • Gemäß einer anderen Ausführungsform kann man dabei eine zeitliche oder Lage- bzw. Stellungsgewichtung in dem Programm der Okkurenz-Statistiken der Operationen anwenden in dem Maß, in dem, beispielsweise was die Informatikviren betrifft, man weiß, dass diese prioritär den Beginn des Programms modifizieren werden, mit dem Ziel, sich als erstes zur Ausführung zu bringen und sodann Platz für das anfängliche Programm zu lassen. In diesem Fall werden die verwendeten ersten Operator-Codes einen höheren Gewichtungskoeffizienten erhalten, um leichter einen Betrugsversuch nachzuweisen.
  • Zur Auswahl der Operationen, deren Okkurenz-Zahl man zu überwachen wünscht, kann man den Typ von Operation in Rechnung stellen, den man zu überwachen sucht. Wenn beispielsweise das Verfahren der Erfindung speziell zur Detektion der Anwesenheit eines Informatikvirus bestimmt ist, kann man insbesondere die Schreiboperationen im Speicher zu überwachen suchen, im Wissen, dass es dieser Typ von Operationen ist, den ein Informatikvirus in privilegierter Weise bewirkt.
  • Die Wahl der Typen von Operationen, Befehlen, Befehlsgruppen, die hinsichtlich der Okkurenz-Zahl untersucht werden sollen, liegt im Bereich des fachmännischen Könnens, in Abhängigkeit von der Anwendung und dem betreffenden Programmtyp. Beispielsweise kann man die Zahl von Zugriffen auf den äußeren Speicher, die Zahl von Multiplikationen, die Zahl von Ladevorgängen von Zufallsdaten usw. zählen.
  • Ein Vorteil der Erfindung ist, dass im Falle einer Aktualisierung des Programms die statistische Signatur dieselbe bleibt. Insbesondere ändern sich die konstitutiven Operationen eines Algorithmus vom Typ DES (Data Enscription Standard) von einer Version zu einer anderen nicht.
  • Ein anderer Vorteil der Erfindung ist, dass die Überprüfung am Ende der Ausführung des Programms erfolgt. So können die Injektionen von Fehlern detektiert werden.
  • Selbstverständlich ist die vorliegende Erfindung verschiedenen Abwandlungen und Modifikationen zugänglich, die sich für den Fachmann ergeben. Insbesondere hängen die Zahl und der Typ von Operationen von dem Programm ab, dessen Ausführung man zu überwachen wünscht.
  • Außerdem kann die statistisch akzeptable Toleranz für die Okkurenz-Zahlen der überwachten Operationen in der Praxis der Festlegung eines Schwellwerts um einen vorbestimmten Wert bei der ersten Ausführung des Programms entsprechen. In dieser Hinsicht erkennt man, dass der Toleranzbereich um diesen Wert herum nicht nur dazu dient, die Installation von Aktualisierungen ohne Notwendigkeit einer Modifikation der vorregistrierten Okkurenz-Tabelle zu ermöglichen, sondern auch um der Tatsache Rechnung zu tragen, dass bestimmte Operationen von einer Ausführung der Software zu einer anderen unterschiedlich oft ausgeführt werden können (beispielsweise Operatoren vom Typ Anzahl von Durchgängen in einer Schleife, die von einem Eingangsdatum abhängt, Anzahl von Erhebungen ins Quadrat und von Multiplikationen, die vom Exponenten der modularen Exponentenerhebung abhängt (sogenannte ,Square-Multiply'), oder Anzahl der Ausführungen einer elementaren Funktion des Schreibens in einen Speicher, die von der Größe des zu schreibenden Datums abhängt).

Claims (4)

  1. Verfahren zur Kontrolle der Ausführung eines Programms unter Benutzung bzw. Verarbeitung aufeinanderfolgender sukzessiver Operationen (OPj), das Verfahren bestehend in: während der Ausführung des Programms Vergleichen jeweils jeder Operation (OPj) mit einer vorbestimmten Liste (10), und für jeweils jede in der Liste (10) enthaltene Operation Inkrementieren und Speichern einer Zahl von Okkurrenzen, d.h. Auftritten bzw. Vorkommen (NBi) dieser Operation, sowie zum Ende der Ausführung des Programms Vergleichen der Zahl von Okkurrenzen (NBi) der laufenden Programmausführung für jede Operation (OPEi), dadurch gekennzeichnet, dass der Vergleich mit zuvor gespeicherten und jeweils jeder Operation zugeordneten bzw. zugewiesenen Bereichen von Okkurrenzzahlen erfolgt, wobei die genannten Bereiche durch Analyse der möglichen statistischen Abweichungen bzw. Abstände der Zahlen von Okkurrenzen (NBi) relativ bezüglich einer oder mehreren Ausführung(en) des Programms bestimmt werden.
  2. Verfahren nach Anspruch 1, bei welchem die laufenden Zahlen von Okkurrenzen in einer Tabelle (10) gespeichert werden.
  3. Verfahren nach Anspruch 1, bei welchem der Inkrementwert in Abhängigkeit von der Natur und/oder von der Stellung der Operation in dem Programm gewichtet wird.
  4. Prozessor zur Ausführung eines Programms, dadurch gekennzeichnet, dass er eine Zone zur Speicherung einer Tabelle (10) Zahlen von Okkurrenzen, d.h. von Auftritten- bzw. des Vorkommens von Operationen bei der Ausführung eines Programms aufweist, wobei die genannte Tabelle für die Ausführung des Verfahrens nach einem der Ansprüche 1 bis 3 verwendet wird.
DE602004001293T 2003-06-26 2004-06-25 Programmintegritätsprüfung mittels Statistiken Active DE602004001293T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0350258 2003-06-26
FR0350258 2003-06-26

Publications (2)

Publication Number Publication Date
DE602004001293D1 DE602004001293D1 (de) 2006-08-03
DE602004001293T2 true DE602004001293T2 (de) 2007-05-31

Family

ID=33427717

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602004001293T Active DE602004001293T2 (de) 2003-06-26 2004-06-25 Programmintegritätsprüfung mittels Statistiken

Country Status (3)

Country Link
US (1) US8239833B2 (de)
EP (1) EP1494104B1 (de)
DE (1) DE602004001293T2 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7860239B2 (en) * 2004-07-07 2010-12-28 International Business Machines Corporation Method and apparatus for metering usage of software products using multiple signatures
US8010947B2 (en) * 2006-05-23 2011-08-30 International Business Machines Corporation Discovering multi-component software products based on weighted scores
US20080134321A1 (en) * 2006-12-05 2008-06-05 Priya Rajagopal Tamper-resistant method and apparatus for verification and measurement of host agent dynamic data updates
US8296739B2 (en) * 2008-03-31 2012-10-23 International Business Machines Corporation Testing soft error rate of an application program
US11176010B2 (en) * 2019-04-15 2021-11-16 International Business Machines Corporation Circuit-cycle reproduction

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2834171B2 (ja) * 1989-02-06 1998-12-09 株式会社日立製作所 コンパイル方法
JPH08263438A (ja) * 1994-11-23 1996-10-11 Xerox Corp ディジタルワークの配給及び使用制御システム並びにディジタルワークへのアクセス制御方法
US5668999A (en) * 1994-12-20 1997-09-16 Sun Microsystems, Inc. System and method for pre-verification of stack usage in bytecode program loops
WO1998025195A2 (en) * 1996-12-03 1998-06-11 Ergolight Ltd. Computerized apparatus and methods for identifying usability problems of a computerized system
US5809450A (en) * 1997-11-26 1998-09-15 Digital Equipment Corporation Method for estimating statistics of properties of instructions processed by a processor pipeline
US6681331B1 (en) * 1999-05-11 2004-01-20 Cylant, Inc. Dynamic software system intrusion detection
US6470492B2 (en) * 1999-05-14 2002-10-22 Hewlett-Packard Company Low overhead speculative selection of hot traces in a caching dynamic translator
IL132619A (en) * 1999-10-27 2003-07-06 Eci Telecom Ltd Linked lists
US6971019B1 (en) 2000-03-14 2005-11-29 Symantec Corporation Histogram-based virus detection
US6681383B1 (en) * 2000-04-04 2004-01-20 Sosy, Inc. Automatic software production system
US6567924B1 (en) * 2000-04-07 2003-05-20 Hewlett-Packard Development Company, L.P. Technique for practically measuring cycle-by-cycle repeatable system behavior
US7007270B2 (en) * 2001-03-05 2006-02-28 Cadence Design Systems, Inc. Statistically based estimate of embedded software execution time
JP4009437B2 (ja) * 2001-05-09 2007-11-14 株式会社ルネサステクノロジ 情報処理装置
GB2376764B (en) * 2001-06-19 2004-12-29 Hewlett Packard Co Multiple trusted computing environments
US7065746B2 (en) * 2002-01-11 2006-06-20 Stone Bond Technologies, L.P. Integration integrity manager
US6880149B2 (en) * 2002-04-01 2005-04-12 Pace Anti-Piracy Method for runtime code integrity validation using code block checksums
US7367022B2 (en) * 2002-09-05 2008-04-29 Intel Corporation Methods and apparatus for optimizing the operating speed and size of a computer program
JP4018498B2 (ja) * 2002-10-15 2007-12-05 キヤノン株式会社 管理装置、管理方法、制御プログラム
US20040193467A1 (en) * 2003-03-31 2004-09-30 3M Innovative Properties Company Statistical analysis and control of preventive maintenance procedures
US7194732B2 (en) * 2003-06-26 2007-03-20 Hewlett-Packard Development Company, L.P. System and method for facilitating profiling an application
US7457781B1 (en) * 2003-09-05 2008-11-25 Sprint Spectrum L.P. Method and system for enforcing simultaneous user licenses for applications running on wireless devices
US7328217B2 (en) * 2003-11-26 2008-02-05 Symantec Operating Corporation System and method for detecting and storing file identity change information within a file system
US7644287B2 (en) * 2004-07-29 2010-01-05 Microsoft Corporation Portion-level in-memory module authentication
US8156488B2 (en) * 2004-10-20 2012-04-10 Nokia Corporation Terminal, method and computer program product for validating a software application
US8234638B2 (en) * 2004-12-28 2012-07-31 Hercules Software, Llc Creating a relatively unique environment for computing platforms
US7529738B2 (en) * 2005-07-28 2009-05-05 International Business Machines Corporation On-demand service reconciliation, audit, and alert apparatus and method

Also Published As

Publication number Publication date
US8239833B2 (en) 2012-08-07
DE602004001293D1 (de) 2006-08-03
EP1494104B1 (de) 2006-06-21
US20040268313A1 (en) 2004-12-30
EP1494104A1 (de) 2005-01-05

Similar Documents

Publication Publication Date Title
DE602005005422T2 (de) Verfahren zum erfassen und reagieren auf einen möglichen angriff auf eine sicherheitsdurchsetzungsoperation unter einsatz einer kryptographischen marke oder karte
DE602006000878T2 (de) Verfahren zur Steuerung eines Ressourcenzugriffs eines Prozesses durch einen Elternprozess
EP2188755A1 (de) Verfahren und vorrichtung zur sicherung eines programms gegen eine kontrollflussmanipulation und gegen einen fehlerhaften programmablauf
DE60100363T2 (de) Sequenznummerierungsmechanismus zur sicherung der ausführungsordnungs-integrietät von untereinander abhängigen smart-card anwendungen
DE602004001293T2 (de) Programmintegritätsprüfung mittels Statistiken
DE19626972A1 (de) Verfahren und Vorrichtung zur vorläufigen Freigabe für die Anwendung eines von einer elektronischen Kassette geschützten Programms
EP3720039A1 (de) Verfahren für das konfigurieren eines sicherheitsmoduls mit mindestens einem abgeleiteten schlüssel
EP1439446A1 (de) Verfahren zum Erweitern eines Programms um eine Kopierschutzfunktion
EP3286683A1 (de) System und verfahren zur überwachung der integrität einer von einem serversystem an ein clientsystem ausgelieferten komponente
EP2675103A2 (de) Gegen Ausspähen geschützte kryptographische Berechnung
DE102015112837A1 (de) Vorrichtung und Verfahren zur Verhinderung des Klonens von Code
DE10307797B4 (de) Vorrichtung und Verfahren zum Ermitteln einer Unregelmäßigkeit in einem Ablauf eines Nutzprogramms
DE102018115758A1 (de) Sicherheit von Java-Card-Schlüsselobjekten
EP0977160B1 (de) Verfahren und Datenverarbeitungsanordnung zum gesicherten Ausführen von Befehlen
EP1105798B1 (de) Verfahren, anordnung sowie ein satz mehrerer anordnungen zum schutz mehrerer programme und/oder mehrerer dateien vor einem unbefugten zugriff durch einen prozess
DE10258323A1 (de) Verschlüsselungsverfahren
EP1750217B1 (de) Absicherung von Speichereinhalten eines Datenträgers
EP3742319B1 (de) Seitenkanalsichere implementierung
AT524619A1 (de) Computerimplementiertes Verfahren zum autorisierten Ausführen einer Software, System zur Datenverarbeitung, Computerprogrammprodukt und computerlesbares Speichermedium
EP1602017A2 (de) Verfahren zum betreiben eines mikroprozessors und eine mikroprozessoranordung
DE102004047191A1 (de) Manipulationsgeschütztes Mikroprozessorsystem und Betriebsverfahren dafür
DE102014219450A1 (de) Rechensystem
EP1460510B1 (de) Verfahren zur sicheren Kommunikation zwischen einer Datenverarbeitungsanlage und einer Sicherheitseinrichtung
EP4332803A1 (de) Verfahren zur erkennung eines unberechtigten zugriffs auf nutzdaten in einem cloudspeicher
EP0184023A1 (de) Verfahren und Einrichtung zum Schutz vor unberechtigtem Betrieb geschützter Programme in einem Mikrocomputer

Legal Events

Date Code Title Description
8364 No opposition during term of opposition