-
Die
vorliegende Erfindung betrifft vorteilhafte Weiterbildungen eines
Datenverarbeitungssystems, zum Beispiel eines Computers, für das Sichern
des Auslesens von Codeblocks aus einem von dem Prozessor des Systems
gesteuerten Speicher-Peripherie-Gerät.
-
Insbesondere
soll die Erfindung die Sicherheit der Ausführung einer Anwendung oder
eines Programms verbessern, um diese Ausführung zu stoppen, sobald eine
Anweisung als nicht korrekt betrachtet wird. Demnach wird jede in
das System geladene Anwendung nicht ausgeführt, wenn eine seiner Anweisungen
nach dem Laden der Anwendung in das System böswillig geändert worden ist.
-
Eine
besondere Aufgabe der Erfindung besteht darin, externe Angriffe
zu verhindern bei der Echtzeit-Abwicklung
einer beliebigen Anwendung während
einer Verbindung des Datenverarbeitungssystems mit einem externen
Netz, wie beispielsweise dem Internet. Demnach ist die Erfindung
besonders geeignet für Datenverarbeitungssysteme
wie Arbeitsplätze,
Server und PC, die häufig
an das Internet oder an Intranet-Netze angeschlossen sind.
-
In
dem Artikel "Defending
Systems Against Viruses through Cryptographie Authentification" PROCEEDING OF THE
SYMPOSIUM ON SECURITY AND PRIVACY, OAKLAND, Mai 1–3, 1989,
WASHINGTON, IEE COMP. SOC. PRESS wird ein gesichertes Anwendungs-Verarbeitungsverfahren
mit verschlüsselter
Authentifizierung beschrieben, um die Einrichtung einer Software
zu sichern, d.h. eine Version derselben oder von entsprechenden
aktualisierten Daten, in einem Benutzergerät, wobei die Software von einem
Verkäufergerät geliefert
wird. Jedes der beiden Geräte
enthält
einen Authentifizierer.
-
Der
Authentifizierer des Verkäufers
erzeugt eine Unterschrift für
die Programmversion infolge eines Privatschlüssels in dem Gerät des Verkäufers und
auf der Basis von entsprechenden Daten (Name des Programms, Seriennummer,
Versionsnummer, Versionsdatum) der Version des Programms.
-
Der
Authentifizierer des Benutzer liest einen von dem Verkäufer gespeicherten öffentlichen Schlüssel, prüft ob die
Unterschrift für
die Programmversion der Software auf der entsprechenden Datenbank
korrekt ist, konfiguriert gegebenenfalls das Programm, erstellt
eine insgesamt unterzeichnetes Programm und in Blöcken (Seite/Abschnitt)
und lädt
das unterzeichnete Programm in das Benutzergerät.
-
Das
Patent US-A-6038667 offenbart in einem Computer die Zwischenschaltung
eines Sicherheits- Koprozessors
zwischen der Bearbeitungs-Zentraleinheit (CPU) und dem Rest des
Computers, um den Betrieb des Computers unterbrechen zu können für die Überprüfung der
digitalen Unterschriften einer Software, bevor sie zum ersten Mal
oder nach einer bestimmten Zeit benutzt wird.
-
Diese
beiden Unterlagen enthalten keine Aussage bezüglich der Verarbeitung der
unterzeichneten Software und der Validierung der Software vor ihrer
Ausführung
zwischen den Bestandteilen des Benutzergeräts oder des Computers.
-
Die
Erfindung behebt diesen Nachteil und verbietet insbesondere dynamisch,
d.h. in Echtzeit, die Ausführung
einer Transaktion, wie beispielsweise eine Zahlung, ab dem Datenverarbeitungssystem
sobald eine Anweisung oder ein Codeblock bezüglich der Anwendung der Transaktion
als nicht korrekt in Bezug auf die Anweisung oder den Codeblock
der ursprünglich
in den Speicher-Peripherie-Gerät
geladen wurde.
-
Diesen
Zweck erfüllt
ein gesichertes Anwendungs-Verarbeitungsverfahren
in einem Datenverarbeitungssystem gemäß Patentanspruch 1.
-
Dank
der Überprüfung der
Integrität
der Codeblocks einer Anwendung, die von dem Speicher-Peripheriegerät, wie beispielsweise
einer Festplatte, übertragen
werden bevor eine in dem ausgelesenen Block enthaltene Anweisung
ausgeführt wird,
verhindert die Erfindung die Folgen eines Angriffs, beispielsweise
um Daten zu löschen,
vertrauliche aus dem Speicher ausgelesene Daten an einen Angreifer
zu übertragen,
von einem Angreifer gewählte
Daten digital zu unterzeichnen, Viren einzuschleusen, usw.
-
Die
vorliegende Erfindung betrifft auch ein Datenverarbeitungssystem
gemäß Patentanspruch 4.
-
Gemäß einer
ersten bevorzugten Ausführung
umfasst das System ein Mittel zum Unterzeichnen der Codeblöcke entsprechend
den bei dem Laden der Anwendung aus dem Speicherträger gelesenen
geheimen Daten, um die Unterschriften jeweils in Verbindung mit
den in das Speicher-Peripherie-Gerät geladenen Codeblöcken vorzuspeichern,
wobei der zweite Speicherträger
in den ersten Speicherträger übergeht.
Der Speicherträger
ist beispielsweise eine CD-ROM. Als Variante, um die Sicherheit
zu verbessern, ist der erste Speicherträger mit den Codeblöcken der
Anwendung von dem zweiten Speicherträger, beispielsweise eine Chipkarte,
getrennt, in ein zweites Lademittel eingeführt, um die geheimen Daten
zu laden, beispielsweise einen Schlüssel zumindest einer Anwendung,
in Verbindung mit einem für Anwendungen
gemeinsamen Unterschrifts-Bestimmungs-Algorithmus, oder einen Unterschrifts-Bestimmungs-Algorithmus und einen
zumindest einer jeweiligen Anwendung zugeordneten Schlüssel. Die geheimen
Daten auf dem zweiten Speicherträger werden
ebenfalls von einem dritten Lademittel gelesen, damit sie zur Bestimmung
der Unterschriften der übertragenen
Codeblöcke
dient.
-
Gemäß einer
zweiten Ausführung
entfällt das
Mittel zum Unterzeichnen der Codeblöcke beim Laden der Anwendung.
Die Unterschriften der Codeblöcke
sind nämlich
schon in Verbindung mit den Codeblöcken zumindest einer Anwendung
in dem ersten Speicherträger
gespeichert, damit das erste Lademittel gleichzeitig die Codeblöcke und
die zugeordneten Unterschriften direkt in das Speicher-Peripherie-Gerät lädt.
-
Nach
einem anderen Aspekt der Erfindung kann das System ebenfalls einen
mit dem Überprüfungsmittel
der Integrität
verbundenen Cache-Speicher zum Speichern von überprüften Codeblöcken umfassen, um sie als Antwort
auf Lesebefehle dieser Blöcke
durch den Prozessor direkt an den Prozessor zu übertragen.
-
Die
Erfindung betrifft ferner einen Speicherträger für das erfindungsgemäße Datenverarbeitungssystem,
dadurch gekennzeichnet, dass es eine Anwendung und jeweils den Codeblöcken zugeordnete
Unterschriften bildende Codeblöcke
unterstützt.
-
Weitere
Merkmale und Vorteils der vorliegenden Erfindung ergeben sich aus
der nachfolgenden Beschreibung mehrerer bevorzugter Ausführungen der
Erfindung anhand der entsprechenden beigefügten Zeichnungen, in denen:
-
1 ein
schematisches Blockdiagramm eines Datenverarbeitungssystems des
Typs PC ist, mit einem Überprüfungssystem
der Integrität
von Codeblöcken
gemäß einer
ersten Ausführung
der Erfindung;
-
2 ein
erfindungsgemäßer Überprüfungsalgorithmus
der Integrität
von Codeblöcken
ist; und
-
3 eine
schematische perspektivische Ansicht eines erfindungsgemäßen Überprüfungsmoduls
von Codeblöcken
ist, das zwischen einem Prozessor- oder Hauptspeicherblock und einer
Mutterkarte des Datenverarbeitungssystems angeordnet ist.
-
Gemäß der Ausführung der
Erfindung nach 1 ist ein Datenverarbeitungssystem
ein um einen schematisch dargestellten Prozessor herum angeordneter
persönlicher
Computer PC, mit seiner zentralen Verarbeitungseinheit CPU und einem
Cache-Speicher CAP. Bei einer Variante ist der Cache-Speicher ein
außerhalb
des Prozessors PR angeordnetes Modul.
-
1 zeigt
verschiedene Funktionseinheiten, die in dem Computer PC enthalten
sind und in Verbindung mit der Erfindung stehen. An einem Systembus
BS, der ebenfalls als Eingangs-/Ausgangsbus dient, sind in konventioneller
Weise ein das Betriebssystem OS des Computers sowie spezifische Anwendungen
enthaltender Speicher MO des Typs ROM, ein nicht flüchtiger
Hauptspeicher MP des Typs SRAM oder EEPROM, der gleichzeitig vom
Prozessor PR verarbeitete Anweisungen und Daten enthält, sowie
ein Speicher-Peripherie-Gerät
mit einem Speicherträger,
beispielsweise eine Festplatte mit dem Controller CDD angeschlossen.
Der Speicher MP wie der Cache-Speicher CAP sind unterteilt in einen
Datenbereich und einen Anweisungsbereich, und die Bereiche sind
in Seiten von einigen KBytes organisiert. Gemäß dem Stand der Technik sind
die Speicher CAP und MP direkt verbunden, damit die Zentraleinheit
CPU zeitweilige Anweisungen einer Anwendung liest, die von der Festplatte
DD in den Anweisungsbereich des Hauptspeichers MP übertragen werden,
und die Übertragungen,
das Lesen und Schreiben von Daten zwischen der Festplatte DD und
den Speichern MP und CAP bei der Ausführung einer ursprünglich auf
die Festplatte DD geladenen Anwendung steuert.
-
Erfindungsgemäß ist ein Überprüfungsmodul der
Integrität
von Codeblöcken
MVE in die Verbindung zwischen den Anweisungsbereichen in den Speichern
CAP und MP geschaltet und ist transparent für die zwischen den Datenbereichen
in den Speichern CAP und MP ausgetauschten Daten.
-
Das Überprüfungsmodul
MVE ist ein Mittel für
die dynamische Überprüfung der
Integrität
eines jedes Codeblocks, der in den Anweisungsbereich des Hauptspeichers
MP übertragen
wurde und in diesem auf Befehl der Zentraleinheit CPU in dem Prozessor
PR gelesen werden soll. Der Anweisungsbereich des Hauptspeichers
MP ist in Codeseiten einer vorgegebenen Größe von einigen KBytes organisiert. Jede
Seite enthält
Zeilen, jeweils in Form eines Codeblocks mit einer oder mehreren
Anweisungen, und besteht aus einigen Bytes, beispielsweise höchstens 16
oder 32 Bytes. Die Anweisungen werden Block für Block über das Modul MVE an den Prozessor
PR übertragen.
-
Die
Codeblöcke
sind Anweisungen, die über ein
an dem Systembus BS angeschlossenes Peripheriegerät auf die
Festplatte DD geladen werden. Das Peripheriegerät enthält beispielsweise den Eingangs-/Ausgangscontroller
LEC eines Lesegeräts, das
auf konventionelle Weise einen flexiblen, auswechselbaren Speicherträger DS des
Typs CD-ROM liest, um mindestens eine vorbestimmte Anwendung AP
auf die Festplatte DD zu laden.
-
Das
erfindungsgemäße Überprüfungsmodul der
Integrität
von Anweisungen MVE enthält
einen Prüfer
VE, der einem Lesecontroller CL zugeordnet ist und aus einem Mikrocontroller
besteht, um die Integrität
der in Echtzeit im Anweisungsbereich gelesenen Anweisungen des Hauptspeichers
MP gemäß dem in 2 gezeigten Überprüfungsalgorithmus der
Integrität
AVE zu überprüfen. Als
Option umfasst das Überprüfungsmodul
MVE einen Anweisungs-Cache-Speicher CAV, der überprüfte Zonen des Anweisungsbereichs
des Hauptspeichers MP um Anweisungen herum speichert, die als in
Echtzeit am meisten benutzte Anweisungen betrachtet werden, um die Lesezeit
der Anweisungen zu reduzieren.
-
Der
Integritäts-Überprüfungs-Algorithmus beruht
auf einer Verschlüsselung
der in dem Speicher MP enthaltenen Anweisungen, um die Unterschriften
der Anweisungen zu bestimmen. Die Anweisungen bzw. die Codeblöcke einer
gleichen Anwendung werden bei dem Laden der Anwendung auf die Festplatte
DD unterzeichnet, dann in Echtzeit bei der Ausführung der Anwendung gemäß einem
vorgegebenen gemeinsamen Verschlüsselungs-Algorithmus
AC, um Blockunterschriften zu bestimmen, vorzugsweise abhängig von
einem jeweiligen Anwendungsschlüssel
KC, für
die Überprüfung der
Integrität,
obwohl die Codeblöcke
ursprünglich
in Klarschrift auf die Festplatte geschrieben und unverändert von der
Festplatte in den Speicher MP übertragen
wurden. Demnach werden auf der Festplatte DD enthaltene und zu verschiedenen
Anwendungen gehörige Codeblöcke jeweils
in Abhängigkeit
von verschiedenen Schlüsseln
KC unterzeichnet. Nach einer anderen Variante werden auf der Festplatte
DD enthaltene und zu verschiedenen Anwendungen gehörige Codeblöcke jeweils
gemäß verschiedenen
Unterschrifts-Bestimmungs-Algorithmen
AC unterzeichnet, die vorzugsweise jeweils verschiedene Schlüssel KC
verwenden.
-
Bei
einer ersten Ausführung
gemäß 1 ist der
Lesegerätcontroller
LEC an eine Verschlüsselungsvorrichtung
CRY angeschlossen, um die Codeblöcke
BC einer bestimmten Anwendung AP zu unterzeichnen, die aus einer
in das Lesegerät
eingeführten
flexiblen Platte DS gelesen wurden, bei dem Laden der Anwendung
AP auf die Festplatte DD, um auf Befehl des Controllers CDD Blockunterschriften SGM
auf die Festplatte DD zu schreiben und vorzuspeichern, jeweils in
Verbindung mit den Codeblöcken
BC in Klarschrift der Anwendung AP. Der Speicherträger der
vorgegebenen Anwendung AP, wie die Platte DS des Typs CD-ROM, enthält den jeweiligen Schlüssel KC,
der an die Verschlüsselungsvorrichtung
CRY weitergegeben wird, die den für alle Anwendungen gemeinsamen
Schlüssel-Bestimmungs-Algorithmus
umsetzt, gemäß der ersten
Variante. Gemäß der zweiten
Variante enthält
die Platte DS den jeweiligen Schlüssel-Bestimmungs-Algorithmus
AC und gegebenenfalls den jeweiligen Schlüssel KC, die an die Vorrichtung
CRY übertragen
werden. Nach der Einrichtung der Anwendung AP, während der der Controller LEC
und die Vorrichtung CRY die Datenblöcke BC der Anwendung AP in
Klarschrift und die zugeordneten Unterschriften SGM auf die Festplatte
DD übertragen,
werden der Schlüssel
KC oder der Unterschrifts-Bestimmungs-Algorithmus
AC mit gegebenenfalls dem Schlüssel
KC ebenfalls von dem Controller CL an den Prüfer VE übertragen, nach einem Entfernen
der flexiblen Platte DS aus dem Lesegerät des Controllers LEC, gefolgt
von einer Einfügung
der flexiblen Platte DS in das Lesegerät des Controllers CL und einem
teilweisen Lesen des Platte DS von dem Controller CL.
-
Auf
diese Weise gelangen die aus dem Schlüssel KC bestehenden geheimen
Daten oder der Schlüssel
und der Algorithmus AC nicht über
den internen Systembus BS in den Computer PC, wodurch Angriffe vermieden
werden, da der Prozessor PR die geheimen Daten ignoriert, selbst
um die Ausführung der
Anwendung zu befehlen.
-
Als
Variante, um die Sicherheit nochmals zu erhöhen, ist der Speicherträger DS des
Typs CD-ROM, auf dem eine Anwendung AP gespeichert ist, getrennt
von einem Speicherträger,
auf dem die geheimen Daten gespeichert sind, die an der Bestimmung
der Unterschriften der Anweisungen der Anwendung AP beteiligt sind,
wobei diese geheimen Daten der jeweilige Schlüssel KC oder der jeweilige Bestimmungsalgorithmus
der Unterschrift AC mit einem eventuellen Schlüssel KC sind. Demzufolge ist das
erste, aus dem Controller LEC und dem CD-ROM DS bestehende Lademittel
zum Laden von Anwendungen in Klarschrift in Form von Codeblöcken auf
die Festplatte DD getrennt von einem zweiten Mittel zum Laden von
Schlüsseln
KC und/oder von Algorithmen mit eventuellen jeweiligen Schlüsseln in
die Verschlüsselungsvorrichtung
CRY. Gemäß der Darstellung
in 1 umfasst das zweite Lademittel den Controller
LEC, der das Lesegerät
des zweiten Speicherträgers,
beispielsweise eine Chipkarte, kontrolliert, um dort einem Schlüssel KC
oder einen Bestimmungsalgorithmus einer Unterschrift AC mit einem
eventuellen Schlüssel
KC auszulesen. Die Trennung zwischen den Speicherträgern DS
für die Anwendungen
und den Speicherträgern
CP für
die geheimen Daten ermöglicht
jedem Benutzer oder jedem Entwickler von Anwendungen jeder Anwendung AP
jeweilige geheime Daten KC oder AC und KC zuzuordnen, die aus einem
Los von Speicherträgern CP
gewählt
werden.
-
Bei
dieser Variante betrifft der Lesegerät-Controller CL in dem Modul MVE ein Lesegerät des zweiten
Speicherträgers,
beispielsweise einer Chipkarte CP, um dort den jeweiligen Schlüssel KC oder
diesen und den jeweiligen Algorithmus AC auszulesen und an den Prüfer VE zu übertragen.
-
Beispielsweise
erfolgt durch einen Bestimmungsalgorithmus der Unterschrift AC ein
Schnitt in einer Richtung an einer von einem Codeblock gebildeten
vorgegebenen Codekette. Im Allgemeinen ist die ebenfalls Abdruck
genannte Unterschrift eines verschlüsselten Codeblocks sehr viel
kleiner als der Codeblock. Als Variante ist die Schnittfunktion
in einer Richtung abhängig
von einem jeweiligen geheimen, von der Platte DS oder vorzugsweise
der jeweiligen Chipkarte CP gelesenen Schlüssel, damit bei der Einrichtung
eine Unterschrift oder ein Nachrichten-Authentifizierungscode CAM eines jeden
Codeblocks von der Verschlüsselungsvorrichtung
CRY geliefert, auf der Festplatte DD vorgespeichert und dann mit
einer jeweiligen bestimmten Unterschrift in Echtzeit von dem Prüfer VER
bei dem Lesen des Blocks während
der Ausführung
der Anwendung verglichen wird, wie nachstehend beschrieben.
-
Gemäß einer
zweiten Ausführung
werden die „vorgespeicherten" Unterschriften SGM
der Codeblöcke
BC einer bestimmten Anwendung AP nicht von der Verschlüsselungsvorrichtung
CRY bestimmt, die demnach nicht erforderlich ist.
-
Der
aus der flexiblen Platte DS bestehende Speicherträger unterstützt ebenfalls
Unterschriften SGM der Codeblöcke
BC in Klarschrift von mindestens einer Anwendung AP, die außerhalb
des Computers erstellt werden und jeweils den Codeblöcken zugeordnet
sind. Der Lesegerät-Controller
LEC lädt über den
Controller CDD die Codeblöcke
BC und die jeweils zugeordneten Unterschriften SGM von der flexiblen
Platte DS auf die Festplatte DD. Die mit der Anwendung AC verbundenen
geheimen Daten, wie der Schlüssel
KC oder der Schlüssel
KC und der Algorithmus AC, werden ebenfalls von der flexiblen Platte
DS unterstützt,
damit der zweite Lesegerät-Controller
CL die aus der Platte DS gelesenen geheimen Daten in den Prüfer VE lädt, der
Unterschriften SGD bezüglich
Codeblöcke
bestimmen kann, die während
des späteren
Ablaufs der Anwendung AP in den Hauptspeicher MP übertragen
werden.
-
Wie
bei der Variante der ersten Ausführung besteht
eine Variante der zweiten Ausführung
darin, dass die Daten KC, oder KC und AC, von dem zweiten Speicherträger, beispielsweise
der Chipkarte CP, getrennt von der Platte DS unterstützt und
nur von dem Lesegerät-Controller
CL in den Prüfer
VE geladen werden, um danach die Unterschriften der übertragenen
Blöcke
zu bestimmen.
-
Der
in 2 dargestellte Überprüfungsalgorithmus der Integrität von Anweisungen
AVE beginnt mit den Schritten I1 bis I5 hinsichtlich der Einrichtung einer
Anwendung AP in dem aus dem persönlichen Computer
PC bestehenden Datenverarbeitungssystem. Nachfolgend wird auf die
erste Ausführung
und auf getrennte Speicherträger
DS und CP Bezug genommen hinsichtlich der Anwendung und der dieser zugeordneten
geheimen Daten KC oder KC und AC, die zumindest einen Schlüssel KC
umfassen.
-
Nach
dem jeweiligen Einfügen
der flexiblen Platte DS des Typs CD-ROM und der Chipkarte CP, die
ebenfalls Mikrocontrollerkarte oder Karte mit integrierter Schaltung
genannt wird, in das Lesegerät LEC,
die als erstes und zweites Schaltmittel dienen, werden die Codeblöcke der
Anwendung AP auf die Festplatte DD geschrieben, und der jeweilige
Schlüssel
KC und/oder der Bestimmungsalgorithmus der Unterschrift AC aus der
Karte CP werden im Schritt I1 vom Lesegerät LEC an die Verschlüsselungsvorrichtung
CRY übertragen.
Während
des Ladens Block für
Block der Anwendung AP von der flexiblen Platte DS auf die Festplatte
DD werden im Schritt 12 die Codeblöcke BS nacheinander Block für Block
gemäß dem Schlüssel KC
und/oder dem Algorithmus AC in der Vorrichtung CRY unterzeichnet.
Die Vorrichtung CRY erzeugt jeweilige Unterschriften SGM der Codeblöcke, die
im Schritt I3 auf der Festplatte DD jeweils gemeinsam mit den in
Klarschrift auf der Festplatte DD vorhandenen Codeblöcken vorgespeichert
werden.
-
Nach
der Einrichtung der Codeblöcke
der Anwendung mit den entsprechenden Unterschriften auf der Festplatte
wird die Chipkarte CP bei dem Schritt I4 aus dem dem Controller
LEC zugeordneten Lesegerät
genommen und in das dem mit dem Überprüfungsmodul
MVE verbundenen Controller CL zugeordnete Lesegerät eingefügt. Bei
dem Schritt I5 lädt
der Controller CL dann die geheimen Daten KC oder KC und AC von
der Chipkarte CP in den Prüfer VE.
-
Gemäß der ersten
Ausführung,
bei der die geheimen Daten auf der flexiblen Platte DS gespeichert
sind, wird diese im Schritt I4 in das Lesegerät des Controllers CL eingefügt, um die
geheimen Daten aus der Platte DS im Schritt I5 in den Prüfer VE zu
laden.
-
Für die Ausführung der
Anwendung in einem Schritt E1 und genauer gesagt einer einem auf
der Festplatte DD gespeicherten Codeblock entsprechenden Anweisung
der Anwendung AP, umfasst der Überprüfungsalgorithmus
der Integrität
AVE die Schritte E2 bis E9.
-
Vor
dem Abrufen einer bestimmten Anweisung IN von der Festplatte DD,
um sie in den Anweisungsbereich des Hauptspeichers MP einzutragen, vergewissert
sich die Verarbeitungs-Zentraleinheit CPU des Prozessors PR in bekannter
Weise, dass die Anweisung nicht bereits in ihrem eigenen Cache-Speicher
CAP vorhanden ist, indem sie die die Verwaltungseinheit desselben
befragt. Wenn nicht, überträgt die Zentraleinheit
CPU Lese- und Adressenbefehle an den Controller CDD der Festplatte
DD und an den in dem Speicher MP enthaltenen Controller, der die
Schreib- und Leseprozesse in diesem steuert. Die Lese- und Adressenbefehle
werden ebenfalls von dem Prüfer
VE über
den Bus BS an die Verwaltungseinheit des Cache-Speichers CAV übertragen,
damit der Prüfer
VE ebenfalls in Erwartung des eventuell übertragenen Codeblocks versetzt wird,
der aus dem Speicher MP auszulesen ist, die Anweisung IN enthält und von
der Einheit CPU angezeigt wird. Wenn der Prüfer VE bei dem Schritt E2 feststellt,
dass die von der Einheit CPU gesuchte Anweisung IN in dem Cache-Speicher
CAV enthalten ist, geht der Algorithmus direkt von dem Schritt E2 auf
den Schritt E7, damit der Prüfer
VE den Codeblock BC liest, der die Anweisung IN in dem Speicher CAV
enthält,
und um ihn in den Cache-Speicher CAP und an den Prozessor PR zu übertragen.
-
Wenn
der Prüfer
VE im Schritt E2 jedoch feststellt, dass die von der Zentraleinheit
CPU abgerufene bestimmte Anweisung IN nicht in dem Cache-Speicher CAV enthalten
ist, bestätigt
der Prüfer VE
die Übertragung
des die Anweisung IN enthaltenden und von der Zentraleinheit CPU
angezeigten Codeblocks BC sowie die vorgespeicherte, dem Codeblock
BC zugeordnete Unterschrift SGM, ab der Festplatte DD in den Hauptspeicher
MP, in dem Schritt E3. Danach liest der Prüfer VE im Schritt E4 den Codeblock
BC und die ihm zugeordnete vorgespeicherte Unterschrift SGM, die
in den Hauptspeicher MP übertragen
wurden, um die Integrität
des in dem Speicher MP eingetragenen Codeblocks zu überprüfen. Je
nach Zugehörigkeit
des Codeblocks zu einer bestimmten Anwendung AP bestimmt der Prüfer im Schritt
E5 eine Unterschrift SGD des gelesenen Codeblocks BC gemäß dem gemeinsamen
Verschlüsselungs-Algorithmus
und dem jeweiligen Verschlüsselungs-Schlüssel KC,
oder als Variante gemäß dem jeweiligen
Verschlüsselungs-Algorithmus
AC und dem eventuellen jeweiligen Verschlüsselungs-Schlüssel KC,
erhalten bei der Ladung der geheimen Daten während des Anfangsschritts I5.
Bei dem Schritt E6 wird die bestimmte Unterschrift SGD = AC (BC,
KC) mit der zuvor im Schritt 12 bestimmten vorgespeicherten Unterschrift
SGM für
den Codeblock BC verglichen und ebenfalls im Schritt E4 ausgelesen.
-
Wenn
die vorgespeicherte Unterschrift SGM nicht mit der gerade bestimmten
Unterschrift SGD übereinstimmt,
wird die Ausführung
der Anwendung AP im Schritt E10 sofort abgebrochen, was beispielsweise
durch eine Fehlermeldung des Anzeigecontrollers des Computers PC
signalisiert wird. Das bedeutet, dass der Codeblock, dessen Integritätsfehler
gerade festgestellt wurde, seit dem Laden der Anwendung im Schritt
13 geändert
wurde, beispielsweise bei einem Angriff während einer Verbindung des Computers
PC mit dem Internet.
-
Wenn
bei dem Schritt E6 die verglichenen Unterschriften SGD und SGM identisch
sind, überträgt der Prüfer VE im
Schritt E7 den die bestimmte Anweisung IN enthaltenden Codeblock
BC an den Cache-Speicher CAV und an die Zentraleinheit CPU, damit
die Anweisung IN in bekannter Weise decodiert, ausgeführt und
ihr Ergebnis gegebenenfalls im Schritt E8 gemäß einer Anweisungsverarbeitung
in dem Hauptspeicher MP eingetragen wird. Dann wird die Anwendung
AP im Schritt E9 fortgesetzt mit dem Abruf der nächsten Anweisung, insbesondere
aus dem Speicher CAV im Schritt E2 oder von der Festplatte DD im
Schritt E3.
-
Gemäß einer
Variante steuert der Prüfer
VE während
Ruhezeiten zwischen aufeinander folgenden Lesungen das Auslesen
von zusätzlichen
Codeblöcken
mit ihren zugeordneten Unterschriften, die vorzugsweise neben Codeblöcken liegen,
die vor kurzem von der Festplatte DD ausgelesen wurden, um sie in
den Hauptspeicher MP zu übertragen.
Die Integrität
der zusätzlichen
Blöcke
wird sofort von dem Prüfer
VER überprüft, der
sie in den Cache-Speicher CAV einträgt. Das Speichern von zusätzlichen
Codeblöcken
der Anwendung AP in dem Cache-Speicher CAV des Überprüfungsmoduls MVE vor jedem Ausleseabruf
dieser Blöcke
mit ihren zugeordneten Unterschriften durch den Prozessor PR ermöglicht,
die Zugriffszeiten auf die häufig
verwendeten Anweisungen der Anwendung AP zu reduzieren.
-
Gemäß einer
einfacheren Variante entfällt der
Cache-Speicher CAV des Moduls MVE, d.h. er ist integriert in den
Cache-Speicher CAP des Prozessors PR.
-
Bei
der zweiten Ausführung,
bei der die Unterschriften SGM auf der flexiblen Platte DS gemeinsam
mit den Codeblöcken
BC einer Anwendung AP gespeichert sind, entfällt der zweite Ausgangsschritt I2
der 2 sowie die Entschlüsselungsvorrichtung CRY.
-
Um
den Computer PC normal mit zu ladenden Anwendungen zu nutzen, die
nicht von den erfindungsgemäßen Unterschriften
der Codeblöcke
geschützt
sind, ist mindestens ein Schalter IV vorgesehen, um das Überprüfungsmodul
VE abzuschalten und den Hauptspeicher MP direkt mit dem Prozessor PR
zu verbinden. Bei der ersten Ausführung kann außerdem ein
zweiter, mit dem ersten Schalter IV synchronisierter Schalter IC
die Verschlüsselungsvorrichtung
CRY außer
Betrieb setzen, um den Lesegerät-Controller
LEC direkt mit dem Systembus BS zu verbinden.
-
Die 3 zeigt
beispielsweise eine bevorzugte Ausführung einer Anordnung des Überprüfungsmoduls
MV in Form eines spezifischen integrierten Schaltkreises ASIC (Application
Integrated Circuit), der in einem Gehäuse BMVE mit ähnlichen Abmessungen
wie ein Gehäuse
BPR angeordnet ist, das den den Prozessor PR bildenden integrierten Schaltkreis
enthält.
Das Gehäuse
BMVE befindet sich zwischen dem Gehäuse des Prozessors BPR und
dessen ursprünglichen
Platz auf der gedruckten Schaltung CM des Computers PC, durch Einstecken des
Gehäuses
BPR in das darunter liegende Gehäuse
BMVE, dessen Anschlüsse
mit der Mutterkarte ME verschweißt sind.
-
Gemäß einer
anderen Ausführung
ist das Gehäuse
des Überprüfungsmoduls
BMVE zwischen der Mutterkarte CM und dem Gehäuse des den Hauptspeicher MP
enthaltenden integrierten Schaltkreises BMP angeordnet.
-
Gemäß anderer
materieller Ausführungen
ist das erfindungsgemäße Überprüfungsmodul
MVE in einen integrierten Schaltkreis eingebaut, der den Prozessor
PR oder auch den Hauptspeicher MP enthält.
-
Obwohl
die Erfindung im Rahmen eines persönlichen Computers PC beschrieben
wurde, ist sie für
alle Hardwares eines elektronischen Datenverarbeitungssystems anwendbar
und insbesondere für jede
Art von Mikrocontrollern. Das Überprüfungsmodul
kann beispielsweise zwischen dem Prozessor und dem nicht flüchtigen
Speicher EEPROM des Mikrocontrollers einer Chipkarte, einer so genannten Mikrocontroller-Karte
oder Karte mit integriertem Schaltkreis angeordnet werden. Bei diesem
Beispiel sind der Prozessor PR, das Modul MVE und die Speicher MP
und MO in der Chipkarte enthaltene Elemente, die über ein
Karten-Lesegerät
mit dem Eingangs-/Ausgangsbus des Controllers eines Chipkarten-Endgeräts wie beispielsweise
ein Bank-Endgerät,
ein Verkaufsstellen-Endgerät oder ein
persönlicher
Computer verbunden sind, ab welchem Anwendungen oder Teile von Anwendungen
an die Chipkarte übertragen
werden, um in den EEPROM-Speicher und
zuweilen teilweise in den ROM-Speicher der Chipkarte geladen zu
werden.