-
Die vorliegende Erfindung betrifft ein Verfahren zum Verschlüsseln von Daten auf einem Speichermedium gemäß dem Oberbegriff von Anspruch 1.
-
Ein Speichermedium liest und schreibt Daten in logischen Speicherblöcken. Eine Verschlüsselung kann daher beim Schreiben eines logischen Speicherblocks erfolgen. Eine Entschlüsselung erfolgt analog beim Lesen eines logischen Speicherblocks. Das Speichermanagement hat damit immer Zugriff auf einen einzigen logischen Speicherblock, der verschlüsselt oder entschlüsselt werden soll, sowie dessen logischer Block-Adresse.
-
Da das Speichermanagement die Struktur des Speichers – und damit des Dateisystems – bei bekannten Verfahren nur schwer erkennen kann, wird in den meisten Fällen das Speichermedium komplett verschlüsselt oder aber partiell verschlüsselt, indem ausgewählte Partitionen verschlüsselt und weitere Partitionen unverschlüsselt sind. Die
US 2008/0276065 A1 beschreibt ein solches Verfahren.
-
Problematisch dabei ist, dass das Speichermedium in beiden Fällen zuerst vollständig entschlüsselt werden muss, um die Struktur des Dateisystems zu erkennen und das Speichermedium in das Betriebssystem einzubinden.
-
Nachteilig an der vollständigen Verschlüsselung des Speichermediums ist außerdem, dass Endgeräte wie beispielsweise Kameras, andere Medienrekorder oder Logger welche eine Authentisierung nicht ermöglichen, mit diesen Speichermedien nicht arbeiten können. Wünschenswert ist in diesen Fällen, dass Schreibzugriffe auf das Medium möglich sind, Lesezugriffe jedoch keine oder verschlüsselte Daten zurückliefern.
-
In der
DE 198 03 218 A1 wird ein Schutzsystem für ein Informationsspeichermedium beschrieben, das Dateidaten verschlüsselt und Dateiverwaltungsdaten unverschlüsselt belässt. Die Unterscheidung, ob die zu schreibenden Daten Dateiverwaltungsdaten oder Dateidaten sind, wird auf der Grundlage des durch das Hostgerät bestimmten logischen Adressenwerts durchgeführt. Nachteilig an dieser Lösungen ist, dass Verzeichnisinformationen über gespeicherte Dateien eines Benutzers ebenfalls verschlüsselt werden, da über den logischen Adresswert allein nur unterschieden werden kann, ob die Daten Dateisysteminformationen sind oder dem Datenbereich des Speichermediums zuzuordnen sind. Bei einem FAT Dateisystem sind unter „Dateisysteminformationen” die Speicherverwaltungstabelle (file allocation table, FAT) der Master Boot Record (MBR), der Partition Boot Record (PBR), das Wurzelverzeichnis (Root Directory), und eventuell dazwischen liegende unbeschriebene Sektoren zu verstehen. Unter „Datenbereich” sind die abgespeicherten Daten eines Nutzers zu verstehen, die in logischen Cluster abgelegt sind, welche wiederum von mindestens einem logischen (Speicher-)Block gebildet werden, und ferner eine Anzahl von Verzeichniscluster und optional erweiterte Verzeichniscluster. Bei der bekannten Lösung werden somit lediglich die Dateisysteminformationen unverschlüsselt abgelegt.
-
Der Erfindung liegt das technische Problem zugrunde, eine Hardwareverschlüsselung zur Verfügung zu stellen, welche das vollständige Dateisystem (das heißt die Dateisysteminformationen und die Verzeichnisinformationen, also die Verzeichniscluster) unverschlüsselt belässt, Nutzdaten jedoch verschlüsselt. Da das Verschlüsselungssystem ausschließlich Zugriff auf den zu verschlüsselnden oder zu entschlüsselnden Speicherblock hat, muss es anhand dessen Inhalt und dessen logischer Block-Adresse entscheiden, ob der Speicherblock zum Dateisystem, oder aber zu den Nutzdaten zählt.
-
Diese Aufgabe wird durch ein Verfahren gemäß Anspruch 1 gelöst.
-
Wie bei bekannten Verfahren zum Schreiben und Lesen von Daten auf und von einem Speichermedium mit einem FAT Dateisystem, werden beim Schreiben von Daten diese auf dem Speichermedium in logischen Blöcken in einem Dateisysteminformationsbereich oder in Clustern, die ihrerseits aus logischen Blöcken bestehen, in einem Datenbereich des Speichermediums gespeichert. Bei einem Schreibvorgang eines logischen Blocks wird in einem ersten Schritt über dessen logische Adresse ermittelt, ob dieser im Dateisysteminformationsbereich liegt, und wenn dies der Fall ist, der logische Block unverschlüsselt gespeichert.
-
Wenn der logische Block im Datenbereich liegt, so wird dieser erfindungsgemäß verschlüsselt oder unverschlüsselt gespeichert wird, wobei zur Entscheidung, ob der logische Block im Datenbereich verschlüsselt oder unverschlüsselt gespeichert wird, überprüft wird, ob der logische Block Teil eines Verzeichnisclusters ist, wobei der logische Block dann nicht verschlüsselt wird, und der logische Block ansonsten verschlüsselt wird.
-
Vorteilhaft ist dabei, dass nicht ausschließlich die durch das Hostgerät bestimmten logischen Adresswerte der Unterscheidung zu Grunde liegt, ob es sich um Dateiinhalte oder Dateiverwaltungsdaten handelt. Grundlage für die Entscheidung ist vielmehr auch der Inhalt der zu schreibenden Speicherblöcke in Verbindung mit den zugehörigen logischen Blockadressen. Damit liegt die gesamte Ordnerstruktur mit den Dateiinformationen (z. B. Verzeichnisse, Unterverzeichnisse, Dateinamen) auf dem Speichermedium unverschlüsselt vor, wobei gleichzeitig alle Dateiinhalte auf dem Speichermedium verschlüsselt sind.
-
Bevorzugte Ausgestaltungen der Erfindung ergeben sich aus den Unteransprüchen.
-
Vorzugsweise wird zur Überprüfung, ob der logische Block Teil eines Verzeichnisclusters ist, überprüft, ob es sich um den ersten Speicherblock eines Clusters handelt, und wenn dies der Fall ist, durch einen Vergleich mit einem Datenmuster ermittelt, ob Daten eines Verzeichnisclusters vorliegen. Handelt es sich um Daten eines Verzeichnisclusters, so wird der logische Block nicht verschlüsselt. Das Verzeichnis bleibt dann vorteilhafterweise immer sichtbar. Liegt kein Verzeichniscluster vor, so wird der logische Block verschlüsselt. Es handelt sich dann um reine Nutzdaten, die ohne eine Authentisierung nicht zugänglich sein sollen.
-
Vorzugsweise wird ein logischer Block, der im Dateisysteminformationsbereich zu speichern ist (beispielsweise weil er Teil der FAT ist), nach Verzeichniserweiterungen durchsucht, da diese ein Hinweis darstellen, dass es sich hier um Verzeichnisdaten handeln muss. Wird eine Verzeichniserweiterung gefunden, so wird der zugehörige Cluster-Index in eine Verzeichnisclustertabelle geschrieben. Diese bietet den Vorteil, dass anhand der abgelegten Cluster-Indizes jeder Cluster, auf den hier verwiesen wird, sofort als Verzeichniscluster identifiziert werden kann, der nicht zu verschlüsseln ist.
-
Ist ein logischer Block im Datenbereich zu speichern und ist er nicht der erste logische Block eines Clusters, so wird dieser unverschlüsselt gespeichert wird, wenn sein zugehöriger Cluster-Index in der Verzeichnisclustertabelle eingetragen ist. Da Cluster immer sequenziell gelesen werden, ist gewährleistet, dass der erste Cluster bereits geprüft, und gegebenenfalls ein Eintrag in der Verzeichnisclustertabelle vorgenommen wurde. Ist der Cluster-Index nicht eingetragen, so wird der logische Block verschlüsselt. Der Abgleich mit der Verzeichnisclustertabelle macht das Verfahren besonders effizient.
-
Bei einer weiteren bevorzugten Ausgestaltung der Erfindung beinhaltet das Datenmuster einen Punkteintrag mit einer Referenz auf ein aktuelles Verzeichnis und einen Punktpunkteintrag mit einer Referenz auf ein übergeordnetes Verzeichnis. Insbesondere wenn das FAT Dateisystem ein FAT 32 Dateisystem ist, beinhaltet der Punkteintrag bei den Bytes 1 bis 12 des Sektors die Hexadezimaldaten
0x2E, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x10.
-
Der Punktpunkt-Eintrag bei den Bytes 33 bis 45 des Sektors beinhaltet dann die Hexadezimaldaten:
0x2E, 0x2E, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x10.
-
Nach diesen Datenmustern wird der erste Block eines Clusters folglich durchsucht.
-
Vorzugsweise wird für den Fall, dass ein logischer Block, der im Datenbereich zu speichern ist, und der zu einem Verzeichniscluster gehört, der zugehörige Clusterindex in die Verzeichnisclustertabelle eingetragen. Umgekehrt wird, wenn der logische Block nicht zu einem Verzeichniscluster gehört, der zugehörige Clusterindex aber noch in die Verzeichnisclustertabelle eingetragen ist, dieser Eintrag entfernt. Letzteres kann auftreten, wenn ein Verzeichnis gelöscht worden ist, da beim Löschen nur der Verweis auf diesen Sektor gelöscht wird. Wenn der betreffende Sektor dann später mit einem Dateninhalt überschrieben wird, wird dieser Clusterindex somit aus der Verzeichnisclustertabelle gelöscht, da es sich jetzt nicht mehr um ein Verzeichniscluster handelt.
-
Bei einer weiteren vorteilhaften Ausgestaltung der Erfindung wird bei einem Lesezugriff auf einen verschlüsselt abgespeicherten logischen Block beim Vorliegen einer Authentisierung dieser entschlüsselt, und ohne Authentisierung dieser wahlweise überschrieben oder verschlüsselt belassen. Ohne Authentisierung können bei einem Lesezugriff auf verschlüsselte logische Blöcke ferner wahlweise verschlüsselte Daten oder auch lediglich ein vorgegebenes Datenmuster ausgegeben werden.
-
Vorzugsweise wird bei einem Lesezugriff auf einen logischen Block, dieser, wenn er im Dateisysteminformationsbereich liegt oder ein zugehöriger Cluster-Index in der Verzeichnisclustertabelle eingetragen ist, oder durch einen Vergleich mit einem Datenmuster ermittelt wird, dass es sich um einen Verzeichniscluster handelt, als unverschlüsselter Block erkannt. Ansonsten wird er als verschlüsselter Block erkannt und gegebenenfalls entschlüsselt.
-
Bei einer besonders bevorzugten Ausführungsform werden Daten auf einer Speicherkarte, insbesondere auf einer Standard SD Speicherkarte oder microSD Speicherkarte gespeichert und von dieser gelesen.
-
Vorzugsweise wird (insbesondere bei einer Standard SD Speicherkarte) die Speicherkarte so betrieben, dass zwar logische Blöcke im Datenbereich grundsätzlich verschlüsselt abgelegt werden, jedoch im Auslieferungszustand der Speicherkarte auch ohne eine vorherige Authentisierung entschlüsselt ausgegeben werden. Dies bietet den Vorteil, dass eine solche Speicherkarte die Normen einer Standard SD Speicherkarte erfüllt. Dann kann ein Aktivierungsbefehl an die Speicherkarte gesendet werden, wodurch bewirkt wird, dass keine automatische Entschlüsselung mehr stattfindet und somit verschlüsselte Daten nur nach einer Authentisierung entschlüsselt werden, sodass diese Daten (und später zusätzlich abgespeicherte Daten im Datenbereich sofern sie keine Verzeichniscluster betreffen) fortan geschützt sind. Beispielsweise kann realisiert sein, dass verschlüsselte Daten erst nach dem Senden eines Aufsperr-Codes an die Speicherkarte wieder entschlüsselt werden. Dies kann beispielsweise durch die Eingabe eines persönlichen Geheimschlüssels (PIN) angestoßen werden.
-
Im Folgenden wird die vorliegende Erfindung anhand der Figuren beispielshaft näher erläutert.
-
Dabei zeigt:
-
1 das Schema eines Speichermediums und eines Hosts;
-
2 eine schematische Darstellung eines FAT Dateisystems; und
-
3 ein Flussdiagramm zur Feststellung, ob ein Speicherblock zu verschlüsseln ist.
-
Die vorliegende Erfindung erlaubt es, Dateiinhalte auf einem Speichermedium selbstständig zu verschlüsseln. Dies wir im Folgenden anhand einer SD (Secure Digital) Speicherkarte näher erläutert. Die betrachtete Speicherkarte ist Stand der Technik und wird für zahlreiche Anwendungen hergestellt und verkauft. Daten können beliebig gelesen und geschrieben werden. Sobald ein Aktivierungsbefehl an die Speicherkarte gesendet wird, sind jedoch alle Dateiinhalte verschlüsselt und können nur nach dem Senden eines Aufsperr-Codes an die Speicherkarte wieder gelesen werden. Dateiinhalte, welche nach dem Aktivierungsbefehl auf die Speicherkarte geschrieben werden, werden ebenfalls von der Speicherkarte verschlüsselt. Nach der Aktivierung agiert die Speicherkarte somit wie ein Briefkasten, in den zwar Daten hineingelegt werden können, jedoch nur mithilfe eines Schlüssels wieder gelesen werden können.
-
Die Dateisysteminformationen, Verzeichnisse und Dateinamen werden im Gegensatz zu Dateidaten bzw. Dateiinhalten bei dieser Lösung nicht verschlüsselt, sodass der Nutzer auch im gesperrten Zustand sehen kann, welche Verzeichnisse und Dateien sich auf dem Speichermedium befinden.
-
Diese Erfindung kann in Endgeräte wie beispielsweise Kameras, Medienrekorder oder Logger wie eine normale Speicherkarte verwendet werden. Das Lesen der Daten erfolgt dann zum Beispiel an einem PC und mit einer Anwendung, die es erlaubt, den Aufsperr-Code an die Speicherkarte zu senden.
-
Die Aufgabe wird gelöst, indem zum einen Datenblöcke die zur Systembereich des Dateisystems gehören unverschlüsselt bleiben, zum anderen Unterverzeichnis anhand eines Datenmusters identifiziert werden und ebenfalls unverschlüsselt bleiben.
-
Das Speichermedium sei mit einem der Dateisystem FAT16, FAT32 oder exFAT formatiert.
-
In 1 ist dargestellt ein Speichermedium (4), das eine in die Speicherverwaltung (2) integrierte Datenverschlüsselungseinheit (7), eine Verzeichnisclustertabelle (8) und einen Speicher (3) enthält. Ein Hostsystem (1) kann über Schreib- (5) und Lesevorgänge (6) auf das Speichermedium zugreifen.
-
Das Speichermedium wird mit einem der Dateisystem FAT16, Fat32 oder exFAT formatiert. Es ist bekannt, wo bei diesem Dateisystem die Grenze zwischen Dateisysteminformationen und Datenbereich ist. Die Dateisysteminformationen enthalten zum Beispiel Laufwerksinformationen, die Speicherverteilungstabelle (FAT), eine Kopie der FAT sowie das Wurzelverzeichnis. Es ist bekannt, wo bei diesem Dateisystem die Speicherverteilungstabelle beginnt. Der Datenbereich enthält die Nutzdaten, Verzeichnisinformationen, sowie ungenutzte Speicherblöcke. 2 zeigt die logische Sicht auf das Dateisystem des Speichermediums. Im Datenbereich wird eine bestimmte Anzahl von logischen Speicherblöcken zu (logischen) Cluster zusammengefasst. Das Dateisystem stellt für neue Daten (Verzeichnisse oder Nutzdaten) jeweils mindestens einen Cluster zur Verfügung.
-
Soll nun ein logischer Speicherblock geschrieben werden, entscheidet eine Logik im Speichermanagement des Speichermediums, ob dieser logische Speicherblock verschlüsselt werden soll oder nicht. Die Entscheidung erfolgt anhand des Ablaufdiagramms der 3:
-
Liegt der logische Speicherblock im Datenbereich und ist der Speicherblock der erste Speicherblock eines Clusters, so wird dieser mit dem im Folgenden beschriebenen Muster verglichen. Laut der FAT32 Spezifikation muss jedes Unterverzeichnis Verzeichniseinträge mit einer Referenz auf das aktuelle Verzeichnis „.” und auf das übergeordnete Verzeichnis „..” haben. Daraus ergibt sich das folgende vorgegebene Muster für die ersten 12 Bytes und des 33. bis 45. Bytes des ersten logischen Speicherblocks eines Clusters mit Verzeichnisinformationen:
Punkt-Eintrag (muss mit Byte 1–12 des Sektors übereinstimmen):
0x2E, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x10
Punktpunkt-Eintrag (muss mit Byte 33–45 des Sektors übereinstimmen):
0x2E, 0x2E, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x10
-
Wird ein erster logischer Speicherblock eines Verzeichnisclusters erkannt, wird die Nummer des Clusters in einer Verzeichnisclustertabelle vermerkt. Folgende zu schreibende logische Speicherblöcke eines Verzeichnisclusters werden dann erkannt, da ihr Cluster-Index in der Verzeichnisclustertabelle eingetragen ist. Logische Speicherblöcke, die in einem Verzeichniscluster liegen werden nicht verschlüsselt, alle anderen logischen Speicherblöcke werden verschlüsselt. Liegt der logische Speicherblock im Bereich mit den Dateisysteminformationen, wird er nicht verschlüsselt. Ist der logische Speicherblock Teil der Speicherverteilungstabelle (FAT), so werden alle Referenzen in diesem Teil der FAT nach Cluster mit Verzeichniserweiterungen durchsucht. Auf diese Weise gefundene Verzeichniserweiterungscluster werden in die Verzeichnisclustertabelle eingetragen. Folgende logische Speicherblöcke eines Verzeichniserweiterungsclusters werden dann erkannt, da ihr Cluster-Index in der Verzeichnisclustertabelle eingetragen ist.
-
Beim Lesen von logischen Speicherblöcken wird das Ablaufdiagramm in 3 analog angewendet um verschlüsselte logische Speicherblöcke zu erkennen.
-
Wird ein verschlüsselter logischer Speicherblock erkannt, kann dieser, abhängig von einer vorher erfolgten Authentisierung, alternativ folgendermaßen behandelt werden:
Der logische Speicherblock wird mit einem Muster überschrieben, wenn keine Authentisierung erfolgt ist, oder
der logische Speicherblock wird verschlüsselt belassen, wenn keine Authentisierung erfolgt ist.
-
Der logische Speicherblock wird entschlüsselt, wenn eine Authentisierung erfolgt ist.
-
Bezugszeichenliste
-
- 1
- Hostsystem
- 2
- Speicherverwaltung
- 3
- Speicher
- 4
- Speichermedium
- 5
- Schreibvorgang
- 6
- Lesevorgang
- 7
- Datenverschlüsselungseinheit
- 8
- Verzeichnisclustertabelle
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- US 2008/0276065 A1 [0003]
- DE 19803218 A1 [0006]