DE102008011925B4 - Sicheres Initialisieren von Computersystemen - Google Patents

Sicheres Initialisieren von Computersystemen Download PDF

Info

Publication number
DE102008011925B4
DE102008011925B4 DE102008011925.3A DE102008011925A DE102008011925B4 DE 102008011925 B4 DE102008011925 B4 DE 102008011925B4 DE 102008011925 A DE102008011925 A DE 102008011925A DE 102008011925 B4 DE102008011925 B4 DE 102008011925B4
Authority
DE
Germany
Prior art keywords
data
memory
integrity
bios
processing unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE102008011925.3A
Other languages
English (en)
Other versions
DE102008011925A1 (de
Inventor
Ralf Findeisen
Michael Grell
Tim Edward Perley
Marc Edwin Jones
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
GlobalFoundries 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 GlobalFoundries Inc filed Critical GlobalFoundries Inc
Priority to DE102008011925.3A priority Critical patent/DE102008011925B4/de
Priority to US12/186,821 priority patent/US8656146B2/en
Priority to TW098106104A priority patent/TWI498768B/zh
Priority to CN200980106728XA priority patent/CN101965570B/zh
Priority to KR1020107021808A priority patent/KR101237527B1/ko
Priority to EP09716112A priority patent/EP2250599A1/de
Priority to JP2010548742A priority patent/JP2011527777A/ja
Priority to PCT/US2009/001289 priority patent/WO2009108371A1/en
Publication of DE102008011925A1 publication Critical patent/DE102008011925A1/de
Application granted granted Critical
Publication of DE102008011925B4 publication Critical patent/DE102008011925B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • 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/72Protecting 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 in cryptographic circuits

Landscapes

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

Abstract

Verfahren zum Initialisieren eines Computersystems (150), wobei das Verfahren die nacheinander ausgeführten Schritte umfasst: Zugreifen auf einen ersten Satz an Daten (103a), der in einem nicht-flüchtigen Nur-Lese-Speicherbereich (103) einer zentralen Recheneinheit (100) gespeichert ist, wobei der erste Satz an Daten (103a) Befehle enthält, die eine Kernschaltung (102) der zentralen Recheneinheit (100) veranlassen, einen Speicher mit wahlfreiem Zugriff (101) der zentralen Recheneinheit (100) zu initialisieren; Einladen eines Bildes eines zweiten Satzes an Daten (121a), der eine BIOS-Laderoutine bereitstellt, aus einem nicht-flüchtigen Speicher (120) in den initialisierten Speicher (101) mit wahlfreiem Zugriff und einer Signatur zum Verifizieren der Integrität des zweiten Satzes an Daten (121a), und wobei der zweite Satz an Daten ferner zweite Befehle enthält, die die zentrale Recheneinheit (100) veranlassen, einen Systemspeicher (110) des Computersystems (150) zu initialisieren, und einen Satz an BIOS-Daten in den initialisierten Systemspeicher zu laden; Verifizieren der Integrität des zweiten Satzes an Daten (121a) unter Verwendung der Signatur und eines Entschlüsselungsschlüssels, der in dem ersten Satz an Daten (103a) enthalten ist; Initialisieren des Systemspeichers (110) unter Verwendung der zweiten Befehle, wenn die Verifizierung des zweiten Satzes an Daten (121a) erfolgreich ist; und Einladen des Satzes an BIOS-Daten (121b) aus dem nicht-flüchtigen Speicher (121) in den Systemspeicher (110) und Verifizieren einer Integrität des Satzes an BIOS-Daten (121b).

Description

  • Gebiet der vorliegenden Offenbarung
  • Die vorliegende Offenbarung betrifft allgemein das Gebiet der Computersysteme mit hoher Integrität und entsprechenden darin implementierten Mechanismen, die das Vorsehen verbesserter Sicherheitsstandard ermöglichen, wodurch die Effizienz von Anwendungen verbessert wird, die eine sichere Computerplattform erfordern.
  • Beschreibung des Stands der Technik
  • Die vielfältige Verwendung von Computersystemen führte zu einer deutlichen Zunahme der Informationsverarbeitung auf der Grundlage elektronischer Computersysteme, wodurch sehr große Mengen an digitalen Daten erzeugt, verteilt und verarbeitet werden. Mit den zunehmenden Möglichkeiten der Computersysteme im Hinblick auf die Datenspeicherkapazität und die erhöhte Verarbeitungsgeschwindigkeit ist die Reproduzierung großer Datensätze, etwa von Audio-Daten, Kinofilmen und dergleichen für eine immer größere Anzahl an Personen zugänglich, und wird häufig trotz vorhandener Schutzrechte ausgeführt, die mit vielen der in elektronischer Form bereitgestellten Daten verknüpft sind. Somit wird ein deutlicher wirtschaftlicher Schaden durch das illegale Kopieren, Speichern und Neuverteilen von elektronischen Daten hervorgerufen. Ferner ergibt die Möglichkeit der Verteilung von Programmen über weitreichende Netzwerke, etwa das Internet, die Möglichkeit, Schadstoffsoftwareanwendungen zu verteilen, die wiederum zum Manipulieren von Daten und/oder zum Manipulieren der Konfiguration einer entsprechenden Computerplattform verwendet werden können. Beispielsweise wird ein großer Schaden in privaten Haushalten und insbesondere in der Industrie hervorgerufen, indem Softwareanwendungen eingeführt werden, die beispielsweise Softwaredateien, etwa gespeicherte Daten, manipulieren, Informationen über das Internet ohne Wissen des eigentlichen Nutzers der Plattform übertragen, einen Angriff zur Verweigerung von Dienstleistungen beginnen, wodurch möglicherweise die Plattform nicht mehr nutzbar ist für eine zugeordnete Anwendung, die einen speziellen Status der Plattform erfordert.
  • Aus diesen Gründen werden große Anstrengungen unternommen, um Mechanismen zur Verbesserung der Integrität der Computerplattformen zu entwickeln, um die Wahrscheinlichkeit für „erfolgreiche” externe Angriffe, beispielsweise in Form von Schadsoftware der Verweigerung von Dienstleistungen, ausspionieren, eindringen und dergleichen zu verringern, und um auch 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 Widerstand gegenüber Datenmanipulation durch eine dritte Partei während des Übertragens und der Speicherung der Daten ermöglichen. Beispielsweise wird bei asymmetrischen Verschlüsselungsverfahren ein Paar aus einem privaten Schlüssel und einem öffentlichen Schlüssel zum Verschlüsseln von Daten mittels eines der Schlüssel verwendet, und das Entschlüsseln der Daten wird durch die Verwendung des anderen Schlüssels bewerkstelligt, wobei einer der Schlüssel öffentlich zugänglich ist. Obwohl diese Verfahren für eine bessere Integrität bei der Datenkommunikation und Datenspeicherung sorgen, birgt die eigentliche Konfiguration einer betrachteten Computerplattform dennoch die Möglichkeit einer Vielzahl von Angriffen, insbesondere da viele Anwendungen, die zur Steigerung der Computersicherheit gedacht sind, sich auf eine vertrauenswürdige Plattformkonfiguration verlassen.
  • In der WO 2006/086301 A1 wird eine Sicherheits-Boot-Architektur beschrieben, die eine Atomarer-Zustand-Maschine umfasst, die dazu ausgebildet ist, einen Bootmodus-/Bootmodus-Upgrade-Mechanismus zu implementieren, wobei die Implementation eine Authentifizierung eines in einem nicht-flüchtigen Speicher gespeicherten Bootmodus-Codes umfasst.
  • Eine vertrauenswürdige Computerplattform kann als ein Computersystem betrachtet werden, in welchem die Hardwareanordnung und auch die Softwareanwendungen als in einem vordefinierten Konfigurationszustand vorliegend erachtet werden. Jedoch kann eine sichere Plattformkonfiguration nur eingerichtet werden, indem eine „Kette” aus vertrauenswürdigen Plattformebenen etabliert wird, wobei jede nachfolgende Ebene durch die vorhergehende Ebene nur dann initialisiert wird, wenn die Integrität der nachfolgende Ebene verifiziert ist. Somit kann die Integrität auf Systemebene mittels einer Kette aus Integritätsverifizierungen beibehalten werden, wobei eine Wurzel der Kette aus Verifizierungsschritten mit einem hohen Maß an Manipuliersicherheit vorzusehen ist, um damit ein hohes Zutrauen im Hinblick auf die Integrität des Systems nach der Initialisierung der obersten Ebene, d. h. der Ebene der Benutzeranwendungen, zu erreichen.
  • In einer typischen Computerplattform erfordert das Initialisieren des Systems diverse Stufen 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 Anwenderprogrammen. Somit ist es im Hinblick auf das Verbessern der Gesamtintegrität des Gesamtsystems nicht ausreichend anzunehmen, dass die diversen Systemaktivitäten vor dem Einladen des Betriebssystems als sicher erachtet werden können, um damit sich auf die Integrität des Betriebsystems und der Anwenderanwendung zu verlassen, da das Betriebssystem durch einen „nicht vertrauensvollen” Prozess aufgerufen werden kann, wodurch die Möglichkeit des Manipulierens der grundlegenden Plattformkonfiguration durch Modifizieren der Hardware und Softwarekomponenten besteht. 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 gespeichert sind, was auch als Hochlaufen bzw. Initialisieren oder Booten bezeichnet wird, in die Kette der Vertrauenswürdigkeit mit eingeschlossen werden, um damit die Gesamtsystemintegrität zu verbessern.
  • Eine typische Anlaufsequenz zum Initialisieren eines Computersystems nach dem Einschalten oder nach dem Auftreten eines Rücksetzereignisses bewirkt einen „Einschaltselbsttest” der CPU, wobei auch der Prozessor beginnt, Befehle an einer zugeordneten Einsprungadresse abzuarbeiten, die durch den Rücksetzvektor bzw. Reset-Vektor des Prozessors angegeben ist. D. h., nach einem anfänglichen Prozessorselbsttest wird die Ausführung der Befehle an dem Einsprungpunkt begonnen, der typischerweise eine Adresse einer Softwareroutine ist, die häufig auch als BIOS (Basis-Eingabe/Ausgabe-System) bezeichnet wird, das in einen speziellen externen nicht-flüchtigen Speicher der Computerplattform gespeichert ist. Unter der Steuerung des BIOS wird der restliche Selbsttest ausgeführt und die Hardwarekonfiguration der Plattform wird bestimmt oder „gemessen”. Danach wird eine Suche nach einem bootfähigen Gerät ausgeführt, etwa einer Massenspeichereinrichtung, beispielsweise die Festplatte des Computersystems, eine Diskette, eine CD-ROM, eine Erweiterungskarte und dergleichen, von der aus ein primärer Bootblock bzw. Initialisierungsblock in den Systemspeicher eingeladen wird, wobei die Steuerung dann auf den primären Bootblock übertragen wird, der ein Betriebssystem in den Systemspeicher einladen kann.
  • Obwohl auch große Anstrengungen unternommen wurden, um die Sicherheit des gesamten Initialisierungsprozesses zu verbessern, ist es schwierig, eine zuverlässige Basis des Vertrauens für die Messung (CRTM) für den Anlaufprozess, beispielsweise im Hinblick auf Plattformmodifizierungen, etwa das Austauschen des nicht-flüchtigen Speicherchips mit der BIOS-Software, vorzusehen, da ein entsprechendes Austauschen von Chips die Kette der Vertrauenswürdigkeit unterbrechen kann, wodurch auch nachfolgende Verifizierungsschritte als nicht vertrauenswürdig erscheinen.
  • Im Hinblick auf die zuvor beschriebene Situation betrifft die vorliegende Offenbarung Einrichtungen und Verfahren zum Verbessern der Integrität von Computersystemen, wobei eines oder mehrere der oben 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, in denen eine statische Basis oder Wurzel der Vertrauenswürdigkeit für die Messung eingerichtet wird, indem ein gewisser Datensatz vorgesehen wird, der ausführbare Befehle und Datenwerte enthält, auf die von dem Mikroprozessor beim Anlaufen in jedem Falle zugegriffen wird, ohne dass die Möglichkeit besteht, den Zugriff auf den speziellen Datensatz zu umgehen, so dass eine definierte Basis für das Initialisieren der Plattform erreicht wird. Ferner ist der Datensatz so eingerichtet, dass ein hohes Maß an Widerstandsfähigkeit gegenüber Angriffen für die Manipulation erreicht wird. Während des Ausführens der in dem Datensatz enthaltenen Befehle kann die entsprechende Routine nicht geändert oder unterbrochen werden, wodurch ein hohes Maß an Integrität des Datensatzes erreicht wird, der somit als ein dem Initialisieren bzw. Booten vorgeordneter Satz aus Befehlen und Datenwerten betrachtet werden kann. Da die Verarbeitung entsprechender Befehle der dem Booten vorgeordneten Daten beim Einschalten des betrachteten Systems obligatorisch ist, wird eine Kette aus vertrauenswürdiger Software begonnen, wodurch das Einrichten eines hohen Grades an Systemintegrität ermöglicht wird, da der spezielle Satz aus dem Booten vorgeordneten Daten den statischen Kern für die Kette nachfolgender Verifizierungsschritte repräsentiert. Zu diesem Zweck wird der dem Booten vorgeordnete Datensatz in einem nicht-flüchtigen Speicher in dem CPU-Kern selbst aufbewahrt, wodurch Angriffe im Hinblick auf das Ersetzen von BIOS-Chips und dergleichen im Wesentlichen vermieden werden.
  • Es wird ein Verfahren zum Initialisieren eines Computersystems bereitgestellt, wobei das Verfahren die nacheinander ausgeführten Schritte umfasst:
    Zugreifen auf einen ersten Satz an Daten, der in einem nicht-flüchtigen Nur-Lese-Speicherbereich einer zentralen Recheneinheit gespeichert ist, wobei der erste Satz an Daten Befehle enthält, die eine Kernschaltung der zentralen Recheneinheit veranlassen, einen Speicher mit wahlfreiem Zugriff der zentralen Recheneinheit zu initialisieren;
    Einladen eines Bildes eines zweiten Satzes an Daten, der eine BIOS-Laderoutine bereitstellt, aus einem nicht-flüchtigen Speicher in den initialisierten Speicher mit wahlfreiem Zugriff und einer Signatur zum Verifizieren der Integrität des zweiten Satzes an Daten, und wobei der zweite Satz an Daten ferner zweite Befehle enthält, die die zentrale Recheneinheit veranlassen, einen Systemspeicher des Computersystems zu initialisieren, und einen Satz an BIOS-Daten in den initialisierten Systemspeicher zu laden;
    Verifizieren der Integrität des zweiten Satzes an Daten unter Verwendung der Signatur und eines Entschlüsselungsschlüssels, der in dem ersten Satz an Daten enthalten ist;
    Initialisieren des Systemspeichers unter Verwendung der zweiten Befehle, wenn die Verifizierung des zweiten Satzes an Daten erfolgreich ist; und
    Einladen des Satzes an BIOS-Daten aus dem nicht-flüchtigen Speicher in den Systemspeicher und Verifizieren einer Integrität des Satzes an BIOS-Daten.
  • In einem weiteren anschaulichen hierin offenbarten Aspekt ist die zuvor beschriebene zentrale Recheneinheit ein Teil eines Computersystems, das zusätzlich zu der CPU, einen Systemspeicher vor eine Speichereinrichtung mit der Bootroutine und ein Schnittstellensystem zum Verbinden des Systemsspeichers und der Speichereinrichtung, die die Bootroutine enthält, mit der CPU aufweist.
  • 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), einen CPU-Kern und einen nicht-flüchtigen Speicher mit dem Booten bzw. Initialisieren vorgeordneten Informationen gemäß anschaulicher Ausführungsformen enthält;
  • 1b schematisch ein Computersystem mit einer CPU mit interner dem Booten vorgeordneter Information gemäß noch weiterer anschaulicher Ausführungsformen zeigt;
  • 1c schematisch Prozessschritte zum Manipulieren von Initialisierungsdaten mit Befehlen und Datenwerten während eines Prozesses zum Erzeugen einer Signatur eines ersten Teils der Bootinformation gemäß anschaulicher Ausführungsformen zeigen;
  • 1d schematisch einen Prozess zum Verifizieren einer Signatur eines Teils der Bootinformation gemäß anschaulicher Ausführungsformen zeigt;
  • 1e schematisch ein Flussdiagramm zum Beschreiben des Betriebs des Computersystems, wie es in 1b gezeigt ist, gemäß einer anschaulichen Ausführungsform zeigt; und
  • 1f schematisch ein Flussdiagramm darstellt, das die Funktionsweise eines Computersystems mit einer CPU, etwa der CPU aus 1a, gemäß noch weiterer anschaulicher Ausführungsformen beschreibt.
  • Detaillierte Beschreibung
  • Im Allgemeinen stellt die vorliegende Offenbarung ein System und einen Mechanismus zum Ausführen von Befehlen und zum Verwenden von Daten, die in einem nicht-flüchtigen Speicher enthalten sind, der einen Teil einer zentralen Recheneinheit darstellt, wobei dies beim Initialisieren oder beim Zurücksetzen oder eines anderen Betriebszustands, der eine Initialisierung des Systems erfordert, stattfindet, wodurch die Möglichkeit der Manipulierung des Datensatzes, der in dem nicht-flüchtigen Speicher enthalten ist, deutlich reduziert wird. Somit kann der Inhalt des nicht-flüchtigen Speichers als eine statische Basis der Vertrauenswürdigkeit für das Messen während der Initialisierung der CPU und des gesamten Computersystems verwendet werden, indem sichergestellt wird, dass beim Einschalten oder einem Rücksetzereignis die CPU den ersten Befehl aus dem nicht-flüchtigen Speicher abholt. Somit kann der darin enthaltene Datensatz als eine Vorinitialisierungs- bzw. Vorboot oder dem BIOS vorgeordnete Komponente betrachtet werden, die die Initialisierung weiterer Systemkomponenten ermöglicht, etwa eines internen Speichers mit wahlfreiem Zugriff, der zum Speichern von Operationsdaten, etwa von Variablen und dem Stapel, und von Befehlen für das Abarbeiten eines Teils der BIOS-Software verwendet werden kann. Beispielsweise wird der Datencache als Teil des Speicherbereichs mit wahlfreiem Zugriff und ein Befehlscache durch die dem Booten vorgeordneten Daten des internen nicht-flüchtigen Speichers initialisiert, wodurch im Wesentlichen die Möglichkeit eines externen Zugriffes auf Daten, die darin enthalten sind, während des Initialisierungsvorganges verhindert wird. D. h., der Speicherbereich mit wahlfreiem Zugriff, d. h. der Datencache und der Befehlscache sind CPU-interne Komponenten und ein unerwünschtes Manipulieren ist äußerst schwierig, insbesondere da der externe Systemspeicher während dieser Phase noch nicht initialisiert ist. Abhängig von der Speicherkapazität des Speichers mit wahlfreiem Zugriff kann die BIOS-Routine in zwei oder mehr Bereiche aufgeteilt werden, so dass die Verifizierung einer oder mehrerer Signaturen im Hinblick auf die BIOS-Integrität im Speicher mit wahlfreiem Zugriff für den ersten Teil ausgeführt wird, der so ausgebildet ist, dass eine Größe entsprechende dem Befehlscache aufweist. Somit kann dieser Teil der Bootinformation nach dessen Verifizierung direkt aus dem Speicher mit wahlfreiem Zugriff heraus ausgeführt werden. Folglich kann während des Initialisierens des Speichers mit wahlfreiem Zugriff und dem Einladen des Bereichs der Bootinformation durch Ausführen der dem Booten vorgeordneten Befehle die dem Booten vorgeordnete Information nicht durch externe Mittel abgerufen werden, wodurch eine Manipulation des ersten Signaturverifizierungsprozesses im Wesentlichen vermieden ist. In einigen anschaulichen Ausführungsformen wird auf die Vorbootinformation nach der Verifizierung der Signatur mittels einer externen Anwendung zugegriffen, beispielsweise für das Zugreifen auf Entschlüsselungsschlüssel zum Bewerten der Integrität von BIOS-Aktualisierungsversionen und dergleichen.
  • Folglich kann nach der Verifizierung der Signatur des ersten Bereichs die Bootinformation die Ablaufsteuerung diesem Bereich übertragen und die weitere Bootverarbeitung kann fortgesetzt werden, indem der Systemspeicher initialisiert wird und die verbleibende Bootinformation kopiert wird, wobei auch die Integrität des weiteren Bereichs der Bootinformation verifiziert wird. Folglich können die Daten, d. h. die Befehle und Datenwerte, die in dem nicht-flüchtigen Speicher, der als ein integraler Teil der CPU vorgesehen ist, enthalten sind, als eine statische Wurzel bzw. Basis der Vertrauenswürdigkeit für die Messung verwendet werden, wodurch eine Computerplattform bereitgestellt wird, in der im Hinblick auf Manipulationsversuche widerstandsfähige Hardware- und Software-Konfiguration erreicht wird. Insbesondere im Hinblick auf Angriffe, etwa das Austauschen des BIOS-Chips, bieten die hierin offenbarten Ausführungsformen erhöhte Sicherheit für typische praktische Anwendungen, die die Plattform im Zusammenhang mit finanziellen Transaktionen oder der digitalen Rechteverwaltung verwenden, die auf dem Erfordernis einer vertrauenswürdigen Computerplattform basieren.
  • 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 Basis an Vertrauenswürdigkeit für die Messung (CRTM) mit einem hohen Grad an Manipulationssicherheit eingerichtet ist. Die CPU 100 umfasst einen CPU-Kern 102, der Komponenten für die Datenverarbeitung enthält, etwa zum Ausführen arithmetischer Operationen, Logikoperationen und dergleichen. 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 mit der Gesamtkonfiguration der CPU 100 kompatibel ist. In einer anschaulichen Ausführungsform umfasst der RAM 101 einen ersten Speicherbereich, der auch als Datencache 101a bezeichnet ist, und einen zweiten Bereich, der als Befehlscache 101b bezeichnet ist. Beispielsweise kann der RAM 101 in einer schnellen Speichertechnologie aufgebaut sein, um damit das Gesamtleistungsverhalten der CPU 100 zu verbessern, wie dies typischerweise in anspruchsvollen integrierten Schaltungen erforderlich ist. Es sollte jedoch beachtet werden, dass eine beliebige geeignete Speichertechnologie für den Speicher 101 verwendet werden kann, sofern die direkte Steuerung des Speichers 101 über den CPU-Kern 102 ohne Möglichkeit eines externen Zugriffes während der Initialisierung der CPU 100 verwirklicht ist.
  • Des weiteren umfasst die CPU 100 einen nicht-flüchtigen Speicher 103, der in einer geeigneten Speichertechnologie bereitgestellt wird, beispielsweise in Form eines Flash-Speichers oder einer anderen Nur-Lese-Speichertechnologie, 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 Basis der Vertrauenswürdigkeit repräsentiert. Zu diesem Zweck ist ein Satz aus Daten 103a, die zu verstehen sind als Befehle, die von dem CPU-Kern 102 ausführbar sind, und Datenwerte, die Operanden und dergleichen der Befehle repräsentieren, in mindestens einem Teil des Speichers 103 vorgesehen, der nicht mit neuen Daten überschrieben werden kann, sobald der entsprechende Teil des Speichers 103 programmiert ist. Der Speicher 103 mit dem Satz aus Daten 103a ist mit dem CPU-Kern 102 mittels eines Bussystems 104 verbunden, so dass beim Einschalten oder eines Zurücksetzereignisses ein Sprung zu einer spezifizierten Adresse des Speichers 103 ausgeführt wird. Folglich ist ein „fest verdrahtetes” Ziel für einen Rücksetzvektor des CPU-Kerns 102 vorgesehen, der sicherstellt, dass das Ausführen der Befehle aus dem sicheren Speicher 103 heraus erfolgt zumindest beim Einschalten oder bei einem Rücksetzereignis.
  • Es sollte beachtet werden, dass die CPU 100 auf der Grundlage moderner Halbleiterfertigungsverfahren hergestellt werden kann, in denen ein geeignetes Trägermaterial, etwa ein Halbleitersubstrat und dergleichen, mehrere Schaltungselemente erhält, die auf Grundlage der betrachteten Technologie hergestellt werden, etwa durch CMOS-Prozesse und dergleichen, in denen Transistorelemente, Kondensatoren, Widerstände und dergleichen gemäß einer speziellen Bauteilarchitektur für die CPU 100 aufgebaut werden. In der dargestellten Ausführungsform sind daher diverse Komponenten der CPU 100 auf einem gemeinsamen Substrat während eines gemeinsamen Fertigungsablaufs aufgebaut, wodurch die Speicher 101 und 103 als interne oder integrale Komponenten des Bauelements 100 vorgesehen sind. Beispielsweise sind entsprechende Fertigungstechniken gut etabliert, in denen flüchtige und schnelle Speicherzellen zusammen mit nicht-flüchtigen Speicherzellen und Hochleistungslogikgattern aufgebaut werden, wie sie in dem CPU-Kern 102 erforderlich sind. Des weiteren werden geeignete Mechanismen vorgesehen, so dass nach dem Programmieren des Speichers 103 oder zumindest eines Teils davon, der den Satz aus Daten 103a enthält, ein weiterer Zugriff zum Ändern von Datenbits verhindert wird, um damit eine geschützte Umgebung für den Datensatz 103a zu schaffen.
  • 1b zeigt schematisch ein Computersystem 150 mit der CPU 100, die für die geschützte Umgebung für den Satz aus Daten 103a sorgt, wie dies zuvor erläutert ist, wobei in der gezeigten Ausführungsform die CPU 100 den Speicher mit wahlfreiem Zugriff 101 in Form des Datencachespeichers 101a und des Befehls-Cache-Speichers 101b aufweist, die eine Größe von beispielsweise 64 kB aufweisen, um damit einen Teil der Bootinformation aufzunehmen und als ein „System-RAM” zu dienen, wenn die Befehle des Datensatzes 103a ausgeführt werden. In ähnlicher Weise wird der Befehlscache-Speicher 101b mit einer Größe von 64 kB vorgesehen, wobei zu beachten ist, dass eine beliebige andere geeignete Speichergröße eingesetzt werden kann, die mit der Größe eines entsprechenden Teils an Bootinformation kompatibel ist, der von dem Speicher aus 101 während eines Verifizierungsprozesses aus auszuführen ist. In ähnlicher Weise wird der interne nicht-flüchtige Speicher 103 mit einer geeigneten Größe, beispielsweise 32 kB vorgesehen, um mit den Erfordernissen für die Daten 103a, die die Basis der Vertrauenswürdigkeit für die Messung für das Computersystem 150 repräsentieren, verträglich zu sein. Beispielsweise weist der Satz aus Daten 103a Befehle und Datenwerte auf, die eine sichere Einladeroutine für das Einladen eines entsprechenden Teils der Bootinformation in den internen Speicher 101 zum Ausführen eines Verifizierungsprozesses repräsentieren. Des weiteren kann der Datensatz 103a einen oder mehrere Entschlüsselungsschlüssel aufweisen, die öffentliche Schlüssel eines asymmetrischen Verschlüsselungs/Entschlüsselungsalgorithmus repräsentieren, um damit möglich zu machen, dass ein signierter Bereich der Bootinformation in dem Speicher 101 verifiziert wird. Es sollte beachtet werden, dass die Anzahl öffentlicher Schlüssel in den Datensatz 103a entsprechend den Sicherheitsrichtlinien ausgewählt werden kann, beispielsweise im Hinblick auf Unterhalten einer geeigneten Infrastruktur zum Bereitstellen entsprechender Schlüsselpaare mit einem hohen Maß an Integrität und dergleichen.
  • Das Computersystem 150 umfasst ferner einen Systemspeicher 110, beispielsweise in Form eines beliebigen geeigneten Speicherbauelements mit Speicherzellen mit wahlfreiem Zugriff, etwa dynamische RAM-Zellen und dergleichen. Die Größe des Systemspeichers 110 kann auf die Erfordernisse des Systems 150 im Hinblick auf Leistungsfähigkeit und Speicherkapazität angepasst werden. Das System 150 umfasst ferner einen nichtflüchtigen Speicher 120, etwa einen Flash-Speicher und dergleichen, der Information enthält, die als BIOS-Information bezeichnet wird, wovon zumindest ein Teil davon als ein signierter Bereich vorhanden ist, d. h. der signierte Bereich umfasst eine Signatur, die auf der Grundlage eines geeigneten Prüfsummenalgorithmus in Verbindung mit einem Verschlüsselungsmechanismus erhalten wird, für die ein oder mehrere geeignete Entschlüsselungsschlüssel in dem Satz aus Daten 103a vorhanden sind, wie dies zuvor erläutert ist.
  • In einer anschaulichen Ausführungsform enthält der nicht-flüchtige Speicher 120 die Bootinformation, die in zwei Bereiche unterteilt ist, wobei ein erster Bereich Daten und Befehle zum Initialisieren anderer Systemkomponenten, etwa des Systemsspeichers 110 aufweist, um den zweiten Bereich an Bootinformation aufzunehmen und den zweiten Bereich auszuführen, sobald der erste Bereich auf der Grundlage der durch die CPU 100 bereitgestellten gesicherten Umgebung verifiziert ist. Eine detailliertere Konfiguration der Bootinformation innerhalb des nicht-flüchtigen Speichers 120 wird nachfolgend mit Bezug zu den 1c und 1d beschrieben.
  • 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 einmal programmierbaren Speicher 130, der plattformspezifische Informationen aufweist, beispielsweise über Bootquellen und entsprechende Parameter. Wie beispielsweise gezeigt ist, kann der einmal programmierbare Speicher 130 Information aufweisen, die Bootoptionen betreffen, um damit der CPU 100 anzuzeigen, ob diese aus dem internen Speicher 103 heraus zu initialisieren ist oder nicht. Ferner können in dem Speicher 130 vorhandenen Sicherheitsbits ein entsprechendes Bit aufweisen, das festlegt, wohin die erste Befehlsabfrage der CPU 100 nach dem Zurücksetzen zu leiten ist. Wenn beispielsweise dieses Bit auf „1” gesetzt ist, wird die Ausführung an den internen Speicher 103 abgegeben, wodurch eine sichere Boot-Verarbeitung möglich ist. In einigen Fällen ist es wünschenswert, die sichere Bootfunktion für Entwicklungszwecke/Fehlererkennungszwecke zu deaktivieren. In anderen Fällen ist es abhängig von den Plattformerfordernissen auch wünschenswert, vertrauenswürdige Plattformsicherheitsmerkmale zu deaktivieren oder zu umgehen. In diesem Falle ist eine Änderung des Zustands dieses Bits während des sicheren Bootablaufs nicht zulässig. Zu diesem Zweck werden alle Früherkennungsmodi (JTAG, ...) zumindest während des Initialisierens deaktiviert. Nach dem Deaktivieren entsprechender Fehlererkennungsmodi wird die Ausführung des sicheren Bootprozesses ausgeführt, wie dies nachfolgend detaillierter beschrieben ist. In ähnlicher Weise kann der Speicher 130 ein Bit aufweisen, um Fehlererkennungsmerkmale während des sicheren Bootprozesses zu steuern, was während gewisser Entwicklungsphasen vorteilhaft sein kann, während für die Produktion eine entsprechende Steuerung von Fehlerkennungsmerkmalen deaktiviert wird. Zusätzlich zu diesen Sicherheitsbits kann der Speicher 130 andere Informationen aufweisen, etwa die Kennung des Herstellers oder eine einzigartige Zahl, die für Anwendungen in digitalen Rechteverwaltungsroutine und dergleichen verwendbar ist. Es sollte beachtet werden, dass in anderen anschaulichen Ausführungsformen der einmal programmierbare Speicher 130 weggelassen werden kann oder so vorgesehen wird, dass dieser andere Information enthält, die einen sicheren Initialisierungsprozess während der Entwicklung und der eigentlichen Anwendung steuert.
  • 1c zeigt schematisch die Struktur der Bootinformation 121, die in dem nicht-flüchtigen Speicher 120 enthalten ist. In der in 1c gezeigten Ausführungsform enthält die Bootinformation 121, die auch als BIOS bezeichnet wird, einen ersten Teil 121a, der einen Satz aus Daten mit Befehlen und Datenwerten mit einer Größe repräsentiert, die mit der Größe des Speichers 101 kompatibel ist, wie dies zuvor erläutert ist. Beispielsweise wird für die oben angegebenen beispielhaften Werte für 64 kB für jeweils die RAM-Bereiche 101a, 101b eine maximale Größe des Bereichs 121a auf ungefähr 32 kB beschränkt. Es sollte jedoch beachtet werden, dass eine beliebige andere geeignete Größe des Teils 121a vorgesehen werden kann in Abhängigkeit des verfügbaren Speicheranteils innerhalb des RAM 101. Es sollte ferner beachtet werden, dass das Vorsehen des Teils 121a für Bootinformation 121 erforderlich ist, die die Größe des Speichers 101 überschreitet, so dass die gesamte Bootverarbeitung nicht auf Grundlage des Speichers 101 ausgeführt werden kann, da typischerweise Bootroutinen eine Größe von mehreren 100 kB oder mehr aufweisen. In anderen Fällen kann, wenn ausreichend Speicherplatz verfügbar ist, die Bootinformation 121 als Ganzes während der sicheren Bootverarbeitung verwendet werden, wie dies nachfolgend detaillierter erläutert ist.
  • Wenn somit der Teil 121a vorgesehen ist, wie dies in 1c gezeigt ist, kann dieser als anfängliche BIOS-„Laderoutine” für einen zweiten Teil 121b betrachtet werden, wobei der erste Teil 121a darin eine Prüfsumme aufweist, die über dem Bereich 121b hinweg erhalten wurde. Die Prüfsumme für den Teil 121b kann auch durch die Signatur geschützt werden, die in dem Teil 121a auf der Grundlage eines Prüfsummenwertes enthalten ist, der über den ersten Teil 121a erhalten wurde, was in einem zugeordneten Vertrauenszentrum bewerkstelligt werden kann. Somit ist eine Verschlüsselung der Prüfsumme des zweiten Teils ggf. nicht erforderlich. Die Signatur der Prüfsumme(n) für den Teil 121a kann verwendet werden, um den Teil 121a während eines sicheren Bootprozesses zu verifizieren. Der Teil 121a kann daher ausgebildet sein, die erforderlichen Plattforminitialisierungsaktionen auszuführen, etwa die Initialisierung einer Speichersteuerung 141 und dergleichen, woran sich das Kopieren des Teils 121b von dem Speicher 120 in den initialisierten Systemspeicher 110 anschließt.
  • Beim Ausführen des Teils 121a wird auch eine Prüfsumme über das Bild 121b, das in den Systemspeicher 110 kopiert ist, berechnet, die dann mit der Prüfsumme verglichen wird, die anfänglich in dem Teil 121a enthalten ist. Somit kann die Integrität des Teils 121b auf der Grundlage der Prüfsumme verifiziert werden, die in dem Teil 121a enthalten ist, wodurch eine vertrauenswürdige Kette an Integrität geschaffen wird. Somit kann, wie in 1c gezeigt ist, der Teil 121a verarbeitet werden, um damit eine Signatur zu erhalten, das in einem geeigneten Vertrauenszentrum auf der Grundlage einer geeigneten vertrauenswürdigen Umgebung bewerkstelligt werden kann. Zu diesem Zweck können sichere Prüfsummenalgorithmen angewendet werden, um einen oder mehrere Prüfsummenwerte, beispielsweise wie sie als hash 0, hash 1, hash 2 angegeben sind, in Verbindung mit geeigneten Steuerdaten vorzusehen. Danach wird eine geeignete Verschlüsselungstechnik eingesetzt, beispielsweise ein RSA (Rivest, Schamir, Adelman) Algorithmus unter Anwendung geeigneter privater Schlüssel, wodurch die verschlüsselten Prüfsummenwerte gewonnen werden, wie sie auf der rechten Seite der 1c gezeigt sind. Wie zuvor erläutert ist, kann eine geeignete Anzahl öffentlicher Schüssel in dem Datensatz 103a enthalten sein, wodurch eine Entschlüsselung der verschlüsselten Prüfsummenwerte oder Signaturen, die durch die in 1c gezeigte Sequenz erzeugt wurden ermöglicht wird.
  • 1d zeigt schematisch eine Sequenz zum Verifizieren der Signaturen, die in dem Teil 121a, enthalten sind, wobei der Vorgang auf der Grundlage des Datensatzes 103a während des Initialisierens des Systems 150 ausgeführt wird. Die Verifizierung kann auf der Grundlage von beispielsweise dem RSA-Algorithmus unter Anwendung eines öffentlichen Schlüssel bewerkstelligt werden, wodurch die anfänglich erzeugten Prüfsummenwerte, etwa hash 0, hash 1 und hash 2 erhalten werden. Diese anfänglich erzeugten Prüfsummenwerte werden dann mit den entsprechenden Prüfsummenwerte verglichen, die erhalten werden, indem der geeignete Prüfsummenalgorithmus über den Teil 121a, der in den RAM-Speicher 101 kopiert wurde, angewendet wird. Der Teil 121a kann dann als verifiziert betrachtet werden, wenn der bzw. die berechneten Prüfsummenwerte mit den anfänglich erzeugten Prüfsummenwerte, die durch das Entschlüssen der Signaturen in dem Teil 121a erhalten werden, übereinstimmen, wie dies auf der linken Seite der 1d gezeigt ist.
  • Mit Bezug zu den 1e und 1f wird die Funktionsweise des Systems 150 gemäß anschaulicher Ausführungsformen detaillierter während eines sicheren Bootens beschrieben. Wie zuvor erläutert ist, ist im Hinblick auf das Vorsehen einer sicheren Plattform eine statische Basis der Vertrauenswürdigkeit einzurichten, um damit ein sicheres Anlaufen bzw. Booten eines Betriebssystems nach dem Einschalten oder nach dem Zurücksetzen des betrachteten Computersystems zu ermöglichen. Zu diesem Zweck wird ein definiertes Ausführen der vertrauenswürdigen BIOS-Information 121 erreicht, indem zumindest der Teil 121a auf der Grundlage des vertrauenswürdigen Satzes an Daten 103a verifiziert wird, der im Wesentlichen gegenüber einer externen Manipulation resistent ist. Somit wird bei jedem Aktivieren des Systems 150 ein sicherer Bootprozess initiiert, wobei unter Anwendung von Verschlüsselungsverfahren eine Integritätsverifizierung der anfänglichen Hardware und der Softwarekonfiguration erreicht werden kann. Beim Verifizieren der Integrität der Bootinformation 121, d. h. in den gezeigten Ausführungsformen, die Teile 121a, 121b, kann die Integrität des gesamten Bootvorganges bestätigt werden, wodurch eine vertrauenswürdige Initialisierung eines Betriebssystems möglich ist, das wiederum zum Ausführen von sicherheitssensiblen Anwendungen verwendet werden kann. Wenn andererseits die Integritätsprüfung nicht bestanden wird, beispielsweise während des Verifizierens der Teile 121a oder 121b, kann eine geeignete Strategie angewendet werden, beispielsweise um die Dienstleistungen zu beschränken, die von dem System 150 geboten werden, oder in anderen anschaulichen Ausführungsformen wird die Bootverarbeitung deaktiviert.
  • Somit kann die hierin offenbarte sichere Bootarchitektur gegenüber „klassenübergreifenden” Manipulationen schützen, die als Angriffe zu verstehen sind, die gegen jede einzelne Komponente eines gegebenen Sicherheitssystems gerichtet sind. Beispielsweise kann eine Softwareroutine, die von einer externen Quelle erzeugt wurde, als klassenübergreifende Manipulation betrachtet werden, die leicht zu installieren ist und eine Umgehung von Sicherheits/Schutzmaßnahmen ermöglicht wird, wodurch eine nicht-autorisierte Verwendung der Plattform möglich ist. In der digitalen Rechteverwaltung (DRM) wird in einer entsprechenden Umgebung eine klassenübergreifende Manipulierung bereits als gegeben erachtet, wenn die DRM-geschützten Datendateien ein einziges Mal abgerufen werden, wodurch eine Neuverteilung der ungeschützten Datei möglich ist. Somit bieten hierin offenbarte Mechanismen und Systeme eine verbesserte Sicherheit im Hinblick auf klassenübergreifende Manipulationen, da geschützte Umgebungen auf der Grundlage eines integralen Teilbereichs innerhalb der CPU selbst erreicht werden, wodurch eine Manipulation der CPU selbst erforderlich ist, oder entsprechende Fehler in der Infrastruktur zum Erzeugen der Signatur der Bootinformation und zum Beibehalten der sicheren Schlüssel, wobei in beiden Fällen ein hoher Aufwand im Hinblick auf Zeit und Geld erforderlich ist.
  • 1e zeigt schematisch ein Flussdiagramm zum Beschreiben der Funktionsweise des Systems 150. Im Schritt S100 wir das System 150 zurückgesetzt oder es wird eingeschaltet, oder es findet ein anderes Ereignis statt, das eine sichere Bootverarbeitung erfordert. Folglich wird ein geeigneter Selbsttest von den CPU-Kern 102 ausgeführt und entsprechende Komponenten, etwa Register und dergleichen, werden initialisiert. Es sollte beachtet werden, dass in einigen Ausführungsformen ein sicherer Bootvorgang in einem Betriebszustand nicht aufgerufen wird, in dem das Betriebssystem weiterhin die Steuerung des Systems 150 beibehält. Im Schritt S110 wird der erste Befehl aus dem internen nicht-flüchtigen Speicher 103 abgeholt, was bewerkstelligt werden kann, indem der interne Speicher 103 auf die entsprechende Rücksetzvektoradresse abgebildet wird. Somit beginnt die CPU 100 das Ausführen auf der Grundlage des sicheren Datensatzes 103a in all jenen Fällen, in denen ein Sprung zu dem Rücksetzvektor durch ein externes Ereignis bewirkt wird. Im Schritt S120 wird der interne Speicher mit wahlfreiem Zugriff 101 initialisiert auf Grund des Ausführens von Befehlen, die in dem Satz 103a enthalten sind. Im Schritt 130 wird zumindest ein Teil der Bootinformation 121, beispielsweise der Teil 121a, mit einer Signatur davon, in den internen Speicher mit wahlfreiem Zugriff 101 eingeladen. Im Schritt S140 wird die Integrität der Bootinformation 121 oder des Teils 121a verifiziert, indem ein Entschlüsselungsschlüssel, der in dem Datensatz 103a enthalten ist, verwendet wird. d. h., nach dem Initialisieren des Speichers 101 wird die Signaturprüfung für die Bootinformation 121 oder zumindest den Teil 121a begonnen. Zu diesem Zweck werden in einigen anschaulichen Ausführungsformen Prüfwerte auf der Grundlage sicherer Prüfsummenalgorithmen berechnet, etwa SHA1, wobei die eine oder die mehreren Signaturen für die Bootinformation 121 oder den Teil 121a übersprungen werden. Ferner kann zusätzliche Information, etwa die Herstelleridentität, die in dem einmal programmierbaren Speicher 130 enthalten ist, in einigen Fällen verwendet werden und kann im Berechnen des einen oder der mehreren Prüfsummenwerte mit eingeschlossen werden. Der eine oder die mehreren berechneten Prüfsummenwerte können dann mit dem einen oder der mehreren Prüfsummenwerte verglichen werden, die in einer speziellen Stelle der Daten 121 oder 121a enthalten sind, wie dies auch zuvor mit Bezug zu 1d beschrieben ist. Dazu können die Prüfsummenwerte von der einen oder den mehreren Signaturen unter Anwendung der öffentlichen Entschlüsselungsschlüssel, die in dem Datensatz 103a enthalten sind, abgerufen werden, um damit die anfänglichen Prüfsummenwerte zu erhalten. Wenn sowohl die berechneten Prüfsummenwerte als auch die anfänglichen Prüfsummenwerte übereinstimmen, wird die Bootinformation 121 oder der Teil 121a im Schritt S150 als vertrauenswürdig betrachtet, und das Booten wird im Schritt S160 fortgesetzt. Wenn die Integritätsprüfung im Schritt S150 fehlschlägt, wird im Schritt S170 ein entsprechender Bootfehler angezeigt, was in einer anschaulichen Ausführungsform erreicht werden kann, indem die Bootverarbeitung abgebrochen wird und ein entsprechender Fehler ausgegeben wird.
  • In der zuvor beschriebenen Ausführungsform wird vor dem Übergeben der Ablaufsteuerung an die Bootinformation 121 oder dem Bereich 121a der sichere Bootprozess, d. h. der durch die Schritte S100 bis S150 repräsentierte Prozessablauf, ein Ausführen von Rücksetzprozeduren von Komponenten des Systems 150 nicht vorgesehen, wodurch eine zuverlässige „Messung” der Hardwarekonfiguration des Systems 150 möglich ist.
  • 1f zeigt schematisch eine sichere Bootverarbeitung gemäß noch anderer anschaulicher Ausführungsformen. Wie gezeigt, wird im Schritt S101 entschieden, ob eine sichere Bootverarbeitung aktiviert ist. Eine entsprechende Angabe kann erreicht werden, indem jeweilige Sicherheitsbits, die in dem Speicher 130 enthalten sind, gesetzt werden. Gemäß dem Schritt S100 wird die Ausführungsform aus dem nicht-flüchtigen Speicher 103 heraus begonnen, wie dies zuvor erläutert ist. Im Schritt S102 wird Statusinformation beispielsweise zum geeigneten Setzen eines Ausgangsports bereitgestellt. Beispielsweise wird im Schritt S102 angegeben, dass die sichere Bootverarbeitung während des internen Selbsttests gestartet wird. Im Schritt S120 werden das System 150 und insbesondere die CPU 100 initialisiert, wobei beispielsweise ein oder mehrere der Schritte S121 bis S129 beteiligt sind. Beispielsweise wird im Schritt S121 der Adressenbereich des Speichers 103 in geeigneter Weise erneut zugeordnet, um damit sicherzustellen, dass der erste Befehl aus dem Speicher 103 abgerufen wird. Im Schritt S122 wird eine Bootquelle erkannt und im Schritt S123 initialisiert. Des weiteren werden der Speicher 101, d. h. der Datencachespeicher 101a, und der Befehlscachespeicher 101b in den Schritten S124, S125 initialisiert und es wird ein „nicht realer” Modus für den Datencachespeicher im Schritt S126 festgelegt. Ferner wird ein Bild der Bootinformation 121 oder des Teils 121a in dem Datencachespeicher 101a kopiert und im Schritt S128 wird Speicherplatz für Variablen in den Datencachespeicher 101a bereitgestellt. Schließlich wird bei Bedarf im Schritt S129 die Herstellerkennung abgerufen.
  • Im Schritt S141 wird ein Block der Bootinformation 121 oder des Teils 121a eingelesen und im Schritt S142 wird ein entsprechender Prüfsummenalgorithmus ausgeführt, um einen ersten Prüfsummenwert zu erhalten. Im Schritt S143 wird bestimmt, der zuvor eingelesene Block an Daten der letzte Block oder nicht. Wenn nicht, geht der Prozessablauf zurück zum Schritt S121, um einen weiteren Block an Daten einzulesen und in dem nachfolgenden Schritt 142 wird ein Prüfsummenwert berechnet und der zuvor erhaltene Wert wird aktualisiert. Wenn im Schritt 143 der letzte Block eingelesen ist, wird im Schritt S144 der berechnete Prüfsummenwert gespeichert und im Schritt S145 wird ein relevanter Teil der Daten 121 oder 121a eingelesen, um die darin enthaltenen Signaturen zu erhalten. Beispielsweise kann für diesen Zweck der Kopf des Blockes der Information 121 oder des Teils 121 verwendet werden. Im Schritt S146 werden die einen oder die mehreren Signaturen abgerufen und im Schritt S147 werden ein oder mehrere öffentliche Schlüssel angewendet, um die im Schritt 146 ermittelten Signaturen zu entschlüsseln. Im Schritt S150 werden der bzw. die im Schritt S144 gespeicherten Prüfsummenwerte mit den ursprünglichen Prüfsummenwerten verglichen, die durch das Ausführen des Schritts S147 ermittelt werden, wodurch entschieden wird, ob die Daten 121 oder 121a als vertrauenswürdig zu betrachten sind oder nicht.
  • Wenn die Prüfsummenwerte im Schritt S150 übereinstimmen, wird der zuvor initialisierte Befehlscachespeicher mit den Bootdaten 121 bzw. 121a aktualisiert, die aktuell in dem Datencachespeicher 101a enthalten sind, um die Bootdaten in diesen Speicher zu verifizieren. Im Schritt S162 wird der Status des sicheren Bootprozesses angegeben und schließlich wird im Schritt S163 das Booten fortgesetzt, indem Befehle aus dem Befehlscachespeicher ausgeführt werden, die beispielsweise das Initialisieren des Systemsspeichers 110, das Abrufen von verbleibenden Bereichen der Bootdaten 121, etwa des Teils 121b, und das Verifizieren von dessen Integrität durch Berechnung eines Prüfsummenwertes und Vergleichen des berechneten Prüfsummenwertes mit einem ursprünglichen Prüfsummenwert, der in dem Teil 121a enthalten ist, beinhalten kann. Wenn die Integrität im Schritt S150 nicht bestätigt wird, wird im Schritt S171 eine entsprechende Statusinformation, beispielsweise 0xCD) bereitgestellt und im Schritt S172 wird in einer anschaulichen Ausführungsform die Ausführung abgebrochen.
  • Es gilt also: Die hierin offenbarten Systeme und Mechanismen bieten eine bessere Integrität von Computerplattformen, indem ein sicherer Bootverarbeitungsprozess auf Grundlage einer dem Booten vorgeordneten Routine vorgesehen ist, die in einem nicht-flüchtigen Speicher enthalten ist, der nicht überschrieben werden kann, sobald Daten in dem nichtflüchtigen Speicher enthalten sind. Da der nicht-flüchtige Speicher ein Teil der CPU selbst ist, kann die Systeminitialisierung auf der Grundlage der dem Booten vorgeordneten Information, die in dem nicht-flüchtigen internen Speicher enthalten ist, bewerkstelligt werden, wobei dieser auch geeignete Entschlüsselungsschlüssel aufweist, die auf signierte Bootinformation oder zumindest auf einen signierten Teil der Bootinformation angewendet werden. Der Vorgang des Berechnens geeigneter Prüfsummenwerte für die Bootinformation oder eines Teils davon und der Vergleich mit ursprünglich erzeugten Werten, die in verschlüsselter Form in der Bootinformation gespeichert sind, können bewerkstelligt werden, indem der interne Speicher mit wahlfreiem Zugriff der CPU verwendet wird, wodurch die Möglichkeit eines externen Zugriffes und damit die Möglichkeit des Manipulierens der Systemkonfiguration verhindert wird. Somit kann die intern gespeicherte dem Booten vorgeordnete Information als eine Basis der Vertrauenswürdigkeit für die Messung während der Systeminitialisierung verwendet werden.

Claims (10)

  1. Verfahren zum Initialisieren eines Computersystems (150), wobei das Verfahren die nacheinander ausgeführten Schritte umfasst: Zugreifen auf einen ersten Satz an Daten (103a), der in einem nicht-flüchtigen Nur-Lese-Speicherbereich (103) einer zentralen Recheneinheit (100) gespeichert ist, wobei der erste Satz an Daten (103a) Befehle enthält, die eine Kernschaltung (102) der zentralen Recheneinheit (100) veranlassen, einen Speicher mit wahlfreiem Zugriff (101) der zentralen Recheneinheit (100) zu initialisieren; Einladen eines Bildes eines zweiten Satzes an Daten (121a), der eine BIOS-Laderoutine bereitstellt, aus einem nicht-flüchtigen Speicher (120) in den initialisierten Speicher (101) mit wahlfreiem Zugriff und einer Signatur zum Verifizieren der Integrität des zweiten Satzes an Daten (121a), und wobei der zweite Satz an Daten ferner zweite Befehle enthält, die die zentrale Recheneinheit (100) veranlassen, einen Systemspeicher (110) des Computersystems (150) zu initialisieren, und einen Satz an BIOS-Daten in den initialisierten Systemspeicher zu laden; Verifizieren der Integrität des zweiten Satzes an Daten (121a) unter Verwendung der Signatur und eines Entschlüsselungsschlüssels, der in dem ersten Satz an Daten (103a) enthalten ist; Initialisieren des Systemspeichers (110) unter Verwendung der zweiten Befehle, wenn die Verifizierung des zweiten Satzes an Daten (121a) erfolgreich ist; und Einladen des Satzes an BIOS-Daten (121b) aus dem nicht-flüchtigen Speicher (121) in den Systemspeicher (110) und Verifizieren einer Integrität des Satzes an BIOS-Daten (121b).
  2. Verfahren nach Anspruch 1, das ferner umfasst: Ausführen dritter Befehle, die in dem Satz an BIOS-Daten (121b) enthalten sind, wobei die dritten Befehle bewirken, dass ein Betriebssystem in den Systemspeicher (110) von einer bootfähigen Einrichtung, die mit dem Computersystem (150) verbunden ist, eingeladen wird.
  3. Verfahren nach Anspruch 1, wobei Initialisieren des Speichers mit wahlfreiem Zugriff umfasst: Initialisieren eines Datencachespeichers (101A) und eines Befehlscachespeichers (101B) der zentralen Recheneinheit (100) und wobei der zweite Satz an Daten (121a) in den Datencachespeicher (101A) eingeladen wird.
  4. Verfahren nach Anspruch 3, das ferner umfasst: Kopieren des zweiten Satzes an Daten (121a) in den Befehlscachespeicher (101B), wenn die Integrität des zweiten Satzes an Daten (121a) erfolgreich verifiziert ist, um die zweiten Befehle auszuführen.
  5. Verfahren nach Anspruch 1, wobei Einladen des zweiten Satzes an Daten (121a) in den Speicher mit wahlfreiem Zugriff umfasst: Ausführen eines Prüfsummenalgorithmus, um einen Prüfsummenwert des zweiten Satzes an Daten (121a) zu bestimmen.
  6. Verfahren nach Anspruch 6, wobei Verifizieren einer Integrität des zweiten Satzes an Daten (121a) umfasst: Vergleichen des Prüfsummenwertes des zweiten Satzes an Daten (121a) mit einem anfänglichen Prüfsummenwert, der durch Anwenden des Verschlüsselungsschlüssels auf die Signatur ermittelt wird.
  7. Verfahren nach Anspruch 1, wobei auf den ersten Satz an Daten (103a) immer zugegriffen wird, wenn die zentrale Recheneinheit (100) zurückgesetzt oder eingeschaltet wird.
  8. Verfahren nach Anspruch 1, das ferner umfasst: erneutes Zuordnen von Adressen des ersten Satzes an Daten innerhalb eines virtuellen Adressenraumes der zentralen Recheneinheit (100), um externen Zugriff zumindest zu dem Entschlüsselungsschlüssel nach dem erfolgreichen Verifizieren des zweiten Satzes an Daten (121a) zu ermöglichen.
  9. Verfahren nach Anspruch 1, das ferner umfasst: Bereitstellen von Statusinformation zumindest über einen Verifizierungsstatus des zweiten Satzes an Daten (121a).
  10. Verfahren nach Anspruch 1, wobei Verifizieren der Integrität des Satzes an BIOS-Daten (121b) umfasst: Bestimmen eines Prüfsummenwertes für den Satz an BIOS-Daten (121b) und Vergleichen des bestimmten Prüfsummenwertes mit einem anfänglichen Prüfsummenwert des Satzes an BIOS-Daten (121b), der in dem zweiten Satz an Daten (121a) enthalten ist.
DE102008011925.3A 2008-02-29 2008-02-29 Sicheres Initialisieren von Computersystemen Expired - Fee Related DE102008011925B4 (de)

Priority Applications (8)

Application Number Priority Date Filing Date Title
DE102008011925.3A DE102008011925B4 (de) 2008-02-29 2008-02-29 Sicheres Initialisieren von Computersystemen
US12/186,821 US8656146B2 (en) 2008-02-29 2008-08-06 Computer system comprising a secure boot mechanism
TW098106104A TWI498768B (zh) 2008-02-29 2009-02-26 具有安全啟動機制之電腦系統、啟動電腦系統的方法、及中央處理單元
KR1020107021808A KR101237527B1 (ko) 2008-02-29 2009-02-27 보안 부팅 메커니즘을 포함하는 컴퓨터 시스템
CN200980106728XA CN101965570B (zh) 2008-02-29 2009-02-27 具有安全启动机制的计算机系统
EP09716112A EP2250599A1 (de) 2008-02-29 2009-02-27 Computersystem mit sicherem startmechanismus
JP2010548742A JP2011527777A (ja) 2008-02-29 2009-02-27 安全な起動メカニズムを備えたコンピュータシステム
PCT/US2009/001289 WO2009108371A1 (en) 2008-02-29 2009-02-27 A computer system comprising a secure boot mechanism

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102008011925.3A DE102008011925B4 (de) 2008-02-29 2008-02-29 Sicheres Initialisieren von Computersystemen

Publications (2)

Publication Number Publication Date
DE102008011925A1 DE102008011925A1 (de) 2009-09-03
DE102008011925B4 true DE102008011925B4 (de) 2018-03-15

Family

ID=40911374

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102008011925.3A Expired - Fee Related DE102008011925B4 (de) 2008-02-29 2008-02-29 Sicheres Initialisieren von Computersystemen

Country Status (8)

Country Link
US (1) US8656146B2 (de)
EP (1) EP2250599A1 (de)
JP (1) JP2011527777A (de)
KR (1) KR101237527B1 (de)
CN (1) CN101965570B (de)
DE (1) DE102008011925B4 (de)
TW (1) TWI498768B (de)
WO (1) WO2009108371A1 (de)

Families Citing this family (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9582676B2 (en) * 2005-01-31 2017-02-28 Unisys Corporation Adding or replacing disks with re-key processing
US8522066B2 (en) * 2010-06-25 2013-08-27 Intel Corporation Providing silicon integrated code for a system
US8812828B2 (en) * 2010-11-16 2014-08-19 Intel Corporation Methods and apparatuses for recovering usage of trusted platform module
US8560845B2 (en) * 2011-01-14 2013-10-15 Apple Inc. System and method for tamper-resistant booting
US20120204254A1 (en) * 2011-02-04 2012-08-09 Motorola Mobility, Inc. Method and apparatus for managing security state transitions
US9021244B2 (en) * 2011-11-04 2015-04-28 Insyde Software Corp. Secure boot administration in a Unified Extensible Firmware Interface (UEFI)-compliant computing device
JP5441984B2 (ja) * 2011-11-08 2014-03-12 シャープ株式会社 電子機器システム、電子機器及び記憶媒体
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
US20130173906A1 (en) * 2011-12-29 2013-07-04 Eric T. Obligacion Cloning storage devices through secure communications links
US9262637B2 (en) * 2012-03-29 2016-02-16 Cisco Technology, Inc. System and method for verifying integrity of platform object using locally stored measurement
CN104272250A (zh) * 2012-04-30 2015-01-07 惠普发展公司,有限责任合伙企业 可配置的计算机存储器
US9047471B2 (en) * 2012-09-25 2015-06-02 Apple Inc. Security enclave processor boot control
US8873747B2 (en) 2012-09-25 2014-10-28 Apple Inc. Key management using security enclave processor
CN102929674B (zh) * 2012-11-02 2016-02-10 威盛电子股份有限公司 电子装置以及开机方法
US9881161B2 (en) 2012-12-06 2018-01-30 S-Printing Solution Co., Ltd. System on chip to perform a secure boot, an image forming apparatus using the same, and method thereof
US20140164753A1 (en) * 2012-12-06 2014-06-12 Samsung Electronics Co., Ltd System on chip for performing secure boot, image forming apparatus using the same, and method thereof
WO2014175867A1 (en) 2013-04-23 2014-10-30 Hewlett-Packard Development Company, L.P. Verifying controller code and system boot code
WO2014175862A1 (en) * 2013-04-23 2014-10-30 Hewlett-Packard Development Company, L.P. Redundant system boot code in a secondary non-volatile memory
US9235710B2 (en) 2013-05-23 2016-01-12 Cisco Technology, Inc. Out of band management of basic input/output system secure boot variables
KR101656092B1 (ko) * 2013-08-13 2016-09-08 윈본드 일렉트로닉스 코포레이션 비동기적인 인증을 갖는 보안 컴퓨팅 시스템
US9779242B2 (en) * 2013-11-13 2017-10-03 Via Technologies, Inc. Programmable secure bios mechanism in a trusted computing system
US9779243B2 (en) * 2013-11-13 2017-10-03 Via Technologies, Inc. Fuse-enabled secure BIOS mechanism in a trusted computing system
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
US9507942B2 (en) * 2013-11-13 2016-11-29 Via Technologies, Inc. Secure BIOS mechanism in a trusted computing system
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
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
US9767288B2 (en) * 2013-11-13 2017-09-19 Via Technologies, Inc. JTAG-based secure BIOS mechanism in a trusted computing system
US9367689B2 (en) * 2013-11-13 2016-06-14 Via Technologies, Inc. Apparatus and method for securing BIOS in a trusted computing system
US9547767B2 (en) 2013-11-13 2017-01-17 Via Technologies, Inc. Event-based apparatus and method for securing bios in a trusted computing system during execution
TWI560611B (en) * 2013-11-13 2016-12-01 Via Tech Inc Apparatus and method for securing bios
US9798880B2 (en) * 2013-11-13 2017-10-24 Via Technologies, Inc. Fuse-enabled secure bios mechanism with override feature
US9183394B2 (en) 2013-11-13 2015-11-10 Via Technologies, Inc. Secure BIOS tamper protection mechanism
US9129113B2 (en) 2013-11-13 2015-09-08 Via Technologies, Inc. Partition-based apparatus and method for securing bios in a trusted computing system during execution
KR102227263B1 (ko) * 2013-12-31 2021-03-15 삼성전자주식회사 보안 부트 변경 변경시스템, 방법 및 이 변경시스템을 구비한 전자장치
KR20150078644A (ko) * 2013-12-31 2015-07-08 에릭슨엘지엔터프라이즈 주식회사 소프트웨어 이미지 이중화 방법 및 장치
KR20150085301A (ko) * 2014-01-15 2015-07-23 삼성전자주식회사 메모리 시스템의 동작 방법 및 이를 포함하는 메모리 시스템의 초기화 방법
CN104866757B (zh) * 2014-02-24 2019-01-15 联想(北京)有限公司 一种验证方法及电子设备
US10621330B2 (en) 2014-03-28 2020-04-14 Hewlett-Packard Development Company, L.P. Allowing use of a test key for a BIOS installation
CN105022589A (zh) * 2014-04-29 2015-11-04 光宝科技股份有限公司 电子装置及其操作方法
US9547778B1 (en) 2014-09-26 2017-01-17 Apple Inc. Secure public key acceleration
WO2016073411A2 (en) * 2014-11-03 2016-05-12 Rubicon Labs, Inc. System and method for a renewable secure boot
US11456876B2 (en) * 2015-03-26 2022-09-27 Assa Abloy Ab Virtual credentials and licenses
CN104866343A (zh) * 2015-05-15 2015-08-26 长城信息产业股份有限公司 一种嵌入式设备的安全启动方法及启动安全的嵌入式设备
CN104881345B (zh) * 2015-05-25 2018-10-23 上海兆芯集成电路有限公司 中央处理器和计算机开机自检的方法
CN104899524B (zh) * 2015-05-25 2018-11-27 上海兆芯集成电路有限公司 中央处理器和验证主机板数据的方法
US10467418B2 (en) * 2015-08-28 2019-11-05 Ncr Corporation Computer pre-boot security verification, enforcement, and remediation
US9996711B2 (en) * 2015-10-30 2018-06-12 Intel Corporation Asset protection of integrated circuits during transport
CN105681032B (zh) * 2016-01-08 2017-09-12 腾讯科技(深圳)有限公司 密钥存储方法、密钥管理方法及装置
US10242195B2 (en) * 2016-07-22 2019-03-26 Hewlett Packard Enterprise Development Lp Integrity values for beginning booting instructions
CN106484477B (zh) * 2016-10-11 2019-11-12 上海华虹集成电路有限责任公司 安全的软件下载与启动方法
US11455396B2 (en) * 2017-05-12 2022-09-27 Hewlett Packard Enterprise Development Lp Using trusted platform module (TPM) emulator engines to measure firmware images
CA3071288C (en) 2017-08-22 2021-03-09 Absolute Software Corporation Firmware integrity check using silver measurements
CN109714303B (zh) 2017-10-25 2022-05-27 阿里巴巴集团控股有限公司 Bios启动方法及数据处理方法
CN109710315B (zh) 2017-10-25 2022-05-10 阿里巴巴集团控股有限公司 Bios刷写方法及bios镜像文件的处理方法
US10757087B2 (en) * 2018-01-02 2020-08-25 Winbond Electronics Corporation Secure client authentication based on conditional provisioning of code signature
WO2019240759A1 (en) * 2018-06-11 2019-12-19 Hewlett-Packard Development Company, L.P. Overriding sub-system identifiers with protected variable values
JP7059127B2 (ja) * 2018-06-26 2022-04-25 キヤノン株式会社 起動時に実行されるソフトウェアの改ざんを検知する情報処理装置及びその制御方法
CN109446815B (zh) * 2018-09-30 2020-12-25 华为技术有限公司 基本输入输出系统固件的管理方法、装置和服务器
US11418335B2 (en) 2019-02-01 2022-08-16 Hewlett-Packard Development Company, L.P. Security credential derivation
US10726133B1 (en) * 2019-02-04 2020-07-28 Dell Products L.P. Securely loading UEFI images at runtime
WO2020167283A1 (en) 2019-02-11 2020-08-20 Hewlett-Packard Development Company, L.P. Recovery from corruption
JP7286381B2 (ja) * 2019-04-01 2023-06-05 キヤノン株式会社 情報処理装置とその制御方法
US11347856B2 (en) * 2019-05-24 2022-05-31 Dell Products L.P. Bios method to block compromised preboot features
US11657157B2 (en) * 2019-06-06 2023-05-23 Macronix International Co., Ltd. Secure boot system, method and apparatus
US20220198020A1 (en) * 2019-08-28 2022-06-23 Hewlett-Packard Development Company, L.P. Encrypting table signatures
TWI756631B (zh) 2020-02-12 2022-03-01 瑞昱半導體股份有限公司 具有韌體驗證機制的電腦系統及其韌體驗證方法
CN113282930B (zh) * 2020-02-19 2024-03-01 瑞昱半导体股份有限公司 具有固件验证机制的电脑系统及其固件验证方法
US11768611B2 (en) 2020-04-02 2023-09-26 Axiado Corporation Secure boot of a processing chip
US11528276B2 (en) 2020-04-16 2022-12-13 Bank Of America Corporation System for prevention of unauthorized access using authorized environment hash outputs
US11425123B2 (en) 2020-04-16 2022-08-23 Bank Of America Corporation System for network isolation of affected computing systems using environment hash outputs
US11263109B2 (en) 2020-04-16 2022-03-01 Bank Of America Corporation Virtual environment system for validating executable data using accelerated time-based process execution
US11423160B2 (en) 2020-04-16 2022-08-23 Bank Of America Corporation System for analysis and authorization for use of executable environment data in a computing system using hash outputs
US11481484B2 (en) 2020-04-16 2022-10-25 Bank Of America Corporation Virtual environment system for secure execution of program code using cryptographic hashes
CN113553115B (zh) * 2020-04-23 2024-09-10 上汽通用汽车有限公司 一种基于异构多核芯片的启动方法以及存储介质
FR3111441B1 (fr) * 2020-06-10 2022-08-05 Proton World Int Nv Démarrage sécurisé d'un circuit électronique
US11372982B2 (en) 2020-07-02 2022-06-28 Bank Of America Corporation Centralized network environment for processing validated executable data based on authorized hash outputs
US20230083979A1 (en) * 2021-09-10 2023-03-16 Ampere Computing Llc Method and system for secure boot and rma intervention

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 (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07146788A (ja) * 1993-11-22 1995-06-06 Fujitsu Ltd ウイルス診断機構の作成システムと作成方法並びにウイルス診断機構と診断方法
JP3293760B2 (ja) * 1997-05-27 2002-06-17 株式会社エヌイーシー情報システムズ 改ざん検知機能付きコンピュータシステム
JPH1139158A (ja) * 1997-07-18 1999-02-12 Nippon Telegr & Teleph Corp <Ntt> 実行プログラムの保護方法およびその装置
US20010007131A1 (en) 1997-09-11 2001-07-05 Leonard J. Galasso Method for validating expansion roms using cryptography
JP2002366748A (ja) * 2001-06-05 2002-12-20 Dainippon Printing Co Ltd Icカードを利用した新規口座開設方式
US7974416B2 (en) * 2002-11-27 2011-07-05 Intel Corporation Providing a secure execution mode in a pre-boot environment
JP2004348677A (ja) * 2003-05-26 2004-12-09 Sony Corp プログラムおよび情報処理方法
US8332652B2 (en) 2003-10-01 2012-12-11 International Business Machines Corporation Computing device that securely runs authorized software
JP2005227995A (ja) * 2004-02-12 2005-08-25 Sony Corp 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US8667580B2 (en) * 2004-11-15 2014-03-04 Intel Corporation Secure boot scheme from external memory using internal memory
EP1659472A1 (de) * 2004-11-22 2006-05-24 Research In Motion Limited Verfahren und Vorrichtung zur Authentifizierung von Software
US8291226B2 (en) 2006-02-10 2012-10-16 Qualcomm Incorporated Method and apparatus for securely booting from an external storage device
CN1822013A (zh) * 2006-03-14 2006-08-23 上海一维科技有限公司 基于可信平台模块的指纹生物识别引擎系统及其识别方法
CN101438242B (zh) * 2006-03-30 2013-09-18 晶像股份有限公司 共享非易失性存储器体系结构
CN100504779C (zh) * 2006-06-30 2009-06-24 联想(北京)有限公司 一种加速bios运行的方法
CN1900939A (zh) * 2006-07-18 2007-01-24 上海一维科技有限公司 安全计算机的指纹生物识别装置及其识别方法
US8068614B2 (en) * 2007-09-28 2011-11-29 Intel Corporation Methods and apparatus for batch bound authentication
US8583908B2 (en) * 2007-12-31 2013-11-12 Intel Corporation Enhanced network and local boot of Unified Extensible Firmware Interface images
DE102008021567B4 (de) * 2008-04-30 2018-03-22 Globalfoundries Inc. Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel

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
KR20100125371A (ko) 2010-11-30
JP2011527777A (ja) 2011-11-04
US20090222653A1 (en) 2009-09-03
KR101237527B1 (ko) 2013-02-26
TWI498768B (zh) 2015-09-01
CN101965570B (zh) 2013-09-18
TW200943123A (en) 2009-10-16
WO2009108371A1 (en) 2009-09-03
EP2250599A1 (de) 2010-11-17
CN101965570A (zh) 2011-02-02
DE102008011925A1 (de) 2009-09-03
US8656146B2 (en) 2014-02-18

Similar Documents

Publication Publication Date Title
DE102008011925B4 (de) Sicheres Initialisieren von Computersystemen
DE102008021567B4 (de) Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel
DE112018002031B4 (de) Sichern einer betriebssystemkonfiguration unter verwendung von hardware
DE69731714T2 (de) Dynamische Dienstklassen für eine internationale kryptographische Struktur
DE19781829C2 (de) Verfahren und Vorrichtung zum Schützen eines Flash-Speichers
US8024564B2 (en) Automating configuration of software applications
DE112009002502B4 (de) Multilayer inhalte-schützender Mikrocontoller
DE112005003340B4 (de) Mechanismus zum Bestimmen der Vertrauenswürdigkeit von Außerbandverwaltungsagenten
US6330670B1 (en) Digital rights management operating system
US7543336B2 (en) System and method for secure storage of data using public and private keys
DE112017004017T5 (de) Sichere öffentliche cloud
DE102009013384B4 (de) System und Verfahren zur Bereitstellung einer sicheren Anwendungsfragmentierungsumgebung
DE10393662T5 (de) Bereitstellen eines sicheren Ausführungsmodus in einer Preboot-Umgebung
US20060200859A1 (en) Program authentication on environment
JP4975127B2 (ja) 取り外し可能な媒体に格納された実行可能なコードにタンパーエビデント性を提供する装置
DE112010004885T5 (de) Bereitstellen von Integritätsüberprüfung und -bestätigung in einer verborgenen Ausführungsumgebung
DE112005002949T5 (de) System, Verfahren und Vorrichtung zur Sicherung eines Betriebssystems
DE112009005466T5 (de) Verfahren und Vorrichtung zum Bereitstellen einer sicheren Anwendungsausführung
DE112007001321T5 (de) Ausführung eines Sichere-Umgebungs-Initialisierungsbefehls in einem Punkt-zu-Punkt-Verbindungssystem
NZ540356A (en) System and method for protected operating system boot using state validation
DE112015007220T5 (de) Techniken zum Koordinieren von Vorrichtungshochfahrsicherheit
DE102009008362B4 (de) Verfahren der Handhabung von Speicherschlüsseln in einem sicheren System
DE102020121075A1 (de) Einrichtung und Verfahren zur Authentifizierung von Software
EP2911080A1 (de) Verfahren und Vorrichtung zum sicheren Initialisieren eines Computers
EP1222537B1 (de) System zur betriebsmittelzugriffsteuerung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R081 Change of applicant/patentee

Owner name: GLOBALFOUNDRIES INC., KY

Free format text: FORMER OWNER: ADVANCED MICRO DEVICES, INC., SUNNYVALE, CALIF., US

Effective date: 20120719

R082 Change of representative

Representative=s name: GRUENECKER PATENT- UND RECHTSANWAELTE PARTG MB, DE

Effective date: 20120719

Representative=s name: GRUENECKER, KINKELDEY, STOCKMAIR & SCHWANHAEUS, DE

Effective date: 20120719

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