DE102008021567A1 - Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel - Google Patents

Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel Download PDF

Info

Publication number
DE102008021567A1
DE102008021567A1 DE102008021567A DE102008021567A DE102008021567A1 DE 102008021567 A1 DE102008021567 A1 DE 102008021567A1 DE 102008021567 A DE102008021567 A DE 102008021567A DE 102008021567 A DE102008021567 A DE 102008021567A DE 102008021567 A1 DE102008021567 A1 DE 102008021567A1
Authority
DE
Germany
Prior art keywords
initialization
memory
encryption key
commands
data
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
DE102008021567A
Other languages
English (en)
Other versions
DE102008021567B4 (de
Inventor
Michael Grell
Ralf Findeisen
Frank Schuecke
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.)
GlobalFoundries 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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=41130894&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE102008021567(A1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Priority to DE102008021567.8A priority Critical patent/DE102008021567B4/de
Priority to US12/355,900 priority patent/US8464037B2/en
Publication of DE102008021567A1 publication Critical patent/DE102008021567A1/de
Application granted granted Critical
Publication of DE102008021567B4 publication Critical patent/DE102008021567B4/de
Expired - Fee Related 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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot

Landscapes

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

Abstract

Es werden eine CPU, ein Computersystem und ein sicherer Bootmechanismus bereitgestellt, in welchem ein symmetrischer Verschlüsselungsschlüssel in einem nichtflüchtigen Speicherbereich des CPU-Kerns enthalten ist, wodurch eine Manipulation des Schlüssels durch externe Quellen im Wesentlichen vermieden wird. Die Vorinitialisierungsinformation kann intern in der CPU gespeichert werden und kann bei einem Rücksetzen oder bei einem Einschalten abgerufen werden, um eine signierte Bootinformation auf der Grundlage des internen symmetrischen Schlüssels effizient aktualisiert werden, indem eine Signatur unter Anwendung des internen Verschlüsselungsschlüssels erzeugt wird.

Description

  • Gebiet der vorliegenden Offenbarung
  • Die vorliegende Offenbarung betrifft im Allgemeinen das Gebiet der Computersysteme mit erhöhter Sicherheit und entsprechender Mechanismen, die darin eingerichtet sind, die das Bereitstellen verbesserter Sicherheitsstandards ermöglichen, die für einen sicheren Hochlauf- bzw. Boot-Mechanismus erforderlich sind.
  • Beschreibung des Stands der Technik
  • Die weit verbreitete Verwendung von Computersystemen führte zu einer deutlichen Steigerung der Informationsverarbeitung auf der Basis elektronischer Computersysteme, wodurch große Mengen an digitalen Daten erzeugt, verteilt und bearbeitet werden. Mit den zunehmenden Fähigkeiten von Computersystemen im Hinblick auf die Datenspeicherkapazität und die erhöhte Verarbeitungsgeschwindigkeit ist die Vervielfachung großer Datensätze, etwa von Audiodaten, Filmen und dergleichen für eine anwachsende Anzahl an Personen verfügbar und wird häufig praktiziert, unabhängig von täglichen Schutzrechten, die mit vielen der in elektronischen Form bereitgestellten Daten verknüpft sind. Somit wird ein beträchtlicher ökonomischer Schaden durch das illegale Kopieren, Speichern und Neuverteilen elektronischer Daten erzeugt. Ferner ermöglicht das Verteilen von Anwendungsprogrammen über weit verteilte Netzwerke, etwa das Internet, das Verteilen von Schad-Software-Anwendungen, die wiederum zum Manipulieren von Daten und/oder zur Manipulation einer entsprechenden Computerplattform eingesetzt werden können. Beispielsweise wird ein beträchtlicher Schaden in privaten Umgebungen und insbesondere in der Industrie hervorgerufen, indem Softwareanwendungen eingeführt werden, die beispielsweise Softwaredateien, etwa gespeicherte Daten, manipulieren, Information über das Internet ohne Wissen des eigentlichen Nutzers der Plattform zu übermitteln, einen Angriff zur Verweigerung von Dienstleistungen starten, wodurch möglicherweise die Plattform für eine spezielle Anwendung nicht mehr verwendbar ist, die einen speziellen Status der Plattform erfordert, und dergleichen.
  • Aus diesen Gründen werden große Anstrengungen unternommen, um Mechanismen zur Verbesserung der Integrität von Computerplattformen zu entwickeln, um damit die Wahrscheinlichkeit für einen „erfolgreichen” externen Angriff, beispielsweise in Form einer Schadsoftware, von Angriffen zur Verweigerung von Dienstleistungen, zum Ausspionieren, Manipulieren und dergleichen zu verringern und ebenfalls um die Datenintegrität im Hinblick auf interne Manipulationen der Computerplattform zu verbessern. Beispielsweise sind eine Vielzahl von Verschlüsselungstechniken verfügbar, etwa symmetrische oder asymmetrische Verschlüsselungs/Entschlüsselungstechniken, die den Austausch von Daten mit einem hohen Maß an Immunität im Hinblick auf das Manipulieren von Daten durch einen dritten während des Übertragens und des Speicherns von Daten ermöglichen. In asymmetrischen Verschlüsselungstechniken wird ein Paar aus einem privaten Schlüssel und einem öffentlichen Schlüssel verwendet, um Daten mittels eines der Schlüssel zu verschlüsseln und die Daten unter Anwendung des anderen Schlüssels zu entschlüsseln, wobei einer der Schlüssel öffentlich zugänglich ist. In symmetrischen Verschlüsselungstechniken wird ein einzigartiger Schlüssel sowohl für das Verschlüsseln als auch das Entschlüsseln von Daten verwendet, wobei Zugriff auf den einzigartigen Schlüssel auf die autorisierten Parteien zu beschränken ist. Obwohl diese Techniken eine erhöhte Integrität in der Datenkommunikation und der Datenspeicherung ermöglichen, bietet die eigentliche Konfiguration einer betrachteten Computerplattform dennoch die Möglichkeit für eine Vielzahl von Angriffen, insbesondere da viele Anwendungen, die zur Erhöhung der Computersicherheit gedacht sind, sich auf eine vertrauenswürdige Plattformkonfiguration verlassen.
  • Eine vertrauenswürdige Computerplattform kann als ein Computersystem betrachtet werden, in welchem der Hardwareaufbau sowie die Softwareanwendungen als in einem speziellen Zustand vorliegend erachtet werden. Eine sichere Plattformkonfiguration kann lediglich durch Einrichten einer „Kette” aus vertrauenswürdigen Plattformebenen erreicht werden, wobei jede weitere Ebene durch die vorhergehende Ebene nur dann initialisiert wird, wenn die Integrität der nachfolgenden Ebene verifiziert ist. Somit kann die Integrität auf Systemebene mittels einer Kette aus Integritätsverifizierungen aufrecht erhalten werden, wobei eine Wurzel der Kette aus den Verifizierungsschritten mit einem hohen Maß an Manipulationssicherheit bereitgestellt werden muss, um damit ein hohes Maß an Zutrauen im Hinblick auf die Integrität des Systems zu ermöglichen, nachdem die höchste Ebene, d. h. die Ebene der Nutzeranwendungen, initialisiert ist.
  • In einer typischen Computerplattform erfordert die Initialisierung des Systems diverse Grade an Abstraktion, beispielsweise im Hinblick auf das Initialisieren der zentralen Recheneinheit (CPU), das Initialisieren des Systemspeichers, der typischerweise außerhalb der CPU vorgesehen ist, das Einladen eines Betriebssystems in den Systemspeicher von einer externen Massenspeichereinrichtung und schließlich das Ausführen von Nutzeranwendungen. Somit ist es im Hinblick auf das Verbessern der Gesamtintegrität des Systems als Ganzes unter Umständen nicht ausreichend anzunehmen, dass die diversen Systemaktivitäten vor dem Einladen des Betriebssystems als sicher erachtet werden können, so dass man sich auf die Integrität des Betriebssystems und der Nutzeranwendung verlässt, da das Betriebssystem von einem „nicht vertrauenswürdigen” Prozess aufgerufen werden kann, wodurch die Möglichkeit geschaffen wird, die grundlegende Plattformkonfiguration durch Modifizieren der Hardware und der Softwarekomponenten zu manipulieren. Somit muss der Vorgang des Initialisierens der diversen Hardwarekomponenten des Computersystems, etwa des Systemspeichers, und das Ausführen der Befehle, die zum Initialisieren der höheren Systemebenen darin enthalten sind, was auch als Hochlaufen oder Booten bezeichnet wird, in die Kette aus Vertrauenswürdigkeit mit aufgenommen werden, um die gesamte Systemintegrität zu verbessern.
  • Eine typische Anlaufsequenz zum Initialisieren eines Computersystems nach dem Anlegen der Versorgungsspannung oder nach einem Rücksetzereignis bewirkt einen „Einschaltselbsttest” der CPU, wobei auch der Prozessor die Ausführung von Befehlen an einer speziellen Einsprungadresse beginnt, die durch den Rücksetzvektor des Prozessors vorgegeben ist. D. h., nach einem anfänglichen Prozessorselbsttest beginnt das Ausführen von Befehlen an dem Einsprungpunkt, der typischerweise eine Adresse einer Softwareroutine ist, die häufig als BIOS (Basis-Eingabe/Ausgabe-System) bezeichnet wird, die in einem speziellen externen nicht-flüchtigen Speicher der Computerplattform abgelegt ist. Unter der Steuerung des BIOS werden die verbleibenden Selbsttestroutinen ausgeführt und die Hardwarekonfiguration der Plattform wird bestimmt oder „gemessen”. Danach wird eine Suche nach einem gut fähigem Gerät ausgeführt, etwa einer Massenspeichereinrichtung, beispielsweise der Festplatte des Computersystems, einen Diskettenlaufwerk, einem CD-ROM-Laufwerk, einer Erweiterungskarte und dergleichen, von welchem aus ein primärer Hochlauf- bzw. Bootblock in dem Systemspeicher eingeladen wird, wobei die Steuerung dann ab dem primären Bootblock übergeben wird, der ein Betriebsystem in dem Systemspeicher einlädt.
  • Obwohl große Anstrengungen unternommen wurden um auch die Sicherheit des gesamten Initialisierungsprozesses zu verbessern, ist es schwierig, eine zuverlässige Kernwurzel an Vertrauenswürdigkeit für die Messung (CRTM) für den Initialisierungsprozess bereitzustellen, beispielsweise im Hinblick auf Plattformmodifizierungen, etwa das Austauschen des nicht-flüchtigen Speicherchips, der die BIOS-Software enthält, da das entsprechende Austauschen des Chips daher die Kette der Vertrauenswürdigkeit unterbrechen kann, wodurch auch alle nachfolgenden Verifizierungsschritte als nicht vertrauenswürdig erscheinen. Daher werden große Anstrengungen unternommen, um einen sicheren Boot- bzw. Initialisierungsmechanismus bereitzustellen, wobei jedoch häufig ein Vertrauenszentrum verwendet werden muss, wodurch erhebliche Ressourcen erforderlich sind, während die Flexibilität beim Aktualisieren der BIOS-Software verringert ist.
  • Im Hinblick auf die zuvor beschriebene Situation betrifft die vorliegende Offenbarung Einrichtungen und Verfahren zum Verbessern der Integrität von Computersystemen in Verbindung mit einer erhöhten Flexibilität für die Fähigkeit der BIOS-Aktualisierung, wobei eines oder mehrere der zuvor erkannten Probleme vermieden oder zumindest verringert werden.
  • Überblick über die Offenbarung
  • Im Allgemeinen betrifft die vorliegende Offenbarung Einrichtungen und Mechanismen zum Verbessern der Integrität von Computersystemen, indem eine statische Wurzel an Vertrauenswürdigkeit für die Plattformmessung eingerichtet wird, indem ein gewisser Datensatz vorgesehen wird, der ausführbare Befehle und Datenwerte enthält, wenn ein sicherer Initialisierungsmechanismus aktiviert wird, abgerufen werden mittels der zentralen Recheneinheit, ohne dass die Möglichkeit besteht, den Zugriff auf den speziellen Datensatz zu umgehen, so dass eine definierte Wurzel für die Initialisierung der Plattform erhalten wird. Der Datensatz wird so eingerichtet, dass ein höheres Niveau an Immunität gegenüber Angriffen gegenüber eine Manipulation erreicht wird. Während des Ausführens der Befehle, die in dem Datensatz enthalten sind, kann der Ablauf nicht geändert oder unterbrochen werden, wodurch ein hohes Maß an Integrität der Daten erreicht wird, die somit als ein dem Booten bzw. Initialisieren vorgeordneter Satz an Befehlen und Datenwerten betrachtet werden können. Da die Bearbeitung der Befehle der Vorinitialisierungs- bzw. Vorbootdaten beim Einschalten des betrachteten Systems zwingend erforderlich ist, wird eine Kette aus vertrauenswürdiger Software begonnen, wodurch ein hohes Maß an Systemintegrität erreicht wird, da der spezielle Zustand der Vor-Initialisierungsdaten die statische Kernwurzel für die Kette nachfolgender Verifizierungsschritte repräsentiert. Gemäß den hierin offenbarten Prinzipien wird ebenfalls ein Verschlüsselungsschlüssel in dem internen nicht-flüchtigen Speicher gespeichert, auf dem während der Vor-Initialisierungsphase auf der Grundlage des sicheren Befehlssatzes zugegriffen wird, um die Integrität zumindest eines Teils von signierten Initialisierungsdaten zu verifizieren, deren Signatur auch auf der Grundlage des in dem nicht-flüchtigen Speicher enthaltenen Verschlüsselungsschlüssels erzeugt wird. Somit können vor dem eigentlichen Initialisieren des Systemsspeichers die Initialisierungsdaten oder Bootdaten oder zumindest ein Teil davon verifiziert werden, indem eine Signatur der Bootdaten bestimmt wird und die aktuell bestimmte Signatur mit der gespeicherten Signatur der Bootdaten verglichen wird. Folglich kann unter Anwendung eines einzigartigen symmetrischen Verschlüsselungsschlüssels für eine beliebige gewünschte Plattform ein höheres Niveau erreicht werden und auch das BIOS ist nicht mehr austauschbar. Dies kann erreicht werden, ohne dass ein Vertrauenszentrum beteiligt ist und es werden allgemein Angriffe vermieden, die eine Vielzahl von Computerplattformen betreffen, wobei gleichzeitig ein skalierbarer Grad an Sicherheit bereitgestellt wird, wobei die „Multiplizität”, mit der der einzigartigen symmetrischen Verschlüsselungsschlüssel verwendet wird, die „Körnung bzw. Auflösung” des Grades an Sicherheit bestimmt. In einigen anschaulichen hierin offenbarten Aspekten wird der einzigartige Verschlüsselungsschlüssel, der in dem nicht flüchtigen internen Speicher abgelegt ist, auch zum Erzeugen einer Signatur zum Aktualisieren des System-BIOS verwendet, wodurch die Gesamtflexibilität des vertrauenswürdigen Plattformmechanismus, wie er hierin offenbart ist, noch weiter erhöht wird. Da der Vorbootdatensatz und der einzigartige symmetrische Verschlüsselungsschlüssel in einem nicht-flüchtigen internen Speicher bewahrt werden, beispielsweise in CPU-Kern selbst, wird ein hohes Maß an Integrität des Verschlüsselungsschlüssels erreicht, wobei Angriffe, beispielsweise im Hinblick auf das Austauschen von BIOS-Chips und dergleichen im Wesentlichen vermieden werden.
  • Ein anschauliches hierin offenbartes Verfahren betrifft das Initialisieren bzw. Booten eines Computersystems. Das Verfahren umfasst beim Einschalten oder bei einem Rücksetzereignis das Ausführen von Befehlen, die in einem internen nicht-flüchtigen Speicherbereich einer zentralen Recheneinheit gespeichert sind, wobei der interne nicht-flüchtige Speicherbereich einen Verschlüsselungsschlüssel enthält. Das Verfahren umfasst ferner das Bestimmen einer aktuellen Signal zumindest eines signierten Bereichs von Bootdaten, wobei der signierte Bereich von Bootdaten eine gespeicherte Signatur des Teils der Bootdaten betrifft, wobei die gespeicherte Signatur durch Anwenden des Verschlüsselungsschlüssels erzeugt ist. Das Verfahren umfasst ferner das Ausführen von Bootbefehlen, die in dem signierten Teil der Bootdaten enthalten sind, wenn die aktuelle Signatur und die gespeicherte Signatur identisch sind.
  • Ein weiteres anschauliches hierin offenbartes Verfahren betrifft das Booten bzw. Initialisierens eines Computersystems. Das Verfahren umfasst beim Einschalten oder beim Auftreten eines Rücksetzereignisses das Zugreifen auf einen internen nicht-flüchtigen Speicher einer zentralen Recheneinheit, wobei der interne nicht-flüchtige Speicher Vor-Boot- bzw. Vor-Initialisierungsbefehle und Datenwerte zum Initialisieren eines internen flüchtigen Speichers der zentralen Recheneinheit und zum Verifizieren der Integrität zumindest eines Teil der Bootbefehle und er Bootdatenwerte aufweist. Das Verfahren umfasst ferner das Einladen zumindest eines Teils der Bootbefehle und Bootdatenwerte aus dem nicht-flüchtigen Speicher in den internen nicht-flüchtigen Speicher durch Ausführen der Vor-Boot-Befehle. Des weiteren umfasst das Verfahren das Verifizieren einer Integrität zumindest des Teils der Bootbefehle und der Bootdatenwerte durch Verwenden eines Verschlüsselungsschlüssels, der in dem internen nicht-flüchtigen Speicher abgelegt ist und Verwenden einer Signatur, die mit dem mindestens einen Teil der Bootbefehle und Bootdatenwerte verknüpft ist, wobei die Signatur auf der Grundlage des Verschlüsselungsschlüssels gebildet ist. Des weiteren umfasst das Verfahren das Bestimmen, ob eine Aktualisierungsversion der Bootbefehle und Bootdatenwerte verfügbar ist, wenn die Integrität des mindestens einen Teils der Bootbefehle und Bootdatenwerte erfolgreich verifiziert ist. Schließlich umfasst das Verfahren das Erzeugen einer Signatur der aktualisierten Version unter Verwendung des Verschlüsselungsschlüssels, wenn eine aktualisierte Version verfügbar ist.
  • Eine anschauliche hierin offenbarte zentrale Recheneinheit (CPU) umfasst ein Substrat mit darauf ausgebildeten Schaltungselementen, die einen CPU-Kern, einen flüchtigen Speicher mit wahlfreiem Zugriff, einen nicht-flüchtigen Speicher und ein Bussystem zum Verbinden des CPU-Kerns, des flüchtigen Speichers mit wahlfreiem Zugriff und des nicht-flüchtigen Speichers bilden. Die CPU umfasst ferner ein Vorinitialisierungsinformation, die in dem nicht-flüchtigen Speicher abgelegt ist, wobei die Vorinitialisierungsinformation Befehle enthält, die von dem CPU-Kern ausführbar sind, der auch einen symmetrischen Verschlüsselungsschlüssel enthält, um zumindest einen Teil einer Bootmaschine zu verifizieren, die durch Anwenden des symmetrischen Verschlüsselschlüssel signiert ist.
  • Ein anschauliches hierin offenbartes Computersystem umfasst eine zentrale Recheneinheit, wie sie zuvor angegeben ist, und einen nicht-flüchtigen Bootspeicher, der ausgebildet ist, zumindest eine erste Bootroutine und eine zweite Bootroutine zu halten.
  • Kurze Beschreibung der Zeichnungen
  • Weitere Ausführungsformen der vorliegenden Offenbarung sind in den angefügten Patentansprüchen definiert und gehen deutlicher aus der folgenden detaillierten Beschreibung hervor, wenn diese mit Bezug zu den begleitenden Zeichnungen studiert wird, in denen:
  • 1a schematisch eine zentrale Recheneinheit (CPU) mit einem Speicher mit wahlfreiem Zugriff (Cache), einem CPU-Kern und einem nicht-flüchtigen Speicher mit Vorinitialisierungsinformation und einem symmetrischen Verschlüsselungsschlüssel gemäß anschaulicher Ausführungsformen zeigt;
  • 1b schematisch ein Computersystem mit einer CPU mit einer Vorinitialisierungsinformation und einem Verschlüsselungsschlüssel gemäß noch weiterer anschaulicher Ausführungsformen darstellt;
  • 1c schematisch einen Prozess zum Verifizieren eines Teils von BIOS-Daten zeigt, die auch als Anfangs-BIOS-Lade-Routine (IBL) bezeichnet wird, auf der Grundlage eines symmetrischen Verschlüsselungsmechanismus gemäß anschaulicher Ausführungsformen;
  • 1d schematisch ein Flussdiagramm für ein Verfahren zum Verifizieren der Integrität von Bootdatenbefehlen gemäß noch weiterer anschaulicher Ausführungsformen zeigt;
  • 1e schematisch ein Flussdiagramm eines Verfahrens zum Verifizieren der Integrität von BIOS-Daten und zum Erzeugen einer Signatur für eine Aktualisierungsversion von BIOS-Daten gemäß noch weiterer anschaulicher Ausführungsformen zeigt; und
  • 1f und 1g schematisch Flussdiagramme Verfahren zum Ausführen der Verifizierung der BIOS-Integrität und zum Aktualisieren der BIOS-Daten gemäß noch weiterer anschaulicher Ausführungsformen darstellen.
  • Detaillierte Beschreibung
  • Obwohl die vorliegende Offenbarung mit Bezug zu den Ausführungsformen beschrieben ist, wie sie in der folgenden detaillierten Beschreibung sowie in den Zeichnungen dargestellt sind, sollte beachtet werden, dass die folgende detaillierte Beschreibung sowie die Zeichnungen nicht beabsichtigen, die vorliegende Offenbarung auf die speziellen anschaulichen offenbarten Ausführungsformen einzuschränken, sondern die beschriebenen anschaulichen Ausführungsformen stellen lediglich beispielhaft die diversen Aspekte der vorliegenden Offenbarung dar, deren Schutzbereich durch die angefügten Patentansprüche definiert ist.
  • Im Allgemeinen stellt die vorliegende Offenbarung ein System und einen Mechanismus zum Ausführen von Befehlen während des Hochlaufens oder während des Rücksetzens oder während einem anderen Funktionszustand, der eine Initialisierung des Systems erfordert, wobei die Befehle in einen Speicherbereich abgelegt sind, auf dem nach dem Beenden einer Verifizierungsphase zumindest eines Teils von Bootbefehlen nicht mehr zugegriffen werden kann. Zu diesem Zweck beruht der Verifizierungsprozess auf einem symmetrischen Verschlüsselungsschlüssel, der ebenfalls in einem Speicherbereich abgelegt ist, der im Hinblick auf einen beliebigen Funktionszustand der CPU mit Ausnahme des Initialisierens und mit Ausnahme von Rücksetzereignissen verriegelt werden kann. Beispielsweise können die Befehle und der symmetrische Verschlüsselungsschlüssel in einem nicht-flüchtigen Speicher gespeichert sein, der einen Teil einer zentralen Recheneinheit bildet, wodurch die Möglichkeit des Manipulierens der in dem nicht-flüchtigen Speicher enthaltenen Daten deutlich reduziert wird. Folglich kann der Inhalt des nicht-flüchtigen Speichers als eine statische Wurzel der Vertrauenswürdigkeit für das Messen bzw. Bestimmen während der Initialisierung der CPU und des gesamten Computersystems verwendet werden, indem sichergestellt wird, dass beim Einschalten oder beim Rücksetzen der CPU der erste Befehl aus dem nicht-flüchtigen Speicher abgeholt wird. Somit kann der darin enthaltene Datensatz als eine Vorboot- oder Vor-BIOS-Komponente dienen, die die Initialisierung weiterer Systemkomponenten ermöglicht, etwa eines internen Speichers mit wahlfreiem Zugriff, der zum Speichern von Operationsdaten die variablen und Stapeldaten und Befehlen für das Ausführen eines Teils der BIOS-Software dient. Beispielsweise können der Datencache-Speicher als Teil des Speicherbereichs mit wahlfreiem Zugriff und ein Befehlscache-Speicher durch die Vorinitialisierungsdaten des internen nicht-flüchtigen Speichers initialisiert werden, wodurch im Wesentlichen die Möglichkeit keines externen Zugriffs auf darin enthaltene Daten während des Initialisierungsvorgangs vermieden wird. D. h., der Speicherbereich mit wahlfreiem Zugriff, d. h. der Datencache-Speicher und der Befehlscache-Speicher sind CPU-interne Komponenten, so dass eine unerwünschte Manipulation davon sehr schwierig ist, insbesondere da der externe Systemspeicher noch nicht initialisiert ist, solange zumindest ein Teil der BIOS-Software nicht verifiziert ist. Abhängig von der Speicherkapazität des Speichers mit wahlfreiem Zugriff kann die BIOS-Routine in zwei oder mehr Teile aufgeteilt werden, so dass die Verifizierung einer oder mehrerer Signaturen im Hinblick auf die BIOS-Integrität in dem Speicher mit wahlfreiem Zugriff für einen ersten Teil ausgeführt wird, der so gestaltet ist, dass eine Größe in dem Cache-Speicher passt. Somit kann dieser Teil der Boot-Information nach der Verifizierung auf der Grundlage des symmetrischen Verschlüsselungsschlüssels beispielsweise direkt aus dem Speicher mit wahlfreiem Zugriff heraus ausgeführt werden, wodurch eine Manipulierung des Verifizierens des ersten Bereichs der Bootbefehle im Wesentlichen vermieden wird. Somit kann nach der Verifizierung der Signatur des ersten Bereichs durch Anwenden des gespeicherten symmetrischen Schlüssels die Ablaufsteuerung auf dem verifizierten Bereich übertragen werden und der weitere Initialisierungsprozess kann fortgesetzt werden, indem der Systemspeicher initialisiert und die verbleibende Initialisierungsinformation kopiert wird, wobei auch die Integrität der weiteren Initialisierungsinformation beispielsweise auf der Grundlage von Prüfsummenalgorithmen verifiziert werden kann, wobei jedoch das Erzeugen einer Signatur nicht erforderlich ist auf Grund der Kette der Vertrauenswürdigkeit, die durch die vorhergehende Verifizierung auf der Grundlage einer Signatur und des gespeicherten symmetrischen Verschlüsselungsschlüssels erzeugt wird. Folglich können die Daten, d. h. die Befehle und die Datenwerte einschließlich des symmetrischen Verschlüsselungsschlüssels, die in dem nicht-flüchtigen internen Speicherbereich als integraler Teil der CPU enthalten sind, als eine statische Kernwurzel der Vertrauenswürdigkeit für die Plattformessung verwendet werden, wodurch eine Computerplattform bereitgestellt wird, in der eine Systemhardware und Softwarekonfiguration realisiert werden kann mit hoher Manipulationsimmunität. Insbesondere im Hinblick auf Angriffe, etwa das Austauschen des BIOS-Chips, bieten die Mechanismen der hierin offenbarten Ausführungsformen eine erhöhte Sicherheit für typische praktische Anwendungen, die die Plattform im Zusammenhang mit finanziellen Transaktionen oder Verwaltung digitaler Rechte verwenden, die auf Erfordernis einer vertrauenswürdigen Computerplattform basieren. Des weiteren ermöglicht die Verwendung eines symmetrischen Verschlüsselungsschlüssels Sicherheit der Notwendigkeit eines Vertrauenszentrums zur Handhabung von privaten und öffentlichen Schlüsseln, wie dies bei asymmetrischen Verschlüsselungstechniken der Fall ist, wodurch die Gesamtkomplexität deutlich verringert wird. Gleichzeitig kann das gewünschte Maß an Sicherheit festgelegt werden, indem die Verwendung des einzigartigen Verschlüsselungsschlüssels auf eine spezielle Art einer zentralen Recheneinheit beschränkt wird, so dass Manipulationen oder der Verlust der Geheimhaltung für den einen einzigartigen Verschlüsselungsschlüssel keine anderen CPU's beeinflusst, die auf der Grundlage eines unterschiedlichen einzigartigen Verschlüsselungsschlüssels hergestellt sind. Des weiteren bieten hierin offenbarte anschauliche Ausführungsformen eine effiziente Technik zum Aktualisieren der BIOS- Software unter Anwendung des gespeicherten Schlüssels zum Erzeugen einer entsprechenden Signatur, die dann der aktualisierten Version der BIOS-Software hinzugefügt werden kann, und die dann beim Initialisieren des Computersystems auf der Grundlage der neu erzeugten Signatur und des gespeicherten Schlüssels verifiziert werden kann.
  • Mit Bezug zu den begleitenden Zeichnungen werden nunmehr weitere anschauliche Ausführungsformen detaillierter beschrieben.
  • 1a zeigt schematisch eine zentrale Recheneinheit (CPU) 100 gemäß anschaulicher Ausführungsformen, in denen eine Kernwurzel der Vertrauenswürdigkeit für die Plattformmessung (CRTM) mit einem hohen Maß an Immunität gegen Manipulation eingerichtet werden kann. Die CPU 100 umfasst einen CPU-Kern 102, der Komponenten für die Datenverarbeitung, etwa zum Ausführen arithmetischer Operationen, logischer Operationen, und dergleichen aufweist. Der CPU-Kern 102 ist funktionsmäßig mit einem Speicher mit wahlfreiem Zugriff 101 verbunden, der mehrere statische RAM-Zellen und dergleichen aufweist, wie dies der Gesamtkonfiguration der CPU 100 entspricht. In einer anschaulichen Ausführungsform umfasst der RAM 101 einen ersten Speicherbereich, der als Datencache-Speicher 101a angegeben ist, und einen zweiten Bereich, der als Befehlscache-Speicher 101b angegeben ist. Beispielsweise ist der RAM 101 mittels einer schnellen Speichertechnologie hergestellt, um damit das Gesamtleistungsverhalten der CPU 100 zu verbessern, wie dies typischerweise in anspruchsvollen Anwendungen erforderlich ist. Es sollte jedoch beachtet werden, dass eine beliebig geeignete Speichertechnologie für den Speicher 101 verwendet werden kann, sofern eine direkte Steuerung des Speichers 101 über den CPU-Kern 102 gewährleistet ist, ohne dass die Möglichkeit eines externen Zugriffs während des Initialisierens der CPU 100 möglich ist. Die CPU 100 umfasst ferner einen nicht-flüchtigen Speicher 103, der in einer geeigneten Speichertechnologie vorgesehen wird, beispielsweise in Form eines Flash-Speichers oder mittels einer Nur-Lese-Speichertechnik, die keinen externen Zugriff zum Modifizieren des Inhalts des Speichers 103 ermöglicht. Somit kann der Speicher 103 als ein sicherer Speicherbereich betrachtet werden, dessen Inhalt daher eine statische Wurzel der Vertrauenswürdigkeit repräsentiert. Zu diesem Zweck ist ein Satz aus Daten 103a vorgesehen, die als Befehle, die von dem CPU-Kern 102 ausführbar sind, und als Datenwerte, die Operanden und dergleichen der Befehle repräsentieren, verstanden werden, wobei dies zumindest in einem Teil des Speichers 103 enthalten sind, der nicht mit neuen Daten überschrieben werden kann, sobald der entsprechende Bereich des Speichers 103 programmiert ist. Des weiteren enthält der Speicher 103 einen symmetrischen Verschlüsselungsschlüssel 103b, der auch zum Signieren eines Teils einer Bootinformation verwendet werden kann, die anfänglich zum Initialisieren eines Computersystems mit der CPU 100 verwendet wird. Es sollte beachtet werden, dass der Speicher 103 nicht notwendigerweise einen zusammenhängenden Speicherbereich repräsentiert, wovon ein Teil den Datensatz 103 enthält und wovon ein Teil den Schlüssel 103b enthält, sondern der Speicher kann auch in einer beliebigen Weise eingerichtet werden, beispielsweise als im Wesentlichen in unabhängige Komponenten der CPU 100, solange ein externer Zugriff auf den Datensatz 103a und den Verschlüsselungsschlüssel 103b nach einer gewissen Phase des Initialisierungsprozesses vermieden wird. Des weiteren umfasst die CPU 100 einen Verriegelungsmechanismus 105, der so ausgebildet ist, dass ein Zugriff durch den CPU-Kern 102 auf den Speicher 103 oder zumindest auf den Schlüssel 103d nur beim Einschalten oder bei einem Rücksetzereignis möglich ist, während der Speicher 103 verriegelt werden kann, durch einen entsprechenden Befehl an den Verriegelungsmechanismus 105 während des Bootvorganges nach dem Verifizieren zumindest eines Teil der Bootinformation. Beispielsweise enthält der Verriegelungsmechanismus 105 eine Schaltung zum Abschalten der Versorgungsenergie für den Speicher 103 und auch für den Mechanismus 105 selbst, wodurch der Mechanismus 105 und auch der Speicher 103 nicht mehr reagieren auf Zugriffe, die nach einer Anforderung zum „Verriegeln” des Speichers 103 oder zumindest eines Teils davon, der den symmetrischen Verschlüsselungsschlüssel 103b enthält, ausgeführt werden. Andererseits kann das Aktivieren des Speichers 103, beispielsweise beim Zuführen von Energie zum Verriegelungsmechanismus 105, mit einem Einschalten oder mit einem Rücksetzereignis verknüpft sein. Es sollte jedoch beachtet werden, dass der Verriegelungsmechanismus 105 eine beliebige andere Konfiguration besitzen kann, in der ein externer Zugriff auf den Schlüssel 103b auf einem Betriebsstatus der CPU 100 beschränkt ist, in welchem nach einem Rücksetzen oder einem Einschalten einer entsprechende Befehl zum Verriegeln des Schlüssels 103 noch nicht ausgeführt ist.
  • Die internen Komponenten der CPU 100, d. h. der Speicher 103, der CPU-Kern 102, der interne RAM 101 und der Verriegelungsmechanismus 105 sind mittels eines Bussystems 104 verbunden, so dass beim Einschalten oder bei einem Rücksetzen ein Sprung zu einer spezifizierten Adresse des Speichers 103 ausgeführt wird. Folglich ist eine „fest verdrahtete” Zieladresse für einen Rücksetzvektor des CPU-Kerns 102 vorgesehen, der sicherstellt, dass die Ausführung der Befehle aus dem Speicher 103 heraus, zumindest beim Einschalten oder beim Rücksetzen, erfolgt.
  • Es sollte beachtet werden, dass die CPU 100 auf der Grundlage moderner Halbleiterfertigungstechniken hergestellt werden kann, in denen ein geeignetes Trägermaterial, etwa ein Halbleitersubstrat und dergleichen, mehrere Schaltungselemente aufnimmt, die auf Basis einer betrachteten Technologie hergestellt werden, etwa mittels CMOS-Prozessen und dergleichen, in welchem Transistorelemente, Kondensatoren, Widerstände und dergleichen gemäß einer speziellen Bauteilarchitektur für die CPU 100 hergestellt werden. In den hierin dargestellten Ausführungsformen werden daher die diversen Komponenten der CPU 100 auf einem gemeinsamen Substrat während eines gemeinsamen Fertigungsablaufs hergestellt, wodurch der Speicher 101 und der Speicher 103 als interne oder integrale Komponenten des Bauelements 100 bereitgestellt werden. Beispielsweise sind entsprechende Fertigungstechniken gut etabliert, in denen flüchtige und schnelle Speicherzellen zusammen mit nicht-flüchtigen Speicherzellen und Hochleistungslogikgattern hergestellt wird, wie dies in dem CPU-Kern 102 erforderlich ist. Ferner werden geeignete Mechanismen vorgesehen, so dass nach dem Programmieren des Speichers 103 oder zumindest eines Teils davon, der den Datensatz 103a und den symmetrischen einzigartigen Schlüssel 103b enthält, ein weiterer Zugriff verhindert wird, um damit eine geschützte Umgebung für den Datensatz 103a und den Schlüssel 103b zu schaffen.
  • 1b zeigt schematisch ein Computersystem 150 mit der CPU 100, die für die geschützte Umgebung für den Datensatz 103a und den Verschlüsselungsschlüssel 103b sorgt, wie dies zuvor erläutert ist, wobei in der gezeigten Ausführungsform die CPU 100 einen Speicher mit wahlfreiem Zugriff 101 in Form eines Datencache-Speichers 101a und des Befehlscache-Speichers 101b aufweist, die eine Größe von beispielsweise 64 kBytes aufweisen, um damit einen Teil der Bootinformation aufzunehmen und als ein „System-RAM” zu dienen, wenn Befehle des Datensatzes 103a ausgeführt werden In ähnlicher Weise wird der Befehlscache-Speicher 101b mit der Größen von 64 kByte vorgesehen, wobei zu beachten ist, dass auch eine andere geeignete Speichergröße verwendet werden kann, die mit der Große eines entsprechenden Bereichs der Bootinformation kompatibel ist, die aus dem Speicher 101 heraus während eines Verifizierungsprozesses ausgeführt wird. Auch der interne nicht-flüchtige Speicher 103 kann mit einer geeigneten Größe und Konfiguration vorgesehen werden, so dass diese mit den Erfordernissen für die Daten 103a und den symmetrischen Schlüssel 103b verträglich sind. Beispielsweise umfasst der Datensatz 103a Befehle und Datenwerte, die eine sichere Einladeroutine zum Einladen eines entsprechenden Teils einer Bootinformation in dem internen Speicher 101 zum Ausführen eines Verifizierungsprozesses repräsentieren.
  • Das Computersystem 150 umfasst ferner einen Systemspeicher 110, beispielsweise in Form eines beliebigen geeigneten Speichers mit Speicherzellen mit wahlfreiem Zugriff, etwa dynamische RAM-Zellen und dergleichen. Die Größe des Systemspeichers 110 ist auf die Erfordernisse des Systems 150 im Hinblick auf Leistung und Speicherkapazität angepasst. Das System 150 umfasst ferner einen nicht-flüchtigen Speicher 121, etwa einen Flash-Speicher und dergleichen, der Information enthalten kann, die auch als BIOS-Information bezeichnet wird, wovon zumindest ein Teil ein signierter Bereich ist, d. h. ein signierter Bereich umfasst eine Signatur, die auf der Grundlage eines geeigneten Prüfsummenalgorithmus in Verbindung mit einem Verschlüsselungsmechanismus unter Anwendung des symmetrischen Verschlüsselungsschlüssels 103b erhalten wird, der in dem Speicher 103 abgelegt ist. In einer anschaulichen Ausführungsform enthält der nicht-flüchtige Speicher 120 die Bootinformation, die in zwei Bereiche aufgeteilt ist, wobei ein erster Bereich Daten und Befehle zum Initialisieren anderer Systemkomponenten aufweist, etwa den Systemspeicher 110 zum Aufnehmen des zweiten Bereichs an Bootinformation und zum Ausführen des zweiten Bereichs, sobald der erste Bereich auf der Grundlage der geschützten Umgebung, die durch die CPU 100 geschaffen wird, verifiziert ist. Der erste Bereich kann auch als Anfangsbootladeroutine (IBL) bezeichnet werden, die den signierten Bereich der Bootinformation, die in dem Speicher 120 enthalten ist, repräsentiert.
  • In einigen anschaulichen Ausführungsformen umfasst der nicht-flüchtige Speicher 120 einen ersten Bereich 120a, der eine erste BIOS-Version enthält, auf die beim Initialisieren des Systems 150 zugegriffen wird, und die als eine aktivierte Version an BIOS-Information, die in dem Speicher 120 enthalten ist, bezeichnet ist. Ferner ist ein zweiter Bereich 120b vorgesehen, der eine zweite BIOS-Version enthält, etwa eine aktualisierte Version, und die in dem nicht aktivierten Zustand vorliegt, wodurch eine Validierung und das Erzeugen einer Signatur auf der Grundlage des gespeicherten Schlüssels 103b während einer Initialisierungsphase erforderlich ist, wie dies nachfolgend detaillierter beschrieben ist. Folglich besitzt der Speicher 120 eine ausreichende Kapazität, um zumindest zwei BIOS-Versionen aufzunehmen, wodurch die Möglichkeit geschaffen wird, die BIOS-Information für das System 150 in effizienter Weise zu aktualisieren, wobei dennoch eine erhöhte Sicherheit für den Aktualisierungsprozess erreich wird, wie dies nachfolgend beschrieben ist.
  • Das Computersystem 150 umfasst ferner ein Schnittstellensystem 140, das ausgebildet ist, den Systemspeicher 110 und den nicht-flüchtigen Speicher 120 funktionsmäßig mit der CPU 100 zu verbinden. In einer anschaulichen Ausführungsform umfasst das System 150 ferner einen einmalprogrammierbaren Speicher 130, der plattformspezifische Informationen enthält, beispielsweise über Bootquellen und zugeordnete Parameter. Beispielsweise enthält, wie gezeigt ist, der einmalprogrammierbare Speicher 130 Informationen, die Bootoptionen betreffen, um damit der CPU 100 anzuzeigen, ob die Initialisierung aus dem internen Speicher 103 heraus oder nicht stattfindet. Beispielsweise sind Sicherheitsbits in dem Speicher 130 vorgesehen, die ein entsprechendes Bit enthalten, das bestimmt, von wo der erste Befehl von der CPU 100 nach einem Rücksetz abgeholt wird. Beispielsweise wird, wenn dieses Bit auf „1” gesetzt ist, das Ausführen an den internen Speicher 103 weitergeleitet, wodurch die sichere Initialisierung aktiviert wird. Es sollte beachtet werden, dass in anderen anschaulichen Ausführungsformen der einmalprogrammierbare Speicher 130 weggelassen wird oder so vorgesehen wird, dass er andere Informationen enthält, die die sichere Bootprozedur während der Entwicklung und tatsächliche Anwendung steuern.
  • 1c zeigt schematisch den Aufbau der Bootinformation 121, die in dem nicht-flüchtigen Speicher 120, beispielsweise in einem der Bereiche 120a, 120b als eine „aktivierte” Version der darin enthaltenen Bootinformation gespeichert ist. In der in 1c gezeigten Ausführungsform enthält die Bootinformation 121, die auch als BIOS bezeichnet wird, einen ersten Bereich 121a, der einen Datensatz repräsentiert, in welchem Befehle und Datenwerte mit einer Größe enthalten sind, wie dies verträglich ist mit der Größe des Speichers 101, wie dies zuvor erläutert ist. Beispielsweise ist für die zuvor angegebenen beispielhaften Werte von 64 Kb für jeweils die RAM-Bereiche 101a, 101b eine maximale Größe des Bereichs 121 auf ungefähr 32 Kb beschränkt. Es sollte jedoch beachtet werden, dass eine andere geeignete Größe für den Bereich 121a verwendet werden kann, wobei dies von dem verfügbaren Speicherplatz innerhalb des RAM's 101 abhängt. Es sollte ferner bedacht werden, das Bereitstellen des Bereichs 121a für Bootinformation 121 erforderlich ist, wie die Größe des Speichers 101 übersteigt, da typische Bootroutinen eine Größe von mehreren 100 Kb-Bytes und mehr aufweisen. In anderen Fällen, wenn ausreichend Speicherplatz in der CPU 100 verfügbar ist, die Bootinformation 121 als Ganzes während der sicheren Bootprozedur verwendet, wie dies nachfolgend detaillierter erläutert ist.
  • Wenn somit der Bereich 121a vorgesehen ist, wie dies in 1c gezeigt ist, dient dieser Bereich als eine Anfangs-BIOS-Lade-Routine (IBL) für einen zweiten Bereich 121b, wobei er erste Bereich 121a ebenfalls einen Prüfsummenwert enthält, der über dem Bereich 121b ermittelt wird. Der Prüfsummenwert für den Bereich 121b kann ebenfalls durch eine Signatur geschützt sein, die in dem Bereich 121a enthalten ist, wobei diese aus einem Prüfsummenwert ermittelt wird, der über den ersten Bereich 121a erzeugt wird, der mittels des Schlüssels 103b verschlüsselt ist. Somit wird eine Ermittlung des Prüfsummenwertes des zweiten Bereiches nicht mehr erforderlich. Die Signatur des Prüfsummenwertes für den Bereich 121a kann verwendet werden, um den Bereich 121a während eines sicheren Bootablaufs zu verifizieren. Der Bereich 121 kann daher in Befehlen enthalten sein, um erforderliche Plattforminitialisierungsaktionen auszuführen, etwa die Initialisierung einer Speichersteuerung 141 und dergleichen, woran sich das Übertragen des Bereichs 121b aus dem Speicher 120, d. h. von einem der Bereiche 120a, 120b, in den initialisierten Systemspeicher 110 anschließt. Somit können nach dem Speichern des Bereichs 121a, 121b die entsprechenden Prüfsummenwerte erzeugt dem Bereich 121a hinzugefügt werden, der dann für die Anfangsversion der BIOS-Information 121 durch eine Version des symmetrischen Schlüssels 103b verschlüsselt wird. Die entsprechende Signatur, die durch Anwenden des Schlüssels 103b erhalten wird, kann dem Bereich 121a hinzugefügt werden, wie dies auf der rechten Seite der 1c gezeigt ist.
  • 1d zeigt schematisch eine Sequenz zum Verifizieren der Signatur 121s, die in dem Bereich 121a enthalten ist, was auf der Grundlage des Datensatzes 103a und des Schlüssels 103b während des Einschaltens oder des Rücksetzens des Systems 150 ausgeführt werden kann. Die Verifizierung kann auf der Grundlage eines geeigneten Verschlüsselungsalgorithmus bewerkstelligt werden, was unter Anwendung des symmetrischen Schlüssels 103b erfolgt, wobei der anfänglich erzeugte Prüfsummenwert, etwa Prüfsumme Null, über den Bereich 121a erhalten wird, der entsprechende Prüfsummenwerte für den Bereich 121b enthält, zum Erzeugen der Signatur 121s durch Anwenden des Schlüssels 103b verwendet wird. Der anfänglich erzeugte Prüfsummenwert für den Bereich 121a wird dann mit einem entsprechenden Prüfsummenwert verglichen, der durch Anwenden des geeigneten Prüfsummenalgorithmus über den Bereich 121a ermittelt wird, der in den RAM-Speicher 101 kopiert ist. Der Bereich 121a wird als verifiziert betrachtet, wenn eine Signatur, die durch Anwenden des Schlüssels 103b auf einen berechneten Prüfsummenwert, mit der Signatur 121s, die in dem Bereich 121a enthalten ist, übereinstimmt.
  • Im Hinblick auf das Einrichten des Systems 150 als eine sichere Plattform ist eine statische Wurzel der Vertrauenswürdigkeit einzurichten, um damit ein sicheres Hochlaufen eines Betriebssystems nach dem Einschalten oder nach dem Zurücksetzen des Computersystems 150 zu ermöglichen. Zu diesem Zweck wird ein definiertes Ausführen vertrauenswürdigen BIOS-Information 121 erreicht, indem zumindest der Bereich 121a auf der Grundlage des vertrauenswürdigen Datensatzes 130a und des Schlüssels 103b verifiziert wird, die im Wesentlichen gegenüber einer externen Manipulation immun sind. Somit wird bei jedem Aktivieren des Systems 150 unter Anwendung eines sicheren Initialisierungsprozesses Integrität des gesamten Bootvorganges ermöglicht und die vertrauenswürdige Initialisierung eines Betriebssystems wird erreicht, das wiederum zum Ausführen sicherheitssensitiver Anwendungen verwendet wird. Wenn andererseits die Integritätsprüfung nicht bestanden wird, beispielsweise während des Verifizierens der Bereiche 121a oder 121b, wird eine geeignete Strategie angewendet, beispielsweise wird der Initialisierungsprozess beendet oder von dem System 150 bereitgestellte Dienste werden beschränkt. Somit kann die hierin offenbarte sichere Bootarchitektur gegenüber „umfassenden Manipulationen” schützen, die als Angriffe verstanden werden, die gegen jedes Exemplar eines gegebenen Sicherheitssystems wirksam sind. Beispielsweise kann eine Software, die durch eine externe Quelle erzeugt wird, als ein umfassendes Manipulationssoftwareelement betrachtet werden, das einfach installiert werden kann und eine Umgehung und Sicherheitsmaßnahmen ermöglicht, wodurch eine nicht autorisierte Verwendung der Plattform ermöglicht wird. In der Verwaltung von digitalen Rechten (DRM) und entsprechenden Umgebungen liegt eine umfassende Manipulation bereits vor, wenn die durch DRM geschützte Datei ein mal unautorisiert geöffnet wird, wodurch eine Neuverteilung der ungeschützten Datei möglich ist. Somit bieten die hierin offenbarten Mechanismen und Systeme eine erhöhte Sicherheit im Hinblick auf umfassende Manipulationen, da eine geschützte Umgebung auf der Grundlage eines integralen Teils innerhalb der CPU selbst erhalten wird, wodurch eine Manipulation der CPU selbst erforderlich wäre, und wobei beispielsweise das Offenlegen des Schlüssels 103b lediglich entsprechende CPU's betrifft, in denen diese Version des Schlüssels 103 während des Herstellungsprozesses eingebaut wurde, während andere Produkte, die auf Basis eines anderen Schlüssels hergestellt werden, weiterhin eine sichere Plattform bieten.
  • Im Schritt 161 wird das System zurückgesetzt oder eingeschaltet oder es tritt ein anderes Ereignis auf, das eine sichere Initialisierung erfordert. Folglich wird ein geeigneter Selbsttest von dem CPU-Kern 102 ausgeführt und entsprechende Komponenten, etwa Register und dergleichen, werden initialisiert. Es sollte beachtet werden, dass in einigen Ausführungsformen eine sichere Initialisierung nicht in einem Betriebszustand aktiviert wird, in welchem das Betriebssystem die Steuerung über das System 150 behält. Im Schritt 162 wird der erste Befehl von dem internen nicht-flüchtigen Speicher 103 abgeholt, was erreicht werden kann, indem der interne Speicher 103 auf die entsprechende Rücksetzvektoradresse abgebildet wird. Folglich beginnt die CPU 100 die Abarbeitung auf der Grundlage des sicheren Datensatzes 103a in allen Fällen, in denen ein Sprung auf den Rücksetzvektor durch ein externes Ereignis veranlasst wird. Im Schritt 163 wird der interne Speicher mit wahlfreiem Zugriff 101 auf Grund des Ausführens der in dem Datensatz 103a enthaltenen Befehle initialisiert. Im Schritt 164 wird zumindest ein Teil der Boot-Information 121, beispielsweise der Bereich 121a mit der Signatur 121f in den internen Speicher mit wahlfreiem Zugriff 101 eingeladen. Wie zuvor erläutert ist, wurde die Signatur 121s erzeugt, indem der symmetrische Schlüssel 103b angewendet wurde. Im Schritt 165 wird eine Signatur der Bootdaten in dem Speicher 101, beispielsweise in dem Bereich 121a, erzeugt, indem beispielsweise ein entsprechender Prüfsummenwert berechnet wird, wie dies zuvor erläutert ist, und indem der Schlüssel 103b durch Zugreifen auf den Speicher 103 angewendet wird.
  • Im Schritt 166 wird die aktuell berechnete Signatur mit der Signatur 121s verglichen und wenn beide Werte übereinstimmen, geht der Prozessablauf zum Schritt 167 weiter, in welchem der Bootprozess fortgesetzt wird, indem beispielsweise der Systemspeicher initialisiert wird und der Rest der Bootinformation 121 verifiziert wird. In der Verifizierungsphase im Schritt 166 wird der Verschlüsselungsschlüssel 103b im Schritt 168 verriegelt, indem beispielsweise ein entsprechender Teil des Speichers 103 mittels des Verriegelungsmechanismus 105 deaktiviert wird, wie dies zuvor erläutert ist. Als nächstes wird im Schritt 169 der Bootvorgang beendet, wobei etwa eine Angabe enthalten sein kann, dass eine unzulässige BIOS-Information 121 in dem internen Speicher 120 vorhanden ist.
  • 1i zeigt schematisch eine Sequenz aus Schritten zum Fortsetzen des Bootprozesses nach dem Schritt 167 in 1d. Im Schritt 167a wird der Systemspeicher 110 initialisiert und im Schritt 167b wird die BIOS-Information 121 oder zumindest der Teil 121b in den Systemspeicher 110 eingeladen. Im Schritt 167c wird die BIOS-Information 121 oder zumindest der Bereich 121b in dem Systemspeicher 110 verifiziert, beispielsweise durch Berechnen eines oder mehrerer entsprechender Prüfsummenwerte und Vergleichen der Werte mit den jeweiligen Prüfsummenwerten, die in dem Bereich 121a enthalten sind, der im Schritt 166 aus 1d verifiziert wurde. Im Schritt 167d verzweigt der Prozessablauf in den Schritt 167e, wenn der verbleibende Bereich der Bootinformation nicht verifiziert ist, oder in den Schritt 167f, wobei der Bootprozess fortgesetzt wird, indem beispielsweise das Betriebssystems eingeladen wird, wie dies zuvor erläutert ist.
  • In der zuvor beschriebenen Ausführungsform führt vor dem Übergeben des Ausführens an die Bootinformation 121 oder dem Bereich 121a der sichere Bootprozess, d. h. der durch die Schritte 161 bis 166 repräsentierte Prozessablauf, keine Rücksetzprozeduren an Komponenten des Systems 150 aus, wodurch eine zuverlässige „Messung” der Hardwarekonfiguration des Systems 150 ermöglicht wird.
  • 1f zeigt schematisch ein Flussdiagramm, das die Funktionsweise des Systems 150 repräsentiert, wenn eine Aktualisierung einer BIOS-Information möglich ist.
  • Im Schritt 171 tritt ein Rücksetzereignis, etwa ein Einschalten auf und der Prozessablauf geht zum Schritt 172 weiter, in welchem bestimmt wird, ob die sichere Bootprozedur aktiviert ist oder nicht. Wenn die sichere Bootprozedur nicht aktiviert ist, was vorteilhaft sein kann während des Testens und der Fehlersuche in dem System 150, wird ein alternativer Prozessablauf initiiert. Wenn die sichere Bootprozedur aktiviert ist, geht der Prozessablauf zum Schritt 173 weiter, in welchem die Ausführung der Befehle begonnen wird, indem auf dem nicht-flüchtigen internen Speicher 103 zugegriffen wird und Befehle des Satzes 103a ausgeführt werden, wie dies auch zuvor erläutert ist. Im Schritt 174 wird die Integrität zumindest eines Teils der Bootinformation, etwa des Bereichs 121a, geprüft, beispielsweise in der gleichen Weise, wie dies zuvor mit Bezug zu dem Prozessablauf in 1d beschrieben ist. Wenn die Integrität der Bootinformation 121 im Schritt 174 nicht verifiziert wird, geht der Prozess zum Schritt 175 weiter, in welchem der Schlüssel 103 verriegelt wird und der Bootprozess wird beendet oder das Initialisieren wird fortgesetzt, jedoch mit begrenzten Dienstleistungen, die von dem System 150 bereitgestellt werden. Wenn im Schritt 174 die Integrität festgestellt wird, wird das Ausführen von Befehlen der Bootinformation 121 im Schritt 176 gestartet. Im Schritt 177 wird bestimmt, ob eine Aktualisierung der BIOS-Information 121 erforderlich ist oder nicht. Zu diesem Zweck wird beispielsweise auf den internen Speicher 110 zugegriffen, um zu bestimmen, ob eine nicht-aktivierte Version der BIOS-Information verfügbar ist oder nicht. Wenn eine entsprechende Aktualisierung der BIOS-Information nicht erforderlich ist, geht der Prozessablauf zum Schritt 178 weiter, in welchem der Schlüssel 103b verriegelt wird, wie dies zuvor erläutert ist. Danach wird im Schritt 179 die Bootprozedur fortgesetzt, wie dies zuvor erläutert ist. Wenn im Schritt 177 die Aktualisierung der BIOS-Information 121 erforderlich ist, geht der Prozessablauf zum Schritt 180 weiter, in welchem die BIOS-Version, die in einem Speicherbereiche 120 oder 120b des nicht-flüchtigen Speichers 120 enthalten ist, validiert wird. Zu diesem Zweck wird ein beliebiger geeigneter Mechanismus eingesetzt, beispielsweise unter Anwendung eines asymmetrischen Verschlüsselungsmechanismus, mit dem beim Erzeugen der BIOS-Version entsprechende Prüfsummen berechnet wurden und die nun mittels eines öffentlichen Schlüssels validiert werden, der in der neuen BIOS-Information enthalten sein kann. Wenn im Schritt 181 ein zulässige Version der neuen BIOS-Information erkannt wird, wird eine Signatur erzeugt, indem der Schlüssel 103b angewendet wird, indem eine entsprechende Prüfsumme über den entsprechenden IBL-Bereich der neuen BISO-Information berechnet wird, die dann durch Anwenden des Schlüssels 103b signiert wird. Im Schritt 182 wird dann der Schlüssel 103b verriegelt, wie dies zuvor erläutert ist, und im Schritt 183 wird die im Schritt 181 erzeugte Signatur der neuen BIOS-Information hinzugefügt, beispielsweise dem entsprechenden IBL-Bereich 121a, wenn die BIOS-Information in mehreren Teilen bereitgestellt ist. Im Schritt 184 wird die neue BISO-Information aktiviert, d. h. es wird eine in dem nicht-flüchtigen Speicher 103 oder in einer anderen geeigneten Speichereinrichtung abgelegt, dass die neue BIOS-Version eine BIOS-Information ist, die zum Ausführen des Bootvorganges zu verwenden ist. Im Schritt 185 wird ein Rücksetzereignis erzeugt, so dass der Prozessablauf zum Schritt 171 zurückgeht. Folglich werden bei der Aktivierung der aktualisierten Version der BIOS-Information im Schritt 184 die Schritte 172 bis 177 auf Grundlage der Aktualisierung der BIOS-Information wiederholt und die Bootprozedur wird auf der Grundlage der neuen BIOS-Information ausgeführt.
  • 1g zeigt schematisch eine sichere Initialisierungsprozedur gemäß noch weiterer anschaulicher Ausführungsformen. Wie gezeigt, werden in den Schritten 181 und 182 Rücksetzereignisse erkannt und es wird bestimmt, ob eine sichere Bootprozedur aktiviert ist oder nicht, wie dies auch zuvor erläutert ist. Im Schritt 183 wird ein Befehl aus den internen Datensatz 103a ausgeführt. Im Schritt 184 findet eine CPU-interne Initialisierung statt. In einigen anschaulichen Ausführungsformen beinhaltet dies die Schritte 184a, ..., 184j. Beispielsweise wird im Schritt 184a der Speicher 103 geeignet zugeordnet. Im Schritt 184b wird eine Bootquelle erkannt und im Schritt 184c initialisiert, woran sich das Initialisieren des Datencache-Speichers 101a und des Befehlscache-Speichers 101b entsprechend den Schritten 184d, 184e anschließt. Im Schritt 184f wird ein „unechter” Modus für den Datencache-Speicher eingestellt und das Abbild der Bootinformation 121 für den Bereich 121a wird in den Datencache-Speicher 101a kopiert, während im Schritt 184h Speicherplatz für Variablen in den Datencache-Speicher 101a reserviert wird. Bei Bedarf wird im Schritt 184i eine Herstellerkennung abgerufen und im Schritt 184j wird eine entsprechende Verschlüsselungsmaschine initialisiert. Danach wird im Schritt 185 die Prüfsumme über die signierten BIOS-Daten 121a, d. h. die IBL, berechnet. Im Schritt 186 wird der interne Verschlüsselungsschlüssel 103b auf eine zuvor berechnete Prüfsumme angewendet, um eine Signatur zu erzeugen. Im Schritt 187 wird die im Schritt 186 bestimmte Signatur mit der Signatur verglichen, die in der signierten BIOS-Information 121a enthalten ist. Im Schritt 189 wird die Bootverarbeitung beendet, wenn die signierte BIOS-Information als eine unzulässige Information erkannt wurde und der interne Schlüssel 103b wird im Schritt 189 verriegelt. Im Schritt 188 wir das Ausführen der BIOS-Information gestartet, wenn eine zulässige Version der BIOS-Information im Schritt 187 erkannt wurde. Im Schritt 190 wird bestimmt, ob eine Aktualisierung der BIOS-Information erforderlich ist. Wenn dies der Fall ist, wird im Schritt 191 die neue BIOS-Information validiert, wie dies beispielsweise zuvor angegeben ist, und im Schritt 192 wird entschieden, ob die neue BIOS-Information eine zulässige Information ist oder nicht. Wenn eine zulässige BIOS-Version im Schritt 192 erkannt wird, wird im Schritt 193 eine Prüfsumme über die neue BIOS-Information gebildet, d. h. einen entsprechenden Bereich davon, etwa einen IBL-Bereich, und im Schritt 194 wird der interne Schlüssel 103d auf die Prüfsumme angewendet, um eine neue Signatur zu erzeugen. Im Schritt 195 wird der interne Schlüssel, der im Schritt 194 verwendet wird, verriegelt und im Schritt 196 wird die neu erzeugte Signatur der neuen BIOS-Information hinzugefügt. Im Schritt 197 wird die neue BIOS-Information aktiviert, wie dies auch zuvor erläutert ist. Wenn im Schritt 192 die neue BIOS-Information als eine unzulässige Information erkannt wird oder wenn im Schritt 190 des Aktualisierens der BIOS-Information nicht erforderlich ist, geht der Prozessablauf zum Schritt 198 weiter, in welchem der Schlüssel 103b verriegelt wird. Danach geht die Bootprozedur im Schritt 199 weiter, der in einigen anschaulichen Ausführungsformen die Initialisierung weiterer Systemkomponenten des Systems 150 beinhaltet, etwa des Systemspeichers 110 im Schritt 199a. Danach wird im Schritt 199b die BIOS-Information, die zuvor aktiviert wurde, in den Systemspeicher eingeladen und im Schritt 199c wird die BIOS-Information verifiziert, beispielsweise durch Berechnen entsprechender Prüfsummen und Vergleichen der Prüfsummen mit den Werten, die in der BIOS-Information enthalten sind, wie dies zuvor erläutert ist. Wenn im Schritt 199d die BIOS-Information als zulässige Information erkannt wird, wird die Bootprozedur im Schritt 199 weitergeführt, beispielsweise durch Ausführen weiterer Schritte zum endgültigen Einladen eines Betriebssystems. Wenn im Schritt 199d die BIOS-Information als eine unzulässige BIOS-Information erkannt wird, wird im Schritt 199f der Bootvorgang abgebrochen und es wird eine Angabe ausgegeben und die Dienst des Systems 150 können in einer beschränkten Form aktiviert werden, wie dies auch zuvor erläutert ist.
  • Es gilt also: Die Systeme und Mechanismen, wie sie hierin offenbart sind, ergeben eine verbesserte Integrität von Computerplattformen zum Bereitstellen eines sicheren Ablaufs auf der Grundlage einer Vorbootroutine, die in einem nicht-flüchtigen Speicher enthalten ist, und auf der Grundlage eines symmetrischen Schlüssel. Da der nicht-flüchtige Speicher ein Teil der CPU selbst ist, wird die Systeminitialisierung auf der Grundlage der in dem nicht-flüchtigen internen Speicher gespeicherten Vorbootinformation bewerkstelligt, und die Verifizierung der Bootinformation kann unter Anwendung des symmetrischen Schlüssels erfolgen. Somit kann eine erhöhte Sicherheit der Plattform erreicht werden, ohne dass ein Vertrauenszentrum erforderlich ist, wobei ein effizienter Schutz gegenüber umfassenden Manipulationen erreicht wird, während der Grad der Sicherheit auf Grundlage des Grades an Abdeckung des symmetrischen Schlüssels festgelegt ist, der in dem nicht flüchtigen Speicher während der Herstellung des CPU-Bauelements eingebaut wird.
  • Weitere Modifizierungen und Variationen der vorliegenden Offenbarung werden für den Fachmann angesichts dieser Beschreibung offenkundig. Daher ist diese Beschreibung als lediglich anschaulich und für die Zwecke gedacht, dem Fachmann die allgemeine Art und Weise des Ausführens der vorliegenden Erfindung zu vermitteln. Selbstverständlich sind die hierin gezeigten und beschriebenen Formen als die gegenwärtig bevorzugten Ausführungsformen zu betrachten.

Claims (21)

  1. Verfahren zum Initialisieren eines Computersystems, wobei das Verfahren umfasst: beim Einschalten oder beim Rücksetzen Ausführen von Befehlen, die in einem internen nicht-flüchtigen Speicherbereich einer zentralen Recheneinheit gespeichert sind, wobei der interne nicht-flüchtige Speicherbereich einen Verschlüsselungsschlüssel enthält; Bestimmen einer aktuellen Signatur zumindest eines signierten Bereichs von Initialisierungsdaten, wobei der signierte Bereich der Initialisierungsdaten eine gespeicherte Signatur des Bereichs der Initialisierungsdaten enthält, und wobei die gespeicherte Signatur durch Anwenden des Verschlüsselungsschlüssels erzeugt ist; und Ausführen von Initialisierungsbefehlen, die in dem signierten Bereich aus Initialisierungsdaten enthalten sind, wenn die aktuelle Signatur und die gespeicherte Signatur identisch sind.
  2. Verfahren nach Anspruch 1, wobei Ausführen der Befehle, die in dem internen nicht-flüchtigen Speicherbereich enthalten sind, umfasst: Initialisieren eines internen Speichers mit wahlfreiem Zugriff der zentralen Recheneinheit und Einladen des mindestens einen Bereichs aus Initialisierungsdaten aus einem nicht-flüchtigen Speicher in den initialisierten Speicher mit wahlfreiem Zugriff.
  3. Verfahren nach Anspruch 2, wobei Ausführen der Initialisierungsbefehle des signierten Bereichs aus Initialisierungsdaten umfasst: Initialisieren eines Systemspeichers des Computersystems und Einladen der Initialisierungsdaten aus dem nicht-flüchtigen Speicher in den Systemspeicher und Verifizieren einer Integrität der Initialisierungsdaten.
  4. Verfahren nach Anspruch 2, wobei Initialisieren des internen Speichers mit wahlfreiem Zugriff umfasst: Initialisieren eines Datencache-Speichers und eines Befehlscache-Speichers der zentralen Recheneinheit und wobei der mindestens eine Bereich aus Initialisierungsdaten in den Datencache-Speicher eingeladen wird.
  5. Verfahren nach Anspruch 1, das ferner umfasst: Verriegeln des Entschlüsselungsschlüssels für einen externen Zugriff vor dem Ausführen der Initialisierungsbefehle.
  6. Verfahren nach Anspruch 5, das ferner umfasst: Bestimmen, ob eine aktualisierte Version der Initialisierungsdaten verfügbar ist.
  7. Verfahren nach Anspruch 6, wobei Bestimmen, ob eine aktualisierte Version der Initialisierungszeiten verfügbar ist, vor dem Verriegeln des Verschlüsselungsschlüssels ausgeführt wird.
  8. Verfahren nach Anspruch 7, das ferner umfasst: Verifizieren der aktualisierten Version der Initialisierungsdaten.
  9. Verfahren nach Anspruch 8, das ferner umfasst: Berechnen einer neuen Signatur über eine Prüfsumme der aktualisierten Version der Initialisierungsdaten unter Anwendung des Verschlüsselungsschlüssels und Hinzufügen der neuen Signatur zu der aktualisierten Version der Initialisierungsdaten.
  10. Verfahren nach Anspruch 9, das ferner umfasst: Aktivieren der aktualisierten Version der Initialisierungsdaten.
  11. Verfahren nach Anspruch 10, das ferner Erzeugen eines Rücksetzereignisses umfasst.
  12. Verfahren nach Anspruch 10, das ferner umfasst: Verriegeln des Verschlüsselungsschlüssel vor dem Aktivieren der aktualisierten Version der Initialisierungsdaten.
  13. Verfahren zum Initialisieren eines Computersystems, wobei das Verfahren umfasst: beim Einschalten oder einem Rücksetzereignis Zugreifen auf einen internen nicht-flüchtigen Speicher einer zentralen Recheneinheit, wobei der interne nicht-flüchtige Speicher Vorinitialisierungsbefehle und Datenwerte zum Initialisieren eines internen flüchtigen Speichers der zentralen Recheneinheit und zum Verifizieren einer Integrität zumindest eines Bereichs aus Initialisierungsbefehlen und Initialisierungsdatenwerten enthält; Einladen des mindestens einen Bereichs der Initialisierungsbefehle und Initialisierungsdatenwerte aus einem nicht-flüchtigen Speicher in den internen nicht-flüchtigen Speicher durch Ausführen der Vorinitialisierungsbefehle; Verifizieren der Integrität des mindestens einen Bereichs der Initialisierungsbefehle und Initialisierungsdatenwerte unter Anwendung eines Verschlüsselungsschlüssels, der in dem internen nicht-flüchtigen Speicher gespeichert ist, und unter Anwendung einer Signatur, die mit dem mindestens einen Bereich der Initialisierungsbefehle und Initialisierungsdatenwerte verknüpft ist, wobei die Signatur auf der Grundlage des Verschlüsselungsschlüssels erzeugt ist; nach dem erfolgreichen Verifizieren der Integrität des mindestens einen Bereichs der Initialisierungsbefehle und Initialisierungsdatenwerte, Bestimmen, ob eine aktualisierte Version der Initialisierungsbefehle und Initialisierungsdatenwerte verfügbar ist; und wenn eine aktualisierte Version verfügbar ist, Erzeugen einer Signatur der aktualisierten Version unter Anwendung des Verschlüsselungsschlüssels.
  14. Verfahren nach Anspruch 13, wobei Ausführen der Initialisierungsbefehle umfasst: Initialisieren eines Systemspeichers des Computersystems und Einladen eines zweiten Bereichs an Initialisierungsbefehlen und Initialisierungsdatenwerten in den Systemspeicher.
  15. Verfahren nach Anspruch 14, das ferner umfasst: Verifizieren der Integrität des zweiten Bereichs und Fortsetzen des Initialisierens des Computersystems auf der Grundlage des zweiten Bereichs, wenn die Verifizierung des zweiten Bereichs erfolgreich ist.
  16. Verfahren nach Anspruch 13, wobei Initialisieren des flüchtigen internen Speichers umfasst: Initialisieren eines Datencache-Speichers der zentralen Recheneinheit und wobei der zumindest eine Bereich in den Datencache-Speicher eingeladen und darin verifiziert wird.
  17. Verfahren nach Anspruch 13, das ferner umfasst: Verriegeln des Verschlüsselungsschlüssels vor dem Ausführen der Initialisierungsbefehle, wenn eine aktualisierte Version nicht verfügbar ist.
  18. Verfahren nach Anspruch 13, das ferner umfasst: Verifizieren der aktualisierten Version der Initialisierungsbefehle und Initialisierungsdaten vor dem Erzeugen der neuen Signatur.
  19. Zentrale Recheneinheit (CPU) mit: einem Substrat mit darauf ausgebildeten Schaltungselementen, die einen CPU-Kern, einen flüchtigen Speicher mit wahlfreiem Zugriff, einen nicht-flüchtigen Speicher und ein Bussystem zum Verbinden des CPU-Kerns, des flüchtigen Speichers mit wahlfreiem Zugriff und des nicht-flüchtigen Speichers bilden; und einer Vorinitialisierungsinformation, die in dem nicht-flüchtigen Speicher gespeichert ist, wobei die Vorinitialisierungsinfomiation Befehle, die von dem CPU-Kern ausführbar sind, und einen symmetrischen Verschlüsselungsschlüssel enthält, um zumindest einen Bereich einer Initialisierungsroutine zu verifizieren, der unter Anwendung des symmetrischen Verschlüsselungsschlüssels signiert ist.
  20. Zentrale Recheneinheit nach Anspruch 19, die ferner einen Verriegelungsmechanismus aufweist, der ausgebildet ist, einen Bereich des nicht-flüchtigen Speichers, der den symmetrischen Verschlüsselungsschlüssel enthält, nur bei einem Rücksetzereignis oder beim Einschalten zu aktivieren.
  21. Computersystem mit: einer zentralen Recheneinheit mit einem Substrat mit darauf ausgebildeten Schaltungselementen, die einen CPU-Kern, einen flüchtigen Speicher mit wahlfreiem Zugriff, einem nicht-flüchtigen Speicher und ein Bussystem zum Verbinden des CPU-Kerns, des flüchtigen Speichers mit wahlfreiem Zugriff und des nicht-flüchtigen Speichers bilden, und einer Vorinitialisierungsinformation, die in dem nicht-flüchtigen Speicher gespeichert ist, wobei die Vorinitialisierungsinformation Befehle, die von dem CPU-Kern ausführbar sind, und einen symmetrischen Verschlüsselungsschlüssel enthält, um zumindest einen Bereich einer Initialisierungsroutine zu verifizieren, die unter Anwendung des symmetrischen Verschlüsselungsschlüssels signiert ist; und einem nicht-flüchtigen Initialisierungsspeicher, der ausgebildet ist, zumindest die Initialisierungsroutine und eine zweite Initialisierungsroutine zu bewahren.
DE102008021567.8A 2008-04-30 2008-04-30 Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel Expired - Fee Related DE102008021567B4 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102008021567.8A DE102008021567B4 (de) 2008-04-30 2008-04-30 Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel
US12/355,900 US8464037B2 (en) 2008-04-30 2009-01-19 Computer system comprising a secure boot mechanism on the basis of symmetric key encryption

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102008021567.8A DE102008021567B4 (de) 2008-04-30 2008-04-30 Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel

Publications (2)

Publication Number Publication Date
DE102008021567A1 true DE102008021567A1 (de) 2009-11-05
DE102008021567B4 DE102008021567B4 (de) 2018-03-22

Family

ID=41130894

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102008021567.8A Expired - Fee Related DE102008021567B4 (de) 2008-04-30 2008-04-30 Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel

Country Status (2)

Country Link
US (1) US8464037B2 (de)
DE (1) DE102008021567B4 (de)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102008011925B4 (de) * 2008-02-29 2018-03-15 Globalfoundries Inc. Sicheres Initialisieren von Computersystemen
US8103909B2 (en) * 2008-09-15 2012-01-24 Juniper Networks, Inc. Automatic hardware-based recovery of a compromised computer
KR101560185B1 (ko) * 2009-03-27 2015-10-15 삼성전자주식회사 Url을 이용한 분산 컨트롤 방법 및 장치
EP2814277A1 (de) * 2009-04-15 2014-12-17 Interdigital Patent Holdings, Inc. Validierung und/oder Authentifizierung einer Vorrichtung zur Kommunikation mit einem Netzwerk
US8484450B2 (en) * 2009-12-02 2013-07-09 Bally Gaming, Inc. Authentication system for gaming machines and related methods
CN103329093B (zh) * 2011-01-19 2017-09-12 国际商业机器公司 用于更新执行环境中的代码的方法和系统
US20140040636A1 (en) * 2011-04-29 2014-02-06 Jeff Jeansonne Embedded controller to verify crtm
US20120331308A1 (en) * 2011-06-22 2012-12-27 Media Patents, S.L. Methods, apparatus and systems to improve security in computer systems
US8181035B1 (en) 2011-06-22 2012-05-15 Media Patents, S.L. Methods, apparatus and systems to improve security in computer systems
US8261085B1 (en) 2011-06-22 2012-09-04 Media Patents, S.L. Methods, apparatus and systems to improve security in computer systems
US8595510B2 (en) 2011-06-22 2013-11-26 Media Patents, S.L. Methods, apparatus and systems to improve security in computer systems
US9015455B2 (en) * 2011-07-07 2015-04-21 Intel Corporation Processsor integral technologies for BIOS flash attack protection and notification
US9465755B2 (en) 2011-07-18 2016-10-11 Hewlett Packard Enterprise Development Lp Security parameter zeroization
US8826080B2 (en) * 2011-07-29 2014-09-02 The Boeing Company Methods and systems for preboot data verification
US8949586B2 (en) * 2011-10-06 2015-02-03 Cisco Technology, Inc. System and method for authenticating computer system boot instructions during booting by using a public key associated with a processor and a monitoring device
US8775784B2 (en) * 2011-11-11 2014-07-08 International Business Machines Corporation Secure boot up of a computer based on a hardware based root of trust
US8874922B2 (en) * 2012-01-17 2014-10-28 Dell Products L.P. Systems and methods for multi-layered authentication/verification of trusted platform updates
GB2507497B (en) * 2012-10-30 2015-01-14 Barclays Bank Plc Device and method for secure memory access
GB2507596B (en) 2012-10-30 2014-09-17 Barclays Bank Plc Secure computing device and method
WO2014076452A1 (en) * 2012-11-19 2014-05-22 Barclays Bank Plc Secure computing device and method
KR102068485B1 (ko) 2012-11-30 2020-01-21 삼성전자주식회사 불 휘발성 메모리 모듈 및 그것의 동작 방법
CA2919106C (en) * 2013-07-23 2018-07-17 Ericsson Ab Media client device authentication using hardware root of trust
EP2854066B1 (de) * 2013-08-21 2018-02-28 Nxp B.V. System und Verfahren zur Kontrolle der Integrität von Firmware mit Benutzung von mehreren Schlüsseln und OTP-Speicher
US10049217B2 (en) * 2013-11-13 2018-08-14 Via Technologies, Inc. Event-based apparatus and method for securing bios in a trusted computing system during execution
US10095868B2 (en) * 2013-11-13 2018-10-09 Via Technologies, Inc. Event-based apparatus and method for securing bios in a trusted computing system during execution
US10055588B2 (en) * 2013-11-13 2018-08-21 Via Technologies, Inc. Event-based apparatus and method for securing BIOS in a trusted computing system during execution
US9407636B2 (en) * 2014-05-19 2016-08-02 Intel Corporation Method and apparatus for securely saving and restoring the state of a computing platform
US10096379B2 (en) * 2014-10-24 2018-10-09 Megachips Corporation Memory device and method for testing reliability of memory device
US10154023B1 (en) * 2014-12-18 2018-12-11 EMC IP Holding Company LLC Method and system for secure instantiation of an operation system within the cloud
US9917687B2 (en) * 2015-10-12 2018-03-13 Microsoft Technology Licensing, Llc Migrating secrets using hardware roots of trust for devices
US9875359B2 (en) * 2015-10-14 2018-01-23 Quanta Computer Inc. Security management for rack server system
US10885196B2 (en) * 2016-04-29 2021-01-05 Hewlett Packard Enterprise Development Lp Executing protected code
TWI615732B (zh) * 2016-12-27 2018-02-21 瑞昱半導體股份有限公司 電子裝置之電子元件、啟動電子裝置的方法及加密方法
US10491401B2 (en) 2017-02-21 2019-11-26 Google Llc Verification of code signature with flexible constraints
US11455396B2 (en) * 2017-05-12 2022-09-27 Hewlett Packard Enterprise Development Lp Using trusted platform module (TPM) emulator engines to measure firmware images
US10484371B2 (en) * 2017-05-22 2019-11-19 Seagate Technology Llc Device controller security system
CN109522721A (zh) * 2017-09-19 2019-03-26 中国科学院沈阳自动化研究所 一种基于tpm的工业控制可信嵌入式平台的启动方法
JP7242351B2 (ja) * 2019-03-11 2023-03-20 キヤノン株式会社 起動時にソフトウェアの改ざん検知処理を省略することが可能な電子機器
US11347856B2 (en) * 2019-05-24 2022-05-31 Dell Products L.P. Bios method to block compromised preboot features
EP4088214A4 (de) * 2020-02-21 2023-08-30 Hewlett-Packard Development Company, L.P. Rechnervorrichtungen zur verschlüsselung und entschlüsselung von daten
US20220091853A1 (en) * 2020-09-23 2022-03-24 Intel Corporation Technology to measure boot activity before a processor enters a working state
US20230418590A1 (en) * 2022-06-22 2023-12-28 Hewlett-Packard Development Company, L.P. Instruction updates

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006086301A1 (en) 2005-02-07 2006-08-17 Transmeta Corporation System and method for providing a secure boot architecture

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010007131A1 (en) 1997-09-11 2001-07-05 Leonard J. Galasso Method for validating expansion roms using cryptography
US6389532B1 (en) * 1998-04-20 2002-05-14 Sun Microsystems, Inc. Method and apparatus for using digital signatures to filter packets in a network
US7174457B1 (en) * 1999-03-10 2007-02-06 Microsoft Corporation System and method for authenticating an operating system to a central processing unit, providing the CPU/OS with secure storage, and authenticating the CPU/OS to a third party
US6539456B2 (en) * 1999-10-13 2003-03-25 Intel Corporation Hardware acceleration of boot-up utilizing a non-volatile disk cache
US6892297B1 (en) * 2000-03-16 2005-05-10 International Business Machines Corporation Method and system for searching an updated version of boot code for updating current running boot code prior to loading an operating system
US7073064B1 (en) * 2000-03-31 2006-07-04 Hewlett-Packard Development Company, L.P. Method and apparatus to provide enhanced computer protection
US6959331B1 (en) * 2000-08-14 2005-10-25 Sun Microsystems, Inc. System and method for operating a client network computer in a disconnected mode by establishing a connection to a fallover server implemented on the client network computer
US7103782B1 (en) * 2000-09-27 2006-09-05 Motorola, Inc. Secure memory and processing system having laser-scribed encryption key
US6807630B2 (en) * 2000-12-15 2004-10-19 International Business Machines Corporation Method for fast reinitialization wherein a saved system image of an operating system is transferred into a primary memory from a secondary memory
US7036023B2 (en) * 2001-01-19 2006-04-25 Microsoft Corporation Systems and methods for detecting tampering of a computer system by calculating a boot signature
US7603703B2 (en) * 2001-04-12 2009-10-13 International Business Machines Corporation Method and system for controlled distribution of application code and content data within a computer network
FI114416B (fi) * 2001-06-15 2004-10-15 Nokia Corp Menetelmä elektroniikkalaitteen varmistamiseksi, varmistusjärjestelmä ja elektroniikkalaite
US6907522B2 (en) * 2002-06-07 2005-06-14 Microsoft Corporation Use of hashing in a secure boot loader
US7036040B2 (en) * 2002-11-26 2006-04-25 Microsoft Corporation Reliability of diskless network-bootable computers using non-volatile memory cache
US20050021968A1 (en) * 2003-06-25 2005-01-27 Zimmer Vincent J. Method for performing a trusted firmware/bios update
US8332652B2 (en) 2003-10-01 2012-12-11 International Business Machines Corporation Computing device that securely runs authorized software
JP2005141160A (ja) * 2003-11-10 2005-06-02 Japan Science & Technology Agency セキュア・プロセッサ
US20050138409A1 (en) * 2003-12-22 2005-06-23 Tayib Sheriff Securing an electronic device
US7457945B2 (en) * 2004-03-23 2008-11-25 Dell Products L.P. System and method for providing a secure firmware update to a device in a computer system
CN100447736C (zh) * 2004-05-08 2008-12-31 英特尔公司 包括固件接口运行时环境保护字段的设备和方法
JP4447977B2 (ja) * 2004-06-30 2010-04-07 富士通マイクロエレクトロニクス株式会社 セキュアプロセッサ、およびセキュアプロセッサ用プログラム。
US7484099B2 (en) * 2004-07-29 2009-01-27 International Business Machines Corporation Method, apparatus, and product for asserting physical presence with a trusted platform module in a hypervisor environment
US7343496B1 (en) * 2004-08-13 2008-03-11 Zilog, Inc. Secure transaction microcontroller with secure boot loader
EP1659472A1 (de) 2004-11-22 2006-05-24 Research In Motion Limited Verfahren und Vorrichtung zur Authentifizierung von Software
JP4433401B2 (ja) * 2004-12-20 2010-03-17 レノボ シンガポール プライヴェート リミテッド 情報処理システム、プログラム、及び情報処理方法
KR100804647B1 (ko) * 2005-11-15 2008-02-20 삼성전자주식회사 병렬형 플래시 인터페이스를 지원하는 직렬형 플래시메모리 장치를 이용한 시스템 부팅 방법 및 장치
GB0601849D0 (en) * 2006-01-30 2006-03-08 Ttp Communications Ltd Method of maintaining software integrity
US8291226B2 (en) 2006-02-10 2012-10-16 Qualcomm Incorporated Method and apparatus for securely booting from an external storage device
JP4795812B2 (ja) * 2006-02-22 2011-10-19 富士通セミコンダクター株式会社 セキュアプロセッサ
US7770165B2 (en) * 2006-08-25 2010-08-03 Microsoft Corporation Providing firmware updates to portable media devices
KR100849334B1 (ko) * 2006-10-31 2008-07-29 삼성전자주식회사 이동 단말의 불법 사용을 방지하기 위한 방법 및 장치
US8364975B2 (en) * 2006-12-29 2013-01-29 Intel Corporation Methods and apparatus for protecting data
US8006095B2 (en) * 2007-08-31 2011-08-23 Standard Microsystems Corporation Configurable signature for authenticating data or program code
US8068614B2 (en) * 2007-09-28 2011-11-29 Intel Corporation Methods and apparatus for batch bound authentication
US7962737B2 (en) * 2007-11-21 2011-06-14 Dell Products L.P. Methods, media and apparatus for booting diskless systems
US20090172639A1 (en) * 2007-12-27 2009-07-02 Mahesh Natu Firmware integrity verification
US20090193211A1 (en) * 2008-01-24 2009-07-30 Broadcom Corporation Software authentication for computer systems
US9354857B2 (en) * 2008-03-19 2016-05-31 Lenovo (Singapore) Pte. Ltd. System and method to update firmware on a hybrid drive
US20100082955A1 (en) * 2008-09-30 2010-04-01 Jasmeet Chhabra Verification of chipset firmware updates

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006086301A1 (en) 2005-02-07 2006-08-17 Transmeta Corporation System and method for providing a secure boot architecture

Also Published As

Publication number Publication date
DE102008021567B4 (de) 2018-03-22
US8464037B2 (en) 2013-06-11
US20090276617A1 (en) 2009-11-05

Similar Documents

Publication Publication Date Title
DE102008021567B4 (de) Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel
DE102008011925B4 (de) Sicheres Initialisieren von Computersystemen
DE112018002031B4 (de) Sichern einer betriebssystemkonfiguration unter verwendung von hardware
DE102006046456B4 (de) Schaltkreis-Anordnung, Verfahren zum Hochfahren einer Schaltkreis-Anordnung, Verfahren zum Betreiben einer Schaltkreis-Anordnung und Computerprogrammprodukte
DE69731714T2 (de) Dynamische Dienstklassen für eine internationale kryptographische Struktur
DE102009013384B4 (de) System und Verfahren zur Bereitstellung einer sicheren Anwendungsfragmentierungsumgebung
DE102008006759B4 (de) Prozessor-Anordnung und Verfahren zum Betreiben der Prozessor-Anordnung ohne Verringerung der Gesamtsicherheit
DE112009002502T5 (de) Multilayer inhalte-schützender Mikrocontoller
DE10254621A1 (de) Vorrichtung und Verfahren zum Erzeugen einer vertrauenswürdigen Umgebung
DE102007012490A1 (de) Optimierte Integritätsverifikationsprozeduren
DE112019005701T5 (de) Sichere boot-unterstützung für vorrichtungen und zugehörige systeme, verfahren und vorrichtungen
DE112009005466T5 (de) Verfahren und Vorrichtung zum Bereitstellen einer sicheren Anwendungsausführung
DE112007000363T5 (de) Verfahren zum Bereitstellen sicherer Firmware
DE112007001321T5 (de) Ausführung eines Sichere-Umgebungs-Initialisierungsbefehls in einem Punkt-zu-Punkt-Verbindungssystem
DE102015209108A1 (de) Verfahren und Entscheidungsgateway zum Autorisieren einer Funktion eines eingebetteten Steuergerätes
DE112009004762T5 (de) System und verfahren zum durchführen einer verwaltunosoperation
DE102016205289A1 (de) Verfahren, Prozessor und Gerät zur Integritätsprüfung von Nutzerdaten
DE102022105069A1 (de) Systeme, verfahren und vorrichtungen für gesicherte nichtflüchtige speicher
DE102012215770A1 (de) Inhalt-Schutz über Online-Server und Code-Ausführung in einem sicheren Betriebssystem
DE112020003881T5 (de) System und verfahren zur durchführung von trusted computing mit fernbescheinigung und informationsisolierung auf heterogenen prozessoren über eine offene verbindung
WO2013102564A1 (de) Rechnersystem zum aktualisieren von programmen und daten in unterschiedlichen speicherbereichen mit oder ohne schreibberechtigungen
DE102020121075A1 (de) Einrichtung und Verfahren zur Authentifizierung von Software
EP3811260B1 (de) Kryptografiemodul und betriebsverfahren hierfür
WO2022008201A1 (de) Verfahren zur erweiterten validierung eines containerabbilds
DE102020119389A1 (de) Vorrichtung und Verfahren zum sicheren Verwalten von Schlüsseln

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: GLOBALFOUNDRIES INC., GRAND CAYMAN, KY

8128 New person/name/address of the agent

Representative=s name: GRUENECKER, KINKELDEY, STOCKMAIR & SCHWANHAEUSSER,

R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee