DE10341593B4 - Prozessor und Verfahren zum Ausführen einer Sequenz von Befehlen - Google Patents

Prozessor und Verfahren zum Ausführen einer Sequenz von Befehlen Download PDF

Info

Publication number
DE10341593B4
DE10341593B4 DE2003141593 DE10341593A DE10341593B4 DE 10341593 B4 DE10341593 B4 DE 10341593B4 DE 2003141593 DE2003141593 DE 2003141593 DE 10341593 A DE10341593 A DE 10341593A DE 10341593 B4 DE10341593 B4 DE 10341593B4
Authority
DE
Germany
Prior art keywords
test
command
memory
checking
processing device
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.)
Expired - Fee Related
Application number
DE2003141593
Other languages
English (en)
Other versions
DE10341593A1 (de
Inventor
Franz Klug
Steffen Sonnekalb
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE2003141593 priority Critical patent/DE10341593B4/de
Publication of DE10341593A1 publication Critical patent/DE10341593A1/de
Application granted granted Critical
Publication of DE10341593B4 publication Critical patent/DE10341593B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error 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)
  • Storage Device Security (AREA)

Abstract

Prozessor zum Ausführen einer Mehrzahl von Befehlen, mit folgenden Merkmalen:
einer Verarbeitungseinrichtung (10) zum Ausführen der Befehle;
einer Einrichtung (14) zum Überprüfen einer ordnungsgemäßen Ausführung eines Befehls, wobei die Einrichtung (14) zum Überprüfen ausgebildet ist, um einen nicht-ordnungsgemäßen Verlauf bei der Ausführung des Befehls durch die Verarbeitungseinrichtung (10) zu detektieren;
einer Einrichtung (18) zum Testen der Einrichtung zum Überprüfen, wobei die Einrichtung (18) zum Testen ausgebildet ist, um bei der Ausführung eines Testbefehls durch die Verarbeitungseinrichtung (10), wobei der Testbefehl so gestaltet ist, daß die Einrichtung (14) zum Überprüfen in einem intakten Zustand bei der Ausführung des Testbefehls durch die Verarbeitungseinrichtung (10) einen nicht-ordnungsgemäßen Verlauf detektieren würde, eine Reaktion der Einrichtung (14) zum Überprüfen ansprechend auf die Ausführung des Testbefehls zu erfassen, und, um in dem Fall, in dem die Reaktion der Einrichtung zum Überprüfen von einer dem Testbefehl zugeordneten erwarteten Reaktion abweicht, einen Problemzustand zu...

Description

  • Die vorliegende Erfindung bezieht sich auf Prozessoren und insbesondere auf Prozessoren, die gegenüber externen Angriffen zum Ausspionieren von in den Prozessoren verarbeiteten Geheimnissen geschützt sind.
  • Die zunehmende Verbreitung von elektronischen Transaktionen, die die Verarbeitung von sensiblen Informationen mit sich bringen, hat dazu geführt, daß auch die auf eine solche Informationsverarbeitung gerichteten Angriffe immer effizienter und ausgefeilter werden.
  • Wenn an ein Kryptographiesystem gedacht wird, bei dem eine Nachricht verschlüsselt wird bzw. eine Signatur erzeugt wird, so besteht ein Angriff auf ein solches System darin, alle möglichen Schlüssel auszuprobieren, wobei davon ausgegangen wird, daß nur eine Entschlüsselung mit einem richtigen Schlüssel zu einem sinnvollen Ergebnis führt. Solche Angriffe, die auch als Brute-Force-Attacken bezeichnet werden, können sowohl auf symmetrische Kryptosysteme, wie beispielsweise ein System auf der Basis des DES oder AES, als auch auf asymmetrische Kryptosysteme, wie beispielsweise ein Kryptosystem auf der Basis von RSA oder elliptische Kurven, ausgeführt werden. Gegenmaßnahmen gegen solche Angriffe bestehen darin, die Schlüssel immer länger zu machen, so daß ein Angreifer trotz Verwendung modernster und schnellster Computer theoretisch Jahrzehnte benötigen würde, um alle verfügbaren Schlüssel durchzuprobieren.
  • In jüngerer Zeit haben jedoch auch sogenannte Seitenkanalangriffe (Side Channel Attacks) immer mehr Aufmerksamkeit erregt. Diese Angriffe bestehen darin, nicht unmittelbar z. B. alle möglichen Schlüssel durchzuprobieren, sondern physikali sche Informationen von der elektronischen Schaltung zu gewinnen, die eine Kryptographieberechnung ausführt. So hat sich herausgestellt, daß für einen Angreifer wertvolle Informationen aus dem Stromverbrauch einer Schaltung gewonnen werden können, da eine Korrelation zwischen dem Stromverbrauch der Schaltung und den Daten, die die Schaltung verarbeitet, existiert. Dies ist insbesondere bei CMOS-Schaltungen der Fall. CMOS-Schaltungen haben in ihrem statischen Zustand einen nahezu verschwindend geringen Energieverbrauch, während sie dann, wenn sie dynamisch sind, also wenn sie von einem Zustand in den anderen Zustand wechseln, einen kurzzeitigen vergleichsweise hohen Energieverbrauch haben.
  • Solchen Attacken wird dadurch begegnet, daß versucht wird, die Korrelation zwischen dem Stromverbrauch bzw. einer von der Schaltung emittierten elektrischen Strahlung und den von der Schaltung verarbeiteten Daten so weit als möglich zu zerstören. Dies kann durch Hinzuschalten zusätzlicher Stromverbraucher erreicht werden. Alternative und wirkungsvolle Maßnahmen bestehen darin, die Schaltung doppelt auszuführen und mit komplementären Daten zu betreiben, und zusätzlich vor jedem Nutztakt einen Precharge-Takt einzuführen. Dieses Konzept wird in der Technik auch als Dual-Rail mit Precharge bezeichnet.
  • So existieren jedoch neben diesen Angriffen auch weitere in jüngster Zeit bekannt gewordene Angriffe, die auch als DFA-Attacken bekannt sind. DFA steht hier für Differential Fault Analysis. Dieser Angriff basiert darauf, daß eine elektronische Schaltung bewußt in einen Extremzustand versetzt wird, um nicht mehr „richtig" zu rechnen, sondern falsch zu rechnen. Ein solcher Extremzustand besteht z. B. darin, daß der Chip selbst unter eine ausreichend hohe mechanische Spannung gesetzt wird, daß aufgrund des hohen Spannungszustands Bitfehler in Speichern des Chips oder Bitfehler in Logikgattern des Chips auftreten. Alternative Möglichkeiten bestehen darin, den Chip thermisch zu belasten, dahingehend, daß die Um gebungstemperatur des Chips weit über die normale Betriebstemperatur angehoben wird, so daß aufgrund der hohen Temperaturen im Chip Fehler in Speicher- oder Logikelementen auftreten. Wieder eine andere Möglichkeit besteht darin, entweder den gesamten Chip oder bestimmte Bereiche des Chips mit Lichtblitzen hoher Intensität zu beaufschlagen. Aufgrund der hohen Lichtenergie können ebenfalls Fehler in den Speicher- oder Logikelementen des Chips induziert werden, so daß eine Berechnung fehlerhaft stattfindet.
  • In jüngster Zeit wurde dargelegt, daß insbesondere dann, wenn als Kryptosystem ein RSA-System verwendet wird, das auf der Basis des chinesischen Restsatzes arbeitet, bereits eine fehlerhafte Ausgabe ausreichen kann, um den privaten Schlüssel des RSA-Systems zu eruieren.
  • Gegenmaßnahmen hierfür bestehen darin, die physikalischen Eingriffe auf den Chip durch physikalische Sensoren, wie beispielsweise Streßsensoren, Temperatursensoren, optische Sensoren etc. zu erfassen. Sobald ein solcher Angriff erfaßt ist, kann von der Anwendung, die Ziel der Attacke ist, ein sogenannter Trap zum Betriebssystem signalisiert werden, um das Betriebssystem dazu zu veranlassen, z. B. eine Ausgabe des fehlerhaften Wertes zu unterbinden.
  • Weitere – noch gezieltere – Angriffe bestehen darin, bestimmte Schutzeinrichtungen gegen Attacken mit einer auf eine solche Schutzeinrichtung oder Überprüfungseinrichtung gerichteten gezielten Attacke außer Betrieb zu setzen. Diese Möglichkeit sei anhand einer Geldkarte dargestellt. Gelingt es einem Angreifer, herauszufinden, wo in einem nicht-flüchtigen Speicher einer Geldkarte der aktuelle Geldbetrag gespeichert ist, so wäre ein Ziel des Angreifers dahingehend zu sehen, daß er durch gezieltes Beeinflussen den Speicherbereich beeinträchtigt, so daß sich der dort geschriebene Betrag verändert. Selbst bei einem nicht-gezielten Einfluß ist bei einem solchen Angriff die Wahrscheinlichkeit hoch, daß, wenn viele Geldkarten diesbezüglich beeinträchtigt werden, bei der einen oder anderen Geldkarte der gespeicherte Geldbetrag durch den Angriff auf die Karte tatsächlich erhöht wird, was im Sinne des Angreifers sein wird.
  • Eine andere Angriffsmöglichkeit könnte darin bestehen, daß der Angreifer versucht, von sich aus den nicht-flüchtigen Speicher zu beschreiben, und zwar mit einem Geldbetrag in seinem Sinne. Um dies zu verhindern, haben typische Geldkarten eine Überprüfungseinrichtung dahingehend, daß der Speicherbereich, wo der Geldbetrag gespeichert ist, nicht einfach so beschrieben werden kann, sondern nur wenn bestimmte Voraussetzungen bestehen, die typischerweise per Hardware in der Chipkarte abgeprüft werden. Würde es jedoch einem Angreifer gelingen, die Hardwareüberprüfung außer Kraft zu setzen, so könnte der Angreifer dennoch Erfolg haben.
  • Insbesondere auf Hardware-Überprüfungseinrichtungen, die oftmals aus Platz- und Schnelligkeitsgründen nötig sind, können Angriffe durch ein sogenanntes FIB oder Forcing geführt werden. Wird beispielsweise der Fall betrachtet, daß das Ausgangssignal eines Komparators im logisch hohen Zustand eine Aktivität erlaubt, und im logisch niedrigen Zustand eine Aktivität sperrt, so könnte ein Angreifer diesen Mechanismus deaktivieren, wenn er die Ausgangsleitung des Komparators ermittelt und mittels einer Sonde die Leitung unabhängig davon, was der Komparator selbst errechnet, in den logisch hohen Zustand versetzt. In diesem Fall ist z. B. die Überprüfungseinrichtung der Geldkarte deaktiviert, und der Angreifer kann nach Belieben vorgehen.
  • In diesem Zusammenhang sei besonders darauf hingewiesen, daß Chipkarten bzw. Geldkarten insbesondere die Problematik dahingehend haben, daß sie in einer unsicheren Umgebung aufbewahrt und verwendet werden. Damit hat ein Angreifer die Möglichkeit, mit aller Zeit der Welt und allen ihm verfügbaren Geräten an der Karte zu manipulieren, ohne daß er Gefahr läuft, bei seinen Manipulationsversuchen entdeckt zu werden.
  • Darüber hinaus problematisch ist, daß Chipkarten, da sie in einer unsicheren und oftmals auch in einer unwirtlichen Umgebung vorhanden sind, sehr robust sein müssen. So muß durchaus davon ausgegangen werden, daß ein nicht-flüchtiger Speicher einer Geldkarte die gespeicherten Beträge über Jahre sicher speichern muß. Dennoch kann bei Transistor-basierten nicht-flüchtigen Speichern eine Degeneration des gespeicherten Zustands über der Zeit auftreten. Daher werden in nicht-flüchtigen Speichern abgelegte Daten redundant abgelegt, so daß eine Möglichkeit besteht, die aus dem nicht-flüchtigen Speicher ausgelesenen Daten unter Verwendung einer Überprüfungseinrichtung zunächst auf Plausibilität zu überprüfen. Diese Plausibilitätsüberprüfung besteht zum einen darin, über der Zeit beschädigte Daten wieder herzustellen. Andererseits existiert diese Plausibilitätsüberprüfung natürlich auch deswegen, um Manipulationen an den im nicht-flüchtigen Speicher gespeicherten Daten erkennen zu können. Eine typische Überprüfungseinrichtung gegenüber zeitlicher Degeneration von Daten und gegenüber Manipulationen an den Daten würde zunächst die aus dem nicht-flüchtigen Speicher ausgelesenen Daten untersuchen und auf ihre Plausibilität hin überprüfen, was beispielsweise mittels einer CRC (CRC = Cyclic Redundancy Check) oder eines MAC (MAC = Message Authentication Code) geschehen kann. Würde die Überprüfungseinrichtung dann feststellen, daß die ausgelesenen Daten nicht mit der zugeordneten CRC oder dem zugeordneten MAC übereinstimmen, so würde die Überprüfungseinrichtung einen Trap-Zustand an das Betriebssystem signalisieren, damit das Betriebssystem Gegenmaßnahmen ergreift, wie beispielsweise eine Fehlerkorrekturroutine aufruft, um die ausgelesenen Daten möglicherweise wieder herzustellen.
  • Gelingt eine Wiederherstellung, dahingehend, daß die wieder hergestellten Daten mit der CRC oder dem MAC übereinstimmen, so wäre ein Angriff auf die nicht-flüchtigen Daten ohnehin fehlgeschlagen. Gelingt keine Wiederherstellung, so wäre der Angriff auf die Karte ebenfalls fehlgeschlagen, da die Karte signalisiert, daß sie defekt ist, und somit keinerlei Transaktionen mehr unterstützen wird.
  • Würde es einem Angreifer jedoch gelingen, durch Angriffe jedweder Art die Überprüfungseinrichtung zu deaktivieren, also die Trap-Signalisierung durch Anlegen eines hohen oder niedrigen Signals auf einer bestimmten Leitung zu deaktivieren, so hätte der Angreifer freien Zugang zu den Daten im nicht-flüchtigen Speicher, und die Karte würde jegliche von dem Angreifer eingespeisten Daten als wahr und authentisch ansehen.
  • Angriffe auf die Überprüfungseinrichtungen selbst werden, wie es ausgeführt worden ist, üblicherweise dadurch abgewehrt, daß physikalische Sensoren am Chip angebracht werden, oder daß der Chip insgesamt so weit als möglich abgeschirmt wird.
  • Diese Sicherungen sind jedoch neben der Tatsache, daß sie aufwendig sind, und damit teuer sind, dahingehend unzureichend, daß sie Platz benötigen, und zwar insbesondere dann, wenn alle möglichen physikalischen Angriffe detektiert werden sollen, sofern dies überhaupt machbar ist.
  • Die DE 195 00 188 A1 offenbart eine Schaltungsanordnung für eine Bremsanlage mit Anti-Blockierschutz- und/oder Antriebsschlupfregelung. Die Schaltungsanordnung umfasst einen Regelungsrechner, der ausgehend von Steuerdaten und Rückkopplungs-Daten Steuersignale zur Regelung erzeugt. Die Schaltungsanordnung umfasst ferner einen Überwachungsrechner, dem ebenfalls Rückkopplungssignale und Steuersignale zuführbar sind, und in dem der Modellalgorithmus ausgeführt wird, der eine Annäherung an den tatsächlichen Regelkreis ist. In einem Ausgangsblock werden die Daten des Regelungsrechners und des Überwachungsrechners miteinander verglichen, um dann, wenn eine Abweichung festgestellt wird, die Regelung zu deaktivieren. Sowohl der Regelungsrechner als auch der Überwachungsrechner weisen weitere Kontrollschaltkreise auf sowie weitere, den Kontrollschaltkreisen nachgeschaltete Vergleicherschaltkreise. Die Kontrollschaltkreise dienen zur Abarbeitung eines die Funktion des Regelungsrechners sowie des Überwachungsrechners prüfenden Kontrollalgorithmus. Hierbei werden den Kontrollschaltkreisen Prüfdaten zugeführt, die jeweils die zyklische Abarbeitung des gesamten Wertebereichs der Rechner mit statistisch verteilten Daten in den Kontrollalgorithmen ermöglichen.
  • Die DE 19940611 A1 offenbart ein Verfahren und eine Vorrichtung zum zuverlässigen Anzeigen von Testergebnissen während einer Selbstprüfung. Um eine korrekte Arbeitsweise des Mikrocontrollers sicherzustellen, überwacht ein Watchdog-Zeitgeber den Mikrocontroller und erzeugt ein Fehlersignal, wenn der Watchdog-Zeitgeber einen Fehler in der Software oder der Hardware feststellt. Testsignale werden an verschiedene Komponenten des Mikrocontrollers angelegt, um Test-Ausgangssignale zu erzeugen und damit zu bestimmen, ob eine der Komponenten nicht korrekt arbeitet. Die Test-Ausgangssignale können dabei mit Steuersignalen verglichen werden, um im Fall, in dem Test-Ausgangssignale mit den Steuersignalen identisch sind, ein positives Testergebnis-Signal zu erzeugen, während im anderen Fall ein Fehler angezeigt wird.
  • Die Aufgabe der vorliegenden Erfindung besteht darin, ein sicheres und effizientes Konzept zum Schutz eines Prozessors gegenüber Attacken zu schaffen.
  • Diese Aufgabe wird durch einen Prozessor gemäß Patentanspruch 1, ein Verfahren zum Ausführen einer Sequenz von Befehlen gemäß Patentanspruch 16 oder ein Computer-Programm gemäß Patentanspruch 17 gelöst.
  • Der vorliegenden Erfindung liegt die Erkenntnis zugrunde, daß ein Prozessor zum Schutz vor Angriffen zwar mit einer Überprüfungseinrichtung zum Überprüfen eines ordnungsgemäßen Ver laufs bei der Ausführung eines Befehls durch eine Verarbeitungseinrichtung versehen werden muß. Erfindungsgemäß wird der Überprüfungseinrichtung eine Einrichtung zum Testen der Überprüfungseinrichtung zugeordnet. Die Einrichtung zum Testen der Überprüfungseinrichtung ist ausgebildet, um dann, wenn die Verarbeitungseinrichtung einen Testbefehl durchführt, zu überwachen, ob die Überprüfungseinrichtung einen durch den Testbefehl induzierten nicht-ordnungsgemäßen Ablauf des Befehls erkennt und entsprechend darauf antwortet. In anderen Worten ausgedrückt wird getestet, ob die Überprüfungseinrichtung dann, wenn die Verarbeitungseinrichtung einen Testbefehl ausführt, der so gestaltet ist, daß die Einrichtung zum Überprüfen in einem intakten Zustand bei der Ausführung des Testbefehls durch die Verarbeitungseinrichtung einen nicht-ordnungsgemäßen Verlauf detektieren würde, den nicht-ordnungsgemäßen Verlauf tatsächlich auch detektiert.
  • Ist dies der Fall, so kommt die erfindungsgemäße Testeinrichtung zu dem Schluß, daß alles o. k. ist und daß kein Angriff auf die Überprüfungseinrichtung läuft. Ist dies jedoch nicht der Fall, so erkennt die Einrichtung zum Testen der Überprüfungseinrichtung, daß ein Angriff auf die Überprüfungseinrichtung läuft, oder daß die Überprüfungseinrichtung aus irgend einem anderen Grund defekt ist. Die Einrichtung zum Testen gemäß der vorliegenden Erfindung wird dann einen Problemzustand signalisieren, der eine Vielzahl möglicher Reaktionen z. B. durch das Betriebssystem des Prozessors auslösen wird. Eine mögliche Reaktion besteht darin, die Ausgabe von irgendwelchen Berechnungsdaten sofort zu unterbinden und entsprechende Speicher zu löschen. Eine weitere Möglichkeit besteht darin, daß ein Fehler signalisiert wird und ein Benutzer beispielsweise über einen Terminal aufgefordert wird, die Karte bei einer Stelle zurückzugeben, damit sie „repariert" werden kann. Eine weitere Möglichkeit könnte darin bestehen, daß der Problemzustand dahingehend verwendet wird, den Angreifer zu täuschen und irgendwelche anderen Daten auszugeben, um möglicherweise weitere Schritte vom Angreifer auf irgend eine Art und Weise zu erfassen, um damit weitere Informationen über möglicherweise noch nicht bekannte Angriffe zu gewinnen.
  • Unabhängig davon, welche Reaktion auf einen durch die erfindungsgemäße Testeinrichtung signalisierten Problemzustand erfolgen, wird ein Angriff jedoch erfaßt und dahingehend verarbeitet werden, daß ein Angreifer keinen Erfolg mehr hat.
  • Ein Vorteil der vorliegenden Erfindung besteht darin, daß die vorliegende Erfindung, da sie auf Testbefehlen basiert, einen Software-mäßigen Schutz liefert. Damit muß ein Hardware-Design eines sicheren Chips, auf dem bereits eine Vielzahl von Überprüfungseinrichtungen vorhanden ist, nicht geändert werden, was unmittelbar dazu führt, daß keine weiteren Zertifizierungen, etc. durchgeführt werden müssen, bis ein entsprechend veränderter Chip wieder auf dem Markt ist. Statt dessen kann die erfindungsgemäße zusätzliche Sicherheit einfach durch Software-Updates auf einen Kryptochip gebracht werden, dahingehend, daß einerseits eine hohe Flexibilität und eine hohe Sicherheit erreicht werden kann, und daß andererseits dieses zusätzliche Maß an Sicherheit und Flexibilität nicht mit einer Hardware-Neuentwicklung mit allen ihren Folgen einhergehen muß.
  • Erfindungsgemäß wird die physikalische Integrität eines Controllers somit während der Programmabarbeitung durch spezielle Testsoftware, welche sowohl eine Gut- als auch im besonderen eine Schlecht-Fehlerfunktionalität des Bausteins abtestet, überprüft. Bei bevorzugten Ausführungsbeispielen können sämtlich Traps eines Trap-Systems bzw. sämtliche Rechteüberprüfungen z. B. bei Speicherzugriffen im Hinblick auf ihre Ausführbarkeit überprüft werden.
  • Damit wird der aufwendige Versuch der Sicherung durch ein Shield, durch Sensoren etc. hinfällig. Dies führt zu einer Ersparnis von zusätzlicher Hardware zur Überprüfung der In tegrität des Bausteins und zu einer flexiblen und schnellen Anpassung der Überprüfung durch einfache Software-Updates.
  • Bei bevorzugten Ausführungsbeispielen der vorliegenden Erfindung wird durch die Verwendung eines Softwarepakets zur Sicherung vor physikalischen Angriffen, wie beispielsweise FIB-Angriffen oder Forcing-Angriffen der Prozessor während des Betriebs in beliebigen Zeitintervallen überprüft, und zwar dahingehend, ob diverse Schaltungsfunktionen der einen oder mehreren Einrichtungen zum Überprüfen noch intakt und operationsbereit sind. Dies wäre andernfalls in Hardware zum Teil sehr schwierig und nur kostenintensiv realisierbar. Ferner sind Hardwareänderungen, wie es ausgeführt worden ist, auch mit einem extrem hohen Verifikationsaufwand verbunden.
  • Bei bevorzugten Ausführungsbeispielen der vorliegenden Erfindung wird die korrekte Funktionalität eines Trap-Systems des Prozessors sowie einer Zugriffsrechteverwaltung des Prozessors durch den Einbau von speziellen PSL-Routinen überprüft, die Trap-Bedingungen und Zugriffsrechteverletzungen abtesten und so die Funktionsfähigkeit nachweisen. Bei einem Ausführungsbeispiel der vorliegenden Erfindung wird dieser Softwareselbstcheck immer nach einem Reset durchgeführt. Allerdings kann auch im laufenden Betrieb bei Bedarf durch Einspeisung von Testbefehlen der Softwareselbstcheck ausgeführt werden. Die Zeitpunkte, zu denen ein Selbstcheck verschiedener Systeme ausgeführt wird, können zufallsgesteuert werden, beispielsweise unter Verwendung von echten Zufallszahlen eines physikalischen Zufallszahlengenerators oder unter Verwendung von Pseudozufallszahlen eines Pseudozufallszahlengenerators.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen detailliert erläutert. Es zeigen:
  • 1 ein Blockschaltbild eines erfindungsgemäßen Prozessors zum Ausführen einer Sequenz von Befehlen;
  • 2 ein Blockschaltbild eines Verfahrensablaufs innerhalb der Testeinrichtung von 1;
  • 3 eine beispielhafte Darstellung einer Verarbeitungseinheit mit CPU, Speicher und einer Rechteprüfungseinheit zwischen CPU und Speicher;
  • 4 ein Format eines Befehls mit einer Speicheradresse und einem Rechteetikett;
  • 5 eine schematische Darstellung einer Aufteilung eines Speichers in Speicherbereiche, wobei jedem Speicherbereich ein eigenes Rechteetikett zugeordnet ist;
  • 6 eine schematische Darstellung der Rechte-Verteilung für verschiedene Speicherbereiche und Hierarchien; und
  • 7 ein Flußdiagramm zur Veranschaulichung des Zusammenspiels der Überprüfungseinrichtung von 1 und der Testeinrichtung von 1 bei der Überprüfung des Trap-Systems eines Prozessors.
  • 1 zeigt ein Blockschaltbild eines Prozessors gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Der Prozessor umfaßt eine Verarbeitungseinrichtung 10 zum Ausführen von Befehlen, die der Verarbeitungseinrichtung über einen Befehlseingang 12 zugeführt werden. Der in 1 gezeigte Prozessor umfaßt ferner eine Überprüfungseinrichtung 14 zum Überprüfen einer ordnungsgemäßen Ausführung eines Befehls durch die Verarbeitungseinrichtung 10. Hierzu ist die Überprüfungseinrichtung 14 mit der Verarbeitungseinrichtung 10 über eine Datenverbindung 16 gekoppelt. Insbesondere ist die Überprüfungseinrichtung 14 ausgebildet, um einen nicht-ordnungsgemäßen Verlauf bei der Ausführung des Befehls durch die Verarbeitungseinrichtung 10 zu detektieren. Der erfindungsgemäße Prozessor umfaßt ferner eine Testeinrichtung 18 zum Testen der Einrichtung 14 zum Überprüfen. Zu diesem Zweck ist die Testeinrichtung 18 mit einem Ausgang 20 der Überprüfungseinrichtung über eine Datenkopplung 22 gekoppelt. Alternativ kann die Datenkopplung 22 auch innerhalb der Überprüfungseinrichtung 14 ankoppeln und muß nicht unbedingt am Ausgang der Überprüfungseinrichtung 14 ankoppeln, an dem die Überprüfungseinrichtung 14 ein Detektionssignal ausgibt.
  • Die Einrichtung zum Testen 18 der Einrichtung 14 zum Überprüfen ist ausgebildet, um bei einem bevorzugten Ausführungsbeispiel über einen Testbefehlausgang 24 der Verarbeitungseinrichtung 10 über einen Befehlswahlschalter 26 einen Testbefehl zuzuführen. Ist der Befehlswahlschalter 26 so geschaltet, daß der Testbefehl auf der Leitung 24 in den Befehlseingang 12 der Verarbeitungseinrichtung 10 eingespeist wird, so führt die Verarbeitungseinrichtung 10 den Testbefehl aus. Ist der Befehlswahlschalter 26 dagegen so ausgebildet, daß er eine eingangsseitig zugeführte Sequenz von Befehlen an den Befehlseingang 12 der Verarbeitungseinrichtung 10 liefert, so wird kein Testbefehl ausgeführt, sondern ein normaler Nutzbefehl in der Sequenz von Befehlen, der Teil eines Nutzprogramms ist, das auf dem erfindungsgemäßen Prozessor abläuft.
  • Es sei darauf hingewiesen, daß der Testbefehl auch von vornherein in der Sequenz von Befehlen enthalten sein kann, wenn die entsprechende Software mit Testbefehlen „angereichert" worden ist. Dann werden der Befehlsschalter 26 sowie die Befehlsleitung 24 nicht benötigt. In diesem Fall ist jedoch der Testeinrichtung 18 zu signalisieren, wann die Verarbeitungseinrichtung einen Testbefehl ausführt, der in der Sequenz von Befehlen eingebettet ist. Dies kann entweder durch ein Signal von der Verarbeitungseinrichtung 10 zur Testeinrichtung 18 erfolgen oder vorbestimmt sein, dahingehend, daß die Testein richtung 18 beispielsweise von vornherein weiß, daß z. B. jeder fünfte, zehnte etc. Befehl ein Testbefehl ist.
  • Ein Testbefehl, der von der Verarbeitungseinrichtung 12 ausgeführt wird, ist so ausgestaltet, daß die Einrichtung 14 zum Überprüfen in einem intakten Zustand, also wenn sie funktioniert und nicht bereits Opfer eines Angriffs ist, bei der Ausführung des Testbefehls einen nicht-ordnungsgemäßen Verlauf detektieren würde. Ein Testbefehl könnte beispielsweise einen Zugriff auf einen Speicherbereich umfassen, auf den die Anwendung, als zu der zugehörig der Testbefehl identifiziert ist, nicht zugreifen kann. Beim Zugriff auf einen Speicher würde die Überprüfungseinrichtung 14 diesen Rechtemangel detektieren und einen nicht-ordnungsgemäßen Verlauf ausgangsseitig, also am Ausgang 20, detektieren. Würde die Überprüfungseinrichtung 14 jedoch nicht merken, daß ein unberechtigter Speicherzugriff stattfindet, so würde dies die Testeinrichtung 18 erfassen und einem Problemzustand an ihrem Ausgang 24 detektieren.
  • Ein Problemzustand könnte beispielsweise dazu führen, daß der Verarbeitungseinrichtung 10 signalisiert wird, an ihrem Ausgang 27 nichts auszugeben.
  • Allgemein ist die Testeinrichtung 18 somit ausgebildet, um eine Reaktion der Einrichtung 14 zum Überprüfen ansprechend auf die Ausführung des Testbefehls durch die Verarbeitungseinrichtung 10 zu erfassen, und um in dem Fall, in dem die Reaktion der Einrichtung 14 zum Überprüfen von einer dem Testbefehl zugeordneten erwarteten Reaktion abweicht, einen Problemzustand zu signalisieren.
  • Die Testeinrichtung 18 ist somit derart über den Testbefehl informiert, daß sie einem Testbefehl eine erwartete Reaktion der Überprüfungseinrichtung zuordnet. Eine solche Reaktion kann beispielsweise eine negative Rechteüberprüfung bei einem Speicherzugriff sein. Eine solche Reaktion kann jedoch auch sein, daß die Überprüfungseinrichtung 14 einen Trap zum Betriebssystem auslöst, wenn ein unvorhergesehenes Ergebnis auf einen Testbefehl auftritt. So könnte ein Testbefehl in diesem Fall ein Zugriff auf einen nicht-flüchtigen Speicher sein. Um auch dann, wenn der nicht-flüchtige Speicher tatsächlich integer ist, die Reaktion des Trap-Systems zu überprüfen, ist die Testeinrichtung 18 bei diesem Ausführungsbeispiel der vorliegenden Erfindung ausgebildet, um über eine Reaktionsleitung 28 der Verarbeitungseinrichtung 10 eine Simulationsreaktion zuzuführen, die die Überprüfungseinrichtung 14 wiederum detektiert. Die Überprüfungseinrichtung 14 weiß natürlich nicht, daß dies nur eine simulierte Reaktion ist. Sie nimmt statt dessen an, daß am Beispiel des NVM-Zugriffs die Simulationsreaktion, also die vorgegaukelten vom NVM ausgelesenen Daten tatsächlich die Daten aus den NVM sind. Dann wird die Überprüfungseinrichtung 14 feststellen, daß die Daten nicht plausibel sind bzw. nicht mit ihrer CRC oder ihrem MAC übereinstimmen. Die Überprüfungseinrichtung 14 wird dann an ihrem Detektionsausgang 20 ein Detektionssignal ausgeben, das in diesem Fall ein Trap-Signal ist, das beispielsweise eine Fehlerkorrekturroutine aufruft. Die Testeinrichtung 18 wird dieses Detektionssignal erfassen und ausgangsseitig keinen Problemzustand signalisieren, da die erwartete Reaktion der Überprüfungseinrichtung 14 auf den Testbefehl einerseits sowie auf die Simulationsreaktionsdaten andererseits stattgefunden hat. Anders ausgedrückt hat die Überprüfungseinrichtung 14 somit einen nicht-ordnungsgemäßen Verlauf bei der Ausführung des Befehls des Auslesens von einem NVM detektiert, da die Simulationsreaktionsdaten nicht korrekt waren.
  • Die Funktionalität der Testeinrichtung 18 stellt sich somit in Schrittfolge gesehen derart dar, wie es anhand von 2 dargestellt ist. Zunächst wird in einem, wie es ausgeführt worden ist, optionalen Schritt ein Testbefehl von der Testeinrichtung 18 in die Verarbeitungseinrichtung 10 eingespeist, wie es in einem Block 30 dargestellt ist. Hierauf wird eine Reaktion der Überprüfungseinrichtung 14 durch die Testeinrichtung 18 erfaßt (32). Dann wird die Reaktion mit einer dem Testbefehl zugeordneten erwarteten Reaktion verglichen (34), um im Falle von gleichen Reaktionen zu einem abschließenden Ergebnis zu kommen, daß alles in Ordnung ist (36), oder um im Falle von ungleichen Reaktionen, also einer Abweichung der im Schritt 32 erfaßten Reaktion von einer erwarteten Reaktion einen Problemzustand 38 zu signalisieren.
  • Bei einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung ist die Überprüfungseinrichtung als Rechteprüfungseinheit 40 ausgebildet, wie sie in 3 gezeigt ist. Bei dem in 3 gezeigten Beispiel umfaßt die Verarbeitungseinrichtung 10 ferner eine CPU 42 sowie einen Speicher 44. Bei diesem Ausführungsbeispiel liefert die CPU 42 Befehle zur Rechteprüfungseinheit 40, wobei ein Befehl z. B. ein Format hat, wie es anhand von 4 dargestellt ist. Der Befehl besteht insbesondere aus einem ersten Teil 46, der eine Speicheradresse umfaßt, sowie aus einem zweiten Teil 48, der ein Rechteetikett umfaßt, wobei das Rechteetikett 48 eine Berechtigung eines Urhebers des Befehls wiedergibt. Das Rechteetikett ist typischerweise ein Binärmuster mit einigen wenigen Bit(s) und signalisiert, wie es anhand von 6 dargestellt ist, beispielsweise verschiedene User, also User 1, User 2, User 3, wobei solche User verschiedene Anwendungsprogramme sein können. Ein User hat bei diesem Ausführungsbeispiel der vorliegenden Erfindung die geringste Berechtigung und kann nur auf einen Speicherbereich zugreifen, für den das Rechteetikett 48 von 4 die Berechtigung erteilt. Ein Superuser wäre dann ein Programm, das in der Rechtehierarchie höher steht und beispielsweise auf sämtliche User-Speicherbereiche 60a, 60b, 60c zugreifen kann, das jedoch nicht auf weitere Speicherbereiche 60d und 60e zugreifen kann.
  • Ein Befehl, der ein Rechteetikett 48, wie es anhand von 4 dargelegt worden ist, hat, das den Befehl als zum Betriebssystem gehörig bezeichnet, hätte bei dem in 6 skizzierten Beispiel zur Folge, daß die Rechteprüfungseinheit 40 feststellt, daß dieser Befehl sowohl auf die User-Bereiche 60a, 60b, 60c als auch auf einen für das Betriebssystem reservierten Speicherbereich 60d zugreifen darf. Die Rechteprüfungseinheit 40 würde jedoch bei diesem Ausführungsbeispiel den Zugriff auf den Hersteller-reservierten Speicherbereich 60e verweigern, da auf diesen Bereich bei diesem skizzierten Beispiel lediglich der Hersteller selbst Zugriff hat, wobei ein Programm, das auf den Hersteller zurückgeht, wiederum mit einem eigenen speziellen Rechteetikett 48 versehen ist, das die Rechteprüfungseinheit 40 detektieren und interpretieren kann.
  • Lediglich beispielhaft ist in 5 eine Aufteilung des Speichers in drei unterschiedliche User-Bereiche gezeigt. So wird davon ausgegangen, daß im ersten Speicherbereich 60a lediglich ein Zugriff von Befehlen erlaubt ist, die das erste Rechteetikett haben. Dagegen dürfen auf Adressen im zweiten Speicherbereich 60b lediglich Befehle zugreifen, die das zweite Rechteetikett haben, während wiederum lediglich Befehle mit einem Rechteetikett, das gleich dem dritten Rechteetikett ist, lediglich auf den dritten Speicherbereich 60c zugreifen dürfen.
  • In einer praktischen Implementierung wird die Rechteüberprüfungseinheit 40, wenn sie den in 4 skizzierten Befehl empfängt, die Rechteetikett-Bits 48 extrahieren und mit dem ersten, zweiten oder dritten Rechteetikett von 5 vergleichen, um festzustellen, ob ein Zugriff möglich ist, oder um einen Zugriff zu verweigern. Vorzugsweise ist die Rechteüberprüfungseinheit 40 als Hardware-Bitkomparator ausgebildet, welcher eingangsseitig die den Befehlen zugeordneten Rechteetiketten bekommt, und welcher eingangsseitig ferner die den Speicherbereichen zugeordneten Rechteetiketten bekommt, um ausgangsseitig ein Erlaubt-Signal oder ein Nicht-Erlaubt-Signal auszugeben. Würde ein Angreifer auf die Ausgangsleitung des Bitkomparators ein Spannungssignal zwangsweise anlegen, das den Erlaubt-Zustand signalisiert, so wäre die Rech teüberprüfungseinheit 40 deaktiviert, also ausgeschaltet. Zu diesem Zweck wird der Verarbeitungseinrichtung entweder direkt aus dem Programm oder direkt von der Testeinrichtung 18 ein Testbefehl zugeführt, der aufgebaut ist, wie es in 4 gezeigt ist. Der Testbefehl ist jedoch derart intern ausgebildet, daß die Speicheradresse 46 aus einem anderen Speicherbereich stammt als der Speicherbereich, der durch das Rechteetikett 48 identifiziert ist. In diesem Fall würde die Rechteprüfungseinheit 40 von 3, wenn sie den Testbefehl empfängt, den Zugriff auf den Speicher verweigern, was einem nicht-ordnungsgemäßen Ablauf bei der Durchführung des Testbefehls entspricht. Ist die Rechteüberprüfungseinheit 40 wirksam, um diesen nicht-ordnungsgemäßen Ablauf zu detektieren, so ist alles in Ordnung. Ist die Rechteüberprüfungseinheit jedoch nicht in der Lage, beim Ausführen des Testbefehls ein Problem zu erkennen, so deutet dies darauf hin, daß die Rechteüberprüfungseinheit entweder Opfer eines Angriffs ist oder ansonsten defekt ist. In beiden Fällen würde die Einrichtung 18 (1) an ihrem Ausgang 24 einen Problemzustand signalisieren.
  • Es sei darauf hingewiesen, daß die Hierarchie der Rechteetiketten, wie es in 6 dargestellt ist, lediglich beispielhaft ist und daß beliebige hierarchische oder nicht-hierarchische Rechtesysteme implementiert sein können.
  • Nachfolgend wird anhand von 7 die Interaktion der Überprüfungseinrichtung und der Testeinrichtung am Beispiel einer Überprüfung des Trap-Systems des Prozessors dargelegt. In einem Schritt 70 wird der Testbefehl durch die Verarbeitungseinrichtung 10 ausgeführt. Ein solcher Testbefehl ist beispielsweise das Auslesen eines nicht-flüchtigen Speichers. In einem Schritt 72 wird die Testeinrichtung 18 über die Simulationsreaktionsleitung 28 von 1 in die Verarbeitungseinrichtung 10 eine Simulationsreaktion, also simulierte ausgelesene NVM-Daten einspeisen. In einem Schritt 74 wird die Überprüfungseinrichtung 14 eine Plausibilitätsüberprüfung der Simulationsreaktionsdaten durchführen, die die Überprüfungseinrichtung 14 selbstverständlich für die tatsächlich von dem NVM ausgelesenen Daten hält. Je nach Implementierung sind die Simulationsreaktionsdaten nicht plausibel. Die Nicht-Plausibilität der Simulationsreaktionsdaten kann anhand einer in den Simulationsreaktionsdaten enthaltenen CRC oder eines enthaltenen MAC festgestellt werden. Alternativ kann die Überprüfungseinrichtung 14 auch ausgebildet sein, um eine einfache Plausibilitätsüberprüfung durchzuführen, beispielsweise durch Interpretieren der Größe eines durch die Daten dargestellten Werts, die nur innerhalb einer bestimmten Schranke sein kann, oder durch Zählen von Nullen oder Einsen der Daten und durch Vergleichen der Zählergebnisse mit vorgegebenen Werten.
  • Ist die Überprüfungseinheit intakt, so wird sie aufgrund der Simulationsdaten eine Fehlermeldung bzw. einen Trap zum Betriebssystem auslösen (76), der beispielsweise dazu führt, daß eine Fehlerkorrektur aktiviert wird. Ist die Überprüfungseinrichtung dagegen nicht intakt, so wird sie keine Fehlermeldung auslösen (78), sondern die Simulationsreaktionsdaten einfach weiterleiten, beispielsweise an eine CPU 42, wo Schaden angerichtet werden könnte. Um dies zu unterbinden, überprüft die Testeinrichtung 18 eine Reaktion bzw. Nicht-Reaktion der Überprüfungseinrichtung 14 und vergleicht die Reaktion mit einer dem Testbefehl und der Simulationsreaktion zugeordneten erwarteten Reaktion, um, wie es anhand von 2 dargestellt worden ist, einen Problemzustand zu signalisieren oder nicht.
  • Es sei darauf hingewiesen, daß typische Prozessoren eine Vielzahl von Traps umfassen, wie beispielsweise dann, wenn ein Anwendungsprogramm ein ihm zugewiesenes Programm-Package verläßt und auf einmal einen Call ausführt, der in ein anderes Package geht. Typischerweise würde dann, wenn ein solcher Inter-Package-Call entdeckt wird, von der Überprüfungseinrichtung 14 ein Trap ausgelöst werden, der das Betriebssystem veranlaßt, zu überprüfen, ob dieser Inter-Package-Call berechtigt bzw. richtig ist oder nicht.
  • Ein weiteres Beispiel für einen Trap zum Betriebssystem besteht darin, eine DFA-Attacke abzuwehren. Hierzu wird beispielsweise ein Ergebnis, bei dem geheime Daten involviert waren, erneut berechnet, um das erste Ergebnis mit dem zweiten Ergebnis zu vergleichen. Diesen Vergleich führt die Überprüfungseinheit durch, die dann, wenn beide Ergebnisse gleich sind, keinen Fehlerzustand signalisiert, die jedoch dann, wenn eine Abweichung zwischen den Ergebnissen festgestellt worden ist, einen Trap zum Betriebssystem auslöst. In diesem Fall würde der Testbefehl darin bestehen, zwei Ergebnisse zu berechnen. Die Simulationsreaktionsdaten würden darin bestehen, der Verarbeitungseinrichtung statt des von ihr berechneten zweiten Ergebnisses ein simuliertes – und natürlich falsches – zweites Ergebnis einzuspeisen, um zu überprüfen, ob ein Trap-Signal ausgelöst wird oder nicht.
  • So sind viele weitere Funktionalitäten der Überprüfungseinrichtung möglich, die erfindungsgemäß zu beliebig wählbaren Zeitpunkten abgeprüft werden können.
  • Abhängig von den Gegebenheiten kann das erfindungsgemäße Verfahren zum Ausführen von Befehlen, das durch den in 1 dargestellten Prozessor durchgeführt wird, in Hardware oder in Software implementiert werden. Die Implementierung kann auf einem digitalen Speichermedium, insbesondere einer Diskette oder CD mit elektronisch auslesbaren Steuersignalen erfolgen, die so mit einem programmierbaren Computersystem zusammenwirken können, daß das Verfahren ausgeführt wird. Allgemein besteht die Erfindung somit auch in einem Computer-Programm-Produkt mit einem auf einem maschinenlesbaren Träger gespeicherten Programmcode zur Durchführung des erfindungsgemäßen Verfahrens, wenn das Computer-Programm-Produkt auf einem Rechner abläuft. In anderen Worten ausgedrückt kann die Erfindung somit als ein Computer-Programm mit einem Programm code zur Durchführung des Verfahrens realisiert werden, wenn das Computer-Programm auf einem Computer abläuft.
  • 10
    Verarbeitungseinrichtung
    12
    Befehlseingang
    14
    Überprüfungseinrichtung
    16
    Kopplungsleitung
    18
    Testeinrichtung
    20
    Detektionssignalausgang der Überprüfungseinrichtung
    22
    Reaktionseingang der Testeinrichtung
    24
    Testbefehlleitung
    26
    Befehlsschalter
    27
    Ausgabe der Verarbeitungseinrichtung
    28
    Simulationsreaktionsleitung
    30
    Einspeisen des Testbefehls
    32
    Erfassen einer Reaktion
    34
    Vergleichen der Reaktion
    36
    Signalisieren, daß alles in Ordnung ist
    38
    Signalisieren eines Problemzustands
    40
    Rechteprüfungseinheit
    42
    CPU
    44
    Speicher
    46
    Speicheradressenteil eines Befehls
    48
    Rechteetikett des Befehls
    60a
    erster Speicherbereich
    60b
    zweiter Speicherbereich
    60c
    dritter Speicherbereich
    60d
    Betriebssystem-Speicherbereich
    60e
    Hersteller-Speicherbereich
    70
    Ausführen eines Testbefehls
    72
    Einspeisen einer Simulationsreaktion
    74
    Überprüfen der Simulationsreaktion
    76
    Auslösen einer Fehlermeldung
    78
    Auslösen keiner Fehlermeldung

Claims (17)

  1. Prozessor zum Ausführen einer Mehrzahl von Befehlen, mit folgenden Merkmalen: einer Verarbeitungseinrichtung (10) zum Ausführen der Befehle; einer Einrichtung (14) zum Überprüfen einer ordnungsgemäßen Ausführung eines Befehls, wobei die Einrichtung (14) zum Überprüfen ausgebildet ist, um einen nicht-ordnungsgemäßen Verlauf bei der Ausführung des Befehls durch die Verarbeitungseinrichtung (10) zu detektieren; einer Einrichtung (18) zum Testen der Einrichtung zum Überprüfen, wobei die Einrichtung (18) zum Testen ausgebildet ist, um bei der Ausführung eines Testbefehls durch die Verarbeitungseinrichtung (10), wobei der Testbefehl so gestaltet ist, daß die Einrichtung (14) zum Überprüfen in einem intakten Zustand bei der Ausführung des Testbefehls durch die Verarbeitungseinrichtung (10) einen nicht-ordnungsgemäßen Verlauf detektieren würde, eine Reaktion der Einrichtung (14) zum Überprüfen ansprechend auf die Ausführung des Testbefehls zu erfassen, und, um in dem Fall, in dem die Reaktion der Einrichtung zum Überprüfen von einer dem Testbefehl zugeordneten erwarteten Reaktion abweicht, einen Problemzustand zu signalisieren.
  2. Prozessor nach Anspruch 1, bei dem die Verarbeitungseinrichtung folgende Merkmale aufweist: eine CPU (42); einen Speicher (44), wobei der Speicher (44) in Speicherbereiche (60a, 60b, 60c) aufgeteilt ist, wobei ein Zugriff auf einen Speicherbereich beschränkt ist, so daß ein Befehl, der zu einem Programm mit einer bestimmten Berechtigung gehört, auf den Speicherbereich zugreifen kann, und daß ein Befehl, der zu einem Programm mit einer anderen Berechtigung gehört, nicht auf den Speicherbereich zugreifen kann; wobei die Einrichtung (14) zum Überprüfen ausgebildet ist, um bei einem Speicherzugriff zu überprüfen, ob ein Befehl, aufgrund dessen der Speicherzugriff stattfinden soll, eine Berechtigung aufweist, um auf einen identifizierten Speicherbereich zuzugreifen, und um in dem Fall einer nicht vorhandenen Berechtigung den Speicherzugriff zu sperren; wobei ein Testbefehl derart ausgebildet ist, daß er eine Speicheradresse (46) und eine Berechtigung (48) umfaßt, wobei die Berechtigung so ausgebildet ist, daß die Einrichtung (14) zum Überprüfen, sofern sie intakt ist, einen Zugriff auf den Speicherbereich, zu dem die Speicheradresse (46) gehört, verweigert, und wobei die Testeinrichtung (18) ausgebildet ist, um den Problemzustand zu signalisieren, wenn die Überprüfungseinrichtung (14) ansprechend auf eine Ausführung des Testbefehls einen Speicherzugriff nicht verweigert.
  3. Prozessor nach Anspruch 1 oder 2, bei dem die Einrichtung (14) zum Überprüfen ausgebildet ist, um bei einer nicht-ordnungsgemäßen Ausführung des Befehls einen Trap-Zustand an ein Betriebssystem der Verarbeitungseinrichtung (10) zu signalisieren, wobei das Betriebssystem ausgebildet ist, um bei Signalisierung eines Trap-Zustands eine Maßnahme zum Handhaben der nicht-ordnungsgemäßen Ausführung zu ergreifen, bei dem die Einrichtung (18) zum Testen ausgebildet ist, um der Verarbeitungseinrichtung einen Testbefehl zuzuführen (30), sowie zusätzlich der Verarbeitungseinrichtung (10) eine Simulationsreaktion (72) zuzuführen, wobei die Simulationsre aktion so ausgebildet ist, daß die Einrichtung (14) zum Überprüfen bei einer Erfassung der Simulationsreaktion in einem intakten Zustand derselben den Trap-Zustand signalisieren würde, und um in dem Fall, in dem die Einrichtung (14) zum Überprüfen keinen Trap-Zustand auslöst, den Problemzustand zu signalisieren.
  4. Prozessor nach einem der vorhergehenden Ansprüche, bei dem die Einrichtung (14) zum Überprüfen in Hardware ausgeführt ist.
  5. Prozessor nach einem der vorhergehenden Ansprüche, bei dem die Einrichtung (18) zum Testen in Software ausgeführt ist.
  6. Prozessor nach einem der vorhergehenden Ansprüche, bei dem die Einrichtung (18) zum Testen ausgebildet ist, um der Verarbeitungseinrichtung nach einem Prozessorreset oder zu bestimmten Zeitpunkten bei der Ausführung der Sequenz von Befehlen einen Testbefehl zuzuführen.
  7. Prozessor nach Anspruch 6, bei der die vorbestimmten Zeitpunkte zufallsgesteuert sind.
  8. Prozessor nach einem der vorhergehenden Ansprüche, bei der die Einrichtung (18) zum Testen ausgebildet ist, um der Verarbeitungseinrichtung eine Sequenz von Testbefehlen zuzuführen.
  9. Prozessor nach Anspruch 2, bei der einer Speicherzelle in einem Speicherbereich (60a, 60b, 60c) ein binäres Rechteetikett zugeordnet ist, bei dem einem Befehl ein Befehls-Rechteetikett (48) in binärer Form zugeordnet ist, und bei dem die Einrichtung (14) zum Überprüfen ausgebildet ist, um das Speicher-Rechteetikett mit dem Befehl-Rechteetikett zu vergleichen.
  10. Prozessor nach Anspruch 9, bei dem die Einrichtung (14) zum Überprüfen einen Bitkomparator zum Vergleichen des Speicher-Rechteetiketts und des Befehls-Rechteetiketts aufweist, wobei eine Ausgangsleitung des Bitkomparators mit einem Sperrgatter verbunden ist, das nur dann, wenn die Ausgangsleitung des Bitkomparators in einem vorbestimmten Zustand ist, den Speicherzugriff erlaubt.
  11. Prozessor nach Anspruch 2 oder 9, bei dem die Einrichtung (18) zum Testen ausgebildet ist, um Testbefehle, die einen Zugriff auf einen Speicherbereich mit einer hohen Rechtestufe bewirken, häufiger zu erzeugen als Testbefehle, die einen Speicherzugriff auf einen Speicherbereich mit niedrigerer Rechtestufe bewirken.
  12. Prozessor nach einem der Ansprüche 2, 9, 10 oder 11, bei dem der Speicherbereich mit einer hohen Rechtestufe eine Mehrzahl von Speicherzellen aufweist, und bei dem die Einrichtung (18) zum Testen ausgebildet ist, um Testbefehle zu erzeugen, die sich in einer tatsächlichen Speicheradresse der Mehrzahl von Speicheradressen unterscheiden.
  13. Prozessor nach Anspruch 3, bei der der Testbefehl ausgebildet ist, um einen Zugriff auf einen nicht-flüchtigen Speicher zu bewirken, bei der durch die Simulationsreaktionsdaten der Verarbeitungseinrichtung statt Daten aus dem nicht-flüchtigen Speicher fehlerhafte simulierte Daten zugeführt werden, und bei dem das Betriebssystem ausgebildet ist, um ansprechend auf einen Trap-Zustand eine Fehlerkorrekturroutine auszulösen.
  14. Prozessor nach einem der vorhergehenden Ansprüche, bei dem der Verarbeitungseinrichtung (10) ein Befehlsschalter (26) vorgeschaltet ist, der in einer Schalterstellung eine Sequenz von Befehlen einem Befehlseingang (12) der Verarbeitungseinrichtung (10) zuführt, und der in einer anderen Schalterstellung statt der Sequenz von Befehlen einen Testbefehl von der Testeinrichtung (18) zu der Verarbeitungseinrichtung (10) zuführt.
  15. Prozessor nach einem der vorhergehenden Ansprüche, bei der ferner weitere Überprüfungseinrichtungen vorgesehen sind, und bei dem ferner weitere den weiteren Überprüfungseinrichtungen zugeordnete Testeinrichtungen vorgesehen sind, und bei dem der Verarbeitungseinrichtung (10) verschiedene Testbefehle zuführbar sind, derart, daß ein Testbefehl eine Überprüfungseinrichtung und eine zugeordnete Testeinrichtung aktiviert, während andere Überprüfungseinrichtungen und den anderen Überprüfungseinrichtungen zugeordnete Testeinrichtungen nicht aktiviert werden.
  16. Verfahren zum Ausführen einer Mehrzahl von Befehlen unter Verwendung einer Verarbeitungseinrichtung (10) zum Ausführen der Befehle und einer Überprüfungseinrichtung (14) zum Über prüfen einer ordnungsgemäßen Ausführung eines Befehls durch die Verarbeitungseinrichtung (10), wobei ein nicht- ordnungsgemäßer Verlauf bei der Ausführung des Befehls durch die Verarbeitungseinrichtung detektierbar ist, mit folgenden Schritten: Zuführen (30) eines Testbefehls zu der Verarbeitungseinrichtung (10), wobei der Testbefehl so gestaltet ist, daß eine Überprüfung in einem intakten Zustand der Überprüfungseinrichtung (14) zu einer Detektion eines nicht-ordnungsgemäßen Verlaufs bei der Ausführung des Testbefehls führen würde; Erfassen (32) einer Reaktion der Überprüfungseinrichtung (14) ansprechend auf die Ausführung des Testbefehls durch die Verarbeitungseinrichtung (10); und Signalisieren (38) eines Problemzustands in dem Fall, in dem die Reaktion der Einrichtung (14) zum Überprüfen von einer dem Testbefehl zugeordneten erwarteten Reaktion abweicht (34).
  17. Computer-Programm mit einem Programmcode zur Durchführung des Verfahrens gemäß Patentanspruch 16, wenn das Programm auf einem Computer abläuft.
DE2003141593 2003-09-09 2003-09-09 Prozessor und Verfahren zum Ausführen einer Sequenz von Befehlen Expired - Fee Related DE10341593B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE2003141593 DE10341593B4 (de) 2003-09-09 2003-09-09 Prozessor und Verfahren zum Ausführen einer Sequenz von Befehlen

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE2003141593 DE10341593B4 (de) 2003-09-09 2003-09-09 Prozessor und Verfahren zum Ausführen einer Sequenz von Befehlen

Publications (2)

Publication Number Publication Date
DE10341593A1 DE10341593A1 (de) 2005-04-07
DE10341593B4 true DE10341593B4 (de) 2009-09-03

Family

ID=34258525

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2003141593 Expired - Fee Related DE10341593B4 (de) 2003-09-09 2003-09-09 Prozessor und Verfahren zum Ausführen einer Sequenz von Befehlen

Country Status (1)

Country Link
DE (1) DE10341593B4 (de)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19500188A1 (de) * 1995-01-05 1996-07-11 Bosch Gmbh Robert Schaltungsanordnung für eine Bremsanlage mit Blockierschutz- und/oder Antriebsschlupfregelung
DE19940611A1 (de) * 1998-09-21 2000-03-30 Infineon Technologies Corp San Verfahren und Vorrichtung zum zuverlässigen Anzeigen von Testergebnissen während einer Selbstprüfung

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19500188A1 (de) * 1995-01-05 1996-07-11 Bosch Gmbh Robert Schaltungsanordnung für eine Bremsanlage mit Blockierschutz- und/oder Antriebsschlupfregelung
DE19940611A1 (de) * 1998-09-21 2000-03-30 Infineon Technologies Corp San Verfahren und Vorrichtung zum zuverlässigen Anzeigen von Testergebnissen während einer Selbstprüfung

Also Published As

Publication number Publication date
DE10341593A1 (de) 2005-04-07

Similar Documents

Publication Publication Date Title
DE102006001873B4 (de) Vorrichtung und Verfahren zum Überprüfen einer Fehlererkennungsfunktionalität einer Speicherschaltung
DE102006001872B4 (de) Vorrichtung und Verfahren zum Überprüfen einer Fehlererkennungsfunktionalität einer Datenverarbeitungseinrichtung auf Angriffe
DE102009024179B4 (de) Schaltung mit einer Mehrzahl von Funktionsweisen
DE102009041176B4 (de) Compiler-System und Verfahren zum Kompilieren eines Quellencodes zu einem verschlüsselten Maschinensprachcode
DE102007038763A1 (de) Verfahren und Vorrichtung zur Sicherung eines Programms gegen eine Kontrollflussmanipulation und gegen einen fehlerhaften Programmablauf
DE102012205689A1 (de) Anweisungsverschlüsselungs-/-entschlüsselungsanordnung und -verfahren mit iterativer Verschlüsselungs-/Entschlüsselungsaktualisierung
DE102014112865A1 (de) Elektronische Schaltung und Verfahren zum Überwachen einer Datenverarbeitung
EP2689373B1 (de) Detektieren von angriffen auf einen portablen datenträger
DE102015112143A1 (de) Ein Verfahren zum Bestimmen einer Integrität einer Ausführung eines Codefragments und ein Verfahren zum Bereitstellen einer abstrahierten Repräsentation eines Programmcodes
EP1970782A1 (de) Schutzeinrichtung für eine programmierbare datenverarbeitende Einheit
EP2019996A1 (de) Sensor mit einer schaltungs anordnung
EP1664978A1 (de) Vorrichtung und verfahren zur sicheren ausführung eines programmes
DE10341593B4 (de) Prozessor und Verfahren zum Ausführen einer Sequenz von Befehlen
DE10164419A1 (de) Verfahren und Anordnung zum Schutz von digitalen Schaltungsteilen
DE102005042790B4 (de) Integrierte Schaltungsanordnung und Verfahren zum Betrieb einer solchen
EP3667529B1 (de) Verfahren und vorrichtung zum authentisieren einer fpga-konfiguration
DE102017214057A1 (de) Verfahren zum Prüfen der Integrität von Systemkomponenten eines Systems und Anordnung zur Durchführung des Verfahrens
EP3869367A1 (de) Computergestütztes verfahren zum speichern eines integritätsstatus, integritätsstatusvorrichtung und computerprogrammprodukt
DE10307797B4 (de) Vorrichtung und Verfahren zum Ermitteln einer Unregelmäßigkeit in einem Ablauf eines Nutzprogramms
DE102004016342B4 (de) Verfahren und Vorrichtung zum Erfassen eines manipulativen Angriffs auf eine elektrische Schaltung
WO2004036649A1 (de) Chip mit angriffsschutz
DE102010045328A1 (de) Portabler Datenträger
DE10258178B4 (de) Schaltung mit Sicherheitsmaßnahmen gegen Ausspionieren der Schaltung
EP2318974B1 (de) Verfahren zum betrieb einer transaktionsbasierten ablaufsteuerung
DE102017006354A1 (de) Vorrichtung und Verfahren zur gerätetechnischen Erkennung von absichtlichen oder durch Störungen und / oder Fehler verursachten Datenverfälschungen in Datenverarbeitungseinheiten

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee