DE112004001605B4 - Computersystem, in welchem eine abgesicherte Ausführungsumgebung angewendet wird und in dem eine Speichersteuerung enthalten ist, die zum Löschen des Speichers ausgebildet ist - Google Patents

Computersystem, in welchem eine abgesicherte Ausführungsumgebung angewendet wird und in dem eine Speichersteuerung enthalten ist, die zum Löschen des Speichers ausgebildet ist Download PDF

Info

Publication number
DE112004001605B4
DE112004001605B4 DE112004001605T DE112004001605T DE112004001605B4 DE 112004001605 B4 DE112004001605 B4 DE 112004001605B4 DE 112004001605 T DE112004001605 T DE 112004001605T DE 112004001605 T DE112004001605 T DE 112004001605T DE 112004001605 B4 DE112004001605 B4 DE 112004001605B4
Authority
DE
Germany
Prior art keywords
memory
processor
reset
programmed
response
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.)
Active
Application number
DE112004001605T
Other languages
English (en)
Other versions
DE112004001605T5 (de
Inventor
Dale E. Austin Gulick
Geoffrey S. Austin Strongin
William A. Burlingame Hughes
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 DE112004001605T5 publication Critical patent/DE112004001605T5/de
Application granted granted Critical
Publication of DE112004001605B4 publication Critical patent/DE112004001605B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2143Clearing memory, e.g. to prevent the data from being stolen

Abstract

Computersystem (10), in welchem eine abgesicherte Ausführungsumgebung angewendet wird, mit:
einem Prozessor (100A), der ausgebildet ist in einem sicheren Ausführungsmodus durch Ausführen eines sicheren Betriebssystemcodierungssegments zu operieren;
einem Systemspeicher (110A) der mit dem Prozessor verbunden und mehrere Speicherplätze zum Speichern von Daten enthält;
einer Speichersteuerung (101A), die mit dem Systemspeicher verbunden und ausgebildet ist, selektiv die Daten unter Anwendung einer Speicherlöschoperation in einem programmierten Bereich der mehreren Speicherplätze des Systemspeichers bei Aktivierung in Reaktion auf ein Rücksetzen des Systems zu löschen;
wobei die Speichersteuerung (101A) ferner ausgebildet ist, zu bestimmen, ob der Prozessor in einem Unterbrechungszustand mit Speicherung im RAM vor dem Rücksetzen war, und in Reaktion darauf, dass bestimmt wird, dass der Prozessor in einem Unterbrechungszustand mit Speicherung im RAM vor dem Rücksetzen war, zu bestimmen, ob eine aktuell programmierte Speichergröße gleich einer Größe des programmierten Bereichs der mehreren Speicherplätze ist, die in einer vorhergehenden...

Description

  • TECHNISCHES GEBIET
  • Diese Erfindung betrifft Computersysteme und betrifft insbesondere Computersysteme, in denen eine abgesicherte Ausführungsumgebung angewendet wird
  • HINTERGRUND
  • Moderne Computersysteme revolutionieren das Leben der Menschen. Dies gilt insbesondere für Systemplattformen mit Mikroprozessoren, in denen die x86-Systemarchitektur eingesetzt wird. Die Möglichkeit von x86-basierten Systemen für eine nahezu unbegrenzte Anzahl an anwenderinstallierbaren peripheren Geräten von Dritten und Anwendungen hat ein breites Marktsegment für Hardware- und Software-Anbieter geschaffen, das auch zum Wettbewerb, zu Innovationen und Entwicklungen beigetragen hat. Ein Beispiel einer derartigen Entwicklung ist die nunmehr weit verbreitete Anwendung der Plattform als ein digitales Kommunikations- und Mediensystem mit stets zunehmender Qualität und Leistung. Im Zusammenhang mit dem Internet revolutionieren diese Systemplattformen die großflächige Verteilung digitaler Inhalte, wodurch ein bedarfsgesteuerter Zugriff auf Zeitungen, Echtzeiten-Wetterbedingungen und Radiostationen über die ganze Welt hinweg, Internetbankverbindungen und Einkauf über Internet, und audio- und videobasierte Unterhaltung ermöglicht wird.
  • Die EP 0 436 365 A2 offenbart eine Lösung für das Problem der Sicherheit beim Löschen von Speicher, der in Terminals vorgesehen ist von einem Host beschrieben und gelesen werden kann.
  • In der EP 0 230 351 A2 wird ein Verfahren zum Herunterfahren eines Computers beschrieben, in dem der Status des Systems zur Zeit des Herunterfahrens gespeichert wird, so dass das Ausführen eines Programms nach einem erneuten Hochfahren wieder aufgenommen werden kann.
  • Da die x86-Plattform eine offene Architektur ist, besitzen die Geräte bzw. Einrichtungen typischerweise vom Anbieter gelieferte Treiber, die in einem Kernel-Modus abgearbeitet werden, um auf die Geräte zuzugreifen, und gewisse Software-Anwendungen können Kernel-Moduskomponenten aufweisen. Obwohl daher die offene Architektur gewisse Vorteile besitzt und dennoch ein hohes Maß an Schutz gegen eine zufällige Störung einer Anwendung durch eine andere bietet, können die aktuellen Schutzmechanismen der Architektur in dieser Umgebung einer unerwünschten Manipulation unterliegen.
  • Computersysteme mit Mikroprozessoren, in denen die x86-Architektur verwendet wird, enthalten Elemente, die zum Schutz entwickelt sind, um eine gegenseitige Störung von Anwendungen zu unterbinden. Beispielsweise basieren x86-basierte Betriebssysteme auf zwei Elementen der x86-Schutzmodusarchitektur, um eine Umgebung bereitzustellen, in denen Anwendungen voneinander getrennt sind und wobei kritische Betriebssystemcodierungen und Daten von den Anwendungen getrennt sind: 1) einen in Seiten organisierten virtuellen Speicher und 2) Ausführungsprivilegebenen.
  • Der in Seiten verwaltete virtuelle Speicher ermöglicht es dem Betriebssystem (OS), einen separaten virtuellen Adressenraum für jede Anwendung zu definieren und selektiv die einzelnen Seiten eines physikalischen Speichers in jeden dieser virtuellen Adressenräume über einen Satz aus Adressenübersetzungstabellen abzubilden. Dies stellt für jede Anwendung den eigenen „privaten” Abschnitt eines physikalischen Speichers für Codierungen und Daten bereit, die für andere Anwendungen nicht zugänglich sind. Der virtuelle Speichermechanismus kann es auch ermöglichen, dass das OS selektiv Seiten des physikalischen Speichers in mehrere virtuelle Adressenräume abbildet und selektiv derartige Seiten in den virtuellen Raum als Nur-Lese-Seiten kennzeichnet. Diese zusammenwirkende Abbildungsfähigkeit ermöglicht es auch, dass eine Kopie des OS-Kernels selbst in dem Adressenraum jeder Anwendung liegt, und es kann auch möglich sein, gemeinsame Zuordnungen peripherer Gerätezugriffspunkte und zugeordneter Gerätetreiberroutinen abzulegen, wodurch die Anwendungen einen effizienten Zugriff auf OS-Dienste erhalten, ohne dass aufwendige Adressenraumschalter erforderlich sind. Jedoch enthält der OS-Bereich des Adressenraums notwendigerweise Systemdatenbereiche, die die OS-Codierung modifizieren können muss, und die dennoch vor der An wendungscodierung geschützt werden müssen. Die Nur-Lese-Zuordnung kann keinen ausreichenden Schutz für derartige Bereiche liefern.
  • Die x86-Architektur definiert ferner vier Privilegebenen 0 bis 3, die den Gebieten der Codierung durch das OS zugeordnet sind und in den Codierungssegmentdeskriptoren gehalten sind. Typischerweise wird die Privilegebene einer aktuell ausgeführter Codierung oder einer Prozedur als die ”aktuelle Privilegebene” (CPL) gespeichert. Daher werden die Privilegebenen üblicherweise als CPL0 bis CPL3 bezeichnet. Unter Anwendung dieser Privilegebenen kann auf gewisse Systemressourcen von einer Codierung zugegriffen werden, die auf der geeigneten Ebene operiert. Die in Seiten organisierte virtuelle Speicherarchitektur ermöglicht es, dass der Zugriff auf Seiten des virtuellen Speichers durch die jeweilige Privilegebene beschränkt ist. Obwohl vier Privilegebenen definiert sind, werden typischerweise nur die CPL0- und CPL3-Ebenen durch übliche Betriebssysteme benutzt, da die in Seiten organisierte virtuelle Speicherarchitektur nicht zwischen CPL1 oder CPL2 im Vergleich zu CPL3 unterscheidet. CPL0 wird üblicherweise als Kernel-Modus bezeichnet und ist die höchste privilegierte Ebene, während CPL3 typischerweise als Anwendermodus bezeichnet wird und die niedrigste privilegierte Ebene ist. OS-Codierungen und Daten sind typischerweise der CPL0 zugeordnet, während Anwendungscodierungen und Daten der CPL3 zugeordnet sind. Das CPL0-Ausführungsprivileg verletzt den Nur-Lese-Schutz nicht. Die beiden Attribute sind unabhängig. Codesegmentdeskriptoren werden verwendet, um diese Ebenen zuzuordnen.
  • Zusätzlich zu diesem Speicherschutz sind alle Prozessorsteuerregister, einschließlich jener, die den virtuellen Speicherbetrieb steuern, durch architekturspezifische Definition lediglich in CPL0 ansprechbar. Ferner sind spezielle Steuerungstransferinstruktionen typischerweise erforderlich, um die Ausführung von einem Segment zu einem anderen und damit die Privilegebenen umzuschalten. Diese Anweisungen bzw. Instruktionen erlauben es dem OS, die Ziele derartige Steuerungstransfers auf spezielle Eingangspunkte in einer OS-gesteuerten Codierung zu begrenzen, so dass eine Anwendung die Privilegebene nicht ändern kann, ohne dass gleichzeitig die Steuerung an das OS übergeben wird.
  • Die Trennung der Adressenräume voneinander und die Trennung des OS-Speichers von den Anwendungen kann vollständig durch den Inhalt der virtuellen Speicheradressenübersetzungstabellen gesteuert werden. Die Übersetzungs- bzw. Translationstabellen definieren die Zuordnungen der virtuellen und physikalischen Seiten, die den Speicher einer Anwendung von dem Speicher einer anderen trennen, sowie auch die Nur-Lese- und die Privilegebenenattribute, die gemeinsame Bibliotheken und das OS schützen. Die Tabellen selbst sind speicherresidente Datenstrukturen und enthalten Übersetzungseinträge, die diese in den gemeinsamen OS-Speicherbereich abbilden und den Zugriff auf sie auf Kernel-Moduscodierung beschränken.
  • Die bestehenden Schutzmechanismen scheinen zunächst ausreichenden Schutz für Anwendungen und das Betriebssystem bereitzustellen. In einem sich normal verhaltenden System (beispielsweise eine korrekte Anwendung dieser Mechanismen durch das Betriebssystem und ein korrekter Ablauf der OS-Codierung, die diese Mechanismen steuert, und wobei alle anderen Codierungen, die im Kernel-Modus laufen, diese nicht stören), trifft dies auch zu. Jedoch enthalten typische x86-basierte Systeme eine große Menge an Kernel-Moduscodierung, nicht nur von den OS-Anbietern, sondern auch von unabhängigen Quellen, so dass es unmöglich ist sicherzustellen, dass eine derartige Störung, unabhängig davon ob diese zufällig oder beabsichtigt ist, nicht auftreten kann.
  • Dies gilt insbesondere für den Inhalt des physikalischen Speichers. Wenn beispielsweise der Inhalt einer gegebenen Speicherstelle in dem Speicher durch eine Anwendung nicht mehr benötigt wird, wird die Speicherstelle typischerweise freigegeben. Jedoch sind die tatsächlichen, an dieser Speicherstelle gespeicherten Daten weiterhin intakt. Abhängig von der Art der Operation, die der Anwender ausführt und der Art der Software-Anwendung, die gerade betrieben wird, kann in dem Speicher abgelegte Information im Hinblick auf einen Zugriff von außen sensibel sein. Somit besteht ein Bedarf, die Sicherheit zu verbessern und damit möglicherweise x86-Architektursysteme weniger verletzbar für einen derartigen Zugriff zu machen.
  • ÜBERBLICK ÜBER DIE ERFINDUNG
  • Entsprechend stellt die vorliegende Erfindung zur Verfügung:
    Ein Computersystem, in welchem eine abgesicherte Ausführungsumgebung angewendet wird, mit einem Prozessor, der ausgebildet ist in einem sicheren Ausführungsmodus durch Ausführen eines sicheren Betriebssystemcodierungssegments zu operieren; einem Systemspeicher der mit dem Prozessor verbunden und mehrere Speicherplätze zum Speichern von Daten enthält; einer Speichersteuerung, die mit dem Sys temspeicher verbunden und ausgebildet ist, selektiv die Daten unter Anwendung einer Speicherlöschoperation in einem programmierten Bereich der mehreren Speicherplätze des Systemspeichers bei Aktivierung in Reaktion auf ein Rücksetzen des Systems zu löschen; wobei die Speichersteuerung ferner ausgebildet ist, zu bestimmen, ob der Prozessor in einem Unterbrechungszustand mit Speicherung im RAM vor dem Rücksetzen war, und in Reaktion darauf, dass bestimmt wird, dass der Prozessor in einem Unterbrechungszustand mit Speicherung im RAM vor dem Rücksetzen war, zu bestimmen, ob eine aktuell programmierte Speichergröße gleich einer Größe des programmierten Bereichs der mehreren Speicherplätze ist, die in einer vorhergehenden Speicherlöschoperation gelöscht wurden; wobei die Speichersteuerung ferner ausgebildet ist, die Daten unter Anwendung der Speicherlöschoperation a) in Reaktion darauf, dass bestimmt wird, dass der Prozessor in einem Unterbrechungszustand mit Speicherung im RAM vor dem Rücksetzen des Systems war und dass die aktuell programmierte Speichergröße nicht gleich der Größe des programmierten Bereichs der mehreren Speicherplätze, die in der vorhergehenden Speicherlöschoperation gelöscht wurden, ist und b) in Reaktion darauf, dass bestimmt wird, dass der Prozessor nicht in einem Unterbrechungszustand mit Speicherung im RAM vor dem Rücksetzen war, zu löschen.
  • Weiterhin wird zur Verfügung gestellt:
    Ein Verfahren in einem Computersystem, in welchem eine abgesicherte Ausführungsumgebung angewendet wird und in dem eine Speichersteuerung enthalten ist, die zum Löschen des Speichers ausgebildet ist, mit:Initialisieren eines Prozessors in einem sicheren Ausführungsmodus durch Ausführen einer Sicherheitsinitialisierungsinstruktion und Operieren in dem sicheren Ausführungsmodus durch Ausführen eines sicheren Betriebssystemkodierungssegments; Speichern von Daten in mehreren Speicherplätzen eines Systemspeichers; selektivem Löschen der Daten unter Anwendung einer Speicherlöschoperation in einem programmierten Bereich der mehreren Speicherplätze des Systemspeichers in Reaktion auf ein Rücksetzen des Systems; und Bestimmen, ob der Prozessor in einem Unterbrechungszustand mit Speicherung im RAM vor dem Rücksetzen war; wobei das selektive Löschen der Daten umfasst: Löschen der Daten unter Anwendung der Speicherlöschoperation a) in Reaktion darauf, dass bestimmt wird, dass eine aktuelle programmierte Speichergröße nicht gleich der Größe des programmierten Bereichs der mehreren Speicherplätze ist, die in der vorhergehenden Speicherlöschoperation gelöscht wurde, und der Prozessor in einem Unterbrechungszustand mit Speiche rung im RAM vor dem Rücksetzen des Systems war, und b) in Reaktion darauf, dass bestimmt wird, dass der Prozessor nicht in einem Unterbrechungszustand mit Speicherung im RAM vor dem Rücksetzen war.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist eine Blockansicht einer Ausführungsform eines Computersystems, in welchem eine abgesicherte Rechnerplattform eingesetzt ist.
  • 2 ist eine Blockansicht einer Ausführungsform einer Speichersteuerung eines Computersystems, in welcher eine abgesicherte Rechnerplattform verwendet ist.
  • 3 ist ein Flussdiagramm, das die Funktion einer Ausführungsform einer Speichersteuerung eines Computersystems zeigt, in welchem eine abgesicherte Rechnerplattform verwendet ist.
  • ART BZW. ARTEN ZUM AUSFÜHREN DER ERFINDUNG
  • Überblick über eine sichere/abgesicherte Rechnerplattform
  • Eine vertrauenswürdige bzw. abgesicherte Rechnerumgebung ermöglicht es, Anwendern von Computersystemen (beispielsweise Personalcomputer (PC)) an neuen Aktivitäten, etwa dem Herunterladen elektronischen Geldes und Filmen teilhaben zu lassen, wobei gleichzeitig ein Schutz vor Angriffen auf ihre Privatsphäre stattfindet. Um ein Teil einer abgesicherten Rechnerumgebung zu sein, muss der PC selbst sowohl für den Anwender als auch für Einheiten von Außen, etwa Banken und Anbietern von Inhalten, beispielsweise abgesichert bzw. vertrauenswürdig sein. Zu entscheidenden Elementen, die zum Erzeugen eines abgesicherten PC erforderlich sind, gehören: eine abgesicherte Verarbeitungsumgebung, plattformspezifische Geheimnisse, eine kryptografische Verarbeitung, eine sichere Speicherung und ein sicheres Betriebssystemkodierungssegment, das als ein Sicherheits-Kernel (SK) bezeichnet ist. Die Funktionsblöcke zum Einrichten dieser Elemente werden nachfolgend detaillierter beschrieben.
  • Prozessoren, die zum Ausführen von x86-Instruktionen ausgebildet sind, enthalten im Wesentlichen konfigurationsspezifische Merkmale, etwa einen geschützten Modus, der einen in Seiten organisierten virtuellen Speicher und privilegierte Ausführungsmodi bereitstellt, beinhalten den Satz an Steuerregistern, die diese Merkmale steuern. Das Steuern des Zugriffs auf diese Steuerregister und Seitentabellen kann einen zusätzlichen Schutz vor einem nicht autorisierten Zugriff auf Programmcodierungen und Daten innerhalb eines Computersystems liefern. Somit kann ein Hinzufügen eines Satzes von Erweiterungen in der Architektur zu derartigen Prozessoren und eine entsprechende Software-Unterstützung diesen Schutz bereitstellen. Die gesamten Sicherheitsverbesserungen für einen Prozessor können als ein ”sicherer Betriebsexekutions- bzw Ausführungsmodus (SEM)” bezeichnet werden. Der ”sichere Ausführungsmodus (SEM)” ist ein neuer Betriebsmodus, der dem Prozessor hinzugefügt wird, und der eine abgesicherte Ausführungsumgebung schafft, in der ein Sicherheits-Kernel ohne externe Manipulationen ablaufen kann.
  • Folglich kann ein Prozessor, der in der Lage ist, in einem SEM zu arbeiten, eine Sicherheits-Hardware (nicht gezeigt) aufweisen, die, wenn sie von dem SEM aktiviert wird, zusätzliche Hilfsmittel für SEM-Betriebsmodi bereitstellt, etwa beispielsweise einen ”sicheren Ausführungs-(TX)Betriebsmodus”. Der abgesicherte Ausführungsmodus kann beinhalten, dass, abhängig von der Art der Software, die ausgeführt wird und ihrer Privilegebene, beinhalten, dass der SEM-fähige Prozessor in einem sicheren Anwendermodus und in einem sicheren Kernel-Modus zusätzlich zu dem normalen Anwendermodus und dem normalen Kernel-Modus arbeitet. Es können auch Mechanismen bereitgestellt werden, um ein geschütztes Speichergebiet zu erzeugen, das nur durch Software, die in dieser Umgebung läuft, sowie von Hardware-Speicherzugriffen (beispielsweise Direktspeicherzugriff (DMA)) ansprechbar ist.
  • Die neue ”abgesicherte Ausführungsumgebung (TX)” ist in gewisser Weise analog zu dem herkömmlichen normalen/Schutzmodus (Ring 3/Ring 0)-Mechanismus, der zur Trennung von Anwender- und Kernel-Umgebungen eingesetzt wird. Somit enthält eine SEM-fähige CPU die Hardware-Mechanismen, die den TX-Modus erzeugen und durchführen.
  • Zu beachten ist, dass die neueste Überarbeitung der ”fortschrittlichen Konfigurations- und Leistungsschnittstellen (ACPI)-(Advanced Configuration and Power Interface)” Spe zifikation diverse Betriebszustände und Schlafmodi des Systems definiert. Ein derartiger ”Schlaf-Zustand” ist der S3-Zustand, der manchmal auch als Unterbrechungszustand mit Speicherung im RAM (Suspend to RAM) bezeichnet wird. Der S3-Zustand ist als ein Schlafzustand mit kurzer Anlaufzeit definiert, wobei der gesamte Systemkontext mit Ausnahme des Systemspeichers verloren geht. Beim Eintritt in den S3-Zustand wird in den meisten Systemeinheiten die Versorgungsleistung abgeschaltet. Jedoch werden Einrichtungen, etwa eine Speichersteuerung, die den Systemspeicher unterstützen, teilweise mit Leistung versorgt.
  • Eine ACPI-Systemverwaltung kann größtenteils orthogonal zu einem abgesicherten Rechnerbetrieb und der abgesicherten Umgebung sein. Jedoch kann das Übergehen von einem S-Zustand zu einem weiteren gewisse Konsequenzen nach sich ziehen. Wie beispielsweise zuvor beschrieben ist, ist ein Teil des Prozesses zum Initialisieren der abgesicherten Umgebung das Löschen des Inhalts des physikalischen Speichers, wenn der Prozessor aus dem Rücksetzzustand anläuft. Wenn das System jedoch aus dem S3-Zustand anläuft, sollte der Systemspeicher nicht gelöscht werden. In ähnlicher Weise können Geheimnisse, die in dem abgesicherten Speicher RAM sind, nicht ”frei zugänglich” auf der Festplatte gespeichert werden, wenn das System in andere Schlafzustände, beispielsweise den S4-Zustand, versetzt wird.
  • Computersystem unter Anwendung einer abgesicherten Rechnerplattform
  • In 1 ist eine Blockansicht einer Ausführungsform eines Computersystems gezeigt, in welchem eine abgesicherte Rechnerplattform eingesetzt ist. Das Computersystem 10 umfasst zwei SEM-fähige Prozessoren, die als SEM-Prozessor 100A und SEM-Prozessor 100B bezeichnet sind. Der SEM-Prozessor 100A ist mit dem SEM-Prozessor 100B über einen Prozessorbus 105 verbunden. Das Computersystem 10 umfasst ferner einen Systemspeicher 110A, der mit dem SEM-Prozessor 100A verbunden ist, und umfasst einen Systemspeicher 110B, der mit dem SEM-Prozessor 100B verbunden ist. Der SEM-Prozessor 100A ist mit einer I/O-(Eingabe/Ausgabe)Schnittstelle 120 über einen Systembus 125 verbunden. Die I/O-Schnittstelle 120 ist mit einer Speichereinrichtung 140 und einem Periphergerät 150 über einen peripheren Bus 145 verbunden. Die I/O-Schnittstelle 120 ist ferner mit einer SSP-Einheit 130 über einen peripheren Bus 135 verbunden. In einer alternativen Ausführungsform kann die SSP 130 anstatt mit dem peripheren Bus 135 mit dem peripheren Bus 145 verbunden sein. Zu beachten ist, dass, obwohl zwei SEM-Prozessoren gezeigt sind, in anderen Ausführungsformen eine andere Anzahl an SEM-Prozessoren vorgesehen sein kann. Es ist ferner zu beachten, dass Komponenten mit den gleichen Bezugszeichen und einem Buchstaben einfach durch das Bezugszeichen alleine benannt werden können. Beispielsweise kann der SEM-Prozessor 100A einfach als SEM-Prozessor 100 bei Bedarf benannt werden.
  • In einer Ausführungsform ist der Prozessorbus 105 eine kohärente Verbindung, die eine Punkt-zu-Punkt-Verbindung mit hoher Geschwindigkeit bilden kann, die mit der Hyper-Transport-Spezifikation kompatibel ist. In ähnlicher Weise kann in einer Ausführungsform der Systembus 125 eine nichtkohärente I/O-Verbindung sein. Beispielsweise kann der Systembus 125 ebenso eine Hochgeschwindigkeits-Punkt-zu-Punkt-Verbindung sein, die mit der HyperTransport-I/O-Spezifikation kompatibel ist. In derartigen Ausführungsformen kann der SEM-Prozessor 100A eine integrierte Host-Brückenlogik (nicht gezeigt) zur Verbindung mit der nichtkohärenten Verbindung und zum Übertragen von Nachrichten zwischen dem SEM-Prozessor 100A und dem SEM-Prozessor 100B über die kohärente Verbindung aufweisen. Es sollte jedoch beachtet werden, dass in anderen Ausführungsformen der Systembus 125 eine beliebige Art eines Systembusses sein kann, etwa beispielsweise ein vorderer oder ”Frontseitenbus (FSB)”.
  • In der dargestellten Ausführungsform umfassen der SEM-Prozessor 100A und der SEM-Prozessor 100B jeweils eine integrierte Speichersteuerung 101A bzw. 101B zur Anbindung an die Systemspeicher 110A und 110B. Zu beachten ist, dass in alternativen Ausführungsformen die I/O-Schnittstelle 120 eine oder mehrere Speichersteuerungen und eine Host-Brücke aufweisen kann. In derartigen Ausführungsformen können die Systemspeichereinheiten 110 mit der I/O-Schnittstelle 120 verbunden sein.
  • Der SEM-Prozessor 100 ist ein Repräsentant eines Prozessors, in welchem die x86-Architektur angewendet wird. Beispielsweise kann in einer Ausführungsform der SEM-Prozessor 100 ein Athlon-Prozessor von Advanced Micro Devices, Inc. sein. Der SEM-Prozessor 100 ist ausgebildet, x86-Instruktionen auszuführen, die in dem Systemspeicher 110 oder Speichereinrichtung 140 abgelegt sein können. In der dargestellten Ausführungsform umfasst der SEM-Prozessor 100 eine Sicherheits-Hardware innerhalb der Speichersteuerung 101 (nicht gezeigt), die, wenn sie von dem SEM aktiviert wird, SEM-Betriebsmodi unterstützt, etwa den abgesicherten Ausführungs-(TX)Modus, der beispielsweise zuvor in Verbindung mit der Beschreibung aus 1 erläutert ist.
  • Der Systemspeicher 110 ist ausgebildet, Programminstruktionen und Daten zu speichern, die häufig von dem SEM-Prozessor 100 verwendet werden. In einer typischen Systemkonfiguration kann die Speichereinrichtung 140 verwendet werden, um permanent die Programminstruktionen und Daten zu speichern, und wenn der SEM-Prozessor 100 die Daten und die Programmiercodierung benötigt, kann diese in den Systemspeicher 110 übertragen werden. Weitere Unterstützung für die SEM-Betriebsmodi kann von dem Sicherheits-Kernel bereitgestellt werden, der in Verbindung mit dem OS aus dem Systemspeicher 110 während des Betriebs des SEM-Prozesses 100 heraus ausgeführt werden kann. Des Weiteren kann der Systemspeicher 110 in einen vertrauenswürdigen Bereich bzw. abgesicherten Bereich und einen unabgesicherten Bereich aufgeteilt werden. Der Sicherheits-Kernel liegt in dem abgesicherten Bereich des Systemspeichers 110. Wie zuvor beschrieben ist, wird auf den Systemspeicher 110 typischerweise unter Anwendung eines in Seiten eingeteilten virtuellen Speichers zugegriffen. In einer derartigen Anordnung kann auf den Systemspeicher 110 über einzelne Seiten oder Speicherabschnitte zugegriffen werden. Diese seitenverwaltete Funktion wird typischerweise von den OS-Speicherverwaltungsfunktionen gehandhabt. Wenn ferner Speicherstellen reserviert und freigegeben werden, sind die in den freigegebenen Speicherplätzen gespeicherten Daten weiterhin ansprechbar.
  • In einer Ausführungsform kann der Systemspeicher 110 unter Anwendung mehrerer Speicherchips eingerichtet werden, in denen die Technologie für dynamische Speicher mit wahlfreiem Zugriff (DRAN) verwendet ist, oder in denen eine der Vielzahl verfügbarer DRAN-Technologien eingesetzt ist, etwa beispielsweise synchrone DRAN (SDRAM). Die DRAN-Chips werden typischerweise auf kleinen Schaltungsplatinen mit einem Randverbindungselement montiert, die in eine Sockelverbindung auf einer Hauptplatine eingefügt werden. Abhängig von der Konfiguration der Platinen werden diese als Einzel- oder Doppel-Inline-Speichermodule bezeichnet (beispielsweise SIMM oder DIMM). Der Systemspeicher 110 kann mehrere Bänke aus Speichermodule aufweisen, die eine Speichererweiterung ermöglichen.
  • Wie zuvor beschrieben ist, kann die Speichereinrichtung 140 Programmcodierungen und Daten speichern. In einer Ausführungsform ist die Speichereinrichtung 140 eine Festplatte oder eine Anzahl von Festplatten, obwohl in anderen Ausführungsformen andere Massenspeichereinrichtungen, etwa CD-ROM-Laufwerke, Diskettenlaufwerke und Bandlaufwerke, beispielsweise vorgesehen sein können.
  • Das Periphergerät 150 kann ein beliebiges peripheres Gerät sein, etwa ein Modem, eine Videoaufnahmeeinrichtung oder beispielsweise eine Eingabe/Ausgabeeinrichtung für allgemeine Zwecke. Zu beachten ist, dass in anderen Ausführungsformen eine beliebige Anzahl peripherer Geräte eingesetzt werden kann.
  • Die I/O-Schnittstelle 120 kann ausgebildet sein, um eine Bussteuerung und eine Übersetzung für Transaktionen zwischen den unterschiedlichen Peripherbussen und den SEM-Prozessoren 100A und 100B während des normalen Systembetriebs bereitzustellen. In einer Ausführungsform umfasst die I/O-Schnittstelle 120 eine Busbrücke (nicht gezeigt), die Funktionen ausführen kann, die mit einer Nordbrücke verknüpft sind. Beispielsweise kann der periphere Bus 145 ein Peripherkomponentenverbindungs(PCI)Bus sein und der periphere Bus 135 kann ein Bus mit geringer Anschlussstiftzahl (LPC) sein. Des Weiteren kann die Busbrücke so ausgebildet sein, dass diese Sicherheitsmechanismen (nicht gezeigt) bereitstellt, die eine nicht manipulierbare Kommunikation zwischen dem SEM-Prozessor 100 und dem SSP 130 während einer sicheren Initialisierung ermöglichen.
  • Allgemein ausgedrückt wird die Sicherheits-Kernel-Initialisierungsinstruktion (SKINIT) auf SEM-fähigen Prozessoren, etwa dem SEM-Prozessor 100A und dem SEM-Prozessor 100B ausgeführt. In einer Ausführungsform kann die SKINIT-Instruktion drei Ausführungsphasen aufweisen: Initialisierung, Datentransfer und Sprung.
  • Während der Initialisierungsphase wird der Zustand des SEM-Prozessors 100A zurückgesetzt und es können Mikrocodierungs-Korrekturroutinen gelöscht werden. Ferner können, wie nachfolgend detaillierter beschrieben ist, die Speichersteuerungen 101A und 101B, ob integriert oder extern zu dem SEM-Prozessor 100, eine Logik aufweisen (in 2 nicht gezeigt), die ausgebildet ist zu veranlassen, dass der physikalische Inhalt der Speicherchips des Systemspeichers 110 in Reaktion auf gewisse Systembedingungen, beispielsweise eine Rücksetzung, überschrieben wird.
  • In 2 ist eine Blockansicht einer Ausführungsform einer Speichersteuerung gezeigt. Die Speichersteuerung 301 umfasst eine Steuerlogik 315, die mit einem Speicherlösch status-Bitspeicher 325 und einer Speicherlöscheinheit 310 verbunden ist. Die Speichersteuerung 301 kann mit einem Systemspeicher, etwa dem Systemspeicher 110 aus 1, verbunden sein.
  • Die Speichersteuerung 301 ist ausgebildet, den Inhalt der Speicherchips des Systemspeichers 110 in Reaktion auf eine Rücksetz- oder Anlaufsequenz zu löschen, sofern nicht das Zurücksetzen oder das Hochlaufen mit einem Unterbrechungszustand mit Speicherung auf RAM verknüpft ist. Im hierin verwendeten Sinne bezeichnet das Löschen des Inhalts der Speicherchips, dass erwirkt wird, dass die in den Speicherchips des Systemspeichers gespeicherten Daten überschrieben und damit unbrauchbar werden. In einer Ausführungsform kann die Speichersteuerung 301 den Inhalt der Speicherchips durch Schreiben eines logischen Werts von Null in jede Speicherstelle des Systemspeichers löschen, die für einen Zugriff vorgesehen waren. In einer weiteren Ausführungsform kann die Speichersteuerung 301 den Inhalt der Speicherchips durch Schreiben eines Logikwerts von Eins in jede Speicherstelle in dem Systemspeicher löschen, die für einen Zugriff vorgesehen waren. In einer noch weiteren Ausführungsform kann die Speichersteuerung 301 den Inhalt der Speicherchips durch Schreiben eines anderen Datenmusters in den Systemspeicher 110 löschen, wodurch zuvor abgespeicherte Daten unbrauchbar werden. In einer derartigen Ausführungsform kann das Datenmuster zufällig erzeugt werden.
  • Es ist zu beachten, dass in einer Ausführungsform die Speichersteuerung 301 in den SEM-Prozessor 100 integriert sein kann, etwa als die Speichersteuerung 101 aus 1, oder in einer alternativen Ausführungsform kann die Speichersteuerung 301 extern zu dem SEM-Prozessor 100 ausgebildet sein, wobei die Speichersteuerung 301 ein Teil einer Brückeneinheit, etwa beispielsweise der I/O-Steuerung 120 aus 1 sein kann.
  • In der dargestellten Ausführungsform umfasst die Steuerlogik 315 Konfigurations- und Steuerregister 316 und Plattformsicherheitsleistungsregister 320. Die Konfigurations- und Steuerregister 316 können durch Software ansprechbare Register zur Programmierung der Größe des adressierbaren Speichers aufweisen. Beispielsweise kann während der Initialisierung das BIOS die Größe des verwendbaren Systemspeichers bestimmen und nachfolgend die Speichersteuerung 301 programmieren, auf diesen verwendbaren Speicher zuzugreifen, indem die Konfigurations- und Steuerregister 316 entsprechend programmiert werden. Ferner können die Konfigurations- und Steuerregister 316 ein Ak tivierungsbit für den dynamischen Speicher mit wahlfreiem Zugriff (DRAM), das als DRAME-Bit bezeichnet ist, aufweisen. In einer Ausführungsform wird das DRAME-Bit auf einen Logikwert von Null durch Rücksetzen gesetzt und wird auf einen Logikwert von Eins durch Software, etwa durch das BIOS als der letzte Schritt bei der Programmierung der Speichersteuerung 301 gesetzt. Die Hardware kann dieses Bit auch löschen, wenn die Speichersteuerung deaktiviert oder ausgeschaltet wird. Wenn das DRAME-Bit gesetzt ist, bewirkt dieses, dass die Speichersteuerung 301 von dem deaktivierten in den aktivierten Zustand übergeht. Des Weiteren können die Konfigurations- und Steuerregister 316 ein DRAM-Statusbit aufweisen, das als das DStat-Bit bezeichnet wird. in einer Ausführungsform ist das DStat-Bit für Software lesbar. Der Null-Eins-Übergang dieses Bits gibt an, dass eine Speicherlöschoperation abgeschlossen ist. Das Bit kann durch Hardware in der Steuerlogik 315 auf Eins gesetzt werden, wenn der Speicherlöschvorgang abgeschlossen ist. Das DStat-Bit wird zurückgesetzt, wenn das DRAME-Bit zurückgesetzt wird. Beispielsweise gilt: DStat = 1, wenn DRAME gleich wahr ist UND die Speicherlöscheinheit 310 keine Speicherlöschoperation ausführt.
  • In der dargestellten Ausführungsform ist die Speicherlöscheinheit 310 ausgebildet, den Bereich des Systemspeichers zu löschen, der in den Konfigurationsregistern 316 programmiert wurde, wenn die Speichersteuerung 301 von dem deaktivierten in den aktivierten Zustand übergeht und die Speicherlöscheinheit 310 aktiviert wird. Beispielsweise kann in einer Ausführungsform die Speicherlöscheinheit 310 die Logik enthalten, um Schreibdaten für den Systemspeicher während des Speicherlöschvorgangs zu erzeugen.
  • In der dargestellten Ausführungsform umfassen die Plattformsicherheitsleistungsregister 320 ein Speicherlöschdeaktivierungsbit, das als MCD bezeichnet ist. Wie nachfolgend deutlicher beschrieben ist, kann das MCD-Bit so konfiguriert sein, dass die Speicherlöscheinheit 310 aktiviert oder deaktiviert wird, wodurch das Löschen des Systemspeichers aktiviert oder deaktiviert wird.
  • In einer Ausführungsform sind die Plattformsicherheitsleistungsregister 320 Softwaresichtbare Zugriffsschutzregister, die in einem Konfigurationsraum angeordnet sind, der mit der Speichersteuerung 301 verknüpft ist. Zu beachten ist, dass das MCD-Bit lediglich für eine abgesicherte Software sichtbar ist. Die Adressierung kann auf der Grundlage eines neuen Leistungszeigers (0Fh) erfolgen. Das MCD-Bit kann ein einzelnes Bit eines Steuerregisters eines Direktspeicherzugriffsausschlussvektors (DEV) sein. In einer Aus führungsform wird, wenn das MCD-Bit auf logisch Eins gesetzt ist, die Speicherlöscheinheit 310 deaktiviert, und wenn das MCD-Bit auf logisch Null gesetzt ist, wird die Speicherlöscheinheit 310 aktiviert: Ferner ist das MCD-Bit nur beschreibbar, wenn der Speicher freigegeben ist.
  • Zu beachten ist, dass in einer Ausführungsform der Zustand des MCD-Bits beibehalten werden kann, wenn das System abgeschaltet wird, aber die Speicherchips des Systemspeichers mit Spannung versorgt bleiben (beispielsweise S3-Zustand). Um die Bit-Zustandsinformation beizubehalten, kann das MCD-Bit verknüpft dazu ein „Unterbrechung mit Speicherung im RAM”-Bit aufweisen, das als STR bezeichnet ist, das den Zustand beibehält und in einer ”Master/Slave”-Anordnung mit dem MCD-Bit arbeitet. In einer Ausführungsform wird beim Hochlaufen der Zustand des STR-Bits in das MCD-Bit kopiert. Somit zeigt das STR-Bit an, ob der Inhalt des Systemspeichers während eines Abschaltens gesichert wurde. Das STR-Bit ist unter Umständen nicht Software-sichtbar und kann durch Rücksetzen gelöscht werden. In einer Ausführungsform bleibt der STR-Bit-Zustand erhalten, wenn das System abgeschaltet wird, aber die Speicherchips des Systems in Betrieb bleiben (beispielsweise S3-Zustand). Sobald die Speichersteuerung 301 aktiviert ist, kann eine vertrauenswürdige Software insbesondere das STR-Bit setzen, indem vor dem Eintreten in den S3-Zustand das MCD-Bit gesetzt wird. Vor dem Eintreten einer Abschaltbedingung kann der Zustand des STR-Bits kopiert werden. Das STR-Bit wird automatisch zurückgesetzt, wenn das DRAME-Bit gesetzt wird (beispielsweise nachdem der Speicherlöschvorgang den Zustand bewertet. In der dargestellten Ausführungsform kann das STR-Bit in dem Speicherlöschstatus-Bitspeicher 325 enthalten sein.
  • In der dargestellten Ausführungsform enthält der Speicherlöschstatus-Bitspeicher 325 ferner ”Speicher zuvor gelöscht”-Bits. Diese Bits können eine Kennzeichnung enthalten, welche Bereiche des Speichers durch die vorhergehende Speicherlöschoperation gelöscht wurden. Diese Bits sind nicht für die Software sichtbar und können durch einen Rücksetzvorgang gelöscht werden. In einer Ausführungsform behalten die ”Speicher zuvor gelöscht”-Bits ihren Zustand, wenn das System abgeschaltet wird, aber die Speicherchips des Systemspeichers unter Spannung leiten (beispielsweise S3-Zustand). Die ”Speicher zuvor gelöscht”-Bits können jedes Mal erneut eingeladen werden, wenn die Speicherlöschoperation ausgeführt wird.
  • In einer Ausführungsform überprüft die Steuerlogik 315 die aktuelle Größe des Systemspeichers, die in die Speichersteuerung 301 geschrieben ist, gegenüber dem Zustand, der in den ”Speicher zuvor gelöscht”-Bits gespeichert ist. Wenn es eine Abweichung gibt, kann die Speicherlöscheinheit 310 bedingungslos den Systemspeicher löschen, wie dies zuvor beschrieben ist. Beispielsweise kann eine bösartige BIOS- oder BIOS-Emulations-Software die Speichersteuerung 301 programmiert haben, um auf einen kleinen Bereich des Speichers zuzugreifen im Vergleich zu einem Bereich, wie er zuvor angesprochen und gelöscht wurde, um auf einen sicheren Speicher zuzugreifen. Wenn daher keine Übereinstimmung erkannt wird, wird der zuvor gelöschte Speicherbereich gelöscht. In einer Ausführungsform können die ”Speicher zuvor gelöscht”-Bits eingerichtet sein, um die oberen Adressenbits des höchsten 64M-Byteblocks des Speichers, der durch die letzte Speicherlöschoperation gelöscht wurde, zu speichern. Jedoch können in anderen Ausführungsformen andere Implementierungen angewendet werden.
  • In einer Ausführungsform werden die Bits des Speicherlöschstatusspeichers 325, die den Zustand bewahren, sobald das System abgeschaltet wird aber die Speicherchips des Systemspeichers unter Spannung bleiben (beispielsweise S3-Zustand), in Zustandsspeicherelementen abgelegt, die in dem I/O-Anschlussring der Einrichtung, in der die Speichersteuerung untergebracht ist, eingerichtet sind (wie dies in den gepunkteten Linien gezeigt ist). Wie nachfolgend detaillierter in Verbindung mit der Beschreibung aus 3 erläutert ist, kann die Steuerlogik 315 der Speichersteuerung 301 Zugriffsmöglichkeit zu diesen Zustandsspeicherelementen besitzen, wenn ein Anlaufen aus dem Rücksetzzustand erfolgt. Da die Leistung für gewisse Geräte weiterhin anliegt (beispielsweise flüchtige Speicher, etwa RAM), selbst wenn gewisse Systemabschaltbedingungen vorliegen (beispielsweise der S3-Zustand), können diese Zustandsspeicherelemente ihren Zustand über eine Abschaltfase und eine nachfolgende Anlaufsequenz beibehalten.
  • 3 zeigt ein Flussdiagramm, das die Funktionsweise einer Ausführungsform einer Speichersteuerung in einer abgesicherten Rechnerplattform beschreibt. Unter Bezugnahme zu den 2 und 3 beginnt der Betrieb in Block 400, in welchem ein Systemrücksetzvorgang auftritt. In Reaktion auf das Rücksetzen führt das BIOS diverse Hochlauf- und Konfigurationsaufgaben auf Systemebene aus. Beispielsweise muss das BIOS den Systemspeicher durch Konfigurieren der Speichersteuerung 301 aktivieren. In Abhängigkeit der speziellen Systemimplementierungen kann dann das BIOS eine oder mehrere Speicherprüfungen durchführen, um die physikalische Größe des Systemspei chers zu bestimmen. Sobald der verfügbare Speicherplatz bestimmt ist, programmiert in einer Ausführungsform das BIOS ein oder mehrere Konfigurationsregister 316 der Speichersteuerung 301 mit der aktuellen Größe des verfügbaren Speichers (Block 405). Sobald die Speichersteuerung programmiert ist, aktiviert das BIOS die Speichersteuerung 301 durch Setzen des DRAME-Bits (Block 410). Die Speichersteuerung 301 geht dann von dem deaktivierten in den aktivierten Zustand über. Das STR-Bit wird von der Steuerlogik 315 in das MCD-Bit kopiert (Block 415).
  • In Reaktion auf den Übergang von dem deaktivierten in den aktivierten Zustand liest die Steuerlogik 315 das MCD-Bit aus, um zu bestimmen, ob das System in einem S3-Zustand (beispielsweise Unterbrechung mit Speicherung im RAM) vor dem Rücksetzen war (Block 420). Wenn das System nicht in einem S3-Zustand war (beispielsweise MCD-Bit zurückgesetzt), dann bestimmt die Steuerlogik 315 die Speichergröße aus dem in den Konfigurationsregistern 316 gespeicherten Wert (Block 430). Die Steuerlogik 315 benachrichtigt die Speicherlöscheinheit 310, um einen Speicherlöschvorgang an allen Speicherplätzen durchzuführen, die innerhalb der aktuell programmierten Speichergröße liegen (Block 435). Die Größe des Speichers, der gelöscht wird, wird in den ”Speicher zuvor gelöscht”-Bits gespeichert (Block 440).
  • Es sei nochmals auf Block 425 verwiesen; wenn die Steuerlogik 315 bestimmt, dass das System in einem S3-Zustand war (beispielsweise MCD-Bitset), dann ermittelt die Steuerlogik 315 die aktuell programmierte Speichergröße aus dem in den Konfigurationsregistern 316 gespeicherten Wert und die zuvor gelöschte Speichergröße durch Lesen des Werts, der in den ”Speicher zuvor gelöscht”-Bits des Speicherlöschstatus-Bitspeicher 325 gespeichert ist (Block 445). Die Steuerlogik 315 vergleicht die aktuell programmierte Speichergröße mit der zuvor gelöschten Speichergröße (Block 450). Wenn es eine Abweichung in der Größe gibt (Block 455), benachrichtigt die Steuerlogik 315 die Speicherlöscheinheit 310, eine Speicherlöschoperation an allen Speicherplätzen vorzunehmen, die in der vorhergehenden Speicherlöschoperation gelöscht wurden, wie dies durch den Wert gekennzeichnet ist, der in den ”Speicher zuvor gelöscht”-Bits des Speicherlöschstatus-Bitspeichers 325 gespeichert ist (Block 460). Die Größe des Speichers, der gelöscht wird, wird in den ”Speicher zuvor gelöscht”-Bits gespeichert (Block 440). In einer Ausführungsform wird, sobald das MCD-Bit bewertet ist, das STR-Bit zurückgesetzt, wodurch die Speicherlöschoperation aktiviert wird, sobald ein Anlaufen aus dem Rücksetzzustand erfolgt.
  • Es sei nochmals auf Block 455 verwiesen; wenn die aktuell programmierte Speichergröße gleich der zuvor gelöschten Speichergröße ist, wird die Speicherlöschoperation nicht ausgeführt, da die Speicherlöscheinheit 310 von dem gesetzten MCD-Bit deaktiviert ist (Block 465).
  • Wie zuvor beschrieben ist, wird, wenn die Speichersteuerung 301 aktiviert ist, ferner das MCD-Bit durch eine vertrauenswürdige Software gesetzt, bevor in den S-Zustand übergegangen wird, wodurch die Speicherlöschoperation bei einem Anlauf aus dem Rücksetzzustand deaktiviert wird.

Claims (2)

  1. Computersystem (10), in welchem eine abgesicherte Ausführungsumgebung angewendet wird, mit: einem Prozessor (100A), der ausgebildet ist in einem sicheren Ausführungsmodus durch Ausführen eines sicheren Betriebssystemcodierungssegments zu operieren; einem Systemspeicher (110A) der mit dem Prozessor verbunden und mehrere Speicherplätze zum Speichern von Daten enthält; einer Speichersteuerung (101A), die mit dem Systemspeicher verbunden und ausgebildet ist, selektiv die Daten unter Anwendung einer Speicherlöschoperation in einem programmierten Bereich der mehreren Speicherplätze des Systemspeichers bei Aktivierung in Reaktion auf ein Rücksetzen des Systems zu löschen; wobei die Speichersteuerung (101A) ferner ausgebildet ist, zu bestimmen, ob der Prozessor in einem Unterbrechungszustand mit Speicherung im RAM vor dem Rücksetzen war, und in Reaktion darauf, dass bestimmt wird, dass der Prozessor in einem Unterbrechungszustand mit Speicherung im RAM vor dem Rücksetzen war, zu bestimmen, ob eine aktuell programmierte Speichergröße gleich einer Größe des programmierten Bereichs der mehreren Speicherplätze ist, die in einer vorhergehenden Speicherlöschoperation gelöscht wurden; wobei die Speichersteuerung (101A) ferner ausgebildet ist, die Daten unter Anwendung der Speicherlöschoperation a) in Reaktion darauf, dass bestimmt wird, dass der Prozessor in einem Unterbrechungszustand mit Speicherung im RAM vor dem Rücksetzen des Systems war und dass die aktuell programmierte Speichergröße nicht gleich der Größe des programmierten Bereichs der mehreren Speicherplätze, die in der vorhergehenden Speicherlöschoperation gelöscht wurden, ist und b) in Reaktion darauf, dass bestimmt wird, dass der Prozessor nicht in einem Unterbrechungszustand mit Speicherung im RAM vor dem Rücksetzen war, zu löschen.
  2. Verfahren in einem Computersystem, in welchem eine abgesicherte Ausführungsumgebung angewendet wird und in dem eine Speichersteuerung enthalten ist, die zum Löschen des Speichers ausgebildet ist, mit: Initialisieren eines Prozessors (100A) in einem sicheren Ausführungsmodus durch Ausführen einer Sicherheitsinitialisierungsinstruktion und Operieren in dem sicheren Ausführungsmodus durch Ausführen eines sicheren Betriebssystemkodierungssegments; Speichern von Daten in mehreren Speicherplätzen eines Systemspeichers (110A); selektivem Löschen der Daten unter Anwendung einer Speicherlöschoperation in einem programmierten Bereich der mehreren Speicherplätze des Systemspeichers in Reaktion auf ein Rücksetzen des Systems; und Bestimmen, ob der Prozessor in einem Unterbrechungszustand mit Speicherung im RAM vor dem Rücksetzen war; wobei das selektive Löschen der Daten umfasst: Löschen der Daten unter Anwendung der Speicherlöschoperation a) in Reaktion darauf, dass bestimmt wird, dass eine aktuelle programmierte Speichergröße nicht gleich der Größe des programmierten Bereichs der mehreren Speicherplätze ist, die in der vorhergehenden Speicherlöschoperation gelöscht wurde, und der Prozessor in einem Unterbrechungszustand mit Speicherung im RAM vor dem Rücksetzen des Systems war, und b) in Reaktion darauf, dass bestimmt wird, dass der Prozessor nicht in einem Unterbrechungszustand mit Speicherung im RAM vor dem Rücksetzen war.
DE112004001605T 2003-09-04 2004-06-04 Computersystem, in welchem eine abgesicherte Ausführungsumgebung angewendet wird und in dem eine Speichersteuerung enthalten ist, die zum Löschen des Speichers ausgebildet ist Active DE112004001605B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/654,734 US7210009B2 (en) 2003-09-04 2003-09-04 Computer system employing a trusted execution environment including a memory controller configured to clear memory
US10/654,734 2003-09-04
PCT/US2004/018043 WO2005026954A1 (en) 2003-09-04 2004-06-04 A computer system employing a trusted execution environment including a memory controller configured to clear memory

Publications (2)

Publication Number Publication Date
DE112004001605T5 DE112004001605T5 (de) 2006-07-06
DE112004001605B4 true DE112004001605B4 (de) 2010-05-06

Family

ID=34225999

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112004001605T Active DE112004001605B4 (de) 2003-09-04 2004-06-04 Computersystem, in welchem eine abgesicherte Ausführungsumgebung angewendet wird und in dem eine Speichersteuerung enthalten ist, die zum Löschen des Speichers ausgebildet ist

Country Status (8)

Country Link
US (1) US7210009B2 (de)
JP (1) JP4695082B2 (de)
KR (1) KR101093124B1 (de)
CN (1) CN100416501C (de)
DE (1) DE112004001605B4 (de)
GB (1) GB2422228B (de)
TW (1) TWI349230B (de)
WO (1) WO2005026954A1 (de)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7765381B2 (en) * 2003-04-04 2010-07-27 Oracle America, Inc. Multi-node system in which home memory subsystem stores global to local address translation information for replicating nodes
US7228400B2 (en) * 2003-12-31 2007-06-05 Intel Corporation Control of multiply mapped memory locations
US7380069B2 (en) * 2004-11-19 2008-05-27 Marvell International Technology Ltd. Method and apparatus for DMA-generated memory write-back
JP2006203564A (ja) * 2005-01-20 2006-08-03 Nara Institute Of Science & Technology マイクロプロセッサ、ノード端末、コンピュータシステム及びプログラム実行証明方法
US20070192826A1 (en) * 2006-02-14 2007-08-16 Microsoft Corporation I/O-based enforcement of multi-level computer operating modes
US8060744B2 (en) * 2006-03-23 2011-11-15 Harris Corporation Computer architecture for an electronic device providing single-level secure access to multi-level secure file system
US8041947B2 (en) * 2006-03-23 2011-10-18 Harris Corporation Computer architecture for an electronic device providing SLS access to MLS file system with trusted loading and protection of program execution memory
US8127145B2 (en) * 2006-03-23 2012-02-28 Harris Corporation Computer architecture for an electronic device providing a secure file system
US7979714B2 (en) * 2006-06-02 2011-07-12 Harris Corporation Authentication and access control device
US7877558B2 (en) * 2007-08-13 2011-01-25 Advanced Micro Devices, Inc. Memory controller prioritization scheme
US7757039B2 (en) * 2007-09-18 2010-07-13 Nikos Kaburlasos DRAM selective self refresh
US7937449B1 (en) * 2007-10-08 2011-05-03 Empirix, Inc. System and method for enabling network stack processes in user mode and kernel mode to access kernel memory locations
US20090144332A1 (en) * 2007-11-29 2009-06-04 Wallace Paul Montgomery Sideband access based method and apparatus for determining software integrity
US8250354B2 (en) * 2007-11-29 2012-08-21 GlobalFoundries, Inc. Method and apparatus for making a processor sideband interface adhere to secure mode restrictions
CN101493877B (zh) * 2008-01-22 2012-12-19 联想(北京)有限公司 数据处理方法及系统
US9274573B2 (en) 2008-02-07 2016-03-01 Analog Devices, Inc. Method and apparatus for hardware reset protection
US8117642B2 (en) * 2008-03-21 2012-02-14 Freescale Semiconductor, Inc. Computing device with entry authentication into trusted execution environment and method therefor
JP5286943B2 (ja) * 2008-05-30 2013-09-11 富士通株式会社 メモリクリア機構
US7831816B2 (en) * 2008-05-30 2010-11-09 Globalfoundries Inc. Non-destructive sideband reading of processor state information
FR2934697B1 (fr) * 2008-07-29 2010-09-10 Thales Sa Procede et systeme permettant de securiser un logiciel
US20100138597A1 (en) * 2008-11-28 2010-06-03 Kabushiki Kaisha Toshiba Information Processing System, System Controller, and Memory Control Method
US8880854B2 (en) * 2009-02-11 2014-11-04 Via Technologies, Inc. Out-of-order execution microprocessor that speculatively executes dependent memory access instructions by predicting no value change by older instructions that load a segment register
EP2270708A1 (de) * 2009-06-29 2011-01-05 Thomson Licensing Datensicherheit in einem Festkörperspeicher
US8694856B2 (en) 2009-08-14 2014-04-08 Intrinsic Id B.V. Physically unclonable function with tamper prevention and anti-aging system
US20120036308A1 (en) * 2010-08-06 2012-02-09 Swanson Robert C Supporting a secure readable memory region for pre-boot and secure mode operations
US8458486B2 (en) * 2010-10-13 2013-06-04 International Business Machines Corporation Problem-based account generation
WO2013078085A1 (en) * 2011-11-22 2013-05-30 Mips Technologies, Inc. Processor with kernel mode access to user space virtual addresses
TWI464746B (zh) * 2012-03-30 2014-12-11 Wistron Corp 記憶體之清除電路
CN103368928B (zh) * 2012-04-11 2018-04-27 富泰华工业(深圳)有限公司 帐号密码重置系统及方法
US9047471B2 (en) 2012-09-25 2015-06-02 Apple Inc. Security enclave processor boot control
US8832465B2 (en) 2012-09-25 2014-09-09 Apple Inc. Security enclave processor for a system on a chip
US9043632B2 (en) 2012-09-25 2015-05-26 Apple Inc. Security enclave processor power control
US8873747B2 (en) 2012-09-25 2014-10-28 Apple Inc. Key management using security enclave processor
US8775757B2 (en) 2012-09-25 2014-07-08 Apple Inc. Trust zone support in system on a chip having security enclave processor
US20150089245A1 (en) * 2013-09-26 2015-03-26 Asher M. Altman Data storage in persistent memory
US9594927B2 (en) * 2014-09-10 2017-03-14 Intel Corporation Providing a trusted execution environment using a processor
US9547778B1 (en) 2014-09-26 2017-01-17 Apple Inc. Secure public key acceleration
US10127406B2 (en) 2015-03-23 2018-11-13 Intel Corporation Digital rights management playback glitch avoidance
CN105630351A (zh) * 2015-12-23 2016-06-01 深圳市嘉兰图设计股份有限公司 具有一键清理后台程序功能的按键系统
US10884952B2 (en) * 2016-09-30 2021-01-05 Intel Corporation Enforcing memory operand types using protection keys
US10353858B2 (en) * 2017-12-18 2019-07-16 GM Global Technology Operations LLC System and method for managing system memory integrity in suspended electronic control units
US11681965B2 (en) * 2019-10-25 2023-06-20 Georgetown University Specialized computing environment for co-analysis of proprietary data

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0230351A2 (de) * 1986-01-17 1987-07-29 International Business Machines Corporation Informationsverarbeitungssystem
EP0436365A2 (de) * 1989-12-26 1991-07-10 Digital Equipment Corporation Verfahren und System zur Sicherung von Datenendgeräten

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US200402A (en) * 1878-02-19 Improvement in toy money-boxes
US200405A (en) * 1878-02-19 Improvement in feed-water regulators
JPH07219885A (ja) * 1994-02-04 1995-08-18 Canon Inc 情報処理システム及び電子機器及び制御方法
JP3393521B2 (ja) * 1995-10-19 2003-04-07 日本電信電話株式会社 端末プログラム改ざん検出方法、および情報センタ
JPH09128232A (ja) * 1995-11-01 1997-05-16 Fujitsu Ltd プログラム正常性確認装置
JP3715711B2 (ja) * 1996-04-19 2005-11-16 キヤノン株式会社 画像処理装置及びその画像処理方法
US5987604A (en) 1997-10-07 1999-11-16 Phoenix Technologies, Ltd. Method and apparatus for providing execution of system management mode services in virtual mode
US6327652B1 (en) 1998-10-26 2001-12-04 Microsoft Corporation Loading and identifying a digital rights management operating system
US6330670B1 (en) 1998-10-26 2001-12-11 Microsoft Corporation Digital rights management operating system
US6243831B1 (en) * 1998-10-31 2001-06-05 Compaq Computer Corporation Computer system with power loss protection mechanism
US6175454B1 (en) 1999-01-13 2001-01-16 Behere Corporation Panoramic imaging arrangement
US6367022B1 (en) 1999-07-14 2002-04-02 Visteon Global Technologies, Inc. Power management fault strategy for automotive multimedia system
JP2001202289A (ja) * 2000-01-18 2001-07-27 Casio Comput Co Ltd セキュリティ管理方法およびそのプログラム記録媒体
US6938164B1 (en) 2000-11-22 2005-08-30 Microsoft Corporation Method and system for allowing code to be securely initialized in a computer
US6546472B2 (en) * 2000-12-29 2003-04-08 Hewlett-Packard Development Company, L.P. Fast suspend to disk
JP2002323939A (ja) * 2001-04-25 2002-11-08 Casio Comput Co Ltd 起動処理制御装置
JP2003037719A (ja) * 2001-05-17 2003-02-07 Sharp Corp 画像処理装置
US6854046B1 (en) 2001-08-03 2005-02-08 Tensilica, Inc. Configurable memory management unit
US7024555B2 (en) 2001-11-01 2006-04-04 Intel Corporation Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment
US6922783B2 (en) * 2002-01-16 2005-07-26 Hewlett-Packard Development Company, L.P. Method and apparatus for conserving power on a multiprocessor integrated circuit
US20030154392A1 (en) * 2002-02-11 2003-08-14 Lewis Timothy A. Secure system firmware using interrupt generation on attempts to modify shadow RAM attributes
US6986006B2 (en) 2002-04-17 2006-01-10 Microsoft Corporation Page granular curtained memory via mapping control
US7058768B2 (en) 2002-04-17 2006-06-06 Microsoft Corporation Memory isolation through address translation data edit control
US7392415B2 (en) * 2002-06-26 2008-06-24 Intel Corporation Sleep protection
US6925627B1 (en) * 2002-12-20 2005-08-02 Conexant Systems, Inc. Method and apparatus for power routing in an integrated circuit
US7284136B2 (en) * 2003-01-23 2007-10-16 Intel Corporation Methods and apparatus for implementing a secure resume

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0230351A2 (de) * 1986-01-17 1987-07-29 International Business Machines Corporation Informationsverarbeitungssystem
EP0436365A2 (de) * 1989-12-26 1991-07-10 Digital Equipment Corporation Verfahren und System zur Sicherung von Datenendgeräten

Also Published As

Publication number Publication date
GB2422228A (en) 2006-07-19
JP4695082B2 (ja) 2011-06-08
CN100416501C (zh) 2008-09-03
KR101093124B1 (ko) 2011-12-13
GB0604581D0 (en) 2006-04-19
DE112004001605T5 (de) 2006-07-06
US7210009B2 (en) 2007-04-24
KR20060061832A (ko) 2006-06-08
TW200527293A (en) 2005-08-16
GB2422228B (en) 2007-02-14
CN1846195A (zh) 2006-10-11
WO2005026954A1 (en) 2005-03-24
US20050055524A1 (en) 2005-03-10
JP2007504553A (ja) 2007-03-01
TWI349230B (en) 2011-09-21

Similar Documents

Publication Publication Date Title
DE112004001605B4 (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
DE60311441T2 (de) Initialisierung eines rechnersystems mit einem für einen sicheren ausführungsmodus geeigneten prozessor
DE10297273B4 (de) Verfahren zur Bereitstellung von Systemintegrität und Legacy-Umgebungsemulation
DE10195999B3 (de) Computersystem mit einer in einem Chipsatz enthaltenen Speichersteuereinrichtung zum Kontrollieren von Zugriffen auf einen isolierten Speicher für eine isolierte Ausführung
US7146525B2 (en) Method for backing up and recovering data in the hard disk of a computer
DE112010003049T5 (de) Dateisystem für duale Betriebssysteme
DE102006061939B4 (de) Verfahren und Vorrichtung zum Zugriff auf eine speicherabgebildete Vorrichtung durch einen Gast
DE112004002259B4 (de) Zugriff auf private Daten zum Status einer datenverarbeitenden Maschine von einem öffentlich zugänglichen Speicher
DE10196440B4 (de) Steuern des Zugriffs auf mehrere isolierte Speicher in einer isolierten Ausführungsumgebung
DE10357804A1 (de) Neu-Beanspruchung vorhandener Felder in Adressübersetzungsdatenstrukturen zum Erweitern der Kontrolle über Speicherzugriffe
DE112009000612T5 (de) Multi-Betriebssystem-Booteinrichtung (OS), Multi-OS-Boot-Programm, Aufzeichnungsmedium und Multi-OS-Bootverfahren
DE10393662T5 (de) Bereitstellen eines sicheren Ausführungsmodus in einer Preboot-Umgebung
DE4026912A1 (de) Computersystem
DE112012005209T5 (de) Brückenfunktion zwischen Virtual Machine Monitor und Bare-Metal-Bootvorgang
US7599889B2 (en) Ownership tag on power up screen
DE112007000363T5 (de) Verfahren zum Bereitstellen sicherer Firmware
DE112010005821T5 (de) Kontextwechsel
DE112011102876T5 (de) Ressourcenverwaltungs- und Sicherheitssystem
DE112007003206T5 (de) Neukonfigurieren eines sicheren Systems
DE112011105687T5 (de) Verwendung eines Option-ROM-Speichers
US6405311B1 (en) Method for storing board revision
US10586038B2 (en) Secure stack overflow protection via a hardware write-once register
DE102014003687A1 (de) Vorrichtung und verfahren zum schutz von digitalem inhalt
DE4238099C2 (de) Mikroprozessor mit mehreren Betriebsmoden
DE112012006454T5 (de) Ruhezustand auf der Basis von Seitenquellcode

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8364 No opposition during term of opposition