-
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