DE102016110479A1 - Verfahren und Computerprogramm zum Überprüfen der Dateisystemintegrität sowie Datenverarbeitungseinrichtung hierzu - Google Patents

Verfahren und Computerprogramm zum Überprüfen der Dateisystemintegrität sowie Datenverarbeitungseinrichtung hierzu Download PDF

Info

Publication number
DE102016110479A1
DE102016110479A1 DE102016110479.5A DE102016110479A DE102016110479A1 DE 102016110479 A1 DE102016110479 A1 DE 102016110479A1 DE 102016110479 A DE102016110479 A DE 102016110479A DE 102016110479 A1 DE102016110479 A1 DE 102016110479A1
Authority
DE
Germany
Prior art keywords
file
data structure
data processing
data
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE102016110479.5A
Other languages
English (en)
Other versions
DE102016110479B4 (de
Inventor
Daniel Peters
Florian Thiel
Johannes Fischer
Jean-Pierre Seifert
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Technische Universitaet Berlin
Bundesministerium fuer Wirtschaft und Energie
Technische Universitaet Dortmund
Original Assignee
Technische Universitaet Berlin
Bundesministerium fuer Wirtschaft und Energie
Technische Universitaet Dortmund
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Technische Universitaet Berlin, Bundesministerium fuer Wirtschaft und Energie, Technische Universitaet Dortmund filed Critical Technische Universitaet Berlin
Priority to DE102016110479.5A priority Critical patent/DE102016110479B4/de
Publication of DE102016110479A1 publication Critical patent/DE102016110479A1/de
Application granted granted Critical
Publication of DE102016110479B4 publication Critical patent/DE102016110479B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems

Abstract

Die Erfindung betrifft ein Verfahren zum Überprüfen der Dateisystemintegrität einer Dateiverwaltung einer Datenverarbeitungseinrichtung, wobei die Dateiverwaltung der Datenverarbeitungseinrichtung eine Mehrzahl von Dateien für die Datenverarbeitungsfunktion der Datenverarbeitungseinrichtung enthält. Hierfür wird zunächst eine baumartige Datenstruktur der Dateien der Dateiverwaltung bereitgestellt und anschließend basierend hierauf eine sequentielle Datenstruktur erstellt. Durch Vergleich der sequentiellen Datenstruktur mit einer vorherigen Referenz-Datenstruktur kann dann die Dateisystemintegrität festgestellt werden.

Description

  • Die Erfindung betrifft ein Verfahren zum Überprüfen der Dateisystemintegrität einer Dateiverwaltung einer Datenverarbeitungseinrichtung, wobei die Dateiverwaltung der Datenverarbeitungseinrichtung eine Mehrzahl von Dateien für die Datenverarbeitungsfunktion der Datenverarbeitungseinrichtung enthält.
  • In der klassischen von-Neumann Architektur einer elektronischen Datenverarbeitungseinrichtung ist die Speicherung von Daten und Informationen von der eigentlichen Datenverarbeitung, ausgeführt meist mithilfe einer mikroprozessorgesteuerten oder mikrocontrollergesteuerten Datenverarbeitungseinheit, getrennt. Die für die Datenverarbeitung notwendigen Daten und Informationen werden hierfür in einem digitalen Speichermedium abgespeichert, wobei für die Abspeicherung der Daten und Informationen mithilfe von Bits als kleinsten Informationsträgern digitale Verwaltung notwendig ist, die das Auffinden der relevanten Daten und Informationen auf dem digitalen Speichermedium ermöglicht und somit einen sicheren und zielgerichteten Datenabruf aus dem digitalen Speichermedium sicherstellt.
  • In der Regel werden die Daten und Informationen auf dem digitalen Speichermedium mithilfe von logischen Datencontainern, den Dateien, abgelegt. Hierdurch lassen sich die Daten und Informationen logisch strukturiert auf dem digitalen Speichermedium ablegen, wodurch das Auffinden der benötigten Daten und Informationen erleichtert wird.
  • Unter einer Datei im Sinne der vorliegenden Erfindung wird dabei jede logische Datenstruktur verstanden, mit der Daten und Informationen geordnet auf dem digitalen Speichermedium abgelegt werden können. Der Begriff „Datei“ ist somit im Sinne der vorliegenden Erfindung als Oberbegriff zu verstehen und beinhaltet insbesondere Dateien als Speichercontainer für Daten und Informationen, Programmdateien zum Ausführen von Computerprogrammen, Ordner bzw. Verzeichnisse, Verweise bzw. Links auf andere Dateien (sowohl Hard- als auch Softlinks), Netzwerkpfade, blockorientierte sowie zeichenorientierte Gerätetypen. Als Dateien kommen dabei auch Sockets, Pipes sowie Dateien der sogenannten MIME-Typen. Diese Liste ist nicht abschließend.
  • Eine Dateiverwaltung einer Dateiverarbeitungseinrichtung organisiert nun die einzelnen Dateien auf dem entsprechenden digitalen Speichermedium und ermöglicht somit den Zugriff auf die Informationen und Daten einer Datei, die auf dem digitalen Speichermedium abgelegt ist. Die Dateiverwaltung bietet somit eine Schnittstelle zwischen dem digitalen Speichermedium einerseits und dem Benutzerzugriff andererseits, wobei der Benutzer oder ein anderes Programm von der genauen Speicherarchitektur und Speicherorganisation auf dem digitalen Speichermedium keine Kenntnis haben muss. Vielmehr wird mithilfe der Dateiverwaltung bzw. des Dateiverwaltungssystems sichergestellt, dass für jede auf dem digitalen Speichermedium abgespeicherte Datei bekannt ist, unter welcher Adresse in dem digitalen Speichermedium die entsprechenden Dateninformationen bezüglich der abzurufenden Datei hinterlegt sind.
  • Dabei wird in der Regel eine baumorientierte bzw. baumartige Dateistruktur geschaffen, um so eine logische Organisationsstruktur bereitzustellen, die ein leichtes Auffinden der Dateien ermöglicht. Baumorientiert bzw. baumartig meint hierbei, dass jede Datei als Knoten abgebildet werden kann, wobei jeder Knoten genau einen übergeordneten Elternknoten hat, sofern er nicht der Wurzelknoten (root) ist.
  • Je nach Anwendungsfall der Datenverarbeitungseinrichtung, auf der die Dateien mit Hilfe der Dateiverwaltung organisiert sind, ist es wünschenswert, wenn die Dateisystemintegrität überprüfbar ist, so dass festgestellt werden kann, ob die Dateisystemstruktur einer Dateiverwaltung einer Datenverarbeitungseinrichtung in ihrem Kern verändert wurde, um so beispielsweise Manipulationen an solchen Geräten erkennen zu können. Gerade Software von Geräten, die für amtliche Zwecke im gewerblichen Gebrauch oder im öffentlichen Interesse zum Einsatz kommen, wie beispielsweise Mess- und Steuergeräte, müssen in festgelegten Abständen auf Integrität bezüglich ihrer Software geprüft werden. Bei gesetzlich geregelten Messgeräten, wie beispielsweise Verkehrsmessgeräten, Waagen und anderen geeichten Messgeräten geschieht dies durch benannte Stellen und der Marktüberwachung (Landeseichbehörden). Die benannte Stelle überprüft die Software vor dem In-Verkehr-Bringen und die Marktüberwachung überprüft zyklisch, ob sich auf den Geräten noch dieselbe Software befindet, die von einer Konformitätsbewertungsstelle, z.B. der PTB, zugelassen wurde. Dies ist insbesondere für alle Geräte in kritischen Infrastrukturen nötig, um Manipulation und Fehlverhalten rechtzeitig zu erkennen.
  • Ein Hauptproblem heutiger Systeme ist dabei, dass die Überprüfung der Dateiintegrität auf dem gleichen System stattfindet, welches die Dateien auch verwaltet. Dabei wird einem System vertraut, von dem man die Vertrauenswürdigkeit abfragen möchte, mithin das System überprüft sich also selbst. Dies birgt insofern Risiken, weil intelligente Schadsoftware die Eigenschaft besitzt, auch die Berechnung und Überprüfung der Dateisystemintegrität zu manipulieren und somit Änderungen an Dateien zu kaschieren.
  • Es ist daher eine Aufgabe der vorliegenden Erfindung ein verbessertes Verfahren und Vorrichtung anzugeben, mit dem die Dateisystemintegrität einer Dateiverwaltung einer insbesondere mobilen Dateiverarbeitungseinrichtung schnell und sicher überprüft werden kann.
  • Die Aufgabe wird mit dem Verfahren gemäß Anspruch 1, dem Computerprogram gemäß Anspruch 12 sowie der Datenverarbeitungseinrichtung gemäß Anspruch 13 erfindungsgemäß gelöst.
  • Gemäß Anspruch 1 wird ein Verfahren zum Überprüfen der Dateisystemintegrität einer Dateiverwaltung einer Datenverarbeitungseinrichtung vorgeschlagen, wobei zumindest ein Teil der Dateien oder auch alle Dateien, die zur Bereitstellung der Datenverarbeitungsfunktion der Datenverarbeitungseinrichtung vorgesehen sind, auf der Datenverarbeitungseinrichtung in einem digitalen Speichermedium hinterlegt und abgespeichert sind. Mittels einer Dateiverwaltung können werden die Dateien organisiert, so dass die Dateiverwaltung die für die Datenverarbeitungsfunktion der Datenverarbeitungseinrichtung notwendigen Dateien enthält. Hierunter wird insbesondere verstanden, dass die Dateiverwaltung die jeweiligen Dateien kennt und den Inhalt der Dateien adressieren kann. Die Dateiverwaltung, die auch als Dateisystem bezeichnet wird, ordnet und strukturiert somit die Dateien so, dass mithilfe des Dateinamens ein Zugriff auf die auf dem digitalen Speichermedium abgespeicherten oder abzuspeichernden Dateien möglich ist. Die Dateiverwaltung kennt somit sämtliche, auf dem digitalen Speichermedium der Dateiverarbeitungseinrichtung abgespeicherten oder abzuspeichernden Dateien, wobei hierunter auch jene Dateien zu verstehen sind, die erst bei Anforderung von einem externen Speichermedium auf die Datenverarbeitungseinrichtung geladen werden. Hierdurch lassen sich Teile der Dateien der Dateiverwaltung auf externe Speichermedien auslagern.
  • Unter einer Dateisystemstruktur wird des Weiteren eine Abbildung der Eigenschaften und der Organisationsstruktur der abgespeicherten Dateien verstanden, sowie sie mithilfe der Dateiverwaltung auf dem digitalen Speichermedium abgespeichert sind. Die Dateisystemstruktur beinhaltet somit nicht nur mögliche Eigenschaften von Dateien, wie beispielsweise der Dateiname, die Größe oder der Dateityp, sondern kann auch die logische Organisationsstruktur, in der die Dateien logisch strukturiert sind, enthalten. Dies beinhaltet insbesondere die Frage, welche Dateien in welchen Ordnern abgelegt oder welche Dateien auf welche Dateien verlinken.
  • Zur Überprüfung der Dateisystemintegrität der in der Dateiverwaltung enthaltenen Dateien der Datenverarbeitungseinrichtung werden zunächst einige oder alle in der Dateiverwaltung enthaltenen Dateien in einer baumartigen Datenstruktur bereitgestellt, bei der jeder Knoten der baumartigen Datenstruktur eine Datei der Dateiverwaltung repräsentiert. Eine solche baumartige Datenstruktur wird dabei in der Regel von der Dateiverwaltung bereitgestellt, beispielsweise in Form einer vollständigen Baumstruktur oder durch Abfrage einzelner Dateien. Da die Dateiverwaltung letztlich die vollständige Kenntnis über die abgespeicherten Dateien besitzt, ist es vorteilhaft, wenn eben auch die Dateiverwaltung die entsprechende baumartige Datenstruktur der abgespeicherten Dateien im weiteren Prozess bereitstellt.
  • Anschließend wird eine sequentielle Datenstruktur aus der baumartigen Datenstruktur erstellt, in dem eine Breitensuche in der baumartigen Datenstruktur durchgeführt wird, bei der nacheinander für jede Baumebene sequentiell durch die Knoten der jeweiligen Baumebene der baumartigen Datenstruktur iteriert wird. Die Breitensuche unterscheidet sich dabei von der Tiefensuche in einer baumartigen Datenstruktur dadurch, dass bei der Breitensuche nacheinander die einzelnen Knoten einer Baumebene durchlaufen werden und erst dann, wenn durch sämtliche Knoten einer Baumebene iteriert wurde, die Knoten der darunter liegenden nächsten Baumebene durchlaufen werden. Dies bedeutet auch, dass bei einer Breitensuche immer zuerst sämtliche Elternknoten durchlaufen werden, bevor die zu einem Elternknoten gehörenden Kinderknoten bzw. Blattknoten durchlaufen werden. Dies bedeutet in der Regel auch, dass zunächst alle Geschwisterknoten eines Elternknotens durchlaufen werden, bevor die Geschwisterknoten des nächsten übergeordneten Elternknotens einer Baumebene durchlaufen werden.
  • Während der Breitensuche in der baumartigen Datenstruktur wird dabei für jeden Knoten, der eine jeweilige Datei repräsentiert, der Dateityp der durch den Knoten repräsentierten Datei ermittelt. Anschließend wird eine den ermittelten Dateityp repräsentierende Typcodierung aus einer Liste von verschiedenen Codierungen ausgewählt, wobei die Typcodierung des Dateityps den jeweiligen Dateityp der dem Knoten zugrunde liegenden Datei charakterisiert. So enthält beispielsweise die Liste der Codierungen für Ordner, Dateien und Links jeweils entsprechend unterschiedliche Codierungen, wodurch für jeden Knoten und der damit repräsentierenden Datei der Dateityp aus der Typcodierung ermittelbar ist.
  • Die so ermittelte Typcodierung wird dann in ein Dateityp-Datenfeld der zu erstellenden sequentiellen Datenstruktur eingefügt, wobei die Typcodierungen der einzelnen durch die Knoten repräsentierten Dateien nacheinander gemäß der Breitensuche in das sequentielle Dateityp-Datenfeld eingefügt werden.
  • Basierend auf dem Prinzip der Breitensuche bedeutet dies, dass sämtliche Typcodierungen von Dateien einer gemeinsamen Baumebene in dem sequentiellen Dateityp-Datenfeld vor sämtlichen Typcodierungen jener Dateien stehen, die in den Baumebenen tiefer angeordnet sind. Dabei wird jede Typcodierung an einer bestimmten Position in dem Dateityp-Datenfeld abgelegt, wobei sich die Position aus der Breitensuche durch die baumartige Datenstruktur ergibt. Die Typcodierungen werden dabei immer an diejenige Position eingefügt, die die erste freie Position am Ende des Dateityp-Datenfeldes darstellt. Somit werden sämtliche Typcodierungen der einzelnen durch die Knoten repräsentierten Dateien gemäß der Breitensuche nacheinander in das sequentielle Dateityp-Datenfeld eingefügt.
  • Schließlich werden die Positionen derjenigen in dem sequentiellen Dateityp-Datenfeld enthaltenen Typcodierungen durch eine Anfangs- oder Endcodierung in der sequentiellen Datenstruktur gekennzeichnet, deren zugrunde liegenden Dateien in der baumartigen Datenstruktur jeweils ein Anfangs- oder Endknoten einer Reihe von Knoten entsprechen, die alle einen gemeinsamen Elternknoten haben. Oder anders formuliert, die Anfangs- oder Endcodierung kennzeichnet eine Reihe von Knoten, die alle zusammen Geschwisterknoten sind und einen gemeinsamen Elternknoten haben. Hierdurch wird die organisatorische Struktur der baumartigen Datenstruktur in der sequentiellen Datenstruktur abgebildet, wodurch die Zuordnung jeder Datei innerhalb der Baumstruktur möglich wird.
  • Das Erstellen der sequentiellen Datenstruktur wie vorstehend beschrieben hat dabei den entscheidenden Vorteil, dass die wesentlichen Aspekte der abgespeicherten Dateien, nämlich der Dateityp sowie die organisatorische Struktur der Dateien, sehr einfach, schnell und platzeffizient erstellt und abgebildet werden können, was insbesondere auf kleinen, mobilen Endgeräten besonders vorteilhaft ist.
  • Um nun die Dateisystemintegrität zu überprüfen, wird die erstellte sequentielle Datenstruktur mit einer zuvor nach dem gleichen Muster erstellte sequentielle Referenz-Datenstruktur verglichen, wobei in Abhängigkeit von dem Vergleich dann die Dateisystemintegrität festgestellt oder eben nicht festgestellt werden kann.
  • Hierbei ist es bspw. denkbar, dass aus der erstellten sequentiellen Datenstruktur ein Hashwert als äquivalente mathematische Repräsentation mittels eines bekannten Hashalgorithmus erstellt wird, wobei aus der zuvor erstellten sequentiellen Referenz-Datenstruktur ebenfalls ein Hashwert erstellt wird. Basierend auf einem Vergleich der Hashwerte kann dann die Dateisystemintegrität festgestellt werden. Sind beide Hashwerte gleich, so hat sich die aktuelle Dateistruktur der Datenverarbeitungseinrichtung gegenüber der Dateistruktur, auf dessen Basis die sequentielle Referenz-Datenstruktur erstellt wurde, nicht verändert.
  • Mit der vorliegenden Erfindung wird es somit möglich, die Dateisystemintegrität schnell und effizient überprüfen zu können, da der Platzbedarf der vorliegenden erfindungsgemäßen Datenstruktur äußerst gering ist und sich somit bspw. zur Übertragung an andere Geräte oder Zentralanlagen eignet. Zum Vergleich, die Übertragung der gesamten Dateistruktur der Dateiverwaltung ist in der Regel aufgrund der Größe und des Platzbedarfs aller abgespeicherten Dateien meist nicht möglich.
  • Vorteilhafterweise bestehen die Typcodierungen aus eindeutigen, alphanummerischen Zeichen, die jeweils den entsprechenden Dateityp codieren. So kann die Codierung der Dateitypen beispielsweise mithilfe von einstelligen Ziffern erfolgen, die jeweils einen entsprechenden Dateityp eindeutig repräsentieren. Hierdurch kann für jede Datei der Dateityp mithilfe eines einfachen 8-Bit-Zeichens codiert werden, wodurch die gesamte Dateisystemstruktur besonders platzsparend abgespeichert werden kann.
  • In einer weiteren vorteilhaften Ausführungsform werden die Anfangs- und Endcodierungen der jeweiligen Anfangs- und Endknoten in einen Geschwisterknoten-Datenfeld der sequentiellen Datenstruktur derart eingefügt, dass die Position einer Anfangs- oder Endcodierung eines Anfangs- oder Endknotens in dem Geschwisterknoten-Datenfeld derjenigen Position in dem Datentyp-Datenfeld entspricht, an der die Typcodierung des Dateityps der dem Anfangs- oder Endknoten zugrundeliegenden Datei eingefügt ist.
  • Damit referenziert die Position in dem Geschwisterknoten-Datenfeld auch gleichzeitig die semantisch korrekte Position in dem Dateityp-Datenfeld, so dass sich die entsprechenden Reihen von Geschwisterknoten schnell und effizient zuordnen lassen.
  • In einer vorteilhaften Ausführungsform wird für jeden Knoten zusätzlich zum dem Dateityp mindestens eine weitere Dateieigenschaft der durch den jeweiligen Knoten repräsentierten Datei ermittelt und eine den ermittelten Dateityp und Dateieigenschaft repräsentierende Typcodierung aus einer Liste von verschiedenen Codierungen ausgewählt, so dass anhand der Typcodierung nicht nur auf den Dateityp, sondern gleichzeitig auch auf eine bestimmte Dateieigenschaft geschlossen werden kann. So ist es beispielsweise denkbar, dass bei alphanummerischen Zeichnen als Typcodierung eine bestimmte Anzahl von alphanummerischen Zeichen ein und denselben Dateityp repräsentieren, aber jede den Dateityp repräsentierende Typcodierung jeweils eine bestimmte Dateieigenschaft charakterisieren, wodurch nicht nur der Dateityp sondern auch die Dateieigenschaft unterscheidbar wird.
  • In einer weiteren vorteilhaften Ausführungsform wird überprüft, ob der ermittelte Dateityp der durch den jeweiligen Knoten repräsentierten Datei einen Verweis bzw. einen Link auf eine andere, in dem digitalen Speichermedium abgespeicherte Datei ist. Wurde festgestellt, dass es sich bei dem Dateityp der durch den jeweiligen Knoten repräsentierten Datei um einen Verweisdateityp handelt, so wird in dem Dateityp-Datenfeld die Position der Typcodierung derjenigen zugrundeliegenden Datei, auf welche die Datei vom Dateityp verweist bzw. Link verweist, ermittelt und die ermittelte Position dann in ein Verweisziel-Datenfeld der sequentiellen Datenstruktur eingefügt wird. Hierdurch wird es möglich, einen direkten Zugriff auf sämtliche Dateien zu erhalten, auf die mithilfe einer Verweisdatei bzw. eines Links verwiesen wird.
  • Vorteilhaft ist hierbei, wenn die Positionen nacheinander in der Reihenfolge der Feststellung bei der Breitensuche in das Verweisziel-Datenfeld der sequentiellen Datenstruktur eingefügt werden, wodurch sich eine besonderes effiziente und platzsparende Abspeicherung der Positionen derjenigen Dateien in dem Dateityp-Datenfeld ergibt, auf die der entsprechende Link verweist. Denkbar ist aber auch, dass die Positionen in dem Verweisziel-Datenfeld an derjenigen Position eingefügt werden, die den einzufügenden Positionen entspricht.
  • In einer weiteren vorteilhaften Ausführungsform wird für jeden Knoten zusätzlich zu dem Dateityp mindestens eine weiteren Dateieigenschaft der durch den jeweiligen Knoten repräsentierten Datei ermittelt und die ermittelte Dateieigenschaft der durch den jeweiligen Knoten repräsentierten Datei nacheinander in der Reihenfolge der Breitensuche in ein Eigenschaften-Datenfeld eingefügt. Hierdurch wird neben dem Dateityp und einer möglicherweise schon dort mit integrierten Codierung einer Dateieigenschaft es auch möglich, zusätzliche Dateieigenschaften abzuspeichern, was beispielsweise mithilfe von speziellen Dateieigenschaften-Codierungen oder im Klartext erfolgen kann.
  • Eine solche Dateieigenschaft kann beispielsweise der Dateiname sein, der in einem Dateinamen-Datenfeld als Eigenschaften-Datenfeld eingefügt wird. Dabei wird der Anfang oder das Ende eines zu einer Datei gehörenden Dateinamens in dem Dateinamen-Datenfeld durch eine Anfangs- oder Endcodierung in der Datenstruktur gekennzeichnet, um so immer korrekt den Dateinamen ermitteln zu können. Dies ist beispielsweise dann besonders wichtig und vorteilhaft, wenn das Dateinamen-Datenfeld ein zeichenbasiertes Datenfeld ist, bei dem an einer beliebigen Position immer nur ein beliebiges Zeichen stehen kann. Ein Dateiname, der aus mehreren Zeichen besteht, muss demnach über mehrere Positionen bzw. Felder des Dateinamen-Datenfeldes abgelegt werden, wobei es dann wichtig ist zu wissen, an welcher Position innerhalb des Dateinamen-Datenfeldes das Anfangszeichen oder das Endzeichen eines zu einer Datei gehörenden Dateinamens steht.
  • In einer vorteilhaften Ausführungsform hierzu wird die Anfangs- oder Endcodierung der jeweiligen Dateinamen in ein Trenn-Datenfeld derart eingefügt, dass die Position einer Anfangs- oder Endcodierung eines Dateinamens der Anfangs- oder Endposition des Dateinamens in dem zeichenbasierten Dateinamen-Datenfeld entspricht. Die Position einer Anfangs- oder Endcodierung in dem Trenn-Datenfeld entspricht dabei derjenigen Position in dem Dateinamen-Datenfeld, an dem der Enddateiname beginnt oder endet.
  • In einer weiteren vorteilhaften Ausführungsform wird die sequentielle Datenstruktur auf der Datenverarbeitungseinrichtung mit einigen oder allen Dateien der zu überprüfenden Dateiverwaltung erstellt, wobei der Vergleich der Datenstrukturen oder ihren mathematischen Repräsentationen (Hashwert) und die Feststellung der Dateisystemintegrität in Abhängigkeit von dem Vergleich entweder auf der zu überprüfenden Datenverarbeitungseinrichtung durchgeführt wird oder auf einer mit der zu überprüfenden Datenverarbeitungseinrichtung elektronisch verbundenen zentralen Datenverarbeitungsanlage.
  • Im ersten Fall wird zunächst die sequentielle Datenstruktur auf der zu überprüfenden Datenverarbeitungseinrichtung erstellt, wobei die für den Vergleich der Datenstrukturen notwendige sequentielle Referenz-Datenstruktur vor dem Vergleich auf die Datenverarbeitungseinrichtung übertragen wurde. Dies kann beispielsweise dadurch geschehen, dass bereits bei der Initialisierung der Datenverarbeitungseinrichtung die Referenz-Datenstruktur in einen nur lesbaren Speicherbereich fest eingeschrieben wird und während des Betriebes nicht veränderbar ist, so dass die Datenverarbeitungseinrichtung auf die nicht veränderbare sequentielle Referenz-Datenstruktur zum Zwecke des Vergleiches und Feststellung der Dateisystemintegrität zugreifen kann. Denkbar ist aber auch, dass bei Überprüfung der Dateisystemintegrität der Datenverarbeitungseinrichtung eine Anfrage an eine zentrale Datenverarbeitungsanlage, beispielsweise einem Zentralserver, gestellt wird, woraufhin dann die zentrale Datenverarbeitungsanlage die sequentielle Referenz-Datenstruktur oder eine mathematische Repräsentation hiervon an die Datenverarbeitungseinrichtung überträgt. Hierfür sendet die Datenverarbeitungseinrichtung beispielsweise eine eindeutige Gerätekennung an den Zentralserver bzw. die zentrale Datenverarbeitungsanlage, woraufhin diese dann die zu der anfragenden Datenverarbeitungseinrichtung passende Referenz-Datenstruktur aus einem Speicher ausliest und an die Datenverarbeitungseinrichtung überträgt. Das Gerät kann somit selbstständig eine entsprechende Dateisystemintegritätsprüfung durchführen.
  • Im zweiten Fall wird die auf der zu überprüfenden Datenverarbeitungseinrichtung erstellte sequentielle Datenstruktur der Dateiverwaltung an eine zentrale Datenverarbeitungsanlage bzw. einen Zentralserver übersandt, woraufhin der Vergleich der übertragenden sequentiellen Datenstruktur der Datenverarbeitungseinrichtung mit der entsprechenden sequentiellen Referenz-Datenstruktur auf der zentralen Datenverarbeitungsanlage bzw. dem Zentralserver erfolgt. Hierdurch wird es möglich, gänzlich manipulationssicher die Dateisystemintegrität einer Datenverarbeitungseinrichtung zu überprüfen, sofern die zentrale Datenverarbeitungsanlage bzw. der Zentralserver nicht kompromittiert ist und die sequentielle Referenz-Datenstruktur ebenfalls manipuliert wurde.
  • In einer vorteilhaften Ausführungsform werden vor dem Erstellen der sequentiellen Datenstruktur auf der zu überprüfenden Datenverarbeitungseinrichtung ein Teil der Dateien, die in der Dateiverwaltung zwar enthalten, aber noch nicht auf der Dateiverarbeitungseinrichtung abgespeichert sind, von einer mit der zu überprüfenden Datenverarbeitungseinrichtung elektronisch verbundenen zentralen Datenverarbeitungsanlage auf die zu überprüfende Datenverarbeitungseinrichtung übertragen werden. Mit anderen Worten, ein Teil der Dateien wurde auf einem externen Speichermedium ausgelagert und wird bei Bedarf auf die Datenverarbeitungseinrichtung übertragen. In der Dateiverwaltung sind diese, noch nicht abgespeicherten Dateien, vorteilhafterweise bereits enthalten, wobei lediglich deren Speicherort von dem Speicherort der übrigen Dateien verschieden ist.
  • Die sequentielle Datenstruktur wird nun auf der zu überprüfenden Datenverarbeitungseinrichtung in Abhängigkeit von den übertragenen Dateien und den bereits zuvor auf der Datenverarbeitungseinrichtung abgespeicherten Dateien erstellt.
  • Die Aufgabe wird im Übrigen auch mit einem Computerprogramm mit Programmcodemitteln gemäß Anspruch 12 gelöst, das insbesondere auf einem maschinenlesbaren Träger gespeichert ist, wobei das Computerprogramm mit den Programmcodemitteln eingerichtet ist zur Durchführung des vorstehenden Verfahrens, wenn das Computerprogramm auf einer Datenverarbeitungseinrichtung oder Datenverarbeitungsanlage abläuft.
  • Die Aufgabe wird im Übrigen auch mit einer Datenverarbeitungseinrichtung in einer elektronischen Datenverarbeitungseinheit, einem digitalen Speichermedium, auf dem eine Mehrzahl von Dateien abgespeichert oder abspeicherbar sind, und mit einer digitalen Dateiverwaltung, die eine Mehrzahl von Dateien für die Datenverarbeitungsfunktion der Datenverarbeitungseinrichtung enthält, gelöst, wobei die Datenverarbeitungseinrichtung mittels der elektronischen Datenverarbeitungseinheit zum Durchführen des vorstehend genannten Verfahrens ausgebildet ist, um die Dateisystemintegrität der Dateiverwaltung zu überprüfen.
  • Unter einer Datenverarbeitungseinrichtung werden insbesondere ein Computer, mobiler Computer, Rechner bzw. Rechenmaschinen verstanden. Eine Datenverarbeitungseinrichtung kann insbesondere ein mobiles Messgerät, wie bspw. ein Verkehrsmessgerät, eine Waage oder der Gleichen sein. Unter „elektronisch ausführbar“ wird insbesondere verstanden, dass die Schritte mittels einer elektronischen Datenverarbeitungseinheit, bspw. eine mikroprozessorgesteuerte bzw. mikrocontrollergesteuerte Datenverarbeitungseinheit, automatisch ausgeführt werden, wobei die elektronische Datenverarbeitungseinheit in der Regel frei programmierbar oder fest verdrahtet ist.
  • Die Erfindung wird anhand der beigefügten Figuren beispielhaft erläutert. Es zeigen:
  • 1 – schematische Darstellung einer Datenverarbeitungseinrichtung;
  • 2 – baumartige Datenstruktur von auf einer mit digitalem Speichermedium abgespeicherten Datei;
  • 3 – erfindungsgemäße Datenstruktur.
  • 1 zeigt schematisch die Struktur einer Datenverarbeitungseinrichtung 1, die eine elektronische Datenverarbeitungseinheit 2 und einen damit signaltechnisch verbundenen digitalen Speicher bzw. Speichermedium 3, beispielsweise eine Festplatte, hat. Die elektronische Datenverarbeitungseinheit 2 ist dabei zum Ausführen von Computerprogrammen ausgebildet und dabei unter anderem so eingerichtet, dass sie den Zugriff auf Dateien des Speichermediums 3 realisieren kann. Das Speichermedium 3 weist dabei insbesondere eine Dateiverwaltung 4 auf, die dazu geeignet und eingerichtet ist, die entsprechenden Daten und Informationen in dem Speichermedium 3 in Dateien logisch zu strukturieren und ihre jeweiligen Adressen und Zugriffsmöglichkeiten abzuspeichern. Dadurch wird es möglich, mithilfe eines Dateinamens die zu dem jeweiligen Dateinamen betreffenden Daten und Informationen aus dem Speichermedium 3 herauszulesen bzw. Daten in Dateien einzuschreiben oder diese zu verändern.
  • Die elektronische Datenverarbeitungseinrichtung 1 weist des Weiteren eine Kommunikationseinheit 5 auf, um insbesondere einen drahtlosen, aber auch drahtgebundenen, Datenaustausch mit anderen Anlagen zu ermöglichen.
  • Die Datenverarbeitungseinheit 2 ist dabei ausgebildet, eine sequentielle Datenstruktur 6, gemäß den später noch gezeigten Vorschriften, in Abhängigkeit von dem Inhalt der Dateiverwaltung 4 zu erstellen und ggf. in dem digitalen Speichermedium 3 zwischen zu speichern.
  • Mithilfe der Kommunikationseinheit 5 kann die Datenverarbeitungseinrichtung 1 mit einer zentralen Datenverarbeitungsanlage 7 kommunizieren, die im Folgenden als Server bezeichnet wird. Auf dem Server befindet sich eine Reihe von sequentiellen Referenz-Datenstrukturen 8 für verschiedene Datenverarbeitungseinrichtungen 1, wobei durch eine entsprechende Anforderung, die von einer Datenverarbeitungseinrichtung 1 an den Server 7 gesendet wurde, der Server in der Lage ist, die entsprechende Referenz-Datenstruktur 8 zu ermitteln und an die anfragende Datenverarbeitungseinrichtung 1 zu übertragen. Nach der Übertragung liegt der anfragenden Datenverarbeitungseinrichtung 1 somit auch die sequentielle Referenz-Datenstruktur 8 vor, so dass durch einen Vergleich der sequentiellen Referenz-Datenstruktur 8 mit der zuvor erstellten sequentiellen Datenstruktur 6 festgestellt werden kann, ob die Dateisystemintegrität noch gegeben ist oder der Inhalt der Dateiverwaltung 4 gegenüber der Referenz verändert wurde.
  • Im Ausführungsbeispiel der 1 wird davon ausgegangen, dass sich sämtliche Dateien der Dateiverwaltung 4 auf dem Speichermedium 3 befinden. Wie bereits zuvor beschrieben, ist es denkbar, dass ein Teil der Dateien zunächst auf die Datenverarbeitungseinrichtung 1 geladen werden, wenn diese auf einem externen Speichermedium ausgelagert wurden.
  • Selbstverständlich ist es auch denkbar, dass der Vergleich der sequentiellen Datenstruktur 6 mit der sequentiellen Referenz-Datenstruktur 8 auf den Server 7 erfolgt, wobei hierfür die Datenverarbeitungseinrichtung 1 die erstellte sequentielle Datenstruktur 6 an den Server 7 mittels der Kommunikationseinrichtung 5 überträgt.
  • Anhand der 2 und 3 soll dabei das erfindungsgemäße Verfahren zum Erstellen der sequentiellen Datenstruktur an einem Beispiel näher erläutert werden. 2 zeigt dabei beispielhaft eine baumartige Datenstruktur von insgesamt 18 Dateien, die mithilfe des erfindungsgemäßen Verfahrens in die sequentielle Datenstruktur gemäß 3 gebracht werden sollen. Bei der baumartigen Datenstruktur gemäß 2 werden die einzelnen Dateien, die auf dem Datenspeicher abgespeichert sind, in Form von Knoten einer baumartigen Datenstruktur repräsentiert. Dabei sind die einzelnen Knoten durchnummeriert, um ein besseres Verständnis der baumartigen Datenstruktur zu erhalten. Der jeweilige Dateityp wird durch ein entsprechendes Knotensymbol charakterisiert.
  • Der oberste Knoten 1 kennzeichnet dabei den Wurzel- bzw. Rootknoten und ist in manchen Systemen sichtbar oder auch ausgeblendet. An diesen Wurzelknoten 1 schließend sich dabei die Kindsknoten 2, 3, 4 und 5 an, die allesamt eine gemeinsame Reihe von Geschwisterknoten bilden und einen gemeinsamen Elternknoten, den Wurzelknoten 1, haben.
  • Die Nummerierung der Knoten stellt dabei gleichzeitig auch die Suchreihenfolge der Breitensuche durch die raumartige Datenstruktur dar.
  • Im Ausführungsbeispiel der 2 wurden dabei die folgenden Dateitypen durch ihre jeweiligen Knotensymbole verwendet:
    Figure DE102016110479A1_0002
  • Die einzelnen Dateitypen werden dabei mithilfe von alphanummerischen Zeichen codiert, wobei ein Verzeichnis bzw. Ordner das Zeichen 1 erhält, sofern er Dateien enthält, sonst wird ein Verzeichnis bzw. Ordner mit 0 codiert. Eine normale Datei (Datendatei, Programmdatei) wird mit einer 2 codiert, ein Link bzw. Verweis mit einer 3, ein blockorientiertes Gerät mit einer 4 und ein zeichenorientiertes Gerät mit einer 5.
  • Die Dateien 10, 11 und 12 stellen dabei Verweise bzw. Links auf andere Dateien dar, wobei der Link 10 auf die Datei 6, der Link 11 auf die Datei 7 und der Link 12 auf die Datei 8 verweisen.
  • Diese baumartige Datenstruktur, wie sie in 2 dargestellt ist, wird von der Dateiverwaltung bereitgestellt, um nun die entsprechende sequentielle Datenstruktur aufbauen zu können. Diese baumartige Datenstruktur kann beispielsweise derart bereitgestellt werden, dass entsprechende Funktionen durch die Dateiverwaltung bereitgestellt werden, die es ermöglichen, auf die einzelnen Dateien bzw. Knoten in einer vorgegebenen Reihenfolge zugreifen zu können.
  • Gemäß der Breitensuche wird nun sequentiell durch die einzelnen Knoten durchgegangen, wobei hierfür die einzelnen Baumebenen nacheinander durchlaufen werden. Die erste Baumebene bildet dabei der Wurzelknoten 1, dessen zugrundeliegende Datei einen Ordner darstellt. Da der Wurzelknoten 1 mehrere Kinderknoten 2 bis 5 hat, erhält der Wurzelknoten 1 die Dateitypcodierung „1“, die sodann in das Dateityp-Datenfeld S (s. 3) an der letzten Position eingefügt wird. Da zuvor in das Dateityp-Datenfeld noch keine Typcodierungen eingefügt wurden, wird die Typcodierung „1“ des Wurzelknotens 1 an die erste Position des Dateityp-Datenfeldes eingefügt (in der Regel gekennzeichnet durch den Index I = 0).
  • Da die oberste Baumebene (nullte Ebene) keine weiteren Knoten enthält, da der Wurzelknoten 1 in der Regel alleine steht, wird nun mit der sequentiellen Suche in der darauffolgenden Baumebene 1 fortgeführt. Die Ebene 1 besteht aus den Geschwisterknoten 2, 3, 4 und 5. Begonnen wird dabei mit dem linken Knoten, in Richtung des äußersten rechten Knotens, was letztendlich die Richtung der Breitensuche in den einzelnen Ebenen entspricht.
  • Die durch den Knoten 2 repräsentierte Datei ist vom Dateitypverzeichnis und ist nicht leer (enthält Kinderknoten), so dass hierfür die Typcodierung „1“ gewählt wird. Diese wird dann ebenfalls in das Dateityp-Datenfeld S an der letzten Position (Index 1) eingefügt. Der nächste Knoten ist eine normale Daten- oder Programmdatei, durch die Typcodierung 2 gekennzeichnet ist und ebenfalls in das Dateityp-Datenfeld eingefügt wird.
  • Zu erkennen ist, dass der letzte Knoten 5 der Ebene 1 vom Dateitypverzeichnis ist und keine weiteren Dateien bzw. Knoten enthält, so dass er anstelle der Typcodierung 1 für Verzeichnis die Typcodierung 0 für Verzeichnis, leer, zugewiesen bekommt (s. Index 4).
  • Nachdem die Knoten der Ebene 1 vollständig durchsucht wurden, wird mit der Ebene 2 fortgesetzt, wobei hier entsprechend der die jeweiligen Knoten zugrundeliegenden Dateien der Dateityp ermittelt und die entsprechende Typcodierung ausgewählt und in das Dateityp-Datenfeld eingefügt wird. Das Einfügen geschieht dabei immer an der letzten Position, so dass der Index des Dateityp-Datenfeldes die jeweilige Position des Knotens repräsentiert (Knotennummer –1).
  • Parallel dazu wird ein Geschwisterknoten-Datenfeld BS aufgebaut, was die entsprechenden Informationen bezüglich einer Reihe von gemeinsamen Geschwisterknoten enthält. Hierbei wird im Ausführungsbeispiel der 3 für das Geschwisterknoten-Datenfeld eine Anfangscodierung verwendet, mit der der Beginn bzw. der Anfang einer Reihe von Geschwisterknoten gekennzeichnet wird, die alle einen gemeinsamen Elternknoten haben. Als Codierung wird hierfür das Zeichen „1“ verwendet, das die Anfangscodierung darstellt. Das Zeichen „0“ ist dabei als Platzhalter zu verstehen und meint, dass an dieser Position keine Anfangs- oder ggf. Endcodierung vorhanden ist.
  • So wird an der Position 1 eine Anfangscodierung „1“ in das Geschwisterknoten-Datenfeld eingefügt, da an der Position 1 (Index = 1) in dem Dateityp-Datenfeld ein Dateityp hinterlegt ist, dessen mit diesem Knoten korrespondierende Datei 2 den Anfang einer Reihe von Geschwisterknoten 2 bis 5 darstellt. Daher wird für diesen Knoten und seine Typcodierung entsprechend gekennzeichnet, dass es sich hierbei um den Anfang einer Reihe von Geschwisterknoten handelt bzw. dass es sich um den ersten Knoten einer Reihe von Geschwisterknoten handelt.
  • Die gleiche Anfangscodierung wird im Übrigen auch für den Knoten 6 (Index 5), den Knoten 10 (Index 9), den Knoten 13 (Index 12) sowie den Knoten 15 (Index 14) und den Knoten 17 (Index 16) verwendet.
  • Damit wurde eine Datenstruktur D aufgebaut, die für jeden Knoten einer Breitensuche der baumartigen Datenstruktur den Dateityp codiert und den Beginn einer Geschwisterknoten-Reihe kennzeichnet, wodurch sehr effizient und platzsparend eine Dateisystemstruktur aufgebaut werden kann.
  • Eine so erstellte Dateisystemstruktur kann dann mithilfe der Datenstruktur beispielsweise bei Inbetriebnahme bzw. Erstinbetriebnahme eines Gerätes in dem privaten Bereich des Gerätes übertragen werden, so dass jederzeit die Systemintegrität mithilfe geeigneter Prüfsoftware oder durch das Übertragen von Hash-Werten bezüglich der Datenstruktur an entfernte Geräte überprüft werden kann.
  • Im Ausführungsbeispiel der 2 und 3 wird des Weiteren ein weiteres Datenfeld während der Breitensuche oder auch anschließend, nach dem Erstellen der Datenfelder S und BS, befüllt, das entsprechende Informationen zu Linkzielen von Links bzw. Verweisen enthält. Hierfür wird anhand des Dateityps überprüft, ob der Dateityp vom Typverweis bzw. Link ist, was bedeutet, dass die Datei vom Typverweis bzw. Link auf eine andere Datei innerhalb der baumartigen Datenstruktur verweist.
  • Wurde ein derartiger Knoten aufgefunden, der vom Dateitypverweis bzw. Link ist, so wird der entsprechende Knoten ermittelt, auf den der Verweis bzw. Link entsprechend verweist (Zieldatei bzw. Zielknoten). Anschließend wird diejenige Position bzw. Indexnummer in dem Dateityp-Datenfeld in ein Verweis-Datenfeld H eingefügt, an deren Stelle eine Typcodierung hinterlegt ist, die der Zieldatei bzw. Zielknoten entspricht.
  • Im Ausführungsbeispiel der 2 und 3 verweist der Knoten 10 auf den Knoten 6, so dass zunächst an der Indexposition 9 die Typcodierung „3“ hinterlegt ist. Da diese Datei bzw. dieser Knoten, der durch die Position bzw. den Index 9 gekennzeichnet ist, auf die Zieldatei bzw. den Zielknoten 6 (Position bzw. Index 5) verweist, wird diese Position bzw. dieser Index „5“ dann ebenfalls in das Verweisziel-Datenfeld H der Reihe nach eingefügt, so dass beim Auffinden einer ersten Typcodierung vom Typverweis bzw. Link festgestellt werden kann, dass diese Datei auf den Knoten mit der Position bzw. Index 5 verweist. Äquivalent hierzu kann auch eine entsprechende Knotenreferenz hinterlegt werden, die den Knoten eindeutig referenzziert, wie dies beispielsweise durch die Nummerierung im Ausführungsbeispiel der 2 erfolgen kann. In diesem Fall würde die Zahl „6“ hinterlegt werden, da diese auf den Knoten mit der Nummer 6 (Position bzw. Index 5) verweist.
  • Des Weiteren werden die Dateinamen in ein spezielles Dateinamen-Datenfeld eingefügt, wobei das Dateinamen-Datenfeld dergestalt ist, dass an jeder Position genau ein alphanummerisches Zeichen stehen kann. Ein Dateiname bestehend aus mehreren alphanummerischen Zeichen besetzt somit in dem Dateinamen-Datenfeld mehrere Positionen hintereinander. Um Beginn und Ende eines solchen in einem Dateinamen-Datenfeld hinterlegten Dateinamen entsprechend erkennen zu können, wird mithilfe eines Trenn-Datenfeldes BN der Beginn bzw. das Ende eines Dateinamens in Bezug auf das Dateinamen-Datenfeld abgespeichert. Im Ausführungsbeispiel der 3 wird hierfür in das Trenn-Datenfeld die Position bzw. derjenige Index durch Einfügen einer Anfangscodierung „1“ markiert, deren Position bzw. Index im Dateinamen-Datenfeld das Anfangszeichen eines Dateinamens enthält. Die im Ausführungsbeispiel der 2 gezeigten Knoten repräsentieren dabei jeweils eine Datei mit den folgenden Dateinamen:
    Knotennummer Dateiname
    1 root
    2 usr
    3 kernel
    4 desktop
    5 mnt
    6 game
    7 browser
    8 gcc
    9 temp
    10 play
    11 browser
    12 compiler
    13 blk
    14 char
    15 blk1
    16 blk2
    17 char1
    18 char2
  • Gemäß dessen wird so das Dateinamen-Datenfeld N sowie das Trenn-Datenfeld BN befüllt, sowie in 3 gezeigt ist.
  • Mithilfe der Datenfelder S und BS kann man zu jedem Knoten traversieren. Die Funktionen „parent“ und „child“ sind dabei wie folgt:
    • • child (n, i) = select_1 (B; rank_1(S; n)) + I – 1, falls S[n] = 1
    • • patent(n) = select_1(S; rank_1(B; n))
  • Über H kann auch noch abgefragt werden, ob ein Knoten ein Link ist (S[n] = 3), bzw. weitere Links besitzt und welche Knotennummer bzw. Indexposition diese haben:
    • • get_link(n, i) = select_3(S; select_n(H; i))
    • • get_orig(n) = H[rank_3(S; n)], falls S[n] = 3
  • Die Funktionen “select” sowie “rank” definieren sich dabei für einen String S der Länge |S| = n Folgendes:
    • • rank_a(S, p): Mit p <= n, gibt sie Anzahl von Zeichen a bis Position p in S aus.
    • • select_a(S, n): Gibt die Position des n-ten Zeichens a in S aus.
  • Zusätzlich können über die Funktionen „rank“ und „select“ folgende Operationen direkt ausgeführt werden:
    • • Bestimmung der Anzahl von Knoten eines Ordners und deren Auflistung
    • • Bestimmung der Anzahl bestimmter Dateitypen in einem Ordner und deren Auflistung
    • • Bestimmung der Anzahl bestimmter Dateitypen im gesamten Dateisystem und deren Auflistung
  • Mit einer solchen Datenstruktur wird es somit möglich, die Dateisystemstruktur so zu indizieren, dass beispielsweise basierend auf den Linkzielen bzw. Verweiszielen schnell und effizient die entsprechenden Verweisdateien, die auf die entsprechenden Verweisziele verweisen, aufgefunden werden können. Außerdem lässt sich eine derartige sequentielle Datenstruktur besonders platzsparend abspeichern, wodurch eine Übertragung der Dateisystemstruktur an andere Geräte möglich wird, um beispielsweise die Dateisystemintegrität zu überprüfen. Hierfür ist es beispielsweise denkbar, dass nach Aufbau der Datenstruktur und der erstellten Dateisystemstruktur ein gesamter Hash-Wert über alle in den Datenfeldern enthaltenen Daten gebildet wird, der dann übertragen wird, um ihn dann mit bereits vorherigen gebildeten Hash-Werten zu vergleichen. Denkbar ist aber auch, dass lediglich die Dateinamen signiert übermittelt werden, die sich aus dem Dateinamen-Datenfeld und dem Trenn-Datenfeld ergeben.
  • Es ist auch denkbar, dass für jede Datei ein Hash-Wert berechnet wird, der dann in ein Hash-Datenfeld eingetragen wird und entsprechend übermittelt wird. Hierbei werden sämtliche in der Datenstruktur zu einem Knoten bzw. einer Datei bekannten Informationen herangezogen. Denkbar ist aber auch, dass die Dateinamen ausgelassen werden, um entsprechend Platz bei der Übertragung zu sparen.
  • Alternativ ist auch denkbar, dass nur eine kleine Anzahl von vordefinierten Dateien betrachtet wird, von denen dann basierend auf der erstellten Datenstruktur und Dateisystemstruktur der Hash-Wert gebildet wird, um noch mehr Platz zu sparen. Hierbei ist es denkbar, dass einer Hash-Wert-Ermittlungseinheit zuvor eine Liste von Dateinummern übergeben wird von denen dann der entsprechende Hash-Wert basierend auf der Dateisystemstruktur gebildet werden soll.
  • Als Hash-Algorithmen kommen dabei beispielsweise einfache Checksummen wie CRC-16 bis hin zu sicheren Hash-Algorithmen wie SHA-2 in Frage.
  • Denkbar ist aber auch, dass die Dateien zum Betrieb des Dateiverarbeitungsgerätes erst bei Inbetriebnahme von einem entfernten Datenspeicher geladen werden. Um hier die Dateisystemintegrität der geladenen Dateien bzw. der geladenen Dateisysteme zu gewährleisten ist es denkbar, dass auf jedem Gerät die vorliegende Dateisystemstruktur in einer Datenstruktur oder auch die Hash-Werte der korrekten Dateisystemstruktur abgespeichert werden. Wird das Gerät nun in Betrieb genommen, werden die Dateien des Dateisystems auf das Endgerät geladen. Anschließend wird mithilfe des vorgestellten Verfahrens die Dateisystemstruktur und Datenstruktur erstellt und anschließend ein entsprechender Hash-Wert gebildet, der dann mit dem bereits auf dem Gerät hinterlegten Hash-Wert verglichen wird. Stimmen beide überein, konnte die Integrität positiv überprüft werden.

Claims (13)

  1. Verfahren zum Überprüfen der Dateisystemintegrität einer Dateiverwaltung einer Datenverarbeitungseinrichtung, wobei die Dateiverwaltung der Datenverarbeitungseinrichtung eine Mehrzahl von Dateien für die Datenverarbeitungsfunktion der Datenverarbeitungseinrichtung enthält, gekennzeichnet durch die elektronisch ausführbaren Schritte: – Bereitstellen einiger oder aller in der Dateiverwaltung enthaltenen Dateien in einer baumartigen Datenstruktur, bei der jeder Knoten der baumartigen Datenstruktur eine Datei der Dateiverwaltung repräsentiert, – Erstellen einer sequentiellen Datenstruktur aus der baumartigen Datenstruktur, indem – eine Breitensuche in der baumartigen Datenstruktur durchgeführt wird, bei der nacheinander für jede Baumebene sequentiell durch die Knoten der jeweiligen Baumebene der baumartigen Datenstruktur iteriert wird, – wobei für jede Knoten ein Dateityp der durch den jeweiligen Knoten repräsentierten Datei ermittelt und eine den ermittelten Dateityp repräsentierende Typcodierung aus einer Liste von verschiedenen Codierungen ausgewählt wird, und – wobei die ermittelten Typcodierungen der einzelnen durch die Knoten repräsentierten Dateien nacheinander in ein sequentielles Dateityp-Datenfeld (S) der sequentiellen Datenstruktur eingefügt werden, wobei die Positionen (i) derjenigen in dem sequentiellen Dateityp-Datenfeld (S) enthaltenen Typcodierungen durch eine Anfangs- oder Endcodierung in der sequentiellen Datenstruktur gekennzeichnet werden, deren zugrundeliegenden Dateien in der baumartigen Datenstruktur jeweils einen Anfangs- oder Endknoten einer Reihe von Knoten entsprechen, die alle einen gemeinsamen Elternknoten haben, – Vergleichen der erstellten sequentiellen Datenstruktur oder einer mathematischen Repräsentation hiervon mit einer zuvor nach dem gleichen Muster erstellten sequentiellen Referenz-Datenstruktur oder einer mathematischen Repräsentation hiervon, und – Feststellen der Dateisystemintegrität in Abhängigkeit von dem Vergleich.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass bei der Erstellung der sequentiellen Datenstruktur für jeden Dateityp ein eindeutiges alphanumerisches Zeichen, welches den jeweiligen Dateityp repräsentiert, als Typcodierung ausgewählt wird.
  3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass bei der Erstellung der sequentiellen Datenstruktur die Anfangs- oder Endcodierungen der jeweiligen Anfangs- oder Endknoten in ein Geschwisterknoten-Datenfeld (BS) der sequentiellen Datenstruktur derart eingefügt werden, dass die Position (j) einer Anfangs- oder Endcodierung eines Anfangs- oder Endknotens in dem Geschwisterknoten-Datenfeld (BS) derjenigen Position (i) in dem Dateityp-Datenfeld (S) entspricht, an der die Typcodierung des Dateityps der dem Anfangs- oder Endknoten zugrundeliegenden Datei eingefügt ist.
  4. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass bei der Erstellung der sequentiellen Datenstruktur für jeden Knoten zusätzlich zu dem Dateityp mindestens eine weitere Dateieigenschaft der durch den jeweiligen Knoten repräsentierten Datei ermittelt und eine den ermittelten Dateityp und Dateieigenschaft repräsentierende Typcodierung aus einer Liste von verschiedenen Codierungen ausgewählt und in das Dateityp-Datenfeld eingefügt wird.
  5. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass bei der Erstellung der sequentiellen Datenstruktur überprüft wird, ob der ermittelte Dateityp der durch den jeweiligen Knoten repräsentierten Datei ein Verweis auf eine andere, in der Dateiverwaltung enthaltenen Datei ist, wobei bei Feststellung eines Verweisdateityps dann in dem Dateityp-Datenfeld die Position der Typcodierung derjenigen zugrundeliegenden Datei, auf welche die Datei vom Verweisdateityp verweist, ermittelt und die ermittelte Position in ein Verweisziel-Datenfeld (H) der der sequentiellen Datenstruktur eingefügt wird.
  6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass die Positionen (i) nacheinander in der Reihenfolge der Feststellung bei der Breitensuche in das Verweisziel-Datenfeld (H) der sequentiellen Datenstruktur eingefügt werden oder dass die Positionen in dem Verweisziel-Datenfeld (H) an diejenige Position eingefügt werden, die den einzufügenden Position entsprechen.
  7. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass bei der Erstellung der sequentiellen Datenstruktur für jeden Knoten zusätzlich zu dem Dateityp mindestens eine weitere Dateieigenschaft der durch den jeweiligen Knoten repräsentierten Datei ermittelt und die ermittelten Dateieigenschaften der durch den jeweiligen Knoten repräsentierten Dateien nacheinander in der Reihenfolge der Breitensuche in ein Eigenschaften-Datenfeld (P) der sequentiellen Datenstruktur eingefügt werden.
  8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass als zusätzliche Dateieigenschaft der jeweilige Dateiname der durch den Knoten repräsentierten Datei ermittelt wird, wobei die Dateinamen nacheinander in der Reihenfolge der Breitensuche in ein zeichenbasiertes Dateinamen-Datenfeld (N) der sequentiellen Datenstruktur als Eigenschaften-Datenfeld (P) eingefügt werden, wobei der Anfang oder das Ende eines zu einer Datei gehörenden Dateinamens in dem Dateinamen-Datenfeld (N) durch eine Anfangs- oder Endcodierung in der sequentiellen Datenstruktur gekennzeichnet werden.
  9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, dass die Anfangs- oder Endcodierung der jeweiligen Dateinamen in ein Trenn-Datenfeld (BN) derart eingefügt werden, dass die Position (j) einer Anfangs- oder Endcodierung eines Dateinamens der Anfangs- oder Endposition (i) des Dateinamens in dem zeichenbasierten Dateinamen-Datenfeld (N) entspricht.
  10. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die sequentielle Datenstruktur auf der die zu überprüfende Dateiverwaltung aufweisende Datenverarbeitungseinrichtung mit einigen oder allen Dateien der Dateiverwaltung erstellt wird, wobei der Vergleich der Datenstrukturen oder ihren mathematischen Repräsentationen und die Feststellung der der Dateisystemintegrität in Abhängigkeit von dem Vergleich entweder – auf der zu überprüfenden Datenverarbeitungseinrichtung durchgeführt wird, wobei hierfür die sequentielle Referenz-Datenstruktur zuvor auf die Datenverarbeitungseinrichtung übertragen wurde, oder – auf einer mit der zu überprüfenden Datenverarbeitungseinrichtung elektronisch verbundenen zentralen Datenverarbeitungsanlage durchgeführt wird, wobei hierfür die erstellte sequentielle Datenstruktur zuvor auf die zentrale Datenverarbeitungsanlage übertragen wurde.
  11. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass vor dem Erstellen der sequentiellen Datenstruktur auf der zu überprüfenden Datenverarbeitungseinrichtung ein Teil der Dateien, die in der Dateiverwaltung enthalten und nicht auf der Datenverarbeitungseinrichtung abgespeichert sind, von einer mit der zu überprüfenden Datenverarbeitungseinrichtung elektronisch verbundenen zentralen Datenverarbeitungsanlage auf die zu überprüfende Datenverarbeitungseinrichtung übertragen werden, wobei die sequentielle Datenstruktur auf der zu überprüfenden Datenverarbeitungseinrichtung in Abhängigkeit von den vor der Übertragung bereits vorhandenen Dateien und den übertragenen Dateien erstellt wird.
  12. Computerprogramm mit Programmcodemitteln, insbesondere gespeichert auf einem maschinenlesbaren Träger, eingerichtet zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 11, wenn das Computerprogramm auf einer elektronischen Datenverarbeitungseinrichtung und/oder Datenverarbeitungsanlage ausgeführt wird.
  13. Datenverarbeitungseinrichtung mit einer elektronischen Datenverarbeitungseinheit, einem digitalen Speichermedium, auf dem eine Mehrzahl von Dateien abgespeichert oder abspeicherbar sind, und mit einer digitalen Dateiverwaltung, die eine Mehrzahl von Dateien für die Datenverarbeitungsfunktion der Datenverarbeitungseinrichtung enthält, dadurch gekennzeichnet, dass die Datenverarbeitungseinrichtung mittels der elektronischen Datenverarbeitungseinheit zum Durchführen des Verfahrens nach einem der Ansprüche 1 bis 11 eingerichtet ist, um die Dateisystemintegrität der die Dateien enthaltenen Dateiverwaltung zu überprüfen.
DE102016110479.5A 2016-06-07 2016-06-07 Verfahren und Computerprogramm zum Überprüfen der Dateisystemintegrität sowie Datenverarbeitungseinrichtung hierzu Active DE102016110479B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102016110479.5A DE102016110479B4 (de) 2016-06-07 2016-06-07 Verfahren und Computerprogramm zum Überprüfen der Dateisystemintegrität sowie Datenverarbeitungseinrichtung hierzu

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102016110479.5A DE102016110479B4 (de) 2016-06-07 2016-06-07 Verfahren und Computerprogramm zum Überprüfen der Dateisystemintegrität sowie Datenverarbeitungseinrichtung hierzu

Publications (2)

Publication Number Publication Date
DE102016110479A1 true DE102016110479A1 (de) 2017-12-07
DE102016110479B4 DE102016110479B4 (de) 2023-05-04

Family

ID=60328087

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016110479.5A Active DE102016110479B4 (de) 2016-06-07 2016-06-07 Verfahren und Computerprogramm zum Überprüfen der Dateisystemintegrität sowie Datenverarbeitungseinrichtung hierzu

Country Status (1)

Country Link
DE (1) DE102016110479B4 (de)

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JACOBSON, Guy. Space-efficient static trees and graphs. In: Foundations of Computer Science, 1989., 30th Annual Symposium on. IEEE, 1989. S. 549-554. doi: 10.1109/SFCS.1989.63533
KIM, Gene H.; SPAFFORD, Eugene H. The design and implementation of tripwire: A file system integrity checker. In: Proceedings of the 2nd ACM Conference on Computer and Communications Security. ACM, 1994. S. 18-29. doi: 10.1145/191177.191183

Also Published As

Publication number Publication date
DE102016110479B4 (de) 2023-05-04

Similar Documents

Publication Publication Date Title
DE2459006C2 (de) Einrichtung zum Bilden einer absoluten Adresse in einer Datenverarbeitunsanlage
DE69913618T2 (de) Verfahren zur Erzeugung eines Prüfpunktes, welcher eine Basisdatei beschreibt, und Verfahren zur Erzeugung einer Differenzdatei zwischen einer aktualisierten Datei und einer Basisdatei
DE69636761T2 (de) Speichern und wiederauffinden von geordneten schlüsselmengen in einem kompakten 0-kompletten baum
DE2758829C2 (de) Datenverarbeitungsanlage mit mehreren Prozessoren
CH658329A5 (de) Verfahren zur steuerung des daten-zugriffes in einer datenbank und apparat zu seiner durchfuehrung.
EP2940924A1 (de) PUF basierende Ableitung eines gerätespezifischen Wertes
EP3563261B1 (de) Bitsequenzbasiertes datenklassifikationssystem
WO2019091901A1 (de) Verfahren zum verknuepfen eines ersten datenblocks mit einem zweiten datenblock, verfahren zum ueberpruefen der integritaet einer blockchain-struktur, vorrichtung und computerprogrammprodukt
DE69629540T2 (de) Verfahren und Gerät zum Sortieren von Elementen
EP2876512A1 (de) Verfahren zur automatischen Verbindung von Komponenten eines Modells eines technischen Systems
DE102016110479B4 (de) Verfahren und Computerprogramm zum Überprüfen der Dateisystemintegrität sowie Datenverarbeitungseinrichtung hierzu
DE102018219070B3 (de) Übertragen eines Datensatzes und Bereitstellen einer Datenübertragungsinformation
DE102022113177A1 (de) Verbesserte konsensdatenfilterung bei proof-of-space-blockchain-systemen
DE112017008201B4 (de) Informationsverarbeitungsvorrichtung, Informationsverarbeitungsverfahren und Informationsverarbeitungsprogramm
DE102018001661A1 (de) Integritätstest von Daten, die auf lokal verteilten und per Internet verbundenen Systemen vorliegen
EP0912952A1 (de) Datenbanksystem und verfahren zum verwalten eines n-dimensionalen datenbestands
DE60035644T2 (de) Ablauffolgeplanung der nicht ganzzahligen Simulationszeit für mixed-signal Simulation
DE102015117668B4 (de) Verfahren zur Ablage von Daten und zur Abfrage derselben
DE2613703C2 (de) Schaltungsanordnung zum Übersetzen von Programmtexten
DE102018111867A1 (de) Objektdatenbank zur Geschäftsmodellierung mit verbesserter Datensicherheit
EP4099163A1 (de) Verfahren und system zum erkennen und beseitigen von schwachstellen in einzelnen dateisystemschichten eines container-images
EP1515244A2 (de) Abbildung einer Klassenhierarchie auf ein relationales Datenbanksystem
DE112010005924T5 (de) Verfahren und System zum Weitergeben von Änderungen an einer Master-Einheit zu Duplikaten
DE102022132503A1 (de) Elektronische vorrichtung zur emulation von eeprom und verfahren zu deren betrieb
DE102021207936A1 (de) Verdichtung eines Datensatzes in einen Funktionsterm mit Hilfe von Transformernetzwerken

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: GRAMM, LINS & PARTNER PATENT- UND RECHTSANWAEL, DE

R016 Response to examination communication
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0017300000

Ipc: G06F0016000000

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0016000000

Ipc: G06F0016130000

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final