DE202004012280U1 - Schaltung und Methode zur Verwaltung der Festplattendaten und Kontrolle des Zugriffs - Google Patents

Schaltung und Methode zur Verwaltung der Festplattendaten und Kontrolle des Zugriffs Download PDF

Info

Publication number
DE202004012280U1
DE202004012280U1 DE200420012280 DE202004012280U DE202004012280U1 DE 202004012280 U1 DE202004012280 U1 DE 202004012280U1 DE 200420012280 DE200420012280 DE 200420012280 DE 202004012280 U DE202004012280 U DE 202004012280U DE 202004012280 U1 DE202004012280 U1 DE 202004012280U1
Authority
DE
Germany
Prior art keywords
connection
logic
signal
hard disk
keyboard
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.)
Expired - Lifetime
Application number
DE200420012280
Other languages
English (en)
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to DE200420012280 priority Critical patent/DE202004012280U1/de
Publication of DE202004012280U1 publication Critical patent/DE202004012280U1/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

Eine Hardwareanordnung innerhalb eines PC-Systems, in der Art, dass
a. ein externer Mausanschluss inklusive Steuerelektronik
b. ein externer Tastaturanschluss inklusive Steuerelektronik
c. die Verbindung zum computereigenen Festplattencontroller
d. die Verbindung zur computereigenen Festplatte
e. die Verbindung zu einer Schaltung mit Modem-, ISDN- oder LAN-Funktionalität
f. die Verbindung zu einem externen RAM-Speicher ausschließlich mit einem FPGA (Field Programmable Gate Array) verbunden sind, zu diesem auch
g. eine Verbindung mit dem computereigenen PCI-Bus besteht.

Description

  • Hintergrund der Erfindung
  • Vorüberlegungen zur Beurteilung vorhandener Ansätze und Bestimmung der Zielvorgaben für die vorliegende Erfindung Die Relevanz des Themas Sicherheit im Computerbereich muss hier nicht weiter ausgeführt werden. Stattdessen möchte ich zuerst einige Grundannahmen zu diesem Thema betrachten und sie anhand von Beispielen auf ihre Praxistauglichkeit hin überprüfen.
  • Häufig anzutreffende Thesen und Grundannahmen
    • 1. Programmmfehler, Viren und Bedienungsfehler sind grundlegend voneinander verschieden.
    • 2. Der Wille des Benutzers äußert sich durch Benutzereingaben.
    • 3. Guter und schädlicher Code sind eindeutig voneinander zu unterscheiden.
    • 4. Tastatur- und Mauseingaben stammen vom Benutzer.
    • 5. Es kann ein Zeitpunkt bestimmt werden, an dem der Rechner frei von schädlichem Code ist.
    • 6. Um den Rechner auf dem Stand nach 4. zu halten, überprüft man bestimmte, wichtige Dateien auf unbefugte Änderung und verhindert sie weitestgehend.
    • 7. Eine rein softwarebasiertes System kann die Aufgabe der Zugriffskontrolle übernehmen.
    • 8. Wenn der Zugriff auf Daten und Programme nur nach Authentifizierung des Benutzers durch eine oder mehrere der aktuellen Authentifizierungsarten, z.B. Benutzername / Passwortkombinationen, Chipkarten usw. möglich ist, ist ein ausreichender Schutz gegeben.
  • 1. Ein Beispiel: Einige Programmdateien sind gelöscht worden.
    • – Ein Virus könnte diese Dateien gelöscht haben.
    • – Das Löschen könnte aber auch aufgrund eines Programmfehlers passiert sein; in der Vergangenheit gab es z.B. immer wieder Software, u.a. auch von sehr renommierten Firmen, die bei der Installation in ein bereits vorhandenes Verzeichnis die Daten in diesem Verzeichnis ohne Nachfrage löschten, gleichgültig, ob diese Daten von anderen Programmen stammten.
    • – Es kann auch ein Bedienungsfehler sein. Eine ganze Reihe von Deinstallationsprogrammen z.B. unterbrechen mehrfach mit der Frage, ob bestimmte Dateien gelöscht werden sollen, weil sie laut System nicht mehr gebraucht würden. Selbst ein versierter Benutzer wird nicht ohne Recherche (wenn überhaupt) herausfinden, welche Dateien von welchem Programm gebraucht werden. Eine große Menge an Tastenkürzeln führen ohne Hinweis für den Benutzer Funktionen aus. Ein ungewolltes Betätigen einer solchen Tastenkombination kann auch schnell einen Löschvorgang durchführen.
  • Die Ursache, weswegen die Dateien ungewollt gelöscht wurden, spielt für den Benutzer doch nur für die zukünftige Vermeidung solcher Fälle eine Rolle, nicht aber dafür, dass sie gar nicht hätten gelöscht werden sollen. Programmfehler, Viren und Bedienungsfehler sind in ihrer Wirkung oft nicht voneinander zu unterscheiden. Ziel muss es also sein, alle drei Gruppen zu betrachten.
  • 2. Wenn man den Benutzer im unter 1. genannten Beispiel fragen würde, ob es in seinem Willen war, die Dateien zu löschen, wird er wohl kaum bejahend antworten; der Fehler bei der dritten Möglichkeit lag beim falschen Tastendruck, in der Ausführung also, der Willensäußerung, nicht im Willen selbst. Der Willen des Benutzers äußert sich somit nur teilweise durch Benutzereingaben. Im alltäglichen Gebrauch wird der Benutzer wissen, was er erreichen will, nicht aber immer, wie er das dem Computer mitteilen soll.
  • 3. Worin besteht der Unterschied zwischen einem Programm, dass gelesene e-mails automatisch löscht und einem Virus, der genau dasselbe tut, um damit vielleicht seine Spuren zu verwischen? Nur der, dass der Virus seine Aufgabe auch dann ausführen würde, wenn der Benutzer es nicht wollte. Es bestehen also nahezu keine Unterschiede im Code, aber darin, ob die Ausführung der Aufgabe im Sinne des Benutzers liegt oder nicht. Die meisten Dinge, die ein Virus tut, sind Dinge, die ein Benutzer auch ausführen wird, nur zu einem anderen Zeitpunkt oder mit abgewandelten Parametern (gewollter email-Versand geheimer Daten an einen Kollegen oder ungewollter Versand an einen Konkurrenten). Somit sind die Codezeilen allein meistens nicht als Unterscheidungsmerkmal zu gebrauchen, wohl aber die vorhandene oder fehlende Zustimmung des Benutzers.
  • 4. Windows-Programmierern ist das Konzept geläufig, mit dem u.a. Tastatur- und Mauseingaben an das aktive Programm übermittelt werden: Windows „sendet Botschaften". Doch auch Programme können solche Botschaften generieren und damit andere Programme steuern. Sie können sich auch in die Botschaftsbearbeitung hineinklinken und alle Botschaften überprüfen und ggf. verändern oder zurückhalten. Die Art, wie Tastatur und Maus verarbeitet werden, sorgt für einen sehr frühen Übergang der Signale von der Hardware zur Software. Software ist aber änderbar. Wer bei einem Rechner kurz vor dem Komplettabsturz, feststellen muss, dass seine Tastatureingabe nicht mehr bis zur gewünschten Stelle innerhalb des Programms gelangt oder aber das gedrückte Zeichen nicht mit dem am Bildschirm übereinstimmt, weil die Software für die Sprachanpassung fälschlicherweise umgestellt wurde, bekommt eine Ahnung davon, wie mächtig die dazwischenliegende Software sein kann. Wenn nun nach 3. aber eine Entscheidung, ob eine Programmcode ausgeführt werden sollte oder nicht, hauptsächlich von der Zustimmung des Benutzers abhängig ist, ist diese Zustimmung in aktuellen Hard- und Softwarekonstellationen durch Benutzereingaben auf sicherem Weg gar nicht möglich.
  • 5. „Software ist momentan nicht fehlerfrei herstellbar", so ähnlich steht es in sehr vielen Lizenzvereinbarungen, die Vielzahl an Fehlerverbesserungen in Form von Updates und Servicepacks zeigt dies deutlich. Also kann auch momentan kein Zeitpunkt bestimmt werden, an dem der Rechner keinen schädlichen Code enthält.
  • 6. Da 5. nicht haltbar ist, ist damit auch dieser Punkt eigentlich hinfällig, doch gibt es noch ein weiteres wichtiges Gegenargument. Die unter 5. genannten Fehlerverbesserungen finden in Form von Änderungen an Dateien durch Austausch, Löschung oder Modifizierung (z.B. Eintragungen in der Registry) statt. Solche Vorgänge dürfen nicht grundsätzlich unterbunden werden.
  • 7. Bei Rechnern mit üblicher Bauweise muss Software vor der Benutzung geladen werden. Das Betriebssystem ist Software, Software kann, wie gezeigt wurde, verändert werden. Solange die Zugriffskontrollinstanz nicht vom Start des Rechners an besteht – und das Betriebssystem wird beim Start geladen – ist ein unbefugter Zugang zu den Daten möglich. Selbst bei Verschlüsselung können die Daten zumindest gelöscht werden.
  • 8. Wenn wir von dem ausgehen, was mit der Authentifikation bezweckt werden soll, so steht nach erfolgreicher Anmeldung ein genau festgelegter Funktionsumfang zur Verfügung, bestehend aus Programmen, die benutzt werden dürfen und eine Reihe von Dateien, auf die der Benutzer uneingeschränkten Zugriff hat, z.B. seine selbsterstellten Dateien. Nun ist es aber nicht so, dass der Benutzer immer alle Möglichkeiten nutzen will, dies wird so gut wie nie der Fall sein: Warum sollte er alle eigenen Dateien löschen, nur weil er das Recht besitzt, diese Dateien zu löschen? Ein schädlicher Code könnte dies aber gegen den Benutzerwillen tun. Ein Schaden kann auch dann entstehen, wenn erlaubte Funktionen zum falschen Zeitpunkt oder auf falsche Daten angewandt werden. Wem dies unrealistisch erscheint, denke an die vielen Viren der letzten Jahre und die dabei in Firmen entstandenen Schäden, deren Mitarbeiter (hoffentlich) nicht alle mit Administratorrechten angemeldet waren und dennoch das infizierte Programm starten konnten oder aber mit ihren Rechten durch ein Programmfehler der Code automatisch gestartet wurde.
  • Zusammenfassung
  • Zu jedem Zeitpunkt kann sich schädlicher Code auf dem Rechner befinden.
  • Eine Überprüfung von unerlaubten Änderungen wichtiger Dateien führt nicht zum Ziel, da es Fälle gibt, in denen sie geändert werden sollen. Inwieweit die neuen Dateien schädlichen Code enthalten oder nicht, ist anhand des Codes selbst oft nicht zu erkennen (Virenscanner erkennen lediglich Codeteile wieder, die vom Hersteller als schädlich definiert wurden).
  • Eine Authentifizierung des Benutzers und eine damit verbundene Zugriffsregelung schützt nicht vor dem Ausführen von dem Benutzer erlaubten Funktionen zu einem falschen Zeitpunkt oder mit geänderten Parametern.
  • Die Zugriffskontrolle muss bereits vor Ausführung der ersten Zeile PC-Code aktiv sein, da ansonsten dieser Befehl bereits schädlicher Code sein kann bzw. durch schädlichen Code ersetzt werden kann. Software allein ist veränderbar.
  • Das einzige immer geltende Zulässigkeitskriterium für die Ausführung einer Funktion ist der Wille des Benutzers (bzw. des Superusers, falls der „Userwillen" nicht in allen Bereichen maßgeblich ist), doch dazu muss er den Sachverhalt beurteilen können, was an manchen Stellen wie beispielsweise beim Löschen einer ihm unbekannten Datei schwierig, beim Versand einer e mail an einen Unbekannten aber möglich ist. Der Wille des Benutzers ist jedoch nicht mit dessen Ausdruck, einer Benutzereingabe zu verwechseln, da
    • – Benutzereingaben fehlerhaft und in ihrer Wirkung Programmfehlern und Viren ähnlich sein können
    • – Tastatur- und Mauseingaben sich aufgrund der in aktuell hergestellten PCs üblichen Signalverarbeitung nicht eignen, da sie leicht von schädlichem Code verfälscht werden können.
  • Zielsetzungen
    • 1. Eine hardwarebasierte Zugriffskontrolle für die Daten der Festplatte, die bereits beim PC-Start zur Verfügung steht.
    • 2. Kein PC-Programmcode darf zu keinem Zeitpunkt die Möglichkeit haben, diesen Schutz zu umgehen.
    • 3. Benutzereingaben, vor Ort mithilfe von Tastatur und Maus, ferngesteuert unter Verwendung einer Modem/ISDN/LAN-Verbindung, müssen zuerst von der Steuerung bearbeitet werden können und im Anschluss erst an das ungesicherte PC-System weitergegeben werden dürfen.
  • Während sich die ersten beiden Punkte aus den bisherigen Betrachtungen ergeben, ist der dritte noch erklärungsbedürftig. In der Fachliteratur gehören Maus und Tastatur mit Modem-/ISDN/Netzwerkkarten nicht in dieselbe Kategorie von Hardware. Aus dem Blickwinkel des Benutzerwillens heraus werden über die letztgenannten jedoch auch Befehle initiiert und auf Daten zugegriffen. Der Signalweg von der Tastatur des remote Arbeitenden bis zum ferngesteuerten PC ist nur etwas „länger". Dieser längere Tastatur- und Maussignalweg kann nicht in gleicher Qualität geschützt werden, da die Auswertung der Benutzereingaben nach dem Übergang von Hardware zur Software erfolgt und eine Reihe von unsicheren Softwarekomponenten im Gesamtweg liegen. Dennoch eine Remoteverbindung in die vorliegende Erfindung mit hineinzunehmen ergibt sich auch aus der dargelegten Bedeutung des Benutzerwillens als Entscheidungskriterium: der Administrator des Systems wird jobbedingt eine Reihe von Entscheidungen treffen können, die der Benutzer nicht treffen kann oder darf. Weitere Vorteile, die sich aus dieser Anordnung ergeben, sind eher softwarebezogen und nicht Bestandteil dieses Patentes.
  • Aktueller Stand der Technik
  • Eine Vielzahl von Sicherheitsfunktionen ist in den aktuell eingesetzten Betriebssystemen enthalten. Sie alle enthalten aber den gleichen systemimmanenten Mangel: reine Software ist veränderbar. Auf den ersten Blick scheinen sie von hardwarebasierten Mechanismen geschützt zu sein: Intelprozessoren besitzen im protected-mode ein hardwarebasiertes Zugriffssystem mit, bildlich in Ringen angeordneten, abgestuften Berechtigungen, Festplatten können grundsätzlich auch geschützte Bereiche zur Verfügung stellen, diese Hardware aber wird immer vom Betriebssystem eingerichtet und auch von ihm gesteuert. Das OS legt nämlich fest, welcher Code welche Berechtigungen hat. Der Code, der diese Berechtigungen festlegt, ist aber genauso veränderbar wie alle andere reine Software auch und es gibt, wie eingangs hergeleitet, kein festes Regelwerk, wann ein Code schädlich ist und wann nicht. Solange darüber hinaus die Zugriffskontrolle, und sei es nur ein Teil davon, geladen werden muss, bis sie funktioniert, ist eine Sicherheitslücke vorhanden.
  • Das US-Patent 5289540 von Jones beschreibt daher eine Steckkarte, die zwischen die Laufwerke und die übrige Hardware geschaltet wird, diese kontrolliert den kompletten Datenfluss. Eingerichtet wird sie vom Betriebssystem bei PC-Start und ist danach betriebssystemseitig nicht mehr veränderbar. Ein TSR-Programm, ein zu DOS-Zeiten übliche Programmart, um eine An Multitasking, also ein gleichzeitiges Nutzen von mehreren Programmen zu ermöglichen, soll zur Authentifikation Benutzername und Passwort abfragen.
  • Mängel:
  • Die zeitliche Anpassung von DOS zu aktuellen Betriebssystemen löst das Hauptproblem nicht; wie erklärt wurde, ist Software allein veränderbar, das TSR-Programm wird zwar anfangs vor Veränderung seines gespeicherten Programmcodes geschützt, nach Programmstart befindet es sich aber ungeschützt im Arbeitsspeicher und kann verändert werden. Eine Sicherheit, dass die Eingabe des Passwortes wirklich durch eine Benutzereingabe entstanden ist, gibt es nicht, eine Sicherung des Benutzereingabeweges ist nicht vorgesehen.
  • Das US-Patent 6564326 von Helbig beschreibt eine Möglichkeit, zwischen den PC-Prozessor und den übrigen Teil des Rechners eine Hardware zu schalten, bestehend aus einem programmierbaren Logikbaustein, einem Steuerungs-Prozessor und einem Flashspeicher für das Steuerprogramm selbst. Damit ist es möglich, jeden Befehl, den der PC-Prozessor ausführen soll, zuvor vom Steuerungs-Prozessor überprüfen zu lassen. Der Steuerungscode ist vor Veränderung geschützt, da auf ihn nur über den Steuerungs-Prozessor zugegriffen werden kann. Helbig erklärt, dass seine Erfindung Daten mit einem Sollzustand vergleicht und bei Verletzung der Integrität der Daten die weitere Bearbeitung abbricht. Dieser Sicherheitscheck wird im Wechsel mit dem PC-Prozessor durchgeführt. Helbig beschreibt weiterhin, dass der Steuerungs-Prozessor nach durchgeführtem Sicherheitscheck sich aus dem Signalfluss des PC-Prozessors ausklingt, bei Bedarf aber Aufgaben als Coprozessor übernehmen könnte. Sein Kosteneinsparungsvorschlag zielt in die gleiche Richtung: Er schlägt eine Integration in den Prozessor vor.
  • Mängel:
  • Die Erfindung zielt primär darauf ab, den Rechner in eine wohldefinierten Zustand ohne schädlichen Code zu bringen. Wie eingangs erklärt wurde, gibt es einen solchen jedoch überhaupt nicht. Für das Problem, wann welche Dateien geändert werden dürfen, sieht sein Patent keine Lösung vor. Die Idee der Coprozessortätigkeit sorgt für eine Vermischung der Zuständigkeiten und damit für potentielle Sicherheitslücken. Die Unterbrechung des PC-Prozessors, während der Steuerungsprozessor arbeitet und die Verhinderung eines direkten Datenaustausches zwischen RAM und PC-Prozessor müssen für eine reduzierte Performance sorgen.
  • Die neueste Entwicklung scheint die Bildung der Trusted Computing Group (www.trustedcomputinggroup.org) zu sein, der Firmen wie Microsoft, IBM, Intel u. a. angehören und deren Ziel es ist eine sichere PC-Plattform zu schaffen. Sie setzt an vielerlei Stellen Kryptografieverfahren ein, benötigt jedoch eine nahezu komplett neue Hardware; das Problem der ungesicherten Benutzereingabe wird z.B. mit einer neuen Art von Tastatur angegangen. Die Beurteilung dieser Gruppe ist zum heutigen Zeitpunkt nicht komplett möglich, geht aber einen anderen Weg als vorliegende Erfindung, bei der, als eine Möglichkeit, mit dem Einbau einer PCI-Steckkarte keine weitere Hardware angeschafft werden muss und jede momentan lauffähige Software weiterhin funktioniert.
  • Neuheit der Erfindung
    • 1. Die bisher im PC-System unabhängig und nebeneinander operierenden Komponenten Maus, Tastatur, Festplatte und Netzwerk/Modem/ISDN-Karte in einer Einheit zu kapseln und sie Mithilfe eines weiteren Prozessors (mit gekapselter, eigener Software) in Abhängigkeit voneinander zu steuern.
    • 2. Zu keinem Zeitpunkt einem auf dem PC ausgeführten Programmcode (gewollt oder ungewollt) ungeregelten Zugriff auf die Steuerungssoftware, die Daten auf der Festplatte oder Kontrolle über die über die Modem/ISDN/LAN-Verbindung zu sendenden bzw. empfangenden Daten zu ermöglichen.
    • 3. Tastatur- und Mauseingaben für die Steuerung eindeutig und durch PC-Code nicht verfälschbar zu machen.
    • 4. Diese Steuerung und Kapselung so zu gestalten, dass sie für die übrige PC-Hardware und aller PC-Software inklusive BIOS, Betriebssystem und Anwendungssoftware transparent ist.
  • Aufbau der Hardware
  • Im folgenden beschrieben wird eine Einsteckkarte für den PCI-Bus. Weitere Umsetzungen sind jedoch denkbar.
  • Kern der Hardware ist ein FPGA (Field Programmable Gate Array; Herstellerfirmen Altera, Xilinx, Atmel u.a. ), ein programmierbarer Logikbaustein. Seine Funktionen werden mit Hilfe eines Programms festgelegt, was auf herstellerabhängige Weise geladen wird, meist aus einem externen Speicherbaustein nach Anlegen der Versorgungsspannung, Zu dem FPGA führen, ggf. nach Pegelanpassungen und funktionsbedingter Minimalelektronik:
    • – ein Anschluss für den PCI-Bus
    • – ein Anschluss für eine Maus
    • – ein Anschluss für eine Tastatur
    • – ein Anschluss für eine Festplatte
    • – ein Anschluss für das ursprünglich zur Festplatte führende Verbindungskabel, ausgehend vom Controller des Motherboards
    • – ein externer RAM-Speicher
    • – ein Taktgenerator
    • – ein Anschluss für die Verbindung zu einer auswechselbaren Platine (im folgenden Text Verbindungskarte genant) mit – Modem– – ISDN- oder – LAN-Funktionalität
  • Die genaue technische Ausführung der Festplatte, ob parallel oder seriell, IDE oder SCSI wie auch der Anschlusstyp für Maus und Tastatur spielt für die Ausführungen hier keine Rolle, da die Funktionalität der Erfindung davon unabhängig ist. Neben physischen Anpassungen der Steckverbindungen ist die Ansteuerlogik innerhalb des FPGA umzustellen, die Protokolle und Mechanismen dazu sind jedoch standardisiert und verfügbar.
  • Interner Aufbau des FPGA
  • Kern bildet ein Mikroprozessor Soft-Core, der die weiteren Komponenten steuert.
  • Für die die Daten seriell übertragenden Komponenten (Maus, Tastatur und ggf. Festplatte) ist jeweils eine Dekodier- und Enkodierlogik vorhanden.
  • Den PCI-Anschluss steuert eine PCI-Controllerlogik, die sowohl im Target- als auch im Mastermodus arbeiten kann.
  • Jedem Anschluss ist eine Vergleichslogik zugeordnet, die die empfangenen Daten mit im RAM-Speicher hinterlegten Daten vergleicht (siehe Funktionsbeschreibung).
  • Funktionsbeschreibung
  • Initialisierung der Steuerung
  • Mit Vorhandensein der Stromversorgung initialisiert sich der FPGA selbstständig mithilfe von Daten aus einem nichtflüchtigen Baustein (z.B. Flash-Baustein). Darauf folgt die Initialisierung des Softcore Mikroprozessors. Einige grundlegende Daten lädt er aus demselben Speicherbaustein, u.a. Treiber zur Ansteuerung der Festplatte und der Verbindungskarte. Ab diesem Moment ist die Steuerung einsatzbereit. Ob und inwieweit weitere Schritte erfolgen, entscheidet der Prozessor anhand der ihm vorliegenden Daten aus dem für ihn reservierten Bereich der Festplatte oder den im nichtflüchtigen Speicher hinterlegten Daten; die weitere Ausgestaltung ist ein Teil der Software, die außerhalb dieses Patentes liegt.
  • PC-Initialisierung der Festplatte
  • Während des Boot-Vorganges werden zuerst die Programmroutinen des BIOS ausgeführt. In dieser Phase werden auch die in den ATA-Spezifikationen festgelegten Befehle u.a. zur Abfrage der technischen Daten der Festplatte (IDENTIFY_DEVICE) gesendet. Die Anfrage des Festplattencontrollers gelangt jedoch nicht direkt an die Festplatte, sondern an den FPGA. Die für diesen Anschluss zuständige Vergleichslogik überprüft diese Anfrage mit den hinterlegten Befehlen im RAM-Speicher. Für diesen Befehl (IDENTIFY_DEVICE) ist ein Filterbefehl hinterlegt, somit wird die Anfrage nicht direkt an die Festplatte weitergeleitet. Stattdessen werden vom Prozessor die für diesen Fall festgelegten Daten an den Festplattencontroller übermittelt; u.a. eine (um die von der Steuerung selbst gebrauchte) verminderte Speicherkapazität übermittelt. Für das BIOS erfolgt diese Filterung jedoch transparent, es scheint eine kleinere Festplatte eingebaut zu sein. Jeder Programmcode, der BIOS-Funktionen zur Bestimmung der Festplattenkapazität befragt, bekommt einen konsistenten Wert zurückgeliefert, Programmcode, der die Festplatte direkt abfragen will, erhält das (gefilterte) gleiche Ergebnis.
  • PC-Initialisierung der PCI-Karte
  • Während des Bootvorganges führt das BIOS auch eine Abfrage der PCI-Karten durch. Die vorliegende Steuerkarte lässt sich als Maus- und Tastaturschnittstelle identifizieren. Während dieser Phase ist kein Unterschied zu einer bisher üblichen Schaltung zu erkennen.
  • Zugriff des PCs auf die Festplatte
  • Jeder Zugriff wird von der Vergleichslogik auf seine Richtigkeit überprüft. Wird z.B. versucht, auf Daten außerhalb des für den PC zugänglichen Bereiches zuzugreifen, wird eine ATA-konforme Fehlermeldung an den Festplattencontroller zurückgesandt, die lediglich auf einen fehlerhaften Befehl, nicht aber auf die dazwischengeschaltete Steuerung hinweist. Weitere Einsatzbereiche sind vielfältig denkbar, obliegen jedoch der Ausgestaltung der Software, die nicht Gegenstand dieses Patentes ist.
  • Tastatureingaben
  • Erfolgt ein Tastendruck, so gelangt diese Information zuerst zum FPGA. Dort wird die serielle Information dekodiert und in der Vergleichslogik gegenüber im RAM-Speicher festgelegten Werten ausgewertet. Ist ein Filterbefehl für diese Taste oder Tastenkombination vorgesehen, so wird der damit verbundene Steuerbefehl ausgeführt und nicht an den PC weitergeleitet. Für die PC-Software ist diese Benutzereingabe wie „nicht erfolgt" und (gewollt oder ungewollt) nicht registrierbar. Der in der Steuerung ausgelöste Befehl jedoch könnte z.B. einen Schreibzugriff an eine bisher verbotene Stelle ermöglichen, einen Kopiervorgang von Daten aus einem geschützten in einen ungeschützten Bereich der Festplatte auslösen oder eine Datei per E-Mail verschicken. Die Möglichkeiten sind vielfältig, softwaregesteuert und nicht Bestandteil dieses Patentes.
  • Andere Bauweisen der Schaltung
  • Erster Schritt zur Kosteneinsparung kann sein, die Steuerungsschaltung komplett auf das Motherboard zu setzen, wobei dann wegen des zusätzlich erforderlichen Platzes ein Teil des Motherboards neu gelayoutet werden muss.
  • Eine Integration der im FPGA enthaltenen Logik in den Chipsatz des Motherboards wäre ein weitergehender Schritt. Der als Northbridge bezeichnete Chip, der den Prozessor mit der übrigen Hardware verbindet, ist mit allen für diese Schaltung notwendigen PC-Komponenten verbunden. Möchte man auf die Vorteile der FPGA-Technik nicht verzichten, ist ein Herstellung des Chips als Mischform möglich. Es wären Flash- und RAM-Speicher zu ergänzen.
  • Der von der Steuerung benötigte RAM-Speicher könnte auch eingespart und stattdessen ein Teil des PC-RAM-Speicher genutzt werden, der dann nach gleichem Muster vor dem unkontrollierten Zugriff des PC-Prozessors geschützt werden muss. Dabei ist jedoch mit erheblichen Performanceeinbußen zu rechnen, wenn keine Möglichkeit geschaffen wird, auf zwei Stellen im Speicher gleichzeitig zuzugreifen, damit Steuerung und Prozessor gleichzeitig arbeiten können.
  • Als Gegenargument zur möglichst weitreichenden und damit kosteneinsparenden Integration steht der gerade mit dieser Schaltung erreichte Zweck: die Sicherheit. Immer mehr äußerlich zu Hardwarekomponenten zählende Chips und Baugruppen enthalten eine Softwaresteuerung (z.B. Firmware). Ist diese von außen anpassbar, so besteht immer die Gefahr, dass dieser Programmcode durch gewollt oder ungewollt sicherheitsgefährdenden Code ersetzt wird.

Claims (7)

  1. Eine Hardwareanordnung innerhalb eines PC-Systems, in der Art, dass a. ein externer Mausanschluss inklusive Steuerelektronik b. ein externer Tastaturanschluss inklusive Steuerelektronik c. die Verbindung zum computereigenen Festplattencontroller d. die Verbindung zur computereigenen Festplatte e. die Verbindung zu einer Schaltung mit Modem-, ISDN- oder LAN-Funktionalität f. die Verbindung zu einem externen RAM-Speicher ausschließlich mit einem FPGA (Field Programmable Gate Array) verbunden sind, zu diesem auch g. eine Verbindung mit dem computereigenen PCI-Bus besteht.
  2. Eine Programmierung des FPGA in der Art, dass in ihm a. eine Steuerlogik für das Maussignal 1a b. eine Steuerlogik für das Tastatursignal 1b c. eine Steuerlogik für das Signal des Festplattencontrollers 1c d. eine Steuerlogik für das Festplattensignal 1 d e. eine Logik zur Ansteuerung der Schaltung 1e f. eine Logik zur Ansteuerung des RAM-Speichers 1 f g. ein PCI-Controller für Master- und Targetmodus zur Interaktion mit 1g h. eine Mikroprozessorlogik i. eine Vergleichslogik zwischen Werten im RAM-Speicher und dem aktuellen Maussignal 1a j. eine Vergleichslogik zwischen Werten im RAM-Speicher und dem aktuellen Tastatursignal 1b k. eine Vergleichslogik zwischen Werten im RAM-Speicher und dem aktuellen Signal des Festplattencontrollers 1c entsteht.
  3. Die Vergleichslogik 2i von der Art ist, dass sie, a. wenn sie keine Entsprechung findet, das zugehörige Signal von der Maussteuerlogik 2a an den PCI-Controller 2h weiterleitet und dieser es in geeigneter Weise weiterleitet b. wenn sie eine Entsprechung findet, den dazugehörigen Befehl ausführt. Der Mikroprozessor entscheidet softwarebasiert, welche Befehle hinterlegt werden.
  4. Die Vergleichslogik 2j von der Art ist, dass sie, a. wenn sie keine Entsprechung findet, das zugehörige Signal von der Tastatursteuerlogik 2b an den PCI-Controller 2h weiterleitet und dieser es in geeigneter Weise weiterleitet b. wenn sie eine Entsprechung findet, den dazugehörigen Befehl ausführt. Der Mikroprozessor entscheidet softwarebasiert, welche Befehle hinterlegt werden.
  5. Die Vergleichslogik 2k von der Art ist, dass sie, a. wenn sie keine Entsprechung findet, das zugehörige Signal vom 2c an die Steuerlogik für die Festplatte 2d weiterleitet und im Folgenden das Signal von der Festplatte 2d, soweit es als Antwort auf den vorherigen Schritt entstanden ist, an 2c weiterleitet b. wenn sie eine Entsprechung findet, den dazugehörigen Befehl ausführt. Dies kann auch ein vorgegebener Wert sein, der an die Festplattencontrollerlogik 2c weitergeleitet wird. Der Mikroprozessor entscheidet softwarebasiert, welche Befehle hinterlegt werden.
  6. Der Mikroprozessor nach vollzogener Initialisierung des FPGA folgende Schritte ausführt: a. er initialisiert sich selbst b. er lädt Programmcode aus dem für die FPGA-Programmierung nötigen Flashbaustein für den Zugriff auf die Festplatte c. er führt je nach Programm weitere Befehle aus
  7. Der PCI-Controller so eingestellt ist, dass er sich bei PC-Systeminitialisierung als Maus- und Tastaturschnittstelle registriert
DE200420012280 2004-08-02 2004-08-02 Schaltung und Methode zur Verwaltung der Festplattendaten und Kontrolle des Zugriffs Expired - Lifetime DE202004012280U1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE200420012280 DE202004012280U1 (de) 2004-08-02 2004-08-02 Schaltung und Methode zur Verwaltung der Festplattendaten und Kontrolle des Zugriffs

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE200420012280 DE202004012280U1 (de) 2004-08-02 2004-08-02 Schaltung und Methode zur Verwaltung der Festplattendaten und Kontrolle des Zugriffs

Publications (1)

Publication Number Publication Date
DE202004012280U1 true DE202004012280U1 (de) 2004-12-16

Family

ID=33521853

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200420012280 Expired - Lifetime DE202004012280U1 (de) 2004-08-02 2004-08-02 Schaltung und Methode zur Verwaltung der Festplattendaten und Kontrolle des Zugriffs

Country Status (1)

Country Link
DE (1) DE202004012280U1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1714229B1 (de) 2004-08-02 2015-11-18 Mahltig Management- und Beteiligungs GmbH Sicherheitsmodul und verfahren zum steuern und kontrollieren eines datenverkehrs eines personalcomputers

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1714229B1 (de) 2004-08-02 2015-11-18 Mahltig Management- und Beteiligungs GmbH Sicherheitsmodul und verfahren zum steuern und kontrollieren eines datenverkehrs eines personalcomputers
EP3327608A1 (de) 2004-08-02 2018-05-30 Mahltig Management- und Beteiligungs GmbH Sicherheitsmodul und verfahren zum steuern und kontrollieren eines datenverkehrs eines personalcomputers

Similar Documents

Publication Publication Date Title
DE3851049T2 (de) Ein Sicherheitswegmechanismus für ein Betriebssystem.
DE112018002031B4 (de) Sichern einer betriebssystemkonfiguration unter verwendung von hardware
EP3274825B1 (de) Verfahren und ausführungsumgebung zum gesicherten ausführen von programmbefehlen
DE69326089T2 (de) Personalcomputersystem mit Sicherheitseigenschaften und -verfahren
DE69401428T2 (de) Hardwaregesteuerter schutz für rechnerspeichervorrichtungen
DE69531112T2 (de) Mechanismus zum verknüpfen von dateien auf einem emulierten system mit dem zentralsystem für den zugriff durch emulierte systembenutzer
DE69427252T2 (de) Verfahren und Gerät zur Erkennung von Computerviren
DE60037606T2 (de) Rechner mit urladungsfähigem sicherem Programm
DE19781829C2 (de) Verfahren und Vorrichtung zum Schützen eines Flash-Speichers
DE10225664A1 (de) System und Verfahren zum Prüfen von Systemabrufereignissen mit Systemabrufumhüllungen
DE112005002985T5 (de) Verfahren zum Einrichten einer vertrauenswürdigen Ablaufumgebung in einem Computer
DE112009000612T5 (de) Multi-Betriebssystem-Booteinrichtung (OS), Multi-OS-Boot-Programm, Aufzeichnungsmedium und Multi-OS-Bootverfahren
DE112004001605T5 (de) Computersystem, in welchem eine abgesicherte Ausführungsumgebung angewendet wird und in dem eine Speichersteuerung enthalten ist, die zum Löschen des Speichers ausgebildet ist
DE102006052173B4 (de) Schreibschutzverfahren und -vorrichtung für wenigstens eine Speichereinrichtung mit wahlfreiem Zugriff
DE202010017644U1 (de) Hybridspeichervorrichtung
DE102018132970A1 (de) Verfahren und Vorrichtung zur Isolation von sensiblem nichtvertrauenswürdigem Programmcode auf mobilen Endgeräten
DE69032346T2 (de) Verfahren und System zur Sicherung von Datenendgeräten
DE60317024T2 (de) Methode zum Setzen der Konfigurationsinformationen eines Speichergerätes
DE60304005T2 (de) Änderung von Ladeadressen von ausführbaren Programmodulen
EP1262856B1 (de) Programmgesteuerte Einheit
DE102005014837B4 (de) Sicherheitsmodul und Verfahren zum Steuern und Kontrollieren eines Datenverkehrs eines Personalcomputers
DE102008050631A1 (de) Datenverarbeitungssystem
DE202004012280U1 (de) Schaltung und Methode zur Verwaltung der Festplattendaten und Kontrolle des Zugriffs
WO1999028804A2 (de) Verfahren und anordnung zum laden von daten für grundlegende systemroutinen eines datenverarbeitungssystems
DE19946959B4 (de) Verfahren zum Laden von Daten für grundlegende Systemroutinen

Legal Events

Date Code Title Description
R207 Utility model specification

Effective date: 20050120

R197 New subsequently filed claims on ip dossier
R156 Lapse of ip right after 3 years

Effective date: 20080301