PatentDe  


Dokumentenidentifikation DE60118626T2 03.05.2007
EP-Veröffentlichungsnummer 0001410139
Titel VERFAHREN ZUM SCHUTZ VON AUF EINEM SPEICHERMEDIUM AUFGEZEICHNETEN DATEN
Anmelder Valt. X, Toronto, Ontario, CA
Erfinder MEHARCHAND, Dennis, Toronto, Ontario M1C 4V6, CA;
LEUNG, Kwok, Tony, Willowdale, Ontario M2N 2R5, CA
Vertreter derzeit kein Vertreter bestellt
DE-Aktenzeichen 60118626
Vertragsstaaten AT, BE, CH, CY, DE, DK, ES, FI, FR, GB, GR, IE, IT, LI, LU, MC, NL, PT, SE, TR
Sprache des Dokument EN
EP-Anmeldetag 27.12.2001
EP-Aktenzeichen 019902741
WO-Anmeldetag 27.12.2001
PCT-Aktenzeichen PCT/CA01/01828
WO-Veröffentlichungsnummer 2002054251
WO-Veröffentlichungsdatum 11.07.2002
EP-Offenlegungsdatum 21.04.2004
EP date of grant 05.04.2006
Veröffentlichungstag im Patentblatt 03.05.2007
IPC-Hauptklasse G06F 1/00(2006.01)A, F, I, 20061031, B, H, EP
IPC-Nebenklasse G06F 3/06(2006.01)A, L, I, 20061031, B, H, EP   

Beschreibung[de]
GEBIET DER ERFINDUNG

Diese Erfindung betrifft den Schutz von Daten. Insbesondere betrifft die Erfindung einen Datenschutz-Controller zur Verhinderung, dass Daten, die auf einem Datenspeichermedium gespeichert sind, korrumpiert, geändert oder gelöscht werden.

BESCHREIBUNG DES STANDES DER TECHNIK

Beinahe alle Computer und Rechengeräte verwenden elektronische Speichervorrichtungen zum Speichern von Betriebssystemsoftware, Anwendungssoftware und Daten, die im Allgemeinen in diesem Patent in ihrer Gesamtheit als Daten bezeichnet werden. Eine verbreitete Problematik bei solchen Geräten ist das unbefugte Ändern der aufgezeichneten Daten. In einigen Fällen werden solche Änderungen absichtlich vorgenommen, wie im Fall eines Benutzers, der die Konfiguration eines Softwareprogramms ändert oder neue Daten im Speicher speichert. Oftmals führen diese "gut gemeinten" Änderungen zu unerwünschten Ergebnissen, die eine Wiederherstellung oder erneute Änderung der Konfiguration des Computers erfordern. In anderen Fällen, wie beim Löschen oder Ändern von gespeicherten Daten durch ein Virus oder eine unbefugte Person, können Änderungen böswillig gemeint sein. Im Allgemeinen haben solche "nicht gut gemeinten" Änderungen unerwünschte Folgen, die zerstörerisch und umfangreich sein können.

Benutzer von Computern und insbesondere Unternehmen können durch unbefügtes Ändern ihres Rechensystems erhebliche Produktivitäts-, Einkommens- und Gewinnverluste erleiden. In einer Business-Umgebung, wo viele Personen mit Rechensystemen ausgestattet sind, ist es oft wünschenswert, dass alle Computer dieselbe Konfiguration haben. Einheitlich konfigurierte Systeme ermöglichen eine einheitliche Nutzung. Es ist nicht wünschenswert, dass jeder Benutzer, der mit solch einem Computer ausgestattet ist, dessen Konfiguration ändert, um sich den Vorlieben eines anderes Benutzers anzupassen, was (i) zu einer Inkompatibilität zwischen den Betriebscomputern führen kann und dass die anderen Computer (ii) einen Benutzer verhindern, den geänderten Computer in einer einheitlichen Weise zu benutzen, und (iii) das Ergebnis ist schließlich eine gänzliche oder teilweise Funktionsunfähigkeit der geänderten Computer ist, was die Arbeitsproduktivität reduziert und ein kostspieliges Eingreifen des Computer-Supportteams des Unternehmens erfordert.

In anderen Fällen kann es wünschenswert sein, dass Benutzer Änderungen an Daten auf einem Speichermedium vornehmen dürfen, allerdings indem sie einen "Schnappschuss" des Mediums von einem Punkt, wo es richtig konfiguriert war, bereitstellen. In diesem Fall kann ein Benutzer die Konfiguration des Computers durch Hinzufügen, Löschen oder Verändern von Software oder durch Bearbeiten von Daten auf dem Speichermedium ändern. Wenn der Computer durch die Benutzeränderung funktionsunfähig wird, lässt sich der Zustand der Daten zum Zeitpunkt des Schnappschusses wiederherstellen.

Es sind mehrere Vorrichtungen erhältlich, welche versuchen, unbefugtes Ändern von Software und Daten, die auf Festplattenlaufwerken von Computern gespeichert sind, zu verhindern. Einige dieser Vorrichtungen versuchen das zuvor erwähnte Problem mit einer Kombination von Hardware und Software zu lösen. Andere Vorrichtungen versuchen es mit einer reinen Software-Lösung.

Systeme, welche sich nur auf einen Softwareschutz verlassen, unterbrechen typischerweise jeden Versuch zum Schreiben von Daten auf oder Lesen von Daten aus einem Festplattenlaufwerk. Die Daten werden auf einen besonderen Speicherbereich geschrieben, ohne das die ursprünglichen Daten auf dem Festplattenlaufwerk geändert werden. Bei einer anschließenden Aufforderung zum Lesen der geschriebenen Daten werden sie eher aus dem besonderen Speicherbereich als aus dem Festplattenlaufwerk gelesen. Die neuen Daten dürfen nur innerhalb derselben den Computer verwendenden Sitzung zugänglich sein und werden beim Neustart des Computers oder auf Anforderung gelöscht oder verworfen. Diese Lösung hat einen wesentlichen Nachteil. Bösartige Softwareprogramme wie Viren können die Existenz der Schutzsoftware erfassen und sie entweder umgehen oder abschalten. Darüber hinaus sind Systeme, die nur einen Softwareschutz haben, nicht imstande, den besonderen Speicherbereich vor dem Rechensystem zu verbergen und lassen zu, dass bösartige Software auf ihn zugreift (unter Umständen anhand von E/A-Anforderungen für Low-Level-Daten). Die bösartige Software kann dann mit Änderungen an den auf dem Festplattenlaufwerk gespeicherten Daten fortfahren und wird möglicherweise die zuvor dargelegten Probleme verursachen. Außerdem ist eine Softwarelösung im Allgemeinen betriebssystem- und/oder prozessorabhängig.

Systeme, welche eine kombinierte Hardware- und Softwarelösung bereitstellen, umfassen typischerweise eine Karte, welche in einen PCI oder sonstigen Erweiterungsschacht auf einem Computer passt, und ein Softwarepaket. Das Softwarepaket wird zur Kartenkonfiguration benutzt, aber auch zum Abfangen von Aufforderungen zum Lesen und Schreiben und ihre Übergaben an den Prozessor. Auch diese Systeme verbergen vor dem Rechensystem keinen besonderen Speicherbereich auf dem Festplattenlaufwerk, das vom Schutzsystem benutzt wird, und leiden folglich unter dem gleichen Problem, für die Erfassung durch bösartige Software anfällig und ebenfalls umgehbar zu sein.

Bekannt ist aus der EP-0 965 903 ein automatisierter Geldautomat, der einen Prozessor auf einem Motherboard mit BIOS auf dem Festwertspeicher umfasst, wodurch der Betrieb auf einer Festplatte über eine Schnittstelle möglich ist. Die Platte hat mindestens eine normale Partition und umfasst eine verborgene Sicherheitspartition, die bei normaler Systemsteuerung nicht zugänglich ist. Die entsprechenden Daten können aus Sicherheitsgründen verschlüsselt werden.

Bekannt ist aus der WO-99/67713 ein VDS-System (VDS = Virtual Disk Storage) zur Bereitstellung mehrerer virtueller Datenspeichervorrichtungen, die in einem Rechensystem mit Zentraleinheit benutzt werden können. Das VDS-System umfasst ein Speichersystem zum Speichern von Informationen und einen VDS-Controller, welcher mit dem Speichersystem und der Zentraleinheit kommuniziert. Der VDS-Controller partitioniert das Speichersystem in mehrere virtuelle Datenvorrichtungen und schränkt dann die Kommunikation des Rechensystems mit bestimmten dieser virtuellen Datenspeichervorrichtungen ein. Der VDS-Controller sondert somit wahlweise mindestens eine der virtuellen Datenspeichervorrichtungen von der Kommunikation mit dem Rechensystem ab, um zu verhindern, dass Informationen, die in mindestens einer virtuellen Speichervorrichtung gespeichert sind, korrumpiert werden.

Bekannt ist aus der US 5,754,821 ein Verfahren und System zur Bereitstellung eines Zugriffs auf eine geschützte Partition einer Speichervorrichtung mit Direktzugriff in einem Datenverarbeitungssystem, das eine Speichervorrichtung mit Direktzugriff umfasst, einen Adapter, der die E/A der Speichervorrichtung steuert und außerdem einen Schutzmechanismus aufweist, welcher den Zugriff auf eine Speicherpartition auf einer Speichervorrichtung einschränkt, einen Treiber für das Adaptergerät zur Steuerung des Adapters und einen Treiber für das Systemblockgerät zur Übertragung von E/A-Befehlen zur Systempartition vom Betriebssystem zum Treiber des Adaptergerätes. Das Verfahren umfasst die Schritte zum Erhalten einer Aufforderung zum Lesen oder Schreiben auf einer geschützten Speicherpartition, Generieren eines Befehlsdatenblocks, der die Speichervorrichtung zum Lesen oder Scheiben anweist, und Generieren eines Durchlaufbefehls, der den Befehlsdatenblock enthält, welcher den Adapter zum Senden des Befehlsdatenblocks ohne verstärkten Schutz der Speicherpartition anweist. Das Verfahren fährt fort, indem es den Durchlaufbefehl zum Adapter sendet, welcher dann den Befehlsdatenblock der Speichervorrichtung übergibt, um ohne verstärkten Speicherpartitionsschutz ausgeführt zu werden.

Dementsprechend besteht ein Bedarf für ein Datenschutzsystem, welches weder betriebssystem- noch prozessorabhängig ist und das durch bösartige Software oder einen bösartigen Benutzer umgangen oder abgeschaltet werden kann.

KURZDARSTELLUNG DER ERFINDUNG

Gemäß der Erfindung wird ein Verfahren zum Schutz von Daten, die auf einem Speichermedium für Daten gespeichert sind, bereitgestellt, so wie es in den beigefügten Ansprüchen dargestellt ist.

Ausführungsformen der vorliegenden Erfindung verwenden einen Datenschutz-Controller, der zwischen einen Prozessor (beispielsweise ein Mikroprozessor oder Mikrocontroller) eines Rechensystems und einer Speichervorrichtung für Daten (beispielsweise ein Festplattenlaufwerk, Diskettenlaufwerk, Speicherstift) geschaltet ist. Der Controller wird zum Erstellen und Verwalten eines Bereichs für geschützte Daten und eines Bereichs für virtuelle Daten auf der Datenspeichervorrichtung verwendet. Nach dem Erstellen des Bereiches für geschützte Daten und der Bereiche für virtuelle Daten verbirgt der Controller den Bereich für virtuelle Daten vor dem Prozessor. Der Controller präsentiert dem Prozessor die Datenspeichervorrichtung so, als ob sie die gleiche Kapazität wie der einzige Bereich für geschützte Daten hätte.

Zunächst speichert ein Administrator oder eine andere befugte Person Daten (die Betriebssystem-Software, Anwendungssoftware und Daten umfassen können) im Bereich für geschützte Daten anhand eines Konfigurations- und Installationsverfahrens. Eine Speichertabelle für geschützte Daten wird verwaltet, um den Platz innerhalb des Bereiches für geschützte Daten aufzuzeichnen, wo jedes besondere Stück geschützter Daten gespeichert wird.

Anschließend wird der Controller in einem Schutzmodus betrieben, in welchem die geschützten Daten, die im Bereich für geschützte Daten gespeichert sind, gelesen, aber nicht überschrieben werden können. Die Daten, welche aus dem Bereich für geschützte Daten gelesen sowie die Daten, die im Bereich für geschützte Daten gespeichert werden sollen, sind im Bereich für virtuelle Daten gespeichert. Während derselben das Rechnersystem verwendenden Sitzung ist die Benutzung der virtuellen Daten den geschützte Daten vorzuziehen, damit die virtuellen Daten nachgeprüft und geändert werden können. In einer Ausführungsform wird jedoch zu Beginn jeder neuen Sitzung die Speichertabelle für geschützte Daten vom Controller in eine interne Speichertabelle für Daten gelesen, und der Bereich für virtuelle Daten wird ignoriert und behandelt als ob er leer wäre. Alle im Bereich für virtuelle Daten während der vorhergehenden Sitzung gespeicherten Daten werden verworfen. Der Controller beseitigt damit die Auswirkung unerwünschter Veränderungen an den geschützten Daten durch unbefugte Benutzer und bösartige Software wie Viren.

In einer anderen Ausführungsform werden Veränderungen im Bereich für virtuelle Daten nicht zu Beginn jeder Sitzung verworfen. Außerdem wird eine Speichertabelle für virtuelle Daten verwaltet und durch den Controller beim Start jeder Sitzung eingelesen. Der Controller kann allerdings angewiesen werden, die virtuellen Daten durch Löschen ihrer internen Speichertabelle für Daten zu verwerfen, um dann nur die Speichertabelle für geschützte Daten einzulesen.

In einer noch anderen Ausführungsform können Veränderungen, die im Bereich für virtuelle Daten gespeichert sind, permanent übernommen werden, indem der Controller angewiesen wird, sie in einem Bereich für geschützte Daten zu kopieren.

Der Controller kann auch die Verwaltung eines Bereichs für ungeschützte Daten ermöglichen, damit ein Benutzer ungeschützte Daten speichern kann, welche beim Verwerfen der virtuellen Daten nicht verworfen werden. In dieser Ausführungsform werden die Bereiche für geschützte und ungeschützte Daten dem Controller als separate Speichervorrichtungen für Daten präsentiert, selbst wenn sie in Wirklichkeit in getrennten logischen Partitionen auf einer einzigen physikalischen Speichervorrichtung für Daten lokalisiert sind.

Der Controller ist mit Redundanz- und Fehlerkorrekturverfahren wie RAID kompatibel, welche der von diesem Verfahren bereitgestellten Sicherheit eine Datenschutzkomponente hinzufügen.

Die Erfindung ist nach Anspruch 1 definiert.

KURZE BESCHREIBUNG DER ZEICHNUNGEN

Eine bevorzugte Ausführungsform dieser Erfindung ist nachstehend anhand der Zeichnungen näher erläutert, wobei:

1 ein Blockdiagramm eines ersten Rechensystems darstellt, das eine erste Ausführungsform eines Datenschutz-Controllers gemäß dieser Erfindung zeigt.

2 ein Konfigurationsverfahren gemäß dieser Erfindung vorstellt.

2A ein Formatierverfahren gemäß dieser Erfindung darstellt.

3 ein Installationsverfahren gemäß dieser Erfindung darstellt.

4A und 4B den Controller-Betrieb von 1 in einem Schutzmodus darstellt, und

5 ein Blockdiagramm eines zweiten Rechensystems zeigt, das eine zweite Ausführungsform dieser Erfindung umfasst.

NÄHERE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM

Zunächst wird Bezug auf 1 genommen, die ein Rechensystem 22 darstellt, das eine erste Ausführungsform eines Datenschutz-Controllers 20 gemäß dieser Erfindung enthält. Das Rechensystem 22 umfasst einen Prozessor 24 und eine Speichermedium 26 für Daten.

Das Rechensystem 22 kann jede Art von Vorrichtung sein, die Software und/oder das Speichern von Daten in einer Speichervorrichtung erfordert. Das Rechensystem 22 kann beispielsweise ein typischer Personalcomputer sein. In diesem Fall ist der Prozessor 24 ein Mikroprozessor, der den Computer betreibt, und das Speichermedium 26 für Daten kann ein Festplattenlaufwerk oder sonstige Speichervorrichtung sein. Bei einem anderen Beispiel kann das Rechensystem 22 eine Spielkonsole sein. In diesem Fall ist der Prozessor 24 ein Mikroprozessor oder Mikrocontroller, der die Konsole betreibt und das Speichermedium 26 für Daten kann eine Vorrichtung für Halbleiterspeicher wie zum Beispiel ein "Speicherstift" usw. sein.

Der Prozessor 24 ist an eine Prozessorschnittstelle 28 des Controllers 20 über einen Prozessordatenbus 30 gekoppelt. Der Prozessor 24 führt beim Controller 20 Anforderungen zum Lesen von Daten und Anforderungen zum Schreiben von Daten mit Hilfe des Prozessordatenbusses 30 durch. Eine Schnittstelle 32 der Vorrichtung für Daten des Controllers 20 ist an eine Controller-Schnittstelle 34 des Speichermediums 26 für Daten über einen Datenbus 36 der Speichervorrichtung gekoppelt. Der Controller 20 liest Daten aus der und schreibt Daten in das Speichermedium 26 für Daten ein mit Hilfe des Datenbusses 36 auf der Basis der vom Prozessor 24 erhaltenen Aufforderungen zum Lesen und Schreiben.

Die Prozessor-Schnittstelle 28 ist vorzugsweise identisch mit der Controller-Schnittstelle 34. Auf diese Weise kann der Controller 20 in die Kopplung zwischen Prozessor 24 und Speichermedium 26 für Daten geschaltet werden.

Das Speichermedium 26 für Daten enthält einen Speicherbereich 38 für Daten, welcher in eine Anzahl von Datenblöcken 39 aufgeteilt ist, wobei jeder Block fähig ist, eine begrenzte Datenmenge zu speichern. Bestimmungsgemäß können die Blöcke 39 geschützte Datenblöcke 44, virtuelle Datenblöcke 46 und ungeschützte Datenblöcke 47 sein. Der Speicherbereich 38 für Daten ist in drei Bereiche für Daten aufgeteilt: ein Bereich 40 für geschützte Daten mit geschützten Datenblöcken 44, ein Bereich 42 für virtuelle Daten mit virtuellen Datenblöcken 46 und ein Bereich 43 für ungeschützte Daten mit ungeschützten Datenblöcken 47. Die Anzahl geschützter Datenblöcke 44 im Bereich 40 für geschützte Daten ist vorzugsweise gleich der Anzahl virtueller Datenblöcke 46 in den Daten 42 des Bereichs für virtuelle Daten, damit jeder virtuelle Datenblock mit einem Block 44 für geschützte Daten übereinstimmt.

Der Bereich 40 für geschützte Daten enthält eine Speichertabelle 50 für geschützte Daten. Die Speichertabelle 50 für geschützte Daten enthält eine Aufzeichnung für jeden geschützten Block, der verwendet wird, um aufzuzeichnen, ob jeder besondere geschützte Block 44 im Einsatz ist und, falls zutreffend, die im geschützten Block gespeicherten spezifischen Daten und die Beziehung des Blocks zu anderen geschützten Blöcken, die zugehörige Daten enthalten (wenn sich beispielsweise eine Datendatei über mehrere Blöcke erstreckt, können die Blöcke in einer Liste zur Verknüpfung von Dateien vereint werden), aufzuzeichnen. Die in einem Bereich 40 für geschützte Daten gespeicherten Daten werden als "geschützte Daten" bezeichnet.

Der Bereich 42 für virtuelle Daten enthält eine Speichertabelle 51 für virtuelle Daten, welcher in einer ähnlichen Weise wie die Tabelle 50 zum Speichern geschützter Daten benutzt wird. Daneben enthält der Bereich 42 für virtuelle Daten eine Virtuelle-Block-Anwendungstabelle 52 zur Angabe, welche virtuellen Blöcke 46 gültige virtuelle Daten enthalten. Die Virtuelle-Block-Anwendungstabelle 52 wird typischerweise ein Bit enthalten, das jedem virtuellen Block 46 entspricht. Ist ein Sonderbit auf "1" gesetzt, enthält der entsprechende virtuelle Block 46 gültige virtuelle Daten. Ist das Bit auf "0" gesetzt, enthält der entsprechende virtuelle Block 46 keine gültigen "virtuellen Daten". Die in einem Bereich 42 für virtuelle Daten gespeicherten Daten werden als "virtuelle Daten" bezeichnet.

Der Bereich 43 für ungeschützte Daten enthält ebenfalls eine Tabelle 53 zum Speichern ungeschützter Daten, die auch auf ähnliche Weise wie die Tabelle 50 zum Speichern geschützter Daten benutzt wird. Die im Bereich 43 für ungeschützte Daten gespeicherten Daten werden als "ungeschützte Daten" bezeichnet.

Der Controller 20 enthält eine Tabelle 48 zur Verwendung eines geschützten Bereiches, welcher zur Bereithaltung einer Kopie der Speichertabelle 50 für geschützte Daten benutzt wird, wenn der Controller 20 im Einsatz ist. Der Controller 20 enthält außerdem eine Anwendungstabelle 49 eines virtuellen Bereichs, welcher sowohl Kopien von der Speichertabelle 51 für virtuelle Daten als auch von der Virtuelle-Block-Anwendungstabelle 52 bereitstellen soll, wenn der Controller 20 im Einsatz ist. In der bevorzugten Ausführungsform dieser Erfindung speichert der Controller 20 nicht den Platz der Daten, die im Bereich für ungeschützte Daten gespeichert sind, obgleich diese Möglichkeit im erfindungsgemäßen Rahmen besteht.

Der Controller 20 enthält außerdem einen lokalen Speicherbereich 54, welcher zum Puffern von Daten, während sie im Bereich 40 für geschützte Daten oder im Bereich 42 für virtuelle Daten ausgelesen oder eingeschrieben werden, benutzt wird. Die Speicherkapazität des lokalen Speicherbereichs 54 ist vorzugsweise mindestens gleich der eines Blocks 39. Mehr bevorzugt ist der lokale Speicherbereich 54 groß genug, den Inhalt mehrerer Blöcke 39 bereitzustellen, so dass größere Datendateien als ein Block 39 auf wirksamere Weise übertragbar sind.

Das nachstehend erläuterte Ausführungsbeispiel betrifft ein Rechensystem 22. Das Beispiel umfasst ein typisches Rechensystem (nicht dargestellt), das sich für den Einsatz ein einem Büroumfeld eignet. Das beispielhafte Rechensystem verwendet das Betriebssystem Microsoft Windows. Der Prozessor 24 des Rechensystems ist der zur Ausführung von Software und Abläufen der Steuerperipheriegeräte benutzte Mikroprozessor. Das Speichermedium 26 für Daten des Rechensystems ist ein einfaches Festplattenlaufwerk vom IDE-Typ. Das IDE-Typ-Festplattenlaufwerk wird über einen IDE-Controller betrieben, der zwischen den Prozessor und das Festplattenlaufwerk selber geschaltet ist.

Im beispielhaften Rechensystem ist der Datenschutz-Controller 20 zwischen den IDE-Controller und das Festplattenlaufwerk geschaltet. Der Datenschutz-Controller 20 ist für den IDE-Controller transparent. Aus der Perspektive des IDE-Controllers scheint er direkt mit dem IDE-Festplattenlaufwerk zu kommunizieren. So wie nachstehend näher erläutert, verbirgt der Controller 20 in Wirklichkeit mindestens einen Teil des IDE-Festplattenlaufwerks vor dem IDE-Controller und kann eigentlich so tun, als ob er zwei separate physikalische Festplattenlaufwerke wäre.

Obgleich das erste beispielhafte System nur ein einzelnes Festplattenlaufwerk umfasst, ist es wichtig, zur Kenntnis zu nehmen, dass ein Rechensystem zwei oder mehr IDE-Festplattenlaufwerke umfassen kann, die üblicherweise von einem einzelnen IDE-Controller betrieben werden. Umfasst ein Rechensystem mehr als ein IDE-Festplattenlaufwerk, wird jedem Festplattenlaufwerk eine "Laufwerksnummer" zugewiesen, die üblicherweise mit 0 beginnt. (In Systemen mit einem IDE-Festplattenlaufwerk entspricht das einzelne Festplattenlaufwerk üblicherweise dem Laufwerk 0). Jedes Festplattenlaufwerk kann dann separat durch den Prozessor des Computers (und sonstige Komponenten) mit Hilfe jeder Laufwerksnummer adressiert werden. Bestimmte IDE-Festplatten-Controller lassen sich mit den zwei Festplattenlaufwerken anhand eines einfachen Flachbandkabels verbinden. Das Flachbandkabel umfasst mehrere Steuerleitungen, die anhand der Laufwerksnummer das spezifische Festplattenlaufwerk, auf welches bei jedem Vorgang zum Lesen und Schreiben von Daten zugegriffen wird, identifizieren.

In einem IDE-Festplattenlaufwerk befindet sich der Speicherbereich 38 für Daten physikalisch auf einer oder mehr Plattenflächen, die physikalisch in Spuren und Sektoren aufgeteilt sind. Der Speicherbereich 38 für Daten ist in logische Blöcke 39 aufgeteilt, die mit den physikalischen Sektoren übereinstimmen können oder nicht. Beim Einsatz mit einem Windows-Betriebssystem kann ein IDE-Festplattenlaufwerk in mehrere logische Partitionen aufgeteilt werden, die üblicherweise durch verschiedene "Laufwerkskennbuchstaben" bezeichnet werden, wobei jede Partition im Rechensystem (auf jedem Festplattenlaufwerk) einen einzigen Laufwerkskennbuchstaben haben muss, der vom Prozessor benutzt werden kann. Ein Festplattenlaufwerk, das nicht auf diese Weise aufgeteilt ist, kann als mit einer einzigen Partition, die den gesamten Datenspeicherbereich des Festplattenlaufwerks umgreift, angesehen werden, wobei diese einzelne Partition einen einzigen Laufwerkskennbuchstaben haben muss.

In diesem Beispiel umfasst das Rechensystem nur ein einziges IDE-Festplattenlaufwerk, das in drei eindeutige logische Partitionen aufgeteilt ist. Die erste Partition ist der Bereich 40 für geschützte Daten, die zweite Partition ist der Bereich 42 für virtuelle Daten und die dritte Partition ist der Bereich 43 für ungeschützte Daten. Die Blöcke 39, welche die erste Partition beinhalten, sind die geschützten Blöcke 44. Die Blöcke 39, welche die zweite Partition beinhalten, sind die virtuellen Blöcke 46. Die Blöcke 39, welche die dritte Partition beinhalten, sind die ungeschützten Blöcke 47. Die drei Partitionen können physikalisch im Datenspeicherbereich des Festplattenlaufwerks lokalisiert sein und sogar physikalisch miteinander verschachtelt sein. Wie bereits erwähnt, muss die Anzahl der geschützten Blöcke 44 du die Anzahl der ungeschützten Blöcke 46 vorzugsweise identisch sein, und es soll vorzugsweise eine Eins-zu-Eins-Beziehung zwischen den geschützten Blöcken 44 und den ungeschützten Blöcken 46 bestehen.

Ein IDE-Festplattenlaufwerk verwaltet eine Dateizuweisungstabelle für jede Partition auf dem Festplattenlaufwerk. Die Dateizuweisungstabelle umfasst einen Eintrag für jeden Block 39 in der Partition, der angibt, ob der Block benutzt oder unbenutzt ist. Wird der Block benutzt, gibt die Dateizuweisungstabelle ferner an, welche Datendatei den Block benutzt und wie der Block mit einem oder mehreren anderen Blöcken 39, die ebenfalls von derselben Datei benutzt werden, verknüpft ist. Im vorliegenden Beispiel ist die Dateizuweisungstabelle für die erste Partition die Speichertabelle 50 für geschützten Daten, die Dateizuweisungstabelle für die zweite Partition die Speichertabelle 51 für virtuelle Daten und die Dateizuweisungstabelle für die dritte Partition die Speichertabelle 53 für ungeschützte Daten.

Nachstehend wird der Betrieb des Controllers 20 erläutert.

Im Einsatz enthält der Bereich 40 geschützte Daten, die nicht geändert oder gelöscht werden dürfen, und der Platz jedes Stücks geschützter Daten wird in der Speichertabelle 50 für geschützte Daten gespeichert. Typischerweise werden diese geschützten Daten von einem Systemadministrator installiert, um von einem Benutzer, dem ein Rechensystem 22 bereitgestellt wird, benutzt zu werden. Die nachstehend erläuterten Verfahren 100 und 200 veranschaulichen ein Schema zum Installieren der geschützten Daten im Bereich 40 für geschützte Daten.

Bei jeder Sitzung, in welcher das Rechensystem 22 benutzt wird, hält der Controller 20 den Bereich 42 für virtuelle Daten zunächst für leer. Die gesamte Virtuelle-Block-Anwendungstabelle 52 wird auf "0" gesetzt, um anzudeuten, dass jeder virtuelle Block 46 virtuelle Daten enthält, die nicht gültig sind.

Da geschützte Daten von jedem geschützten Block 44 im Bereich 40 für geschützte Daten gelesen werden, sind dieselben Daten gleichzeitig im entsprechenden virtuellen Block 46 im Bereich 42 für virtuelle Daten gespeichert, und die Virtuelle-Block-Anwendungstabelle 52 wird aktualisiert, um anzudeuten, dass der virtuelle Block 46 gültige Daten enthält.

Wenn ein Prozessor 24 eine Schreibaufforderung herstellt, um geschützte Daten hinzuzufügen, zu ändern oder zu löschen, wird die Veränderung nicht im geschützten Block 44 im Bereich 40 für geschützte Daten gespeichert, sondern nur als virtuelle Daten in den entsprechenden virtuellen Blöcken 46 im Bereich 42 für virtuelle Daten. Die Virtuelle-Block-Anwendungstabelle 52 wird aktualisiert, um anzudeuten, dass der virtuelle Block gültige Daten enthält.

Wenn somit der Prozessor 24 eine Leseaufforderung für eine geschützte Datendatei herstellt (d.h. ein Textverarbeitungsdokument), liest der Controller 20 die Datei aus einem oder mehreren geschützten Blöcken 44 im Bereich 40 für geschützte Daten und stellt sie dem Prozessor 24 bereit. Gleichzeitig kopiert der Controller 20 die angeforderte Datendatei in einen entsprechenden Satz virtueller Blöcke 46 im Bereich 42 für virtuelle Daten und aktualisiert die Virtuelle-Block-Anwendungstabelle 52, um anzudeuten, dass diese Blöcke gültig Daten enthalten.

Nachdem die Datei abgeändert wurde (d.h. mit dem Textverarbeitungsprogramm) kann sie dem Controller 20 übermittelt, um in der Speichermedium 26 für Daten gespeichert zu werden. Der Controller 20 speichert die geänderte Datendatei als virtuelle Daten nur im Bereich 42 für virtuelle Daten.

Da beim Start jeder Sitzung, während welcher das Rechensystem 22 verwendet wird, der Bereich 42 für virtuelle Daten als leer gilt, geht die geänderte Datendatei beim Start einer neuen Sitzung (zum Beispiel durch Aus- und Einschalten des Rechensystems 22 verloren). Die ursprüngliche Datendatei, welche weiterhin im Bereich 40 für geschützte Daten gespeichert ist, wird als aktuelle Version der Datendatei behandelt.

Wenn eine Aufforderung zum Lesen von Daten oder Schreiben von Daten erhalten wird, die den Bereich 43 für ungeschützte Daten betrifft, übergibt der Controller 20 die Aufforderung einfach dem Speichermedium 26 für Daten. Im Fall von Aufforderungen zum Lesen erhält der Controller 20 die angeforderten Lesedaten vom Speichermedium 26 für Daten und gibt sie an den Prozessor 24 weiter. Der Controller 20 puffert also einfach die Aufforderungen zum Lesen von Daten und Schreiben von Daten sowie die Daten selber, wenn der Prozessor 24 eine Aufforderung in Bezug auf einen Bereich 43 für ungeschützte Daten herstellt. Dies setzt voraus, dass das Speichermedium 26 für Daten eine intelligente Vorrichtung ist, die auf unabhängige Weise Aufforderungen zum Lesen von Daten und Schreiben von Daten befriedigen kann. Das IDE-Festplattenlaufwerk des beispielhaften Rechensystems ist in der Lage, solche Aufgaben zu übernehmen. Allerdings, wenn der Controller 20 mit einer Speichervorrichtung für Daten benutzt wird, die den Controller 26 benötigt, um ihre Lese- und Schreibabläufe direkt zu steuern, kann der Controller 20 gemäß jedem beliebigen Protokoll zum Speichern von Daten konfiguriert werden. Die Funktion des Controllers 20 beim Beantworten der Aufforderungen zum Lesen von Daten und Schreiben von Daten wird nachstehend in Bezug auf das Verfahren 300 erläutert.

Zunächst wird Bezug auf 2 genommen, die ein Verfahren 100 zum Konfigurieren des Speichermediums 26 für Daten zeigt, damit Daten im Speicherbereich 38 für Daten gespeichert werden können. Das verfahren 100wird unter der Kontrolle eines Systemadministrators ausgeführt, der das von einem Benutzer einzusetzende Rechensystem 22 konfiguriert.

Das Verfahren 100 beginnt in Schritt 102, in welchem der Controller 20 durch den Administrator in einen Konfigurationsmodus gesetzt wird. Typischerweise wird der Administrator den Controller 20 in den Konfigurationsmodus durch Ausführung der Konfigurationssoftware, die mit dem Controller 20 zu diesem Zweck bereitgestellt wird, setzen. Der Rest des Verfahrens 100 soll vorzugsweise ablaufen. Die Konfigurationssoftware wird vorzugsweise mit einem Passwortmechanismus bereitgestellt, um das Setzen des Controllers 20 in den Konfigurationsmodus zu vermeiden, sofern kein ordnungsgemäßes Passwort bereitgestellt wird. Außerdem darf der Controller 20 vorzugsweise nur in den Konfigurationsmodus gesetzt werden, nachdem die Konfigurationssoftware nach Einschalten des Rechensystems 22 ausgeführt ist.

Das Verfahren 100 wechselt dann zum Schritt 104. Jedes Speichermedium 26 für Daten wird eine maximale Größe aufweisen, welche typischerweise als die höchste Anzahl von 8-Bit-Byte-Daten, die in seinem Speicherbereich 38 für Daten gespeichert werden können, ausgedrückt wird. In diesem Schritt ist der Speicherbereich 38 für Daten des Speichermediums 26 für Daten in den Bereich 40 für geschützte Daten, in den Bereich 42 für virtuelle Daten und in den Bereich 43 für ungeschützte Daten aufgeteilt.

Der Controller 20 zeigt eine Dialogbox an, die den Administrator fragt, wie groß der Bereich 43 für ungeschützte Daten sein soll. In Erwiderung auf die ausgewählte Größe, bestimmt der Controller 20 einen entsprechenden Anteil des Speicherbereichs 38 für Daten als Bereich 43 für ungeschützte Daten.

Der Rest des Speicherbereichs 38 für Daten wird in den Bereich 40 für geschützte Daten und in den Bereich 42 für virtuelle Daten aufgeteilt.

Da der Bereich 40 für geschützte Daten und der Bereich 42 für virtuelle Daten vorzugsweise dieselbe Größe mit einer Eins-zu-Eins-Übereinstimmung zwischen geschützten Blöcken 44 und virtuellen Blöcken 46 aufweisen, wird der Controller 20 vorzugsweise den Rest des Speicherbereichs 38 für Daten nach der Erstellung des Bereiches 43 für ungeschützte Daten aufteilen, so dass so weit wie möglich die Anzahl geschützter Blöcke 44 und virtueller Blöcke 46 (nach Ausführung des Verfahrens 110 (2A)) identisch ist.

In diesem beispielhaften Rechensystem führt Schritt 104 zum Speicherbereich 38 für Daten, der in die drei nachstehend beschriebenen Partitionen aufgeteilt ist.

Das Verfahren 100 wechselt dann zum Schritt 106, in welchem der Controller 20 dem Prozessor 24 andeutet, dass das Rechensystem 22 zwei Speichervorrichtungen für Daten enthält, die als "Speichervorrichtungen für virtuelle Daten" bezeichnet werden können. Der Prozessor 24 wird nicht über das "virtuelle" Wesen der Speichervorrichtungen für virtuelle Daten informiert. Der Controller 20 deutet dem Prozessor 24 an, dass die erste Speichervorrichtung für virtuelle Daten im Rechensystem 22 eine gleichwertige Kapazität wie die des Bereiches 40 für geschützte Daten hat (welche vorzugsweise gleichwertig mit oder mindestens kleiner als der Bereich 42 für virtuelle Daten ist) und dass die zweite Speichervorrichtung für virtuelle Daten im Rechensystem 22 eine gleichwertige Kapazität wie die des Bereiches 43 für ungeschützte Daten hat. Der Controller 20 meldet dem Prozessor 24 nicht die Existenz des Bereiches 42 für virtuelle Daten oder irgendwelche Einzelheiten dazu. Je nach dem im Rechensystem 22 verwendeten E/A-Protokoll für Daten, kann der Controller 20 zum Melden spezifischer Merkmale jeder der zwei Speichervorrichtungen für Daten, die er dem Prozessor 24 meldet, angefordert werden. Zum Beispiel kann der Controller 20 angefordert werden, eine Anzahl von Spuren, Sektoren und die Sektorgröße zu melden, die der für jede der zwei Speichervorrichtungen für Daten beanspruchten Größe entspricht. Der Controller 20 ist zur Ermittlung von Werten für diese Merkmale konfiguriert, welche den Größen der Speichervorrichtungen für virtuelle Daten entsprechen (d.h. den Größen des Bereiches 40 für geschützte Daten und des Bereich 43 für ungeschützte Daten), und zu Ihrer Meldung an den Prozessor 24. Die Werte werden unter Ausschluss des Bereiches 42 für virtuelle Daten gemeldet. Es kann sein, dass in anderen Vorrichtungen solche Informationen nicht erforderlich sind und dass hier die einzige benötigte Meldung die der nutzbaren Größe der Bereiche für geschützte und ungeschützte Daten ist.

Der Controller 20 kann als Maskierung in Bezug auf zwei separate Speichervorrichtungen für virtuelle Daten gelten, wobei jede einer logischen Partition auf dem Speichermedium 26 für Daten entspricht. Je nach dem im Rechensystem 22 verwendeten E/A-Protokoll für Daten kann der Prozessor 24 die Speichervorrichtungen für virtuelle Daten, die verschiedene Referenzen verwenden, nachträglich identifizieren. Zum Beispiel haben bei dem beispielhaften Computer die zwei Speichervorrichtungen für virtuelle Daten verschiedene Laufwerkskennbuchstaben und Laufwerksnummern. Der Controller 20 wird Aufforderungen zum Lesen von Daten und Schreiben von Daten für die verschiedenen Laufwerkskennbuchstaben erhalten und sie für den Einsatz auf der geeigneten Partition des IDE-Festplattenlaufwerks umarbeiten.

Das der Bereich 42 für die virtuellen Daten vor dem Prozessor 24 verborgen bleibt, ist der effektiv nutzbare Speicherdatenbereich auf dem Speichermedium 26 für Daten durch die Größe des Bereiches 42 für virtuelle Daten reduziert. Wenn das Speichermedium 26 für Daten beispielsweise einen Speicherbereich 38 mit einer Kapazität von 10 Megabyte (Mb) aufweist und der Bereich 40 für geschützte Daten für eine Datenkapazität von 4 Mb gewählt wird, dann haben sowohl der Bereich 40 für geschützte Daten als auch der Bereich 42 für virtuelle Daten jeweils eine Datenkapazität von 4 Mb und der restliche Bereich von 2 Mb wird als Bereich 43 für ungeschützte Daten zugewiesen. Der Bereich 42 für virtuelle Daten wird vor dem Prozessor 24 verborgen. Der Bereich 40 für geschützte Daten erscheint dem Prozessor 24 wie ein 4-Mb-Speicherbereich für Daten und der Bereich 43 für ungeschützte Daten erscheint dem Prozessor 24 wie ein 2-Mb-Speicherbereich für Daten.

Damit ist das Verfahren 100 beendet.

Nach Beendigung des Verfahrens 100 wird der Prozessor 24 so funktionieren, als ob das Rechensystem 22 zwei separate physikalische Speichervorrichtungen für Daten enthält. Im Fall des beispielhaften Rechensystems mit einem einzigen IDE-Festplattenlaufwerk, das in drei Partitionen aufgeteilt ist, wird der Prozessor die erste Partition als ein erstes physikalisches Laufwerk mit einem einzelnen Laufwerkskennbuchstaben und einer Laufwerksnummer (d.h. Laufwerkskennbuchstabe C: und Laufwerksnummer 0) und die dritte Partition als ein zweites physikalisches Laufwerk mit einem einzelnen Laufwerkskennbuchstaben und einer Laufwerksnummer (d.h. Laufwerkskennbuchstabe D: und Laufwerksnummer 1) sehen. Der Prozessor 24 ist nicht in der Lage auf den Bereich 42 für virtuelle Daten zuzugreifen, da der Prozessor 24 in Unkenntnis über die Existenz des Bereiches 42 für virtuelle Daten ist.

Das Verfahren 100 kann wiederholt werden, um die Größe des Bereiches 43 für ungeschützte Daten und die Größen des Bereiches 40 für geschützte Daten und des Bereich 42 für virtuelle Daten zu variieren. Wenn das Verfahren 100 erstmals auf einem Speichermedium 26 für Daten, das bereits Daten enthält, durchgeführt wird, kann das Verfahren 100 konfiguriert werden, um diese Daten in einen Bereich 40 für geschützte Daten oder einen Bereich 43 für ungeschützte Daten zu bewegen, soweit die Daten für diese Datenbereiche geeignet sind, oder in andere Speichervorrichtungen für Daten. Wenn das Verfahren 100 anschließend auf einem Festplattenlaufwerk ausgeführt wird und die Größe des Bereiches 40 für geschützte Daten oder des Bereiches 43 für ungeschützte Daten so reduziert ist, dass die im Datenbereich existierenden Daten nicht mehr geeignet sind, dann gehen bestimmte dieser Daten verloren oder können alternativ auf einen anderen Platz übertragen werden.

Die nächste Bezugnahme ist 2A, die ein Verfahren 110 zur Formatierung des Bereiches 40 für geschützte Daten und des Bereiches 43 für ungeschützte Daten darstellt, damit Daten im Bereich 40 für geschützte Daten und im Bereich 43 für ungeschützte Daten gespeichert werden können. Das Verfahren 110 wird unter der Kontrolle eines Systemadministrators durchgeführt, der das Rechensystem 22 für den Einsatz durch einen Benutzer konfiguriert.

Das Verfahren 110 beginnt in Schritt 112, in welchem der Controller 20 durch den Administrator in einen Formatiermodus gesetzt wird. Typischerweise wird der Administrator den Controller 20 in den Formiermodus setzen, indem er die mit dem Controller 20 zu diesem Zweck bereitgestellte Formatiersoftware ausführt.

Das Verfahren 110 wechselt dann zum Schritt 114. In Schritt 114 wird der Bereich 40 für geschützte Daten und der Bereich 43 für ungeschützte Daten formatiert. In vielen Fällen benötigen die Speicherbereiche 40 und 43 für Daten eine spezifische Formatierung je nach Typ und Art des Rechensystems 22, an welches sie gekoppelt sind. Durch diese Formatierung wird die Speichertabelle 50 für geschützte Daten und geschützte Blöcke 44 und auch die Speichertabelle 53 für ungeschützte Daten und Blöcke 47 erstellt.

In dem beispielhaften Rechensystem umfasst das Windows-Betriebssystem Dienstprogramme zur Ausführung dieses Formates. Die Windows-Dienstprogramme "Fdisk" und "Format" werden zur Erstellung der Speichertabelle 50 für geschützte Daten und geschützte Datenblöcke 44 und auch zur Erstellung der Speichertabelle 53 für ungeschützte Daten und Datenblöcke 47 verwendet.

Das Verfahren 110 ist damit beendet.

Die nächste Bezugnahme ist 3, welche ein Verfahren 200 zur Installation von Daten im Bereich 40 für geschützte Daten des Speichermediums 26 für Daten darstellt. Auch das Verfahren 200 wird typischerweise unter der Kontrolle des Systemadministrators durchgeführt.

Das Verfahren 200 beginnt in Schritt 202, in welchem der Controller 20 in einen Installationsmodus durch den Administrator gesetzt wird. Dies geschieht typischerweise, indem die mit dem Controller 20 zu diesem Zweck bereitgestellte Installationssoftware ausgeführt wird. Die Installationssoftware umfasst vorzugsweise einen Passwortschutzmechanismus, der vom Administrator die Eingabe eines Passworts anfordert, bevor der Controller 20 den Installationsmodus eingibt. Vorzugsweise kann der Controller 20 nur in den Installationsmodus gesetzt werden, wenn das Rechensystem 22 eingeschaltet ist.

Das Verfahren 200 wechselt dann zum nächsten Schritt 204, in welchen der Administrator Daten in einen Bereich 40 für geschützte Daten laden kann. Der Administrator kann zum Beispiel ein Betriebssystem, das zur Steuerung des Prozessors 24 und sonstiger Teile des Rechensystems 22 benutzt wird (nicht dargestellt), Anwendungssoftware wie Textverarbeitungsprogramme, Spiel- oder Kommunikationssoftware und Datendateien laden. Die in den Bereich 40 für geschützte Daten geladenen spezifischen Daten hängen von der Art und beabsichtigten Verwendung des Rechensystems 22 ab. Während des Installationsmodus kann der Administrator ferner die im Bereich 40 für geschützte Daten gespeicherten Daten löschen und bearbeiten. Solange der Administrator Daten im Bereich 40 für geschützte Daten hinzufügt, löscht und ändert, wird die Speichertabelle 50 für geschützte Daten über das Speichermedium 26 für Daten auf dem neuesten Stand gehalten, damit diese Speichertabelle 50 für Daten eine Aufzeichnung des Platzes aller Daten, die im Bereich 40 für geschützte Daten gespeichert sind, enthält.

Beim Schritt 204 speichert der Administrator nicht jede Information in den Bereich 42 für virtuelle Daten.

In dem beispielhaften Rechensystem kann zu Schritt 204 die Installation eines Betriebssystems wie Microsoft WindowsTM gehören und Anwendungssoftware wie Microsoft WordTM auf dem IDE-Festplattenlaufwerk. Weitere Software und Daten können auch im Bereich 40 für geschützte Daten installiert werden. Der Prozessor wird die Partition für geschützte Daten als Laufwerkskennbuchstabe C: sehen und bezeichnen; das IDE-Festplattenlaufwerk wird beispielsweise die Dateizuweisungstabelle für die Partition geschützter Daten verwalten, um den Platz aller installierten Softwareprogramme und Daten, welche die vom Administrator zugewiesenen Dateinamen verwenden, anzugeben.

Das Verfahren 200 ist beendet, wenn der Administrator die Installation von geschützten Daten im Bereich 40 für geschützte Daten abgeschlossen hat. Sobald das Verfahren 200 beendet ist, werden die im Bereich 40 für geschützte Daten gespeicherten Daten als geschützte Daten bezeichnet.

Sobald die geschützten Daten im Bereich 40 für geschützte Daten installiert sind, ist das Rechensystem 22 für den normalen Betrieb einsatzbereit. Typischerweise wird das Rechensystem 22 in diesem Stadium einem Benutzer zur regelmäßigen Nutzung bereitgestellt. Das Verfahren 200 kann vom Administrator wiederholt werden, um den Inhalt des Bereiches 40 für geschützte Daten zu ändern. Bei solchen nachträglichen Wiederholungen des Verfahrens 200 wird die Speichertabelle 50 für geschützte Daten durch das Speichermedium 26 für Daten (oder durch den Controller 20 je nach vom Speichermedium 26 für Daten verwendeten Protokoll) auf dem neuesten Stand gehalten. Der Administrator speichert keine Information, die auf permanente Weise im Speicherbereich 42 für virtuelle Daten zu schützen ist.

Die nächste Bezugnahme betrifft 4A und 4B, die ein Verfahren 300 zeigen, mittels welchem der Controller 20 während seines normalen Betriebsablaufes einwirkt. Beim Verfahren 300 wird eine Anforderung vom Prozessor 24 für zuvor im Speichermedium 26 für Daten gespeicherte Daten als "Aufforderung zum Lesen" bezeichnet, und die angeforderten Daten werden als "zu lesende Daten" bezeichnet. Eine Aufforderung vom Prozessor 24, Daten im Speichermedium 26 für Daten zu speichern, wird als "Aufforderung zum Schreiben", und die zu schreibenden Daten als "zu schreibende Daten" bezeichnet.

Das Verfahren 300 beginnt in Schritt 302, in welchem der Controller in einen Schutzmodus gesetzt wird. Der Controller 20 ist konfiguriert, um automatisch in den Schutzmodus zu wechseln, wenn eine das Rechensystem 22 verwendende Sitzung startet, sofern der Controller 20 nicht speziell in den Konfigurationsmodus (Verfahren 100) oder Installationsmodus (Verfahren 200) gesetzt wird. Eine das Rechensystem 22 verwendende Sitzung wird typischerweise durch Einschalten des Rechensystems 22 oder durch seine Rückstellung gestartet.

Das Verfahren 300 wechselt dann zum Schritt 303, in welchem der Controller 20 den Bereich 42 für virtuelle Daten initialisiert. Der Controller 20 setzt den Wert jedes Bits in der Virtuelle-Block-Anwendungstabelle 52 auf "0", um anzudeuten, dass alle virtuellen Blöcke 46 keine gültigen Daten enthalten. Der Controller 20 löscht außerdem den Inhalt der Speichertabelle für virtuelle Daten, damit sie andeutet, dass alle virtuellen Blöcke 46 unbenutzt sind. Die Auswirkung von Schritt 303 besteht darin, dass alle virtuellen Daten die im Bereich 42 für virtuelle Daten bei einer vorhergehenden Sitzung, die das Rechensystem 22 verwendet hat, gespeichert wurden, effektiv verworfen werden. Der Controller 20 löscht den Inhalt jedes virtuellen Blocks 46 nicht wirklich, denn das würde einen erheblichen Zeitaufwand erfordern und das Anlaufverfahren des Rechensystems 22 wesentlich verlängern. Solch ein Löschvorgang ist jedoch nicht erforderlich. Alle Daten, die in einem virtuellen Block 46 gespeichert waren, werden vom Controller 20 ignoriert, da die Virtuelle-Block-Anwendungstabelle 52 jeden Block als "nicht gültig" gekennzeichnet zeigt und die Speichertabelle 51 für virtuelle Daten als "unbenutzt".

Bestimmte Rechensysteme ermöglichen einem Prozessor 24 E/A-Aufforderungen für Low-Level-Daten, indem ein Speichermedium 26 für Daten speziell angewiesen wird auf einen spezifischen Teil seines Speicherbereichs 38 für Daten zuzugreifen. Ein Prozessor kann beispielsweise ein IDE-Festplattenlaufwerk anweisen, den Inhalt eines spezifischen Blocks 39 auf der Basis einer physikalischen Spur und einer Sektornummer bereitzustellen. Beim Einsatz mit einem IDE-Festplattenlaufwerk wird der Controller 20 Spur- und Sektorbegrenzungen gemeldet haben, die der Größe der Partition 40 für geschützte Daten und der Partition 43 für ungeschützte Daten zum Prozessor in Schritt 106 entsprechen.

Wenn der Prozessor 24 versucht, Daten aus dem Speicherbereich 42 für virtuelle Daten, die solche E/A-Aufforderungen für Low-Level-Daten verwenden, erhält der Controller 20 die Aufforderungen, da er zwischen dem Prozessor 24 und der Speichervorrichtung geschaltet ist. Ist eine Aufforderung für einen Datenblock bestimmt, der entweder nicht gültig oder unbenutzt ist, wird der Controller 20 lediglich verweigern, die Aufforderung zu erfüllen. Selbst ein bösartiger Benutzer des Rechensystems 22, der über die Anwendung des Controllers 20 und die Existenz des Bereiches 42 für virtuelle Daten auf dem Speichermedium 26 unterrichtet ist, kann dann nicht mehr Daten benutzen, die im Bereich 42 für virtuelle Daten gespeichert sind, außer wenn diese Daten im Bereich 42 für virtuelle Daten während der das Rechensystem 22 verwendenden laufenden Sitzung gespeichert wurden.

Das Verfahren 300 wechselt nun zum Schritt 304. In diesem Schritt liest der Controller 20 die Speichertabelle 50 für geschützte Daten aus dem Speichermedium 26 für Daten in seine Anwendungstabelle 48 für seinen internen geschützten Bereich ein. Der Controller 20 initialisiert seine Anwendungstabelle 49 für seinen internen virtuellen Bereich, damit sie – wie die Speichertabelle 51 für virtuelle Daten und die Virtuelle-Block-Anwendungstabelle 52 – andeutet, dass jeder virtuelle Block 46 "nicht gültig" und "unbenutzt" ist.

Die Anwendungstabelle 48 für geschützte Bereiche wird verwendet, damit die Informationen in der Speichertabelle 50 für geschützte Daten während des Verfahrens 300 schneller zugriffbar sind. Die Anwendungstabelle 49 für virtuelle Bereiche wird verwendet, damit die Informationen in der Speichertabelle 51 und die Virtuelle-Block-Anwendungstabelle 52 während des Verfahrens 300 schneller zugriffbar sind. Da die Informationen sowohl in der Anwendungstabelle 48 für geschützte Bereiche und in der Anwendungstabelle 49 für virtuelle Bereiche direkt aus den Basistabellen (50, 51 und 52) erhalten werden können, welche physikalisch im Speichermedium 26 für Daten gespeichert sind, ist ihre Anwendung optional.

Das Verfahren 300 wechselt dann zum Schritt 306, in welchem eine Aufforderung zum Lesen oder eine Aufforderung zum Schreiben vom Prozessor 26 erhalten wird.

Das Verfahren 300 wechselt dann zum nächsten Entscheidungsschritt 308. Wenn die im Schritt 306 erhaltene Aufforderung eine Aufforderung zum Schreiben ist, wechselt das Verfahren 300 zum Schritt 310. Andernfalls wechselt das Verfahren 300 zum Entscheidungsschritt 340.

In Entscheidungsschritt 310 wird die Aufforderung zum Lesen nachgeprüft. Wenn die Aufforderung zum Lesen für ungeschützte Daten bestimmt ist, die im Bereich 43 für ungeschützte Daten gespeichert sind, wechselt das Verfahren 300 zum Schritt 330. Andernfalls wechselt das Verfahren 300 zum Entscheidungsschritt 312.

In Entscheidungsschritt 312 prüft der Controller 20 die Anwendungstabelle 49 für virtuelle Daten nach, um zu bestimmen, ob die vom Prozessor 24 angeforderten zu lesenden Daten im Bereich 42 für virtuelle Daten gespeichert sind. Gegebenenfalls wechselt das Verfahren 300 zum Schritt 320. Andernfalls wechselt das Verfahren 300 zum Schritt 314.

In Schritt 314 prüft der Controller 20 die Anwendungstabelle 48 für geschützte Daten nach, um zu bestimmen, in welchem geschützten Block oder welchen geschützten Blöcken 44 die zu lesenden Daten gespeichert sind und liest sie in den lokalen Speicherbereich 54 ein. Die in diesem Schritt gelesenen Daten sind geschützte Daten, die ursprünglich im Datenbereich 40 durch den Administrator in Schritt 204 gespeichert wurden.

Das Verfahren 300 wechselt nun zum nächsten Schritt 316, in welchem die geschützten Daten, die vom Bereich 40 für geschützte Daten in Schritt 314 ausgelesen wurden, an den Prozessor 26 übermittelt werden.

Das Verfahren 300 wechselt nun zum nächsten Schritt 318, in welchem die geschützten Daten, die aus dem Bereich 40 für geschützte Daten in Schritt 314 gelesen wurden, im Bereich 42 für virtuelle Daten gespeichert werden. Der Controller 20 bestimmt, welcher virtuelle Block oder welche virtuellen Blöcke 46 dem geschützten Block oder den geschützten Blöcken 44 entsprechen, aus welchem (welchen) die zu lesenden Daten in Schritt 314 gelesen wurden und speichert eine Kopie der zu lesenden Daten in diesem virtuellen Block oder virtuellen Blöcken 46. Das Speichermedium 26 für Daten wird die Speichertabelle 51 für virtuelle Daten aktualisieren, um anzudeuten, dass der entsprechende virtuelle Block oder die entsprechenden virtuellen Blöcke 46 benutzt werden und um ihren Inhalt anzugeben. Der Controller 20 aktualisiert ferner die Virtuelle-Block-Anwendungstabelle 52, um anzudeuten, dass der entsprechende virtuelle Block oder die entsprechenden virtuellen Blöcke nun gültige virtuelle Daten enthalten.

Der Controller 20 aktualisiert seine Anwendungstabelle 49 für virtuelle Daten in einer Weise, dass die Aktualisierungen in der Speichertabelle für virtuelle Daten 51 und in der Virtuelle-Block-Anwendungstabelle 52 reproduziert werden.

Das Verfahren 300 kehrt nun zum Schritt 306 zurück, um auf die nächste Aufforderung vom Prozessor 24 zu warten.

In Schritt 320 verarbeitet der Controller 20 die angeforderten zu lesenden Daten, die zuvor im Bereich 42 für virtuelle Daten gespeichert wurden. Die zu lesenden Daten, die virtuelle Daten sind, können im Bereich (i) für virtuelle Daten in Schritt 318 gespeichert worden sein, wobei die vom Bereich 40 für geschützte Daten zu lesenden Daten in den Bereich 42 für virtuelle Daten oder (ii) Schritt 342 (nachstehend erläutert) kopiert werden, wobei die zu schreibenden Daten in den Bereich für virtuelle Daten als Antwort auf einen Aufforderung zum Schreiben vom Prozessor 24 geschrieben werden.

Der Controller 20 bestimmt, in welchem virtuellen Block oder welchen virtuellen Blöcken 46 die angeforderten virtuellen Daten gespeichert sind. Der Controller 20 liest die Daten aus diesen Blöcken und übermittelt sie zum Prozessor 24.

Das Verfahren 300 kehrt nun zum Schritt 306 zurück, um auf die nächste Aufforderung vom Prozessor 24 zu warten.

In Schritt 330 verarbeitet der Controller 20 Aufforderungen zum Lesen für ungeschützte Daten, die im Bereich 43 für ungeschützte Daten gespeichert sind. Der Controller 20 gibt die Aufforderung zum Schreiben vom Prozessor 24 einfach an das Speichermedium 26 für Daten weiter.

Das Verfahren 300 wechselt nun zum Schritt 332, in welchem der Controller 20 die angeforderten ungeschützten Daten aus dem Speichermedium 26 für Daten liest, welches die ungeschützten Daten aus dem Bereich 43 für ungeschützte Daten erhalten hat. Der Controller 20 übermittelt die ungeschützten Daten zum Prozessor 20.

Das Verfahren 300 kehrt nun zum Schritt 306 zurück, um auf die nächste Aufforderung vom Prozessor 24 zu warten.

Im Entscheidungsschritt 340 beginnt der Controller 20 die Abarbeitung einer Aufforderung zum Schreiben vom Prozessor 24. Bezieht sich die Aufforderung zum Lesen auf ungeschützte Daten, die im Bereich 43 für ungeschützte Daten gespeichert werden sollen, wechselt das Verfahren 300 zum Schritt 350. Andernfalls werden die zu schreibenden Daten im Bereich 42 für virtuelle Daten gespeichert, und das Verfahren 300 wechselt zum Schritt 342.

In Schritt 342 bestimmt der Controller 20, in welchem virtuellen Block oder welchen virtuellen Blöcken 46 die zu schreibenden Daten geschrieben werden sollen. Entsprechen die zu schreibenden Daten bereits Daten, die aus geschützten Blöcken 44 im Bereich 40 für geschützte Daten gelesenen wurden, können die zu schreibenden Daten in die virtuellen Blöcke 46, welche diesen geschützten Blöcken 44 entsprechen, geschrieben werden. Handelt es sich bei den zu schreibenden Daten um vom Benutzer des Rechensystems 22 erstellte neue Daten, wird der Controller 20 einen virtuellen Block oder virtuelle Blöcke 46 auswählen, die in der Speichertabelle 51 für virtuelle Daten und in der Anwendungstabelle 49 für virtuellen Daten als "unbenutzt" bezeichnet sind. Der Controller 20 speichert die zu schreibenden Daten im ausgewählten virtuellen Block oder den ausgewählten virtuellen Blöcken 46. Das Speichermedium 26 für Daten wird die Speichertabelle 51 für virtuelle Daten aktualisieren, um anzudeuten, dass der entsprechende virtuelle Block oder die entsprechenden virtuellen Blöcke 46 nun benutzt werden und um ihren Inhalt anzugeben. Der Controller 20 aktualisiert ferner die Virtuelle-Block-Anwendungstabelle 52, um anzudeuten, dass der entsprechende virtuelle Block oder die entsprechenden virtuellen Blöcke nun gültige virtuelle Daten enthalten.

Der Controller 20 aktualisiert seine Anwendungstabelle 49 für virtuelle Daten in einer Weise, dass die Aktualisierungen in der Speichertabelle 51 für virtuelle Daten und in der Virtuelle-Block-Anwendungstabelle 52 reproduziert werden.

Wenn ein besonderer virtueller Block 46, der zuvor zum Speichern virtueller Daten benutzt wurde, nicht mehr zum Speichern von Daten erforderlich ist (beispielsweise im Fall einer gekürzten oder gelöschten Datendatei), ändert das Speichermedium 26 für Daten die Speichertabelle 51 für virtuelle Daten, um anzudeuten, dass der Block unbenutzt ist. Die Virtuelle-Block-Anwendungstabelle 52 wird jedoch weiterhin andeuten, dass der Block gültige Daten enthält. Auf diese Weise kann ein virtueller Block, der zuvor virtuelle Daten enthalten hatte (oder der vielleicht nie virtuelle Daten enthalten hat) als leer behandelt werden, wodurch der anschließend zu benutzende Block in die Lage versetzt wird, weitere Daten zu speichern. Die allgemeine Bedeutung der Angabe benutzt/unbenutzt in der Speichertabelle 51 für virtuelle Daten und die Angabe gültig/nicht gültig in der Virtuelle-Block-Anwendungstabelle 52 für jeden virtuellen Block 46 wird anhand folgenden Tabelle dargestellt:

Sobald ein besonderer virtueller Block in der Virtuelle-Block-Anwendungstabelle 52 als gültig identifiziert wurde, bleibt er gültig, bis eine neue das Rechensystem 22 verwendende Sitzung gestartet wird, zu deren Zeitpunkt alle in Schritt 303 als ungültig identifizierten virtuellen Blöcke identifiziert sind.

Im beispielhaften Rechensystem kann das IDE-Festplattenlaufwerk des beispielhaften Rechensystems seine Datenzuweisungstabelle sowohl für den Bereich 40 für geschützte Daten als auch für den Bereich 42 für virtuelle Daten genau während der Aufforderungen zum Schreiben virtueller Daten verwaltet werden. Die Speichertabelle 48 für Daten des Controllers 28 ist unabhängig von der Speichertabelle 51 für virtuelle Daten, da die Speichertabelle 51 für virtuelle Daten nicht in die Speichertabelle für Daten in Schritt 304 eingelesen wird.

Das Verfahren 300 kehrt nun zum Schritt 306 zurück, um auf die nächste Aufforderung vom Prozessor 24 zu warten.

In Schritt 350 arbeitet der Controller 20 die Aufforderungen ab, die den Bereich 43 für ungeschützte Daten betreffen. Der Controller 20 gibt diese Aufforderungen einfach an das Speichermedium 26 für Daten weiter. Wenn das Speichermedium 26 für Daten eine Bestätigung bereitstellt, dass die Aufforderung zum Schreiben erfolgreich beendet ist oder eine Fehlerangabe, dass sie nicht beendet werden konnte, gibt der Controller die Bestätigung oder die Fehleranzeige an den Prozessor 24 weiter.

Das Verfahren 300 kehrt nun zum Schritt 306 zurück, um auf die nächste Aufforderung vom Prozessor 24 zu warten.

Wenn der Controller 20 im Schutzmodus (Verfahren 400) ist, schreibt er nicht alle Daten in den Bereich 40 für geschützte Daten. Demzufolge weist der Bereich 40 für geschützte Daten immer noch denselben Inhalt auf, den er nach beendetem Verfahren 200 (oder zuletzt durchgeführtem Verfahren, um den Inhalt des Bereiches 40 für geschützte Daten zu ändern) hatte. Während einer das Rechensystem 22 verwendenden Einzelsitzung werden an geschützten Daten vorgenommene Veränderungen, Hinzufügungen und Löschvorgänge nur im Bereich 42 für virtuelle Daten als virtuellen Daten in Schritt 342 gespeichert. Was den Prozessor 24 betrifft, hat es den Anschein, dass er regelmäßige Aufforderungen zum Lesen und Schreiben von Daten an das Speichermedium 26 für Daten richtet und dass diese Aufforderungen routinemäßig als zufriedenstellend erscheinen. Wenn jedoch eine neue das Rechensystem 22 verwendende Sitzung gestartet wird, gehen alle diese Veränderungen wegen des Schrittes 303 verloren.

Das erste Mal, wenn irgendwelche geschützten Daten im Bereich 40 für geschützte Daten von einem Controller 20 gelesen werden, um eine Aufforderung zum Lesen von Daten zu erfüllen, werden die geschützten Daten in den Bereich 42 für virtuelle Daten als virtuelle Daten (in Schritt 318) kopiert. Daraus ergibt sich, dass zukünftige Aufforderungen zum Lesen derselben Daten vom Controller 20 schneller erfüllt werden können, da die Daten nun im Bereich 42 für virtuelle Daten sind und der Controller 20 folglich die Möglichkeit hat, von Schritt 312 auf Schritt 320 zu wechseln. Durch dieses Kopieren wird außerdem ein Bereich 42 für virtuelle Daten aufgebaut, der damit eine zunehmend vollständige Kopie des Bereiches 40 für geschützte Daten enthält sowie beliebige Änderungen oder Hinzufügungen an den geschützten Daten (so wie nachstehend in Verbindung mit Schritt 342 erläutert). Während einer das Rechensystem 22 verwendenden sehr langen Sitzung kann eine zunehmende Anzahl von Aufforderungen zum Lesen durch Lesen von virtuellen Daten aus dem Bereich 42 für virtuelle Daten anstatt durch Lesen von geschützten Daten aus dem Bereich 40 für geschützte Daten erfüllt werden.

Der Schritt 318 ist optional. Alternativ könnten alle Aufforderungen zum Lesen von geschützten Daten erfüllt werden, indem die geschützten Daten direkt aus dem Bereich 40 für geschützte Daten gelesen werden. Bei dieser Ausführungsform würde das Speichern von virtuellen Daten im Bereich 42 für virtuelle Daten nur Hinzufügungen zu, Änderungen an und das Löschen von geschützten Daten umfassen.

Die vorliegende Erfindung wurde in einer Ausführungsform dargestellt, die sich für ein Rechensystem 22 eignet, welches durch einen Administrator eingerichtet wird (mit Hilfe der Verfahren 100 und 200), um über alle Daten (einschließlich ein Betriebssystem und jegliche Softwareanwendung) zu verfügen, die ein Benutzer benötigt, um die als geschützte Daten im Bereich 40 für geschützte Daten vorgespeicherten Rechenaufgaben auszuführen. Ein Beispiel für ein derartiges Rechensystem ist ein in einem Büroumfeld benutzter Computer, wo der Benutzer/die Benutzerin hauptsächlich seine/ihre Arbeit mit Festapplikationen bewältigt.

Der Benutzer kann permanente Änderungen an der Software und den Daten, die im Bereich 40 für geschützte Daten gespeichert sind, vornehmen. Der Benutzer kann temporäre Änderungen (die nur im Bereich 42 für virtuelle Daten gespeichert werden) an den geschützten Daten vornehmen oder ungeschützte Daten im Bereich 43 für ungeschützte Daten permanent speichern, wo sie von einer Sitzung zur nächsten Sitzung zurückbehalten werden. Nimmt der Benutzer irgendwelche Veränderungen an den geschützten Daten im Computer vor, können die Veränderung durch einfache Rückstellung des Controllers 20 entfernt werden, indem eine den Computer verwendenden neue Sitzung durch Ein- und Ausschalten des Computers oder durch Rückstellung des Computers gestartet wird. In ähnlicher Weise wird jeder Versuch die geschützten Daten zu ändern, sei es durch ein Virus oder jede sonstige bösartige Aktion, unwirksam gemacht, da der Bereich für geschützte Daten nie im Schutzmodus geändert wird. In einem typischen Büroumfeld kann der Einsatz des Controllers 20 die Anzahl und Komplexität der Helpdesk-Anrufe durch die Computer-Benutzer wesentlich reduziert werden.

Im Kontext des beispielhaften Rechensystems und aus der Perspektive des Prozessors 24 baut das Verfahren 100 zwei Speichervorrichtungen für virtuelle Daten auf (d.h. im Kontext des beispielhaften Rechensystems ein Laufwerk C: und ein Laufwerk D:). Beim Verfahren 200 wird das Laufwerk C: mit Informationen geladen, die anschließend geschützt werden. Beim Verfahren 300 kann das Laufwerk C: geändert werden, aber die Änderungen gehen nach der laufenden Sitzung verloren, und die Änderung von Laufwerk D: kann als permanent übernommen werden. Die Existenz und die Anwendung des Bereiches 42 für virtuelle Daten zum Schutz des Bereiches 40 für geschützte Daten ist vollkommen verborgen.

Der Controller 20 stellt den im Bereich 40 für geschützte Daten gespeicherten geschützten Daten einen starken Schutz bereit. Der Controller 20 implementiert eine Hardwarelösung, welche keine Ausführung irgendwelcher Software durch den Prozessor 24 im Schutzmodus benötigt. Dementsprechend kann ein Virus oder sonstiges bösartige Programm nicht die Existenz des Controllers 20 durch einfache Untersuchung, ob Aufrufe des BIOS für Aufforderungen zum Lesen und Aufforderungen zum Schreiben unterbrochen werden, erkennen. Des weiteren stellt der Controller 20 eine vollständig transparente Schicht zwischen dem Speichermedium 26 für Daten und dem Prozessor 24 bereit mit der Ausnahme, dass ein Anteil des Speicherbereichs für Daten von gleicher Größe wie der Bereich 42 für virtuelle Daten vor dem Prozessor 24 verborgen ist.

Da der Controller 20 für den Prozessor 24 transparent, ist kann er ohne Rücksicht auf das installierte Betriebssystem auf dem Rechensystem 22 benutzt werden. Weiterhin kann derselbe Controller 20 mit jedem beliebigen Prozessor oder jeder sonstigen Hardware, die das gleiche Protokoll und die Controller-Schnittfläche 34 anwendet, benutzt werden. Dies ist von zunehmendem Vorteil im Modem-Computerumfeld, wo manche Standardspeicher und Datenspeicherprotokolle und Schnittstellen in einem reichen Angebot an Vorrichtungen genutzt werden. Spiele und Handgeräte, internetfähige Funktelefone und zahlreiche andere Vorrichtungen können diese gleichen Datenspeichervorrichtungen und Protokolle gemeinsam nutzen.

Da der Controller 20 auf wirksame Weise die Schreib- und Leseabläufe auf dem Speichermedium 26 für Daten steuert, ist der Controller 20 konfiguriert, um mit der Speichervorrichtung für Daten anhand des geeigneten E/A-Protokolls für Daten zu kommunizieren und jede erforderliche Steueranweisung bereitzustellen oder gemäß diesem Protokoll zu melden. Es kann sein, dass der Controller 20 in dem beispielhaften Rechensystem einige oder alle Merkmale eines typischen IDE-Festplattenlaufwerk-Controllers benötigt, um das IDE-Festplattenlaufwerk zu betreiben. Dementsprechend wurde der Controller 20, als zwischen solch einen typischen Controller des IDE-Festplattenlaufwerks und das IDE-Festplattenlaufwerk geschaltet, dargestellt. In der Tat kann der Controller 20 in einer integrierten Form bereitgestellt werden, die mit einem typischen IDE-Festplattenlaufwerk in einer Einzeleinheit kombinierbar ist. Die Einzeleinheit wird mit dem Prozessor 24 kommunizieren, als ob sie zwei separate physikalische Festplattenlaufwerkeinheiten steuert, aber in Wirklichkeit formt sie die Aufforderungen zum Lesen und Daten und zum Schreiben von Daten um und arbeitet sie innerhalb der drei Partitionen auf dem einzelnen Festplattenlaufwerk, das innerhalb des Rechensystem 22 installiert ist, ab.

Das Duplizieren von Daten auf Datenspeichervorrichtungen ist eine verhältnismäßig kostspielige Lösung, um Daten zu schützen. Modem-Day-Festplattenlaufwerke und sonstige Datenspeichervorrichtungen haben beachtliche Datenspeicherkapazitäten und sind im Vergleich zu herkömmlichen Vorrichtungen kostengünstig. Der Kauf einer 40-Mb- oder größeren Datenspeichervorrichtung kann eine praktische Lösung und die Zuweisung eines Anteils des Speicherbereiches als Bereich für virtuelle Daten sinnvoll sein, um einen Bereich für geschützte Daten gleicher Größe zu schützen.

Die vorliegende Erfindung eignet sich für zahlreiche Varianten und Änderungen. Einige Möglichkeiten werden nachstehend dargestellt.

Unter Bezugnahme auf 5 soll ein Rechensystem 422 veranschaulicht werden, das eine zweite Ausführungsform 420 dieser Erfindung umfasst. In 5 sind die Bauelemente, die identisch oder vergleichbar mit jenen von 1 sind, anhand der auf 400 erhöhten Hinweiszahlen von 1 identifiziert.

Das Rechensystem 422 umfasst zwei Speichervorrichtungen 426 und 460 für Daten. Das Speichermedium 426 für Daten hat einen Speicherbereich 438 für Daten, das einen Bereich 440 für geschützte Daten, eine Speichertabelle 450 für geschützte Daten, einen Bereich 443 für ungeschützte Daten und eine Speichertabelle 453 für ungeschützte Daten umfasst, wobei alle auf die gleiche Weise wie die entsprechenden Bauteile des Speichermediums 26 für Daten funktionieren.

Die Speichervorrichtung 460 für Daten umfasst die Controller-Schnittstelle 462 und einen Speicherbereich 464 für Daten. Die Speichervorrichtung 460 für Daten ist an den Controller 462 gekoppelt, der den Datenbus 436 der Speichervorrichtung benutzt. Der Bereich 442 für virtuelle Daten und die zugehörige Speichertabelle für virtuelle Daten befinden sich im Speicherbereich 464 für Daten. Der Bereich 442 für virtuelle Daten und die Speichertabelle 451 für virtuelle Daten funktionieren auf die gleiche Weise wie den entsprechenden Bauteile des Speichermediums 426 für Daten.

Der Controller 420 ist konfiguriert, um die beiden Speichervorrichtungen 426 und 460 zu betreiben. Der Controller 420 verwaltet den Inhalt des Bereiches 442 für virtuelle Daten auf die gleiche weise wie für das zuvor dargestellte Rechensystem 22. Da der gesamte Speicherbereich 464 für Daten der Speichervorrichtung 460 für Daten als Bereich 442 für virtuelle Daten benutzt wird, verbirgt der Controller 420 reell Existenz der Speichervorrichtung für Daten vor dem Prozessor 424. Der Controller 420 meldet weiterhin, dass er zwei physikalische Speichervorrichtungen enthält. Die erste Vorrichtung entspricht dem Bereich 440 für geschützte Daten und die zweite Vorrichtung entspricht dem Bereich 443 für ungeschützte Daten, wobei beide auf einem Speichermedium 426 für Daten lokalisiert sind.

Das Rechensystem 422 hat den Vorteil, dass kein Speicherbereich 438 vom Controller 420 für den Bereich 442 für virtuelle Daten benutzt wird, weshalb der Prozessor 424 auf den gesamten Speicherbereich 438 für Daten zugreifen kann. Diese Ausführungsform könnte vorzugsweise eingesetzt werden, wenn die vorliegende Erfindung einem bestehenden Rechengerät zugefügt wird, wobei es wünschenswert ist, dass der für den Prozessor 424 verfügbare allgemeine Speicherbereich für Daten nicht reduziert wird.

Da ein Teil des Speicherbereichs 438 für Daten für den Bereich 443 für ungeschützte Daten benutzt wird, braucht der Speicherbereich 464 für Daten nur so groß wie der Speicherbereich 440 für Daten zu sein. Dementsprechend kann die Speichervorrichtung 460 für Daten eine niedriger Kapazität als das Speichermedium 426 für Daten haben. Wenn, alternativ, die Speichervorrichtung 460 für Daten die gleiche Kapazität wie das Speichermedium 426 für Daten hat, kann der überschüssige Speicherbereich für Daten in der Speichervorrichtung 460 für Daten als zweiter Bereich für ungeschützte Daten benutzt werden, welchen der Controller 420 nicht vor dem Prozessor 420 verbirgt. Solch ein zweiter Speicherbereich für Daten wird dem Prozessor 424 als eine dritte Speichervorrichtung für Daten mit einem einzelnen Laufwerkskennbuchstaben und einer Laufwerksnummer präsentiert (beispielsweise Laufwerkskennbuchstabe E: und Laufwerksnummer 2).

Es wird nun wieder Bezug auf 1 genommen. Das Rechensystem 22 und der Controller 20 sind konfiguriert, um jede Veränderung, die ein Benutzer an geschützten Daten im Schutzmodus vornimmt, zu beheben, indem alle diese Veränderungen im Bereich 42 für virtuelle Daten aufgezeichnet werden und dann den Bereich 42 für virtuelle Daten am Anfang jeder das Rechensystem 22 verwendenden Sitzung ignorieren, indem die Speichertabelle 51 für virtuelle Daten und die Virtuelle-Block-Anwendungstabelle 52 initialisiert werden. In einer anderen Ausführungsform dieser Erfindung könnte es in manchen Systemumgebungen vorzugsweise möglich sein, derartige Änderungen zwischen Sitzungen zu speichern, obwohl Veränderungen auch weiterhin auf Wunsch verworfen werden können. Dies kann geschehen, indem die Speichertabelle 51 für virtuelle Daten und die Virtuelle-Block-Anwendungstabelle 52 einfach in die Anwendungstabelle 49 für virtuelle Daten des Controllers 20 in Schritt 304 eingelesen wird zum Zeitpunkt, wenn das Lesen der Anwendungstabelle 50 für geschützte Daten abläuft. In diesem Fall wird ein Dienstprogramm "Bereich für virtuelle Daten verwerfen" zusammen mit dem Controller 20 bereitgestellt, damit der Administrator den Controller 20 zurückstellen kann, um seine Speichertabelle für Daten zu löschen und dann nur die Speichertabelle 50 für geschützte Daten aus dem Speichermedium 26 für Daten einzulesen. Dienstprogramm "Bereich für virtuelle Daten verwerfen" soll vorzugsweise auf einem separaten Plattenspeicher ab dem Speichermedium 26 für Daten (und jeder sonstigen für den Prozessor 26 im Schutzmodus zugriffbaren Datenspeichervorrichtung) verwaltet werden und nur mit einem Passwort aktiviert werden können, um zu gewährleisten, dass das Dienstprogramm nicht von einem Virus oder anderen bösartigen Programm oder einen bösartigen Benutzer benutzt werden kann, um die vom Benutzer im Bereich 42für virtuelle Date aufgezeichneten Daten zu zerstören. Das Dienstprogramm "Bereich für virtuelle Daten verwerfen" soll vorzugsweise nur am Anfang einer das Rechensystem verwendenden Sitzung eingesetzt werden. Diese Ausführungsform kann insbesondere in einer Schuldienstumgebung hilfreich sein, wo ein Schüler einen Computer für einen wissenschaftlichen Fachbegriff benutzen und der Computer danach wieder zur Verwendung durch einen anderen Schüler zurückgestellt werden kann.

Es kann wünschenswert sein, die Möglichkeit zu bieten, dass im Bereich 42 für virtuelle Daten gespeicherte Veränderungen durch Speichern im Bereich 40 für geschützte Daten permanent übernommen werden. In diesem Fall muss ein Dienstprogramm "Virtuelle Daten in Bereich für geschützte Daten kopieren" bereitgestellt werden. Dieses Dienstprogramm ist konfiguriert, um den Administrator in die Lage zu versetzen, alle virtuellen Daten, die im Bereich 42 für virtuelle Daten gespeichert sind, in den entsprechenden Bereich 40 für geschützte Daten zu kopieren und gleichzeitig die Speichertabelle 50 für geschützte Daten, und die Anwendungstabelle 48 für geschützte Bereiche zu aktualisieren. Das verwendete Dienstprogramm sollte einen Passwortschutz umfassen, damit es nicht ohne Autorisierung gestartet werden kann. Gegebenenfalls kann es einen physikalischen Schlüssel benötigen, der in den Controller 20 gesteckt wird, um zu gewährleisten, dass ein nicht berechtigter Benutzer keine unerwünschten Veränderungen permanent ablegt.

Eine Kombination von (i), die es ermöglicht, dass Daten im Bereich für virtuelle Daten zurückbehalten werden können, (ii) ein Dienstprogramm "Bereich für virtuelle Daten verwerfen" und ein (iii) Dienstprogramm "Virtuelle Daten in Bereich für geschützte Daten kopieren" können in einer Umgebung, wo die Konfiguration eines Rechensystems verändert wird, dienlich sein. Wenn eine Änderung dazu führt, dass das Rechensystem unbeständig arbeitet oder wenn sie anderweitig nicht mehr erwünscht ist, kann sie verworfen werden, indem der Inhalt des Bereiches 42 für virtuelle Daten verworfen wird. Ist die Veränderung wünschenswert, kann sie in den Bereich 40 für geschützte Daten kopiert und damit als permanent übernommen werden.

Das Rechensystem 22 schließt einen Bereich 43 für ungeschützte Daten ein. Dieser Bereich ist angebracht und kann erforderlich sein, wenn das Rechengerät unabhängig von jedem anderen Rechengerät benutzt wird. Wenn das Rechensystem 22 in einer Netzwerkumgebung benutzt wird, kann es wünschenswert sein, dass alle Benutzer solcher Rechengeräte alle Daten, die sie erstellen, auf einen gemeinsam genutzten Speicherbereich auf einem Netzwerk-Server speichern. In diesem Fall kann es wünschenswerte sein den Bereich 43 für ungeschützte Daten vom Speichermedium 26 für Daten zu entfernen und einfach einen Anteil des Datenspeicherbereichs des Netzwerk-Servers als Bereich 43 für ungeschützte Daten für das Rechensystem 22 zu bestimmen.

Ein Ausführungsbeispiel mit einem IDE-Festplattenlaufwerk wurde bereits erläutert. Die vorliegende Erfindung ist ebenso für den Einsatz mit anderen Speichervorrichtungen wie ISA, ATA, EIDE, SCSI und sonstigen Festplattenlaufwerke geeignet. Darüber hinaus ist die Erfindung kompatibel mit und eignet sich für den Einsatz mit jeder beliebigen anderen Datenspeichervorrichtung, einschließlich Halbleiterspeichervorrichtungen, einschließlich magnetische Speichervorrichtungen, Vokabelkarten, PC-Karten, usw.

Die vorliegende Erfindung kann mit anderen Ausfallsicherheits- und Schutztools wie die RAID-Technologie (RAID = Redundant Array of Independent Disks = Redundanter Verbund unabhängiger Festplatten) kombiniert werden. In einem RAID-System kann ein Controller wie der Controller 20 oder 420 zwischen den RAID-Controller und einem oder mehreren redundanten Festplattenlaufwerken eingefügt werden. Der Controller und die zugehörigen Laufwerke lassen sich dann, wie zuvor erläutert, konfigurieren. Diese Konfiguration ermöglicht, dass eine Redundanzsteuerung (die von der RAID-Konfiguration bereitgestellt wird) durch die Datenschutztechnologie dieser Erfindung ergänzt wird. Hervorzuheben ist insbesondere, dass die RAID-Technologie selber nicht dafür sorgt, dass Daten auf einer Platte geschützt sind. Sie sorgt nur für Redundanz und kann Fehlerkorrekturen übernehmen. Ist ein Virus auf einem durch RAID geschützten Plattenlaufwerk gespeichert, wird es ganz einfach auf allen redundanten Laufwerken gespeichert. Die RAID-Technologie stellt keinen Mechanismus zum Entfernen von Viren bereit.

Das Wesen der Erfindung wurde an mehreren beispielhaften Ausführungsformen erläutert. Zahlreiche andere Varianten können sich für den Anwendungsbereich dieser Erfindung eignen. Den Anwendungsmöglichkeiten sind nur durch die nachfolgenden Ansprüche Grenzen gesetzt.


Anspruch[de]
Verfahren zum Schutz von geschützten Daten, die auf einem Speichermedium (26) für Daten gespeichert sind, umfassend die Schritte:

(a) in einem Konfigurationsmodus, Aufteilen des Speichermediums (26) für Daten in mindestens einen Bereich (40) für geschützte Daten und einen Bereich (42) für virtuelle Daten;

(b) in einem Installationsmodus, Speichern der geschützten Daten in dem Bereich (40) für geschützte Daten;

(c) in einem Schutzmodus, Erhalten einer Aufforderung zum Lesen von Daten von einem Prozessor (24) und Beantworten der Aufforderung zum Lesen von Daten durch:

(i) wenn die angeforderten zu lesenden Daten im Bereich (42) für virtuelle Daten gespeichert sind, Lesen der angeforderten zu lesenden Daten aus dem Bereich (42) für virtuelle Daten und Obermittlung der zu lesenden Daten an den Prozessor (24);

(ii) wenn die angeforderten zu lesenden Daten nicht in dem Bereich (42) für virtuelle Daten gespeichert sind, Lesen der angeforderten zu lesenden Daten entweder aus dem Bereich (40) für geschützte Daten oder aus einem Bereich für reelle Daten und Obermittlung der zu lesenden Daten an den Prozessor (24).
Verfahren nach Anspruch 1, bei dem das Speichermedium (26) für Daten im Schritt (a) eine einzelne physikalische Speichervorrichtung ist, die in den Bereich (40) für geschützte Daten, den Bereich (42) für virtuelle Daten und einen Bereich (43) für ungeschützte Daten aufgeteilt ist. Verfahren nach Anspruch 2, bei dem der Bereich (40) für geschützte Daten und der Bereich (43) für ungeschützte Daten als zwei separate physikalische Vorrichtungen in Schritt (b) vorliegen. Verfahren nach Anspruch 3, bei dem die Existenz des Bereichs (42) für virtuelle Daten in Schritt (b) verborgen wird. Verfahren nach Anspruch 2, 3 oder 4, bei dem der Bereich (42) für virtuelle Daten und der Bereich (43) für ungeschützte Daten als zwei separate physikalische Vorrichtungen in Schritt (c) vorliegen. Verfahren nach Anspruch 5, bei dem die Existenz des Bereichs (40) für geschützte Daten in Schritt (c) verborgen wird, Verfahren nach Anspruch 1 oder einem hiervon abhängigen Anspruch, bei dem Schritt (c) (ii) den Schritt des Speicherns der angeforderten zu lesenden Daten in dem Bereich (42) für virtuelle Daten enthält. Verfahren nach Anspruch 1 oder einem hiervon abhängigen Anspruch, des weiteren enthaltend den Schritt:

(d) im Schutzmodus, Erhalten einer Aufforderung zum Schreiben von Daten von dem Prozessor (24) und Beantworten der Aufforderung zum Schreiben von Daten durch:

(i) Speichern der zu schreibenden Daten in dem Bereich (42) für virtuelle Daten.
Verfahren nach Anspruch 1, bei dem ein Controller (20) zwischen dem Prozessor (24) und dem Speichermedium (26) für Daten geschaltet ist und bei dem, während des Schritts (b), der Controller (20) den Bereich (42) für virtuelle Daten vor dem Prozessor (24) verbirgt. Verfahren nach Anspruch 9, bei dem, während des Schritts (c), der Controller (20) den Bereich (40) für geschützte Daten vor dem Prozessor (24) verbirgt. Verfahren nach einem der vorhergehenden Ansprüche, bei dem der Bereich (40) für geschützte Daten eine Vielzahl von geschützten Blöcken (44) aufweist und bei dem der Bereich (42) für virtuelle Daten eine Vielzahl von virtuellen Blöcken (46) aufweist, und bei dem jeder der geschützten Blöcke (44) einem virtuellen Block (46) entspricht. Verfahren nach Anspruch 11, bei dem während des Schritts (c) (ii) die angeforderten zu lesenden Daten von einem geschützten Block (44) oder mehreren geschützten Blöcken (44) gelesen werden und bei dem der Unterschritt (c) (ii) des weiteren den Schritt des Kopierens der zu lesenden Daten in einen virtuellen Block (46) oder in mehrere virtuelle Blöcke (46) enthält, der bzw. die dem einen geschützten Block (44) oder den mehreren geschützten Blöcken (44) entsprechen. Verfahren nach Anspruch 11 oder 12, bei dem ein Controller (20) eine Virtuelle-Block-Anwendungstabelle (52) enthält, die einen Eintrag aufweist, der jedem der virtuellen Blöcke (46) entspricht zur Nachverfolgung, ob jeder virtuelle Block (46) gültige Daten enthält. Verfahren nach Anspruch 11, des weiteren umfassend die Schritte:

(a) Speichern der geschützten Daten in einem oder mehreren der geschützten Blöcke (44);

(b) Identifizieren jedes Blocks der virtuellen Blöcke (46), die keine gültigen virtuellen Daten aufweisen;

(c) Abarbeiten der Aufforderungen zum Lesen von Daten von einem Prozessor (24) durch:

(i) Bestimmen eines bestimmten geschützten Blocks (44) oder mehrerer bestimmter geschützter Blöcke (44), in dem bzw. denen die zu lesenden Daten gespeichert sein können;

(ii) Bestimmen eines bestimmten virtuellen Blocks (46) oder mehrerer bestimmter virtueller Blöcke (46), der dem einen bestimmten geschützten Block (44) oder die den mehreren bestimmten geschützten Blöcke (44) entspricht bzw. entsprechen;

(iii) Bestimmen, ob der eine bestimmte virtuelle Block (46) oder die mehreren bestimmten virtuellen Blöcke (46) gültige virtuelle Daten enthält bzw. enthalten;

(iv) wenn der eine bestimme virtuelle Block (46) oder die mehreren bestimmten virtuellen Blöcke (46) gültige virtuelle Daten enthalten, dann Auslesen der angeforderten zu lesenden Daten von dem einen bestimmten virtuellen Block (46) oder den mehreren bestimmten virtuellen Blöcken (46) und Übermittlung dieser an den Prozessor (24);

(v) wenn der eine bestimmte virtuelle Block (46) oder die mehreren bestimmten virtuellen Blöcke (46) keine gültigen Daten enthalten, dann Auslesen der angeforderten zu lesenden Daten von dem einen bestimmten geschützten Block (44) oder den mehreren bestimmten geschützten Blöcken (44) und Übermittlung dieser zu dem Prozessor (24);

(d) Abarbeiten der Aufforderungen zum Schreiben von Daten von dem Prozessor (24) durch:

(i) Auswahl eines virtuellen Blocks (46) oder mehrerer virtueller Blöcke (46);

(ii) Speichern der zu schreibenden Daten in dem einen ausgewählten virtuellen Block (46) oder den mehreren ausgewählten virtuellen Blöcken (46);

(iii) identifizieren des einen ausgewählten virtuellen Blocks (46) oder der mehreren ausgewählten virtuellen Blöcke (46), wenn diese gültige virtuelle Daten enthalten.
Verfahren nach Anspruch 14, bei dem der Bereich (40) für geschützte Daten und der Bereich (42) für virtuelle Daten in derselben Speichervorrichtung (26) für Daten bereitgestellt werden. Verfahren nach Anspruch 14, bei dem der Bereich (40) für geschützte Daten und der Bereich (42) für virtuelle Daten auf einem Magnetplattenlaufwerk (26) bereitgestellt werden. Verfahren nach Anspruch 16, bei dem der Bereich (40) für geschützte Daten in einer ersten Partition des Magnetplattenlaufwerks (26) bereitgestellt wird und bei dem der Bereich (42) für virtuelle Daten in einer zweiten Partition des Magnetplattenlaufwerks (26) bereitgestellt wird. Verfahren nach Anspruch 16 oder 17, bei dem das eine Magnetplattenlaufwerk (26) ein Festplattenlaufwerk vom IDE-typ ist.






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com