DE10297688T5 - Verfahren und Vorrichtung für erhöhte Sicherheit in einem Datenprozessor - Google Patents

Verfahren und Vorrichtung für erhöhte Sicherheit in einem Datenprozessor Download PDF

Info

Publication number
DE10297688T5
DE10297688T5 DE10297688T DE10297688T DE10297688T5 DE 10297688 T5 DE10297688 T5 DE 10297688T5 DE 10297688 T DE10297688 T DE 10297688T DE 10297688 T DE10297688 T DE 10297688T DE 10297688 T5 DE10297688 T5 DE 10297688T5
Authority
DE
Germany
Prior art keywords
secure data
preselected
stored
memory
preselected memory
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
DE10297688T
Other languages
English (en)
Other versions
DE10297688B4 (de
Inventor
Geoffrey S. Austin Strongin
Brian C. Round Rock Barnes
Rodney Dripping Springs Schmidt
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of DE10297688T5 publication Critical patent/DE10297688T5/de
Application granted granted Critical
Publication of DE10297688B4 publication Critical patent/DE10297688B4/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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
    • 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
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • 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
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • 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
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • 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/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories

Landscapes

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

Abstract

Verfahren mit:
Speichern einer ersten Information, die anzeigt, ob sichere Daten in einer beliebigen Stelle innerhalb eines ersten vorgewählten Speichersegments (108) gespeichert sind;
Speichern einer zweiten Information, die anzeigt, ob sichere Daten in einer beliebigen Stelle innerhalb jedes von mehreren zweiten vorgewählten Speichersegmenten (108) gespeichert sind, wobei die zweiten vorgewählten Speichersegmente (108) Untereinheiten des ersten vorgewählten Speichersegments (108) sind;
Empfangen einer Adresse (402);
Bestimmen, ob zumindest ein Teil der empfangenen Adresse (402) innerhalb des ersten vordefinierten Speichersegments (108) liegt;
Gewähren eines Zugriffs zu der Adresse (402) in Reaktion auf die erste gespeicherte Information, die anzeigt, dass das erste vorgewählte Speichersegment (108) keine sicheren Daten aufweist; und
Identifizieren mindestens eines der zweiten vorgewählten Speichersegmente (108), in der die empfangene Adresse (402) liegt, in Reaktion auf das Bestimmen aus der ersten gespeicherten Information, dass das erste vorgewählte Speichersegment (108) sichere Daten enthält; und
Gewähren eines...

Description

  • Technisches Gebiet
  • Diese Erfindung betrifft im Allgemeinen einen Datenprozessor und betrifft insbesondere ein Verfahren und eine Vorrichtung zur Sicherstellung eines sicheren Betriebs des Datenprozessors.
  • Hintergrund
  • Computersysteme für allgemeine Anwendungen, etwa Personalcomputer, haben sich von Geräten mit Einzelverarbeitung zu Geräten mit paralleler Verarbeitung entwickelt. Parallel arbeitende Geräte erfordern Sicherheits- und Schutzeinrichtungen, um ihr Betriebssystem vor Anwenderprozessen zu schützen und um die Prozesse untereinander zu schützen. Ohne Schutzmechanismen könnte ein minderwertiges Programm beispielsweise absichtlich oder unabsichtlich die Programmcodierung oder die Daten in dem Speicherraum zerstören, der dem Betriebssystem oder einem anderen Prozess zugeordnet ist.
  • Im Allgemeinen laufen in x86-Mikroprozessorumgebungen unterschiedliche Softwarearten in unterschiedlichen Privilegebenen und besitzen damit einen unterschiedlichen Zugriff auf die Ressourcen des Computersystems. Beispielsweise läuft das Betriebssystem auf der höchsten Privilegebene (Ring 0), was bedeutet, dass das Betriebssystem im Allgemeinen auf nahezu alle Systemressourcen zugreifen kann. Ferner besitzen Softwaretreiber ebenso eine relativ hohe Privilegebene und haben damit im Wesentlichen unbegrenzten Zugriff auf die Ressourcen des Computersystems.
  • Die aktuellste Version des Microsoft-Windows-Betriebssystems, d.h. Windows 2000, weist nunmehr über eine Millionen Zeilen an Codierung auf, die in dessen Kernel und zugeordneten Kernel-Modus-Treibern enthalten sind. D.h. mehr als eine Million Codierungszeilen besitzen im Allgemeinen einen freien Zugriff auf die Systemressourcen. Es gibt daher eine hohe Wahrscheinlichkeit, dass einige Sicherheitsdefekte oder andere Mängel innerhalb dieses großen Programms bestehen. Somit kann es für ein Anwendungsprogramm, das auf einer relativ niedrigen Privilegebene läuft, möglich sein, die Sicherheitsmaßnahmen, die von dem Betriebsystem bereitgestellt werden, auf Grund eines oder mehrerer dieser Fehler oder Sicherheitsdefekte zu durchbrechen. Alternativ kann ein minderwertiger Treiber ebenso auf in den Systemressourcen gespeicherte Daten zugreifen und diese ändern. Sobald dem Anwendungsprogramm Zugriff zu ansonsten nicht verfügbaren Ressourcen, etwa der Seitentabelle, gewährt ist, kann das Anwendungsprogramm absichtlich im Speicher einschließlich den Seitentabellen gespeicherte Daten modifizieren. Wenn die Seitentabellen modifiziert sind, kann es möglich sein, den Betrieb des Computersystems so zu steuern, um Codierung aus einem Speicher auszuführen, die ursprünglich nicht dafür vorgesehen ist. Alternativ kann selbst eine nicht beabsichtigte Modifizierung der Seitentabellen eine Umleitung eines Anwendungsprogramms oder selbst des Betriebssystems auf ansonsten nicht autorisierte oder nicht gewollte Bereiche des Speichers bewirken. Diese Eingriffe in nicht autorisierte Abschnitte des Speichers können in einem Anwendungsprogramm dazu führen, dass wichtige Daten, die von einem anderen Programm verwendet werden, überschrieben werden.
  • In einigen Systemen kann es nützlich sein, den Speicher in mehrere Segmente, etwa Seiten, zu unterteilen, die damit verknüpfte Sicherheitsinformationen enthalten. In dem Maße, wie die Komplexität dieser Information ansteigt, vergrößert sich auch die Menge der Sicherheitsdaten, und diese sind dann schwieriger zu verwalten und abrufbar. Beispielsweise kann die zum Zugreifen auf ein Sicherheitsschema mit hoher Komplexität erforderliche Zeit den Betrieb des Systems so langsam machen, dass dieses nicht mehr arbeitsfähig ist.
  • Die vorliegende Erfindung richtet sich darauf, eines oder mehrere der zuvor dargelegten Probleme zu lösen oder zumindest deren Wirkung zu verringern.
  • ÜBERBLICK ÜBER DIE ERFINDUNG
  • In einem Aspekt der vorliegenden Erfindung wird ein Verfahren bereitgestellt. Das Verfahren umfasst das Speichern einer ersten Information, die anzeigt, ob Sicherheitsdaten in einer beliebigen Stelle innerhalb eines ersten vorgewählten Segments eines Speichers abgelegt sind, und das Speichern einer zweiten Information, die anzeigt, ob Sicherheitsdaten in einer beliebigen Stelle innerhalb jedes Segments von mehreren zweiten vorgewählten Speichersegmenten abgelegt sind. Die zweiten vorgewählten Speichersegmente sind kleiner als die ersten vorgewählten Speichersegmente. Anschließend wird eine Adresse empfangen, und es wird eine Bestimmung durchgeführt, ob zumindest ein Teil der empfangenen Adresse innerhalb des ersten vorgewählten Speichersegments liegt. Ein Zugriff auf die Adresse wird in Reaktion auf die erste gespeicherte Information, die anzeigt, dass das erste vorgewählte Speichersegment keine Sicherheitsdaten aufweist, gewährt. Es wird mindestens eines der zweiten vorgewählten Speichersegmente, in der die empfangene Adresse liegt, identifiziert in Reaktion auf das Bestimmen aus der ersten gespeicherten Information, dass das erste vorgewählte Speichersegment Sicherheitsdaten enthält. Ein Zugriff auf die empfangene Adresse wird in Reaktion auf die zweite gespeicherte Information gewährt, die dem zweiten vorgewählten Speichersegment zugeordnet ist, das anzeigt, dass das zweite vorgewählte Speichersegment keine Sicherheitsdaten aufweist.
  • In einem weiteren Aspekt der vorliegenden Erfindung wird eine Vorrichtung zum Steuern des Zugriffs auf Sicherheitsdaten, die in einem Speichersegment abgelegt sind, bereitgestellt. Die Vorrichtung umfasst eine Sicherheitsprüfeinheit und ein Hinweisverzeichnis. Die Sicherheitsprüfeinheit ist ausgebildet, auf eine erste Information zuzugreifen, die anzeigt, ob Sicherheitsdaten in einer beliebigen Stelle innerhalb jedes Segments von mehreren ersten vorgewählten Speichersegmenten abgelegt sind. Das Hinweisverzeichnis ist ausgebildet, eine zweite Information zu speichern, die anzeigt, ob Sicherheitsdaten in einem der mehreren ersten vorgewählten Speichersegmente gespeichert sind. Das Hinweisverzeichnis umgeht die Sicherheitsprüfeinheit in Reaktion auf die Bestimmung, dass zumindest ein Teil der empfangenen Adresse innerhalb mindestens eines der ersten vorgewählten Speichersegmente liegt und dass die zweite Information anzeigt, dass alle ersten vorgewählten Speichersegmente keine Sicherheitsdaten aufweisen.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die Erfindung kann mit der folgenden Beschreibung im Zusammenhang mit den begleitenden Zeichnungen verstanden werden, wobei die linksstehende Ziffer bzw. Ziffern in den Bezugszeichen die erste Figur bezeichnen, in der das entsprechende Bezugszeichen auftritt, und in denen:
  • 1 schematisch eine Ausführungsform einer Blockansicht hoher Abstraktionsstufe eines Computersystems zeigt, in der die vorliegende Erfindung anwendbar ist;
  • 2 schematisch eine Ausführungsform einer Ansicht der obersten Abstraktionsstufe eines verbesserten Sicherheitssystems zeigt, das in dem Computersystem aus 1 anwendbar ist;
  • 3 schematisch eine Ausführungsform eines Teils eines Systems zum Steuern der Zugriffe auf geschützte Speichergebiete in dem Computersystem aus 1 zeigt;
  • 4 eine Ausführungsform einer speicherbasierten Tabelle zeigt, die zum Steuern des Zugriffs auf diverse Bereiche eines physikalischen Speichers, der von dem Computersystem benutzt wird, verwendet wird; und
  • 5 eine detailliertere Ausführungsform der speicherbasierten Tabelle aus 4 zeigt.
  • Obwohl die Erfindung diversen Modifizierungen und alternativen Formen unterliegen kann, sind dennoch hierin spezifische Ausführungsform beispielhaft in den Zeichnungen gezeigt und im Detail beschrieben. Es sollte jedoch beachtet werden, dass die Beschreibung spezieller Ausführungsformen hierin nicht beabsichtigt ist, um die Erfindung auf die speziellen offenbarten Formen einzuschränken, sondern die Erfindung soll vielmehr alle Modifizierungen, Äquivalente und Alternativen abdecken, die innerhalb des Grundgedankens und Schutzbereichs der Erfindung liegen, wie sie durch die angefügten Patentansprüche definiert ist.
  • ART BZW. ARTEN ZUM AUSFÜHREN DER ERFINDUNG
  • Es werden nun anschauliche Ausführungsformen der Erfindung beschrieben. Der Einfachheit halber sind nicht alle Merkmale einer tatsächlichen Implementierung in dieser Beschreibung dargestellt. Es ist jedoch festzustellen, dass bei der Entwicklung einer derartigen tatsächlichen Ausführungsform zahlreiche implementationsspezifische Entscheidungen getroffen werden müssen, um die speziellen Ziele der Entwickler, etwa die Kompatibilität mit systembezogenen und geschäftsbezogenen Rahmenbedingungen, zu erreichen, die sich von Implementierung zu Implementierung unterscheiden können. Es soll jedoch betont werden, dass ein derartiger Entwicklungsaufwand zwar komplex und zeitaufwendig sein kann, aber dennoch eine Routinemaßnahme darstellt für einen Fachmann, der im Besitz der vorliegenden Offenbarung ist.
  • Es sei zunächst auf 1 verwiesen, in der eine allgemeine Blockansicht eines Computersystems 100 gezeigt ist. Das Computersystem 100 umfasst einen Prozessor 102, etwa einen Mikroprozessor, der mehrere Prozessoren (nicht gezeigt) enthalten kann, die mit einem Rechner- bzw. Host-Bus 104 verbunden sind. Eine Systemspeichersteuerung 106 ist mit dem Host-Bus 104 und einer Speichereinrichtung 108 verbunden. Eine Host-Brücke 110 verbindet den Host-Bus 104 mit einem Primärbus 112, etwa einem peripheren Komponentenverbindungs(PCI)-Bus (PCI-Spezifikation, Rev. 2.1). Eine Videosteuerung 114 und andere Geräte bzw. Einrichtungen 116 (beispielsweise PCI-Geräte) sind mit dem Primärbus 112 verbunden. Das Computersystem 100 kann andere Busse, etwa einen sekundären PCI-Bus (nicht gezeigt) oder andere periphere Einrichtungen (nicht gezeigt), die im Stand der Technik bekannt sind, enthalten.
  • Der Prozessor 102 kommuniziert mit der Speichereinrichtung 108 über die Systemspeichersteuerung 106. Die Systemspeichersteuerung 106 besitzt einen konventionellen Aufbau und stellt Speicheradressen und Logiksignale für die Speichereinrichtung 108 bereit, um die gewünschten Speichertransaktionen zu kennzeichnen. Die Speichereinrichtung 108 kann von verschiedener Bauart sein, etwa ein synchroner dynamischer Speicher mit wahlfreiem Zugriff (SDRAM), ein dynamischer Speicher mit wahlfreiem Zugriff mit doppelter Rate (DDRAM) oder dergleichen, ohne dass damit von dem Grundgedanken und dem Schutzbereich der vorliegenden Erfindung abgewichen wird.
  • In 2 ist eine anschauliche Ausführungsform einer Architektur eines Sicherheitssystems 200, das in dem Computersystem 100 zum Steuern des Zugriffs auf den physikalischen Speicher 108 verwendbar ist, der mit dem Prozessor 100 verbunden ist, gezeigt. Das System 200 ist vorteilhaft in einem Prozessor, der ein virtuelles Adressierungsschema für den Speicherzugriff verwendet. Beispielsweise ist das System 200 verwendbar in einem Prozessor, der Speicher adressiert, in welchem ein Seiteneinteilungsschema verwendet wird, wie es beispielsweise in x86-Mikroprozessoren anzutreffen ist. Insbesondere findet das System 200 eine spezielle Anwendung in einem Prozessor, der Sicherheitsattribute auf Seitenebene zuweist, wie dies auch in der Anmeldung dargestellt ist, die am 5. Dezember 2001 mit der Anmelde-Nr. 10/005271 und dem Titel "Speicherverwaltungssystem und Verfahren zum Bereitstellen einer erhöhten Speicherzugriffssicherheit" eingereicht wurde, die Eigentum der Anmelderin der vorliegenden Anmeldung ist und hiermit durch Bezugnahme in ihrer Gesamtheit mit eingeschlossen ist.
  • In der in 2 dargestellten Ausführungsform ist das System 200 einem konventionellen Betriebssystem 202 hinzugefügt, etwa dem Betriebssystem Windows, das von der Microsoft Corporation produziert wird. Konventionellerweise sind das Betriebssystem 202 und Treiber 204 einer Privilegebene (CPL) 0 zugeordnet, was bedeutet, dass diese historisch nahezu uneingeschränkte Rechte besitzen, auf die Ressourcen des Computersystems 100 zuzugreifen. Andererseits sind Anwendungsprogramme 206 einer CPL von 3 zugeordnet, was bedeutet, dass historisch diese nur sehr begrenzte Rechte für den Zugriff auf die Ressourcen des Computersystems 100 besitzen sollen. In einer Ausführungsform der vorliegenden Erfindung ist ein Sicherheitsmodus 208 funktionsmäßig parallel zu dem Betriebssystem 202, den Treibern 204 und den Anwendungsprogrammen 206 angeordnet. D.h., ein Sicherheitskernel 210 ist eine CPL von 0, und sicheren Anwendungsprogrammen 206 ist eine CPL von 3 zugeordnet. Ferner ist auch eine Sicherheitsprivilegebene (SP) dem Betriebssystem 202, den Treibern 204, den Anwendungsprogrammen 206, dem Sicherheitskernel 210 und den sicheren Anwendungsprogrammen 212 zugeordnet. Die SP arbeitet so, um die Zugriffsrechte des Sicherheitsmodus 208 von dem konventionellen Modus zu unterscheiden. D.h., die Kombination der CPL und der SP verleihen dem Sicherheitskernel die höchsten Privilegien.
  • Der Sicherheitskernel 210 kann diverse zugeordnete Aufgaben besitzen, aber die für die vorliegende Erfindung bedeutsame Funktion ist dessen Fähigkeit, Daten/Informationen, Codierungen in sicheren Gebieten der Speichereinrichtung 108 zu speichern. D.h., der Sicherheitskernel 210 kann auf Grund seiner hohen Privilegebene den Zugriff auf ausgewählte Gebiete des Speichers beschränken. Typischerweise speichert der Sicherheitskernel 210 während einer Initialisierungsphase oder während nachfolgenden Zeiten Daten/Informationen/Codierungen innerhalb eines Abschnitts der Speichereinrichtung 108 und markiert oder anderweitig identifiziert dann diesen Abschnitt als sicher. Die Identifizierung dieser Abschnitte des Speichers als sicher verhindert, dass auf diese durch Programme mit niedrigerer Privilegebene zugegriffen werden kann oder diese Abschnitte geändert werden können. Beispielsweise kann ein Speicherabschnitt, den der Sicherheitskernel 210 beschrieben und als sicher gekennzeichnet hat, nicht durch Zugriff von dem Betriebssystem 202, den Treibern 204, den sicheren Anwendungsprogrammen 212 oder den Anwendungs- Programmen 206 angesprochen werden. Auf diese sicheren Speicherabschnitte kann ausschließlich nur durch den Sicherheitskernel 210 zugegriffen werden.
  • Wie in der anhängigen Anmeldung mit der Nr. 10/005271 erläutert ist, ist eine CPU-Sicherheitsprüfeinheit (SCU) für das Prüfen jedes Speicherzugriffs, der von der CPU erzeugt wird, verantwortlich, um zu bestimmen, ob der Zugriff auf ein Speichergebiet erfolgen soll, das zuvor durch den Sicherheitskernel 210 als sicher gekennzeichnet wurde. Zu beachten ist, dass das Speichergebiet, das von dem Sicherheitskernel 210 als sicher gekennzeichnet ist, kleiner als ein Speichersegment ist, das von einem Hinweisverzeichnis analysiert wird, wie dies später ausführlicher erläutert ist. Wenn das Speichergebiet nicht als sicher gekennzeichnet ist, dann erlaubt die CPU SCU eine Fortsetzung des Speicherzugriffs zu einem Adressenübersetzungsmechanismus, etwa eine Seitenbildungseinheit. Wenn andererseits der Speicherzugriff auf ein sicheres Gebiet erfolgen soll, dann analysiert die CPU SCU den Speicherzugriff, um zu bestimmen, ob das anfordernde Mittel eine ausreichend hohe Privilegebene aufweist, um eine derartige Anforderung zu initiieren. Eine detailliertere Erläuterung der Funktionsweise der CPU SCU ist in der anhängigen Anmeldung mit der Nr. 10/005271 zu finden, die zuvor durch Bezugnahme mit eingeschlossen wurde.
  • Wie in 3 gezeigt ist, richtet sich die vorliegende Erfindung an ein Hinweisverzeichnis 302, das funktionell vor einer CPU SCU 304 angeordnet ist. Das Hinweisverzeichnis 302 erlaubt es dem System 100, relativ rasch zu deduzieren, dass ein Speicherzugriff nicht auf einen sicheren Speicherabschnitt gerichtet ist, um dann die CPU SCU 304 zu umgehen, so dass der Speicherzugriff direkt dem Seitenbildungsmechanismus 306 zugeleitet wird, in welchem eine virtuelle oder lineare Adresse des Speicherzugriffs in eine physikalische Adresse übersetzt werden kann. Das Hinweisverzeichnis zeichnet auf, ob relativ große Speicherabschnitte sichere Abschnitte aufweisen. D.h., das Hinweisverzeichnis unterteilt den Speicher in relativ große Abschnitte, etwa in eine oder mehrere Seiten, und setzt dann ein Bit, das anzeigt, ob ein Bereich des Abschnittes als sicher gekennzeichnet ist. Wenn ein Speicherabschnitt keine sicheren Bereich aufweist, dann muss die CPU SCU 304 keine weiteren Anfragen durchführen, um zu bestimmen, ob die speziellen Positionen, auf die zugegriffen wird, in einem sicheren Gebiet liegen, da kein solches in dem Abschnitt existiert.
  • In 4 ist schematisch das Hinweisverzeichnis 400 als ein Verzeichnis oder eine Tabelle aus Einträgen gezeigt, die in der Speichereinrichtung 108 beginnend bei der Basisadresse 402 abgelegt sind. Jeder Eintrag ist ein einzelnes Bit, das einem ausgewählten Speichersegment zugeordnet ist. Der in jedem Eintrag gespeicherte Wert zeigt an, ob der Sicherheitskernel Daten/Informationen/Codierungen in einem beliebigen Bereich des ausgewählten Speichersegments, das diesem Eintrag zugeordnet ist, gespeichert hat. D.h., der Eintrag zeigt an, ob das zugeordnete Speichersegment sicher ist und von der CPU SCU 304 analysiert werden sollte. Die Komplexität des Hinweisverzeichnisses kann variiert werden, ohne von dem Grundgedanken und Schutzbereich der vorliegenden Erfindung abzuweichen. D.h., in einigen Anwendungen kann es vorteilhaft sein, dass jeder Eintrag einer Speicherseite entspricht, wohingegen in anderen Anwendungen jeder Eintrag mehreren Speicherseiten entsprechen kann.
  • Zum Zwecke des Erläuterns der Funktionsweise des Hinweisverzeichnisses 400 kann es hilfreich sein, ein spezielles Beispiel zu betrachten, etwa ein System 100, das eine 32-Bit-Adresse und ein Hinweisverzeichnis verwendet, das eine "Auflösung" von Seiten mit 2KBit besitzt. In dieser beispielhaften Ausführungsform, die in 5 gezeigt ist, sind die einzelnen Zeilen einer 2KBit-Seite durch die unteren 10 Bits der 32-Bit-Adresse repräsentiert, wodurch die oberen 22 Bits übrigbleiben, um jede Seite und jede Stelle innerhalb des Hinweisverzeichnisses zu kennzeichnen. D.h., die oberen 10 Bits der Basisadresse 402 kennzeichnen die Startadresse in dem Speicherabschnitt, der von dem Sicherheitskernel 210 ausgewählt ist, und die oberen 22 Bits der Zugriffsanforderung kennzeichnen ein spezielles Bit in dem Hinweisverzeichnis. Beispielsweise kennzeichnet die 22-Bit-Adresse 0000000000000000000000 die Position 500 in dem Hinweisverzeichnis; die 22-Bit-Adresse 0000000000000000000001 kennzeichnet die Position 502 in dem Hinweisverzeichnis; die 22-Bit-Adresse 0000000000000000000010 kennzeichnet die Position 504 in dem Hinweisverzeichnis, usw.
  • Ferner besitzen in der beispielhaften Ausführungsform aus 5 die Positionen 500 und 504 darin gespeicherte niedrigwertige Logikwerte, wodurch angezeigt wird, dass keine damit verknüpften 2KBit-Positionen sicher sind. Jedoch besitzt die Position 502 einen darin gespeicherten hochpegeligen Logikwert, wodurch angezeigt wird, dass eine oder mehrere der damit verknüpften 2KBit-Positionen sicher sind. Somit bewirkt für einen Speicherzugriff im Bereich der Positionen, die mit der Position 500 oder 504 verknüpft sind, das Hinweisver zeichnis, dass die CPU SCU 304 umgangen wird, so dass der Übersetzungsprozess unmittelbar beginnen kann. Für einen Speicherzugriff im Bereich der Positionen, die mit der Position 502 verknüpft sind, bewirkt jedoch das Hinweisverzeichnis, dass die CPU SCU 304 die Speicherzugriffsanforderung empfängt und analysiert, um zu bestimmen, ob der Speicherzugriff versucht, auf einen sicheren Speicherplatz zuzugreifen.
  • Der Fachmann erkennt, dass das Hinweisverzeichnis 302 eine Kennzeichnung liefert, dass ein Speicherzugriff definitiv nicht auf eine sichere Position gerichtet ist oder ggf. nicht auf eine sichere Position gerichtet ist. Das Hinweisverzeichnis 302 leitet jene Speicherzugriffe, die möglicherweise nicht auf eine sichere Position gerichtet sind, an die CPU SCU 304 für eine weitere Analyse weiter.
  • Die zuvor offenbarten speziellen Ausführungsformen sind lediglich anschaulicher Natur, da die Erfindung auf unterschiedliche aber äquivalente Weisen, die dem Fachmann im Besitz der vorliegenden Lehren offenkundig sind, modifiziert und praktiziert werden kann. Ferner sind keine Einschränkungen im Hinblick auf die Details des Aufbaus oder der Gestaltung, wie sie hierin gezeigt sind, beabsichtigt, sofern diese nicht in den Patentansprüchen beschrieben sind. Es ist daher klar, dass die speziellen offenbarten Ausführungsformen geändert oder modifiziert werden können und dass derartige Variationen als innerhalb des Schutzbereichs und des Grundgedankens der Erfindung liegend betrachtet werden. Daher ist der angestrebte Schutzbereich in den folgenden Patentansprüchen definiert.
  • Zusammenfassung
  • Es wird ein Verfahren und eine Vorrichtung zum Steuern des Zugriffs auf Speichersegmente mit darin gespeicherten Sicherheitsdaten bereitgestellt. Eine Sicherheitsprüfeinheit bewahrt Informationen für mehrere Speichersegmente im Hinblick darauf, ob jedes dieser mehreren Segmente sichere Daten darin gespeichert hat. Ein Hinweisverzeichnis bewahrt Informationen im Hinblick darauf, ob eines von mehreren dieser Segmente sichere Daten darin gespeichert hat. Das Hinweisverzeichnis ist in der Lage, die Sicherheitsprüfeinheit zu umgehen, wenn sie eine Adresse empfängt, die innerhalb mehrerer Segmente liegt, die als ohne sichere Daten enthaltend gekennzeichnet sind. Wenn das Hinweisverzeichnis bestimmt, dass eine empfangene Adresse innerhalb eines der mehreren Segmente liegt, die sichere Daten enthalten, dann wird die Adresse zu der Sicherheitsprüfeinheit für eine weitergehende Untersuchung weitergeleitet.
  • Figurenbeschreibung
  • 1
    • 108 Speichereinrichtung
    • 102 Host-CPU
    • 106 Systemspeichersteuerung
    • 104 Host-Bus
    • 110 Host-Brücke
    • 112 Primärer Bus
    • 114 Videosteuerung
    • 116 Gerät
  • 2
    • 206 Anwendungsprogramme
    • 212 Sichere Anwendungsprogramme
    • 210 Sicherheitskernel
    • 202 Betriebssystem
    • 204 Treiber
  • 3
    • 302 Hinweisverzeichnis
    • 306 Seitenbildungsmechanismus
  • 4
    • 402 Basisadresse
  • 5
    • Basisadresse die oberen 10 Bits
    • Zugriffsanforderung die unteren 22 Bits

Claims (10)

  1. Verfahren mit: Speichern einer ersten Information, die anzeigt, ob sichere Daten in einer beliebigen Stelle innerhalb eines ersten vorgewählten Speichersegments (108) gespeichert sind; Speichern einer zweiten Information, die anzeigt, ob sichere Daten in einer beliebigen Stelle innerhalb jedes von mehreren zweiten vorgewählten Speichersegmenten (108) gespeichert sind, wobei die zweiten vorgewählten Speichersegmente (108) Untereinheiten des ersten vorgewählten Speichersegments (108) sind; Empfangen einer Adresse (402); Bestimmen, ob zumindest ein Teil der empfangenen Adresse (402) innerhalb des ersten vordefinierten Speichersegments (108) liegt; Gewähren eines Zugriffs zu der Adresse (402) in Reaktion auf die erste gespeicherte Information, die anzeigt, dass das erste vorgewählte Speichersegment (108) keine sicheren Daten aufweist; und Identifizieren mindestens eines der zweiten vorgewählten Speichersegmente (108), in der die empfangene Adresse (402) liegt, in Reaktion auf das Bestimmen aus der ersten gespeicherten Information, dass das erste vorgewählte Speichersegment (108) sichere Daten enthält; und Gewähren eines Zugriffs auf die empfangene Adresse (402) in Reaktion auf die zweite gespeicherte Information, die mit dem identifizierten zweiten vorgewählten Speichersegment (108) verknüpft ist und anzeigt, dass das zweite vorgewählte Speichersegment (108) keine sicheren Daten aufweist.
  2. Verfahren nach Anspruch 1, wobei Speichern der ersten Information, die anzeigt, ob sichere Daten in einer Stelle innerhalb eines ersten vorgewählten Speichersegments (108) gespeichert sind, ferner umfasst: Speichern eines einzelnen Bits an Information in Reaktion darauf, dass ein beliebiges Segment der mehreren zweiten Speichersegmente (108) darin gespeichert sichere Daten aufweist.
  3. Verfahren nach Anspruch 1, wobei Speichern der zweiten Information, die anzeigt, ob sichere Daten in einer Stelle in jedem der mehreren der zweiten vorgewählten Speichersegmente (108) gespeichert ist, ferner umfasst: Speichern einer zweiten Information, die anzeigt, ob sichere Daten in einer Stelle innerhalb jedes von mehreren zusammenhängenden zweiten vorgewählten Segmenten gespeichert ist.
  4. Verfahren nach Anspruch 3, wobei Bestimmen, ob zumindest ein Teil der empfangenen Adresse (402) innerhalb des ersten vorgewählten Speichersegments (108) liegt, ferner umfasst: Bestimmen, ob zumindest ein Teil der empfangenen Adresse (402) innerhalb der mehreren zusammenhängenden zweiten vorgewählten Segmente liegt.
  5. Verfahren nach Anspruch 1, wobei das Identifizieren zumindest eines der zweiten vorgewählten Speichersegmente (108), in der die empfangene Adresse (402) liegt, in Reaktion auf das Bestimmen von der ersten gespeicherten Information, dass das erste vorgewählte Speichersegment (108) sichere Daten enthält, ferner umfasst: Vergleichen der empfangenen Adresse (402) mit einem Adressenbereich, der mindestens einem der zweiten vorgewählten Speichersegmente (108) zugeordnet ist.
  6. Vorrichtung zum Speichern des Zugriffs auf sichere Daten, die in einem Speichersegment (108) gespeichert sind, dadurch gekennzeichnet, dass die Vorrichtung umfasst: eine Sicherheitsprüfeinheit (304), die ausgebildet ist, auf eine erste Information zuzugreifen, die anzeigt, ob sichere Daten in einer beliebigen Stelle innerhalb jedes von mehreren ersten ausgewählten Speichersegmenten (108) gespeichert ist, in Reaktion auf den Empfang einer Adresse (402); und ein Hinweisverzeichnis (302), das ausgebildet ist, eine zweite Information zu speichern, die anzeigt, ob sichere Daten in einem der ersten mehreren vorgewählten Speichersegmente (108) gespeichert sind, und um die Sicherheitsprüfeinheit (304) in Reaktion darauf zu umgehen, dass bestimmt wird, dass mindestens ein Teil einer empfangenen Adresse (402) innerhalb mindestens eines der ersten vorgewählten Speichersegmente (108) liegt und dass die zweite Information anzeigt, dass jedes der ersten vorgewählten Speichersegmente (108) keine sicheren Daten aufweist.
  7. Vorrichtung nach Anspruch 6, wobei das Hinweisverzeichnis (302) ferner ausgebildet ist, die Adresse (402) der Sicherheitsprüfeinheit (304) zuzuführen in Reaktion auf das Bestimmen, dass die zweite Information anzeigt, dass mindestens eines der ersten vorgewählten Speichersegmente (108) sichere Daten enthält.
  8. Vorrichtung nach Anspruch 6, wobei das Hinweisverzeichnis (302) ferner eine Tabelle mit einem einzelnen Eintrag aufweist, der mehreren ersten der ersten vorgewählten Speichersegmente (108) zugeordnet ist, wobei der Eintrag so gesetzt ist, um die Anwesenheit von sicheren Daten in Reaktion darauf anzuzeigen, dass ein Segment der mehreren ersten der ersten vorgewählten Speichersegmente (108) sichere Daten enthält.
  9. Vorrichtung nach Anspruch 8, wobei die Tabelle in einem Speicher (108) an einer Stelle gespeichert ist, die von mindestens einem Teil der empfangenen Adresse (402) gekennzeichnet ist.
  10. Vorrichtung nach Anspruch 8, wobei die Tabelle in einem Speicher (108) an einer Stelle gespeichert ist, die von mindestens einem Teil von Bits mit höherer Ordnung der empfangenen Adresse (402) gekennzeichnet ist.
DE10297688T 2002-03-27 2002-12-20 Verfahren und Vorrichtung für erhöhte Sicherheit in einem Datenprozessor Expired - Lifetime DE10297688B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/107,633 2002-03-27
US10/107,633 US7571318B2 (en) 2002-03-27 2002-03-27 Method and apparatus for improved security in a data processor
PCT/US2002/041663 WO2003083673A1 (en) 2002-03-27 2002-12-20 Method and apparatus for improved security in a data processor

Publications (2)

Publication Number Publication Date
DE10297688T5 true DE10297688T5 (de) 2005-06-30
DE10297688B4 DE10297688B4 (de) 2006-12-14

Family

ID=28452679

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10297688T Expired - Lifetime DE10297688B4 (de) 2002-03-27 2002-12-20 Verfahren und Vorrichtung für erhöhte Sicherheit in einem Datenprozessor

Country Status (8)

Country Link
US (1) US7571318B2 (de)
JP (1) JP4399270B2 (de)
KR (1) KR101000543B1 (de)
CN (1) CN1315061C (de)
AU (1) AU2002359879A1 (de)
DE (1) DE10297688B4 (de)
GB (1) GB2402782B (de)
WO (1) WO2003083673A1 (de)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050033979A1 (en) * 2003-08-08 2005-02-10 Hyser Chris D. Method and system for secure direct memory access
US7454787B2 (en) * 2004-01-13 2008-11-18 Hewlett-Packard Development Company, L.P. Secure direct memory access through system controllers and similar hardware devices
US7457832B2 (en) * 2004-08-31 2008-11-25 Microsoft Corporation Verifying dynamically generated operations on a data store
EP1742152B1 (de) * 2005-07-07 2012-09-12 Texas Instruments Inc. Verfahren und System für eine mehrfach nutzbare Speicherzugangsbeschränkung
US7752444B2 (en) * 2005-12-21 2010-07-06 Nortel Networks Limited System and method for providing identity hiding in a shared key authentication protocol
CN101079083B (zh) * 2006-05-25 2010-05-12 中国科学院计算技术研究所 一种对访存操作进行权限检查的系统、装置及方法
US9129071B2 (en) * 2012-10-24 2015-09-08 Texas Instruments Incorporated Coherence controller slot architecture allowing zero latency write commit
US9378152B2 (en) * 2014-05-09 2016-06-28 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for I/O processing using out-of-band hinting to block driver or storage controller
US9507722B2 (en) 2014-06-05 2016-11-29 Sandisk Technologies Llc Methods, systems, and computer readable media for solid state drive caching across a host bus
US9563382B2 (en) 2014-06-05 2017-02-07 Sandisk Technologies Llc Methods, systems, and computer readable media for providing flexible host memory buffer
US10228854B2 (en) 2014-08-20 2019-03-12 Sandisk Technologies Llc Storage devices and methods for optimizing use of storage devices based on storage device parsing of file system metadata in host write operations
US10268584B2 (en) 2014-08-20 2019-04-23 Sandisk Technologies Llc Adaptive host memory buffer (HMB) caching using unassisted hinting
US10007442B2 (en) * 2014-08-20 2018-06-26 Sandisk Technologies Llc Methods, systems, and computer readable media for automatically deriving hints from accesses to a storage device and from file system metadata and for optimizing utilization of the storage device based on the hints
US9927997B2 (en) 2015-12-21 2018-03-27 Sandisk Technologies Llc Methods, systems, and computer readable media for automatically and selectively enabling burst mode operation in a storage device
US10521118B2 (en) 2016-07-13 2019-12-31 Sandisk Technologies Llc Methods, systems, and computer readable media for write classification and aggregation using host memory buffer (HMB)
US10936826B2 (en) 2018-06-14 2021-03-02 International Business Machines Corporation Proactive data breach prevention in remote translation environments
US10884920B2 (en) 2018-08-14 2021-01-05 Western Digital Technologies, Inc. Metadata-based operations for use with solid state devices
CN109033775A (zh) * 2018-09-03 2018-12-18 东莞华贝电子科技有限公司 一种访问权限的远程控制方法及系统
US11340810B2 (en) 2018-10-09 2022-05-24 Western Digital Technologies, Inc. Optimizing data storage device operation by grouping logical block addresses and/or physical block addresses using hints
US11249664B2 (en) 2018-10-09 2022-02-15 Western Digital Technologies, Inc. File system metadata decoding for optimizing flash translation layer operations

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0481735A3 (en) * 1990-10-19 1993-01-13 Array Technology Corporation Address protection circuit
US6003117A (en) * 1997-10-08 1999-12-14 Vlsi Technology, Inc. Secure memory management unit which utilizes a system processor to perform page swapping
US6154818A (en) * 1997-11-20 2000-11-28 Advanced Micro Devices, Inc. System and method of controlling access to privilege partitioned address space for a model specific register file
US6516395B1 (en) * 1997-11-20 2003-02-04 Advanced Micro Devices, Inc. System and method for controlling access to a privilege-partitioned address space with a fixed set of attributes
US6748592B1 (en) * 2000-02-14 2004-06-08 Xoucin, Inc. Method and apparatus for protectively operating a data/information processing device
US7216345B1 (en) * 2000-04-07 2007-05-08 Hall Aluminum Llc Method and apparatus for protectively operating a data/information processing device
GB2381626B (en) * 2000-07-18 2005-02-09 Intel Corp Controlling access to multiple isolated memories in an isolated execution environment
CN1291747A (zh) * 2000-11-24 2001-04-18 李楠甍 高速缓存设备及其使用方法
US7073059B2 (en) * 2001-06-08 2006-07-04 Hewlett-Packard Development Company, L.P. Secure machine platform that interfaces to operating systems and customized control programs
US6745307B2 (en) * 2001-10-31 2004-06-01 Hewlett-Packard Development Company, L.P. Method and system for privilege-level-access to memory within a computer

Also Published As

Publication number Publication date
DE10297688B4 (de) 2006-12-14
JP2005521943A (ja) 2005-07-21
US20030188184A1 (en) 2003-10-02
CN1315061C (zh) 2007-05-09
CN1623142A (zh) 2005-06-01
KR101000543B1 (ko) 2010-12-14
KR20040101310A (ko) 2004-12-02
GB2402782A (en) 2004-12-15
GB2402782B (en) 2005-11-02
WO2003083673A1 (en) 2003-10-09
JP4399270B2 (ja) 2010-01-13
AU2002359879A1 (en) 2003-10-13
GB0420638D0 (en) 2004-10-20
US7571318B2 (en) 2009-08-04

Similar Documents

Publication Publication Date Title
DE10297688B4 (de) Verfahren und Vorrichtung für erhöhte Sicherheit in einem Datenprozessor
DE10297433B4 (de) Speicherverwaltungseinheit, Verfahren zum Bereitstellen einer Speicherzugriffssicherheit auf der Basis einer linearen Adresse und Prozessor
DE69533312T2 (de) Geschütztes speichersystem und verfahren dafür
DE102006015106B4 (de) Bereitstellen eines erweiterten Speicherschutzes
DE10195999B3 (de) Computersystem mit einer in einem Chipsatz enthaltenen Speichersteuereinrichtung zum Kontrollieren von Zugriffen auf einen isolierten Speicher für eine isolierte Ausführung
DE102020125599A1 (de) Vertrauenswürdige lokale speicherverwaltung in einer virtualisierten gpu
DE2456602C2 (de) Multiprogramierbare Datenverarbeitungsanordnung mit interner Programmierung und virtuellem Speicher
DE3048365C2 (de)
DE102005022893B3 (de) Verfahren zum Zugreifen auf Speicherbereiche einer Speicherkarte durch eine anfordernde Anwendung und Speicherkarte
DE19536169A1 (de) Multifunktionale Chipkarte
DE10297687B4 (de) Prozessor mit Eingabe/Ausgabeerlaubnisbitstrukturen für in Bereiche aufgeteilte Sicherheit und Verfahren zum selektiven Ausführen einer Eingabe/Ausgabe-Instruktion
DE112010005269T5 (de) Beschränken von Speicherbereichen für ein Behelfsauslesen in Abhängigkeit von einer Hardwarebetriebsart und einem Sicherheitsflag
DE69818135T2 (de) Verfahren zum Zugriff auf Datenbankinformation
DE112005002328T5 (de) Cachespeicherungsunterstützung für Direktspeicherzugriffsadreßübersetzung
DE2458065A1 (de) Datenverarbeitungsanlage mit sicherung der daten gegen unberechtigten zugriff
DE112005002298T5 (de) Leistungssteigerung einer Adreßübersetzung unter Verwendung von Übersetzungstabellen, die große Adreßräume umfassen
WO2015032791A1 (de) Verfahren und system zum bereitstellen von anonymisierten daten aus einer datenbank
DE10196440B4 (de) Steuern des Zugriffs auf mehrere isolierte Speicher in einer isolierten Ausführungsumgebung
DE10297494T5 (de) System und Verfahren zum Behandeln von Gerätezugriffen auf einen Speicher mit erhöhter Speicherzugriffssicherheit
DE102016220639A1 (de) Speicherschutzeinheit und Verfahren zum Schützen eines Speicheradressraumes
EP1358558B1 (de) Mikroprozessorschaltung für datenträger und verfahren zum organisieren des zugriffs auf in einem speicher abgelegten daten
DE112007002085T5 (de) Zugriffssteuerung für Speicherraum in Mikroprozessorsystemen
DE102006035610B4 (de) Speicherzugriffssteuerung und Verfahren zur Speicherzugriffssteuerung
DE2810421A1 (de) Speicherschutzeinrichtung
DE19804784A1 (de) Chipkarte mit integrierter Schaltung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law

Ref document number: 10297688

Country of ref document: DE

Date of ref document: 20050630

Kind code of ref document: P

8364 No opposition during term of opposition
R071 Expiry of right