DE102009008362B4 - Verfahren der Handhabung von Speicherschlüsseln in einem sicheren System - Google Patents

Verfahren der Handhabung von Speicherschlüsseln in einem sicheren System Download PDF

Info

Publication number
DE102009008362B4
DE102009008362B4 DE200910008362 DE102009008362A DE102009008362B4 DE 102009008362 B4 DE102009008362 B4 DE 102009008362B4 DE 200910008362 DE200910008362 DE 200910008362 DE 102009008362 A DE102009008362 A DE 102009008362A DE 102009008362 B4 DE102009008362 B4 DE 102009008362B4
Authority
DE
Germany
Prior art keywords
secure
message
key
boot
bootloader
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE200910008362
Other languages
English (en)
Other versions
DE102009008362A1 (de
Inventor
Phillip Smith
John Sasinowski
Gordon Grigor
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.)
Nvidia Corp
Original Assignee
Nvidia Corp
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 Nvidia Corp filed Critical Nvidia Corp
Publication of DE102009008362A1 publication Critical patent/DE102009008362A1/de
Application granted granted Critical
Publication of DE102009008362B4 publication Critical patent/DE102009008362B4/de
Active 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
    • 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/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/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping

Abstract

Verfahren der Handhabung von Speicherschlüsseln in einem sicheren System enthaltend: Ausführen eines ersten Teils von Bootcode gespeichert auf einem Chip zum Starten einer sicheren Vertrauenskette, Erhalten eines sicheren Bootschlüssels, Zugreifen auf einen Vorrichtungsschlüssel, Berechnen eines sicheren Systemschlüssels von dem sicheren Bootschlüssel, dem Vorrichtungsschlüssel und einer Vorrichtungskennung des Chips, Lesen eines verschlüsselten Bootloaders von einer Peripherievorrichtung, Entschlüsseln des Bootloaders und Authentifizieren des Bootloaders; Ausführen des Bootloaders, wenn der Bootloader erfolgreich entschlüsselt und authentifiziert ist; Rundsenden der Vorrichtungskennung des Chips, wenn das Lesen, Entschlüsseln oder Authentifizieren des Bootloaders scheitert; Empfangen einer selbstvalidierenden Mitteilung in Reaktion auf das Rundsenden der Vorrichtungskennung; Validieren der Mitteilung unter Verwendung des sicheren Bootschlüssels; Laden der Mitteilung in eine Peripherievorrichtung und Ausführen der Mitteilung, wenn die Mitteilung gültig ist; Lesen einer verschlüsselten Anwendung von einem Peripheriegerät; und Entschlüsseln der verschlüsselten Anwendung unter Benutzung des sicheren Systemschlüssels.

Description

  • Hintergrund der Erfindung
  • Sicherheitsmechanismen werden von immer höherer Wichtigkeit in der Elektronik. Die Hersteller von Systemen und Vorrichtungen, die in Systemen verwendet werden, wünschen zu kontrollieren, wie Systeme und Vorrichtungen verwendet werden (zum Beispiel nicht autorisierte Verwendungen zu stoppen) und Programme (zum Beispiel Betriebssysteme und Anwendungen) und Inhalt von einer Vervielfältigung, nicht autorisierter Modifikation und dergleichen zu schützen. Entsprechend können die Hersteller von Vorrichtungen es nötig haben, Vorrichtungsniveausicherheitsmechanismen und/oder Systemniveausicherheitsmechanismen zu liefern. Die Vorrichtungs- und/oder Systemsicherheitstechniken können es auch nötig machen, Endbenutzersicherheitsmechanismen zu liefern, um zu kontrollieren, wie Systeme und Vorrichtungen verwendet werden (zum Beispiel nicht autorisierte Verwendungen stoppen) und um Programme (zum Beispiel Betriebssystemen und Anwendungen) und Inhalt vor Vervielfältigung, nicht autorisierten Modifikationen und dergleichen zu schützen.
  • Die Herstellung von Elektronik kann auch zahlreiche Entitäten mit sich bringen. Zum Beispiel kann ein Vorrichtungshersteller eine gegebene Vorrichtung designen, jedoch die tatsächliche Herstellung der Vorrichtungen outsourcen. Ähnlich kann ein Systemhersteller das System designen, aber die tatsächliche Herstellung des Systems outsourcen. Obwohl einige Parteien einander trauen können, können nicht alle Parteien allen anderen Entitäten trauen, die in das Design und die Herstellung von Systemen und Vorrichtungen involviert sind. Zum Beispiel können die Vorrichtungs- und Systemhersteller einander trauen, jedoch der Vorrichtungshersteller kann möglicherweise dem Montagehaus, welches von dem Systemhersteller verwendet wird, nicht trauen oder kann es nicht wollen oder die Möglichkeit haben, das Montagehaus, welches von dem Systemhersteller verwendet wird, zu überwachen, um sicherzustellen, dass dem Montagehaus mit Zugang zu Software, Firmware, Konfigurationsparametern und/oder dergleichen getraut werden kann.
  • Entsprechend gibt es ein anhaltendes Bedürfnis für verbesserte Techniken, welche Vorrichtungs- und/oder Systemsicherheitsmechanismen liefern. Die Sicherheitsmechanismen sollten auch Schutz an verschiedenen Stufen der Herstellung von dem Vorrichtungsdesign zu der Systemherstellung liefern.
  • WO 2006/086301 A1 offenbart ein System und Verfahren zum Bereitstellen einer sicheren Boot-Architektur. Das System weist einen Prozessor, der eine atomare Zustandsmaschine hat, und einen physikalisch geschützten Speicherbereich auf. Die atomare Zustandsmaschine speichert einen Zustand des Prozessors in einer Zustandsspeicher-Abbildung bei einem Boot-Modus-Ereignis. Die atomare Zustandsmaschine authentifiziert auch ein Objekt eines Vor-BIOS-Boot-Vektor-Bereichs (Pre-BIOS Boot Vector Region, PBBVR) in Antwort auf das Boot-Modus-Ereignis. Der PBBVR kann in dem physikalisch geschützten Speicherbereich gespeichert werden. Die atomare Zustandsmaschine lädt den PBBVR von dem physikalisch geschützten Speicherbereich in einen Überlagerungsspeicherm wenn der PBBVR erfolgreich authentifiziert ist. Der Prozessor führt den PBBVR von dem Überlagerungsspeicher aus, wenn der PBBVR erfolgreich authentifiziert ist. Die atomare Zustandsmaschine kann auch ein Kandidaten-PBBVR-Upgrade-Bild empfangen, das Kandidaten-PBBVR-Upgrade-Bild authentifizieren, und den aktuellen PBBVR mit einem neuen PBBVR ersetzen, der in dem Kandidaten-PBBVR-Upgrade-Bild enthalten ist, wenn der neue PBBVR in dem Kandidaten-PBBVR-Upgrade-Bild authentifiziert ist.
  • US 2006/0174240 offenbart einen Mechanismus, der ermöglicht, dass Firmware auf sichere Weise aktualisiert wird. Zwei Attribute werden in dem aktuellen ROM verwendet, um auf ein virtuelles ROM-Modul zu verweisen. Die zwei Attribute sind ein Versionsattribut und eine Referenz zu einem separaten Attribut, das fähig ist, Aktualisierungen zu validieren. Der Aktualisierungsprozess aktualisiert den Nachrichtenhashwert, der mit dem ersten virtuellen ROM-Modul assoziiert ist, und das Versionsattribut, das mit dem ersten virtuellen ROM-Modul assoziiert ist. Der Aktualisierungsprozess erzeugt auch eine neue Kopie der korrespondieren Datei, die, wenn gehasht, zu dem neuen Nachrichtenhashwert „passen” wird.
  • WO 2008/009112 A1 offenbart ein Verfahren und System zum Authentifizieren und Sichern einer eingebetteten Vorrichtung. Das Verfahren verwendet eine sichere Boot-Prozedur und einen vollständig nicht-flüchtigen Speicher-Verschlüsselungsprozess, der ein Elliptische-Kurve-Pinstov-Vanston-Signatur (ECPV) Schema mit Nachrichtenwiederherstellung auf einem personalisierten BIOS und einem Master-Boot-Programm implementiert. Die Signatur weist Code auf, der wiederhergestellt wird, um einen Schlüssel zu entsperren, der im Gegenzug verwendet wird, um den nicht-flüchtigen Speicher zu entschlüsseln. Die Verwendung des ECPVS stellt eine implizite Verifizierung bereit, dass die Hardware an das BIOS gebunden ist, da der verschlüsselte Speicher nutzlos ist, außer wenn er ordnungsgemäß mit dem ordnungsgemäßen Schlüssel entschlüsselt ist.
  • US 6 185 678 B1 offenbart einen sicheren Starprogrammprozess, in dem der Startprogrammprozess als eine Kette von stufenweise höheren Abstraktionslevels sequenziert ist, und in dem jede Schicht benötigt wird, um eine digitale Signatur der nächsten Schicht zu überprüfen, bevor die Steuerung an sie weitergegeben wird.
  • Zusammenfassung der Erfindung
  • Vorrichtungen der vorliegenden Technologie sind auf Techniken zum sicheren Herunterladen von Bootcode in ein gesichertes System gerichtet. In einer Ausführungsform wird ein Verfahren gemäß den Merkmalen von Patentanspruch 1 ausgeführt, wobei ein erster Teil von Bootcode, welcher auf einem Chip gespeichert ist, ausgeführt wird, um eine sichere Vertrauenskette zu erstellen. Danach wird ein gesicherter Bootschlüssel erhalten und ein verschlüsselter Bootloader wird von einer Peripherievorrichtung gelesen. Der Bootloader wird entschlüsselt und authentifiziert unter Verwendung des sicheren Bootschlüssels. Wenn der Bootloader erfolgreich entschlüsselt und authentifiziert ist, wird er ausgeführt. Andernfalls wird die Vorrichtungskennung des Chips rundgesendet. In Reaktion auf das Rundsenden (engl. broadcasting) der Vorrichtungskennung wird eine selbstvalidierende Mitteilung empfangen. Die Mitteilung wird validiert unter Verwendung des sicheren Bootschlüssels und in ein Peripheriegerät zur Ausführung geladen, wenn die Mitteilung gültig ist.
  • Kurze Beschreibung der Zeichnungen
  • Ausführungsformen der vorliegenden Erfindung werden als Beispiel und nicht als Beschränkung in den Figuren der begleitenden Zeichnungen veranschaulicht und in welchen ähnliche Bezugszahlen sich auf ähnliche Elemente beziehen und in welchen:
  • 1 ein Blockdiagramm eines exemplarischen Systems zum Implementieren von Ausführungsformen der vorliegenden Technologie zeigt.
  • 2A2D ein Flussdiagramm eines Verfahrens der Handhabung von Speicherschlüsseln während einer Vielzahl von Leistungszuständen der Vorrichtung zeigen, gemäß einer Ausführungsform der vorliegenden Technologie.
  • 3A3E ein Flussdiagramm eines Verfahrens des sicheren Updatens des Bootcodes der Vorrichtung ohne Kenntnis eines Bootschlüssels zeigt, gemäß einer Ausführungsform der vorliegenden Technologie.
  • 4A4B ein Flussdiagramm eines Verfahrens des sicheren Updatens des Bootcodes der Vorrichtung ohne Kenntnis eines Bootschlüssels zeigen, gemäß einer Ausführungsform der vorliegenden Technologie.
  • 5A5B ein Blockdiagramm eines Beispiel-Recovery-Modus-Systems gemäß Ausführungsformen der vorliegenden Technologie zeigt.
  • 6 ein Blockdiagramm einer exemplarischen Recovery-Modus-selbstvalidierenden Mitteilung gemäß einer Ausführungsform der vorliegenden Technologie zeigt.
  • Detaillierte Beschreibung der Erfindung
  • Nun wird im Detail Bezug genommen auf die Ausführungsformen der vorliegenden Technologie, von welcher Beispiele in den begleitenden Zeichnungen veranschaulicht sind.
  • Bezug nehmend auf 1 ist ein exemplarisches System zum Implementieren von Ausführungsformen der vorliegenden Technologie dargestellt. Das exemplarische System 105 umfasst eine Vorrichtung 110 und eines oder mehrere Peripheriegeräte 115130. Die Peripheriegeräte 115130 können interne und/oder externe Peripheriegeräte wie zum Beispiel Tastatur, Cursorsteuerung, Kommunikationsport, Rechenvorrichtungs-lesbares Medium (CDRM) (zum Beispiel Festplattentreiber (Hard Disk Driver, HDD) 125, Direktzugriffsspeicher (Random Access Memory, RAM) 130) und/oder dergleichen sein. Die Peripheriegeräte 115130 können an die Vorrichtung 110 durch einen oder mehrere Kommunikationskanäle gekoppelt sein. Die Vorrichtung 110 umfasst eine immer-an (always on, AO) Domäne 135 und eine oder mehrere steuerbare Leistungsdomänen 140, 145. Die AO-Domäne 135 hat immer Energie und, wenn anwendbar, Taktsignale angelegt, wenn die Vorrichtung angeschaltet ist. Die AO-Domäne kann eine Echtzeituhrfunktionseinheit, eine Leistungsmanagementcontrollerfunktionseinheit, eine Tastaturcontrollerfunktionseinheit und/oder eine Speicherregisterfunktionseinheit umfassen. Die steuerbaren Leistungsdomänen 140, 145 können eine oder mehrere steuerbare Versorgungspotentialdomänen 140 und/oder eine oder mehrere steuerbare getaktete Domänen 145 umfassen. Die eine oder mehreren steuerbaren Versorgungspotentialdomänen 140 können eine oder mehrere On-Chip-rechenvorrichtungslesbare Medien (CDRM) 150, eine oder mehrere allgemeine Prozessiereinheiten (zum Beispiel CPU) 155, eine oder mehrere spezialisierte Prozessiereinheiten (zum Beispiel GPU) 160, eine oder mehrere Funktionseinheiten (zum Beispiel fortgeschrittene Verschlüsselungsstandard(AES)maschine (advanced encryption standard (AES) engine)) 165 und eine oder mehrere Systemcontroller 170180 aufweisen. Die eine oder mehreren steuerbaren getakteten Domänen 145 können eine oder mehrere spezialisierte Prozessiereinheiten und/oder Funktionseinheiten 185 umfassen. Entsprechend kann die Vorrichtung 110 als eine System-auf-einem-Chip-integrierte Schaltung (system an a chip (SOC) integrated circuit) bezeichnet werden.
  • Das On-Chip CDRM 150 speichert einen ersten Teil von Bootcode zum Konfigurieren der Vorrichtung und Laden anderer Teile des Bootcodes, Betriebssystems (OS), Interrupt Handler und Anwendungen von einem oder mehreren peripheren nicht flüchtigen CDRMs (z. B., HDD, Flash Medium) 125 in ein oder mehrere CDRMs (z. B. RAM) 130, welche zugreifbar sind für die allgemeinen und/oder spezialisierten Prozessiereinheiten 155, 160. Die allgemeine Prozessiereinheit (zum Beispiel CPU) 155 liefert die Rechenhardwareressource zum Ausführen allgemeiner Software-basierter Funktionalität der Vorrichtung 110. Solche Softwarefunktionalität kann ein Ausführen von Betriebssystem (OS) Software, Interrupt-Handling-Software, die der Vorrichtung hilft, auf externe Ereignisse zu antworten, Anwendungssoftware und dergleichen umfassen. Die spezialisierten Prozessoren (z. B. GPU) liefern Rechenhardwareressourcen zum Ausführen spezialisierter Funktionalitäten, wie beispielsweise eine Graphikprozessiereinheit (GPU) 160, Digitalsignalprozessieren, Videoencoder/Decoder und/oder dergleichen. Die Systemcontroller 170180 liefern verschiedene Funktionalitäten zum Kommunizieren zwischen einem Funktionselement der Vorrichtung 110 mit den Peripheriegeräten 115130.
  • Die Vorrichtung 110 des Systems 105 ist angepasst zum Handhaben von Speicherschlüsseln während einer Vielzahl von Leistungszuständen der Vorrichtung. Die Vorrichtung 110 ist auch angepasst zum sicheren Updaten des Bootcodes der Vorrichtung ohne Kenntnis eines Bootschlüssels. Zusätzlich ist die Vorrichtung 110 auch angepasst zum Liefern eines sicheren Recovery-Modus.
  • Nun Bezug nehmend auf die 2A2D ist ein Speicherschlüsselhandhabungsverfahren während einer Vielzahl von Leistungszuständen der Vorrichtung gemäß einer Ausführungsform der vorliegenden Technologie dargestellt. Anfänglich führt die Vorrichtung 110 des Systems 105 ein Bootprogramm aus, zum Einrichten der Vorrichtung 110 zum Ausführen einer oder mehrere Anwendungen. Das Bootprogramm umfasst typischerweise eine oder mehrere Teile. Der erste Teil des Bootprogramms ist in dem On-Chip ROM 150 gespeichert und wird hierin als Boot-ROM-Code (BR) bezeichnet. Bei 202 wird der BR von der Prozessiereinheit 155 ausgeführt, um eine Vertrauenskette zu bilden. Während der Ausführung des BR werden ein sicherer Bootschlüssel (secure boot key, SBK), ein Vorrichtungsschlüssel (device key, DK) und eine Vorrichtungskennung (device identifier, DID) zugegriffen und der SBK wird in einen entsprechenden SBK-Schlüsselschlitz geladen, welcher zugreifbar ist durch eine Verschlüsselungs-/Entschlüsselungsmaschine, bei 204. Die Verschlüsselungs-/Entschlüsselungsmaschine unterstützt Lese-, Schreib-, Verschlüsselungs- und Entschlüsselungszugang zu den Schlüsselschlitzen. Beständige (persistente) oder „klebrige” Bits steuern den Lese- und Schreibzugriff zu dem Schlüsselschlitz, verhindern aber nicht den Zugang zu Verschlüsselungs-/Entschlüsselungsoperationen. Der SBK wird von dem Vorrichtungshersteller verwendet zum Schützen und Authentifizieren von Teilen des Bootcodes, welcher Off-Chip (z. B. in einem Peripheriegerät) gespeichert ist. In anderen Implementierungen ist der SBK ein sicherer Schlüssel, welcher von dem Vorrichtungshersteller ausgewählt ist und/oder von dem Systemhersteller ausgewählt/diesem bekannt ist. In einer Implementierung ist der SBK in ein SBK-Register, wie beispielsweise als On-Chip-Sicherungen programmiert. Deshalb ist der SBK modifizierbar, kann jedoch nicht auf einen vorigen Wert zurückgesetzt werden. In einer Implementierung ist der SBK nur durch einen gesicherten Code lesbar. In einer Implementierung ist der gesicherte Code ein BR-Code. In einer Implementierung ist der SBK ein 128 Bit-Schlüssel. In einer Implementierung ist der DK ein sicherer Wert, welcher dem Systemhersteller bekannt ist. In einer Implementierung ist der DK in ein DK-Register, wie beispielsweise On-Chip-Sicherungen programmiert. Deshalb ist der DK ebenfalls modifizierbar, aber kann nicht auf einen vorigen Wert zurückgesetzt werden. In einer Implementierung ist der DK nur durch einen gesicherten Code lesbar. In einer Implementierung ist der gesicherte Code ein BR-Code. In einer Implementierung ist der DK ein 32-Bit-Schlüssel. In einer Implementierung ist der DID ein vorrichtungsspezifischer Wert, welcher in On-Chip-Sicherungen durch den Hersteller programmiert und öffentlich zugänglich ist. In einer Implementierung ist der DID ein 64-Bit-Wert.
  • Bei 206 wird ein sicherer Systemschlüssel (secure system key, SSK) von dem SBK, DK und DID berechnet und geladen in einen entsprechenden SSK-Schlüsselschlitz, welcher zugreifbar ist durch die Verschlüsselungs-/Entschlüsselungsmaschine. Der sichere Speicherschlüssel (secure storage key, SSK) wird von dem Systemhersteller verwendet zum Schützen von kundendefinierten Daten. Der SSK wird berechnet von dem Vorrichtungshersteller-programmierten sicheren Bootschlüssel (SBK), dem Systemhersteller-programmierten Vorrichtungsschlüssel (DK) und der Vorrichtungshersteller-programmierten eindeutigen Vorrichtungskennung (unique device identifier, UID). Der SSK kann in einer Implementierung wie folgt berechnet werden: SSK = AES (SBK; DID^AES(SBK; DK))
  • Der Vorrichtungshersteller programmierte DID ist für jeden Chip verschieden. Entsprechend ist der SSK ebenfalls eindeutig für jeden Chip. Zusätzlich kann der SBK auch eindeutig sein für jeden Chip oder gemeinsam sein über mehrere Chips (zum Beispiel ein Los), wie von dem Systemhersteller bestimmt. Der DK kann ebenfalls eindeutig für jeden Chip oder gemeinsam über mehrere Chips sein.
  • Bei 208 wird der SSK in ein SSK-Register in der AO-Domäne 135 der Vorrichtung 110 geladen. Leeren (flushing) des SBK von dem SBK-Schlüsselschlitz hindert anderen Code, welcher nicht explizit mit dem SBK authentifiziert ist, an dem Durchführen von Verschlüsselungs-/Entschlüsselungsoperationen mit dem SBK. Bei 210 wird ein zusätzlicher Teil des Bootcodes, welcher als der Bootloader (BL) bezeichnet wird, von einem gegebenen Peripheriegerät gelesen, welches zum Speichern des Bootloaders spezifiziert ist. Der Bootloader, welcher auf dem Peripheriegerät gespeichert ist, ist verschlüsselt. Bei 212 wird der Bootloader entschlüsselt unter Verwendung des SBK, wodurch der Bootloader authentifiziert wird. Der Bootloader kann weiter authentifiziert werden unter Verwendung eines Auszuges, digitalen Zertifikates oder dergleichen basierend auf einer Authentifizierungstechnik. Entschlüsseln und Authentifizieren des Bootloaders unter Verwendung des SBK hält die sichere Vertrauenskette aufrecht.
  • Das SSK-Register in der AO-Domäne umfasst Sicherheitsregelungen, welche das Register gegen Lesen und Schreiben von außerhalb des BL schützen. In einer Implementierung umfasst das sicherheitskontrollierte SSK-Register persistente Lese- und Schreibbits. Wenn der SSK von dem BR bei 208 in das SSK-Register geladen wird, wird ein Leseklebebit gesetzt (den Lesezugriff deaktivierend), aber nicht das Schreibklebebit (nachfolgenden Schreibzugriff erlaubend), bei 214. Zusätzlich werden die SBK und SSK-Schlüsselschlitze durch persistente Lese-/Schreibbits geschützt, die durch den BR gesetzt werden, um einen Zugriff von außerhalb des BRs zu verhindern.
  • Bei 216 wird der BL durch die Prozessiereinheit 155 ausgeführt, wenn der BL erfolgreich entschlüsselt und authentifiziert ist. Während der Ausführung des BL werden eine oder mehrere Anwendungen von einem oder mehreren Peripheriegeräten gelesen, bei 218. In einer Implementierung können die Anwendungen in verschlüsselter Form gespeichert sein. Bei 220 werden verschlüsselte Anwendungen entschlüsselt unter Verwendung des SSK.
  • Bei 222 kann die Vorrichtung 110 dem Systemhersteller optional erlauben, den SSK zu ändern. Wenn der SSK durch den Systemhersteller geändert wird, wird der neue SSK in dem entsprechenden SSK-Schlüsselschlitz gespeichert und der SSK wird gespeichert in dem sicherheitskontrollierten Register in der AO-Domäne, bei 224. Da das Schreibbit bei 214 nicht gesetzt ist, wenn der SSK in das SSK-Register in der AO-Domäne geschrieben wird, kann der SSK von dem Systemhersteller geändert werden und kann wiederhergestellt werden, wenn die Verschlüsselungs-/Entschlüsselungsmaschine von einem niedrigen Leistungszustand zurückkehrt. Jedoch kann, wenn der SSK in dem SSK-Register der AO-Domäne bei 222 überschrieben wird, das persistente Schreibbit gesetzt werden, um weitere Überschreibungen zu verhindern. Schreibzugriff auf den Schlüsselschlitz, welcher den SSK hält, kann an diesem Punkt ebenfalls deaktiviert werden durch Setzen seines persistenten Schreibbits und dadurch Verhindern von weiteren Überschreibungen. Nachdem der SSK geändert ist, werden, wenn anwendbar, die Anwendungen ausgeführt, bei 226. Die Anwendungen können das OS, Interrupt-Routinen, Utilities und Benutzeranwendungen wie beispielsweise Musikspieler, Spiele, Zellulartelefone, GPS und dergleichen umfassen.
  • Bei 228 können eine oder mehrere Domänen, von denen eine die Verschlüsselungs-/Entschlüsselungsmaschine 165 umfasst, in einen niedrigen Leistungszustand zykliert werden. Ein neuerlicher Start (Re-Start) tritt auf, wenn die Domäne aus dem niedrigen Leistungszustand herauszykhert, bei 230. Während der Ausführung des BL in Reaktion auf den neuerlichen Start wird ein Code, welcher in einem oder mehreren Peripheriegeräten (zum Beispiel RAM) verbleibt, validiert und der Zugriff zu dem sicherheitskontrollierten SSK-Register in der AO-Domäne wird zurückgesetzt, um Lese- und Schreibzugriff zu erlauben, bei 232. Bei 234 wird der SSK von dem sicherheitskontrollierten SSK-Register der AO-Domäne in den SSK-Schlüsselschlitz gelesen. Wenn der SSK von dem SSK-Register in den entsprechenden Schlüsselschlitz für die Verschlüsselungs-/Entschlüsselungsmaschine durch den BL gelesen wird, werden das Lesesperr- und das Schreibsperr-persistente Bit gesetzt, bei 236. Danach werden eine oder mehrere Anwendungen von einem oder mehreren Peripheriegeräten gelesen, bei 238. In einer Implementierung können die Anwendungen in verschlüsselter Form gespeichert sein. Bei 240 wird jede verschlüsselte Anwendung entschlüsselt unter Verwendung des SSK. Bei 242 werden die Anwendungen ausgeführt.
  • Entsprechend behalten Ausführungsformen der vorliegenden Technologie vorteilhafterweise den Systernspeicherschlüssel (SSK) in der AO-Domäne bei und stellen den SSK zu der Verschlüsselungs-/Entschlüsselungsmaschine wieder her, wenn die Maschine wieder angeschaltet wird. Der SSK ist jedoch nur von dem BL zugreifbar, was eine sichere Vertrauenskette liefert. Zusätzlich erlauben Ausführungsformen optional, dass der SSK upgedatet wird.
  • Nun Bezug nehmend auf die 3A bis 3E ist ein Verfahren sicheren Updatens des Bootcodes der Vorrichtung ohne Kenntnis eines Bootschlüssels, gemäß einer Ausführungsform der vorliegenden Technologie, dargestellt. Wieder wird der BR ausgeführt (zum Beispiel Kaltboot) durch die Prozessiereinheit 150, um eine Vertrauenskette herzustellen, bei 302. Während der Ausführung des BR wird auf einen sicheren Bootschlüssel (SBK), einen Vorrichtungsschlüssel (DK) und eine Vorrichtungskennung (DID) zugegriffen und der SBK wird in einen entsprechenden SBK-Schlüsselschlitz geladen, welcher zugreifbar ist durch eine Verschlüsselungs-/Entschlüsselungsmaschine, bei 304. Das SBK-Register ist geschützt durch persistente Lese-/Schreibbits, die gesetzt werden durch den BR nach dem Prozessieren des SBK, um einen Zugriff von außerhalb des BR zu verhindern. Bei 306 wird ein sicherer Systemschlüssel (SSK) von dem SBK, DK und DID berechnet und geladen in einen entsprechenden SSK-Schlüsselschlitz, wie oben detaillierter beschrieben ist.
  • Bei 308 wird der SSK in ein SSK-Register in der AO-Domäne 135 der Vorrichtung 110 geladen. Bei 310 wird ein zusätzlicher Teil von Bootcode, welcher als der Bootloader (BL) bezeichnet wird, von einer gegebenen Peripherievorrichtung, welche für das Speichern des BL spezifiziert ist, gelesen. Der auf dem Peripheriegerät gespeicherte BL wird verschlüsselt. Bei 312 wird der Bootloader unter Verwendung des SBK entschlüsselt, wodurch der Bootloader authentifiziert wird. Der Bootloader kann weiter authentifiziert werden unter Verwendung einer auf einer Zusammenfassung, einem digitalen Zertifikat oder dergleichen basierenden Authentifizierungstechnik. Entschlüsselung und Authentifizierung des Bootloaders unter Verwendung des SBK erhält die sichere Vertrauenskette aufrecht.
  • Bei 314 wird der BL ausgeführt durch die Prozessiereinheit 155, wenn der BL erfolgreich entschlüsselt und authentifiziert ist. Während der Ausführung des BL wird der SBK von dem Schlüsselschlitz gelöscht (flushed), bei 316. Der SBK kann gelöscht werden durch Überschreiben mit allen Nullen oder einem anderen Mustern. Danach werden eine oder mehrere Anwendungen von einem oder mehreren Peripheriegeräten gelesen, bei 318. In einer Implementierung können die Anwendungen in verschlüsselter Form gespeichert sein. Bei 320 wird jede verschlüsselte Anwendung unter Verwendung des SSK entschlüsselt. Bei 322 werden die Anwendungen ausgeführt. Die Anwendungen können das OS, Interrupt-Routinen, Utilities und Benutzeranwendungen wie beispielsweise Musikspieler, Spiele, Zellulartelefone, GPS und dergleichen umfassen.
  • Bei 324 wird ein neuer Bootloader von einem Serviceprovider empfangen. Der neue Bootloader kann kodiert werden unter Verwendung von Verschlüsselung mit öffentlichem Schlüssel oder dergleichen. An einem Punkt danach wird die Vorrichtung erneut gestartet (z. B. kaltes Booten). Bei 326 wird der BR ausgeführt in Reaktion auf ein erneutes Starten. Während der Ausführung des BR werden ein sicherer Bootschlüssel (SBK), ein Vorrichtungsschlüssel (DK) und eine Vorrichtungskennung (DID) zugegriffen und der SBK wird in einen entsprechenden SBK-Schlüsselschlitz geladen, welcher zugreifbar ist durch eine Verschlüsselungs-/Entschlüsselungsmaschine, bei 328. Das SBK-Register ist geschützt durch persistente Lese-/Schreibbits, die durch den BR gesetzt werden nach dem Zugreifen auf den SBK zum Verhindern eines Zugreifens von außerhalb des BR. Bei 330 wird ein sicherer Systemschlüssel (SSK) von dem SBK, DK und DID berechnet und geladen in einen korrespondierenden SSK-Schlüsselschlitz, wie oben detaillierter beschrieben. Bei 332 wird der SSK in ein SSK-Register in der AO-Domäne 140 der Vorrichtung 110 geladen. Der neue Bootloader wird dann von dem Peripheriegerät gelesen, bei 334. Der neue Bootloader wird typischerweise in einem verschlüsselten Format gespeichert werden. Bei 336 wird der neue Bootlader, welcher von dem Serviceprovider empfangen wurde, authentifiziert. Bei 338 wird der neue Bootloader verschlüsselt unter Verwendung des SBK und gespeichert in dem gegebenen Peripheriegerät, welches zum Speichern des BL spezifiziert ist. Bei 340 wird der SBK von dem Schlüsselschlitz gelöscht. Das Leseklebebit für den SSK wird gesetzt (Lesezugriff deaktivierend), aber nicht das Schreibklebebit (nachfolgenden Schreibzugriff erlaubend), bei 342. Zusätzlich werden die SBK und SSK-Schlüsselschlitze geschützt durch persistente Lese-/Schreibbits, die durch den BR gesetzt werden, um einen Zugriff von außerhalb des BR zu verhindern.
  • Bei 344 wird der neue BL ausgeführt durch die Prozessiereinheit 155, wenn der neue BL erfolgreich entschlüsselt und authentifiziert ist. Bei 346 werden eine oder mehrere Anwendungen von einem oder mehreren Peripheriegeräten gelesen während der Ausführung des neuen BL. In einer Implementierung können die Anwendungen in einer verschlüsselten Form gespeichert sein. Bei 348 wird jede verschlüsselte Anwendung unter Verwendung des SSK entschlüsselt. Bei 350 werden die Anwendungen ausgeführt. Die Anwendungen können das OS, Interrupt-Routinen, Utilities und andere Benutzeranwendungen wie beispielsweise Musikspieler, Spiele, Zellulartelefone, GPS und dergleichen umfassen.
  • Das nächste Mal, wenn die Vorrichtung kalt gebootet wird, wird der neue BL geladen und ausgeführt. Entsprechend erlauben Ausführungsformen der vorliegenden Technologie vorteilhafterweise das sichere Updaten des Bootloadercodes ohne Kenntnis des sicheren Bootschlüssels.
  • Nun Bezug nehmend auf die 4A4B ist ein sicheres Recovery-Verfahren gemäß einer Ausführungsform der vorliegenden Technologie dargestellt. Wieder wird der BR ausgeführt (z. B. kaltes Booten) durch die Prozessiereinheit 155 zum Etablieren einer Vertrauenskette, bei 402. Während der Ausführung des BR, werden ein sicherer Bootschlüssel (SBK), Vorrichtungsschlüssel (DK) und eine Vorrichtungskennung (DID) zugegriffen und der SBK wird in einen entsprechenden SBK-Schlüsselschlitz geladen, welcher zugreifbar ist durch eine Verschlüsselungs-/Entschlüsselungsmaschine, bei 404. Bei 406 wird ein sicherer Systemschlüssel (SSK) von dem SBK, DK und DID berechnet und in einen entsprechenden SSK-Schlüsselschlitz geladen, wie oben detaillierter beschrieben.
  • Bei 408 wird der SSK in ein SSK-Register in der AO-Domäne 135 der Vorrichtung 110 geladen. Bei 410 wird der BL von der gegebenen Peripherievorrichtung gelesen, welche spezifiziert ist zum Speichern des BL. Der auf dem Peripheriegerät gespeicherte BL ist verschlüsselt. Bei 412 wird der Bootloader entschlüsselt unter Verwendung des SBK, wodurch der Bootloader authentifiziert wird. Der Bootloader kann weiter authentifiziert werden unter Verwendung einer auf einer Zusammenfassung, einem Digitalzertifikat oder dergleichen basierenden Authentifizierungstechnik.
  • Wenn der BL erfolgreich entschlüsselt und authentifiziert ist, wird der BL ausgeführt durch die Prozessiereinheit 155. Jedoch, wenn die Lese- und/oder die entschlüsselten/authentifizierten Prozesse von 410, 412 fehlschlagen, tritt die Vorrichtung bei 414 in einen Recovery-Modus ein. Die Vorrichtung wird betrachtet als gesperrt oder vermauert, wenn sie versagt, den BL zu lesen und/oder zu entschlüsseln und authentifizieren. Zusätzlich, wenn die Vorrichtung noch in dem Herstellungsstadium ist, kann der Recovery-Modus verwendet werden, um zum ersten Mal den SBK, DK und/oder BL auf das System zu laden. Während des Recovery-Modus rundsendet die Vorrichtung 110 die DID der Vorrichtung 110 auf einem gegebenen Kommunikationskanal. In einer Implementierung ist der Kommunikationskanal ein universeller serieller Bus (USB) Link. Das System, welches die Vorrichtung 105 enthält, kann gekoppelt sein an einen Host 422 entweder direkt oder durch ein Netzwerk 505 und eine lokale Interface-Vorrichtung 510 wie in 5A und 5B veranschaulicht. Bei 420 empfängt eine Host-422-Vorrichtung die DID und bildet sie auf einen gegebenen SBK ab. Der Host 422 erzeugt dann eine selbstvalidierende Mitteilung unter Verwendung des gegebenen SBK und überträgt die selbstvalidierende Mitteilung zu der Vorrichtung 110, bei 424. In einer exemplarischen Implementierung umfasst die Mitteilung eine (unsichere) Länge 605, einen Hash 610, einen Zufalls-AES-Block 615, eine sichere Länge 620, Befehle und Daten 625, eine Nutzlast 630 und eine Blindgruppe (padding) (z. B. 0X80 gefolgt durch zusätzliche 0X00 Bytes, wenn benötigt) 635, wie in 6 veranschaulicht. Der Zufalls-AES-Block 615, die sichere Länge 620, Befehle und Daten 625, Nutzlast 630 und die Blindgruppe 635 werden kodiert unter Verwendung des SBK, welcher auf die DID abgebildet ist. Bei 426 wird die Mitteilung empfangen und validiert durch die Vorrichtung 110 unter Verwendung des SBK der Vorrichtung. In einer Implementierung ist die empfangene Mitteilung gültig, wenn die unsichere Länge 605 mit der sicheren Länge 620 übereinstimmt (zusammenpasst), der Hash 610 korrekt ist, der Befehl 625 gültig ist (z. B. gültige Befehlstypen für die gegebene Mitteilung), wenn die Größe der Mitteilung korrekt ist (wie durch den Befehl und die Daten spezifiziert), wenn die Größe der Nutzlast korrekt ist, wenn das Blindgruppenmuster korrekt ist, und/oder wenn die BR-Versionsnummer in den Befehl und Daten 625 mit der BR-Version auf der Vorrichtung 110 zusammenpasst. Wenn die Mitteilung validiert ist, lädt die Vorrichtung 110 die Mitteilung in eine Periphievorrichtung (z. B. RAM) und führt sie aus, bei 428. Der Recovery-Modus kann einen oder mehrere Befehle in der Mitteilung ausführen, Code ausführen, welcher in der Mitteilung enthalten ist, und/oder speichert BL-Code in der Mitteilung in eine gegebene Peripherievorrichtung, bei 428. Wenn BL-Code in der Mitteilung empfangen wird, wird der BL gespeichert in der gegebenen Peripherievorrichtung verschlüsselt unter Verwendung des SBK. Optional kann die Vorrichtung 110 von dem Host zusätzliche Daten herunterladen und authentifizieren. Die zusätzlichen Daten können unter Verwendung des SBK verschlüsselt und signiert werden, bevor sie zu der Peripherievorrichtung geschrieben werden. Auf diese Weise kann der Recovery-Modus vielfache Mitteilungsübertragungs- und Antwortsequenzen bereitstellen. Wenn die Mitteilung nicht validiert, kann die Vorrichtung 110 in eine Endlosschleife eintreten, welche einen System-Reset fordert, um fortzufahren.
  • Entsprechend erlauben Ausführungsformen der vorliegenden Technologie ebenso vorteilhaft das sichere Herunterladen von BL-Code in ein gesichertes System.

Claims (11)

  1. Verfahren der Handhabung von Speicherschlüsseln in einem sicheren System enthaltend: Ausführen eines ersten Teils von Bootcode gespeichert auf einem Chip zum Starten einer sicheren Vertrauenskette, Erhalten eines sicheren Bootschlüssels, Zugreifen auf einen Vorrichtungsschlüssel, Berechnen eines sicheren Systemschlüssels von dem sicheren Bootschlüssel, dem Vorrichtungsschlüssel und einer Vorrichtungskennung des Chips, Lesen eines verschlüsselten Bootloaders von einer Peripherievorrichtung, Entschlüsseln des Bootloaders und Authentifizieren des Bootloaders; Ausführen des Bootloaders, wenn der Bootloader erfolgreich entschlüsselt und authentifiziert ist; Rundsenden der Vorrichtungskennung des Chips, wenn das Lesen, Entschlüsseln oder Authentifizieren des Bootloaders scheitert; Empfangen einer selbstvalidierenden Mitteilung in Reaktion auf das Rundsenden der Vorrichtungskennung; Validieren der Mitteilung unter Verwendung des sicheren Bootschlüssels; Laden der Mitteilung in eine Peripherievorrichtung und Ausführen der Mitteilung, wenn die Mitteilung gültig ist; Lesen einer verschlüsselten Anwendung von einem Peripheriegerät; und Entschlüsseln der verschlüsselten Anwendung unter Benutzung des sicheren Systemschlüssels.
  2. Verfahren nach Anspruch 1, worin Ausführen eines ersten Teils von Bootcode gespeichert auf einem Chip zum Starten einer sicheren Vertrauenskette das Ausführen eines sicheren Boot-ROM-Codes umfasst.
  3. Verfahren nach Anspruch 2, worin Erhalten des sicheren Bootschlüssels zugreifen auf den sicheren Bootschlüssel während der Ausführung des sicheren Boot-ROM-Codes umfasst, wobei der sichere Bootschlüssel gespeichert ist in einem Satz von Sicherungen, die gegen Zugriff durch einen Nicht-Boot-ROM-Code geschützt sind.
  4. Verfahren nach Anspruch 3, worin der Systembootschlüssel ein sicherer Schlüssel ist, ausgewählt von einem Vorrichtungs- oder Systemhersteller einer Vorrichtung, welche das Verfahren des sicheren Updatens des Bootabbildes durchführt.
  5. Verfahren nach Anspruch 1, ferner enthaltend: Empfangen der Vorrichtungskennung an einem Host; Abbilden, an dem Host, der Vorrichtungskennung auf einen gegebenen sicheren Bootschlüssel; Erzeugen der selbstvalidierenden Mitteilung, welche einen Bootloader enthält, an dem Host unter Verwendung des gegebenen sicheren Bootschlüssels; und Rundsenden der selbstvalidierenden Mitteilung durch den Host.
  6. Verfahren gemäß Anspruch 1, worin die selbstauthentifizierende Mitteilung eine Länge, einen Hash, einen Zufalls-AES-Block, eine sichere Länge, Befehle und Daten, eine Nutzlast und eine Blindgruppe enthält.
  7. Verfahren nach Anspruch 6, worin AES-Block, sichere Länge, Befehle und Daten, Nutzlast und Blindgruppe kodiert werden unter Verwendung des gegebenen sicheren Bootschlüssels.
  8. Verfahren nach Anspruch 7, worin die Mitteilung validiert wird, wenn die unsichere Länge mit der sicheren Länge zusammenpasst, der Hash korrekt ist, der Befehl gültig ist, die Größe der Mitteilung korrekt ist, wenn die Größe der Nutzlast korrekt ist, das Blindgruppenmuster korrekt ist oder wenn eine Versionsnummer in den Befehl und Daten des ersten Teils des Bootcodes mit der Versionsnummer in dem Chip des ersten Teils des Bootcodes zusammenpasst.
  9. Verfahren nach Anspruch 8, wobei das Laden der Mitteilung in eine Peripherievorrichtung und Ausführen der Mitteilung, wenn die Mitteilung gültig ist, ein Laden eines zweiten Teils des Bootcodes und Ausführen des Bootcodes, wenn die Mitteilung gültig ist, umfasst.
  10. Verfahren nach Anspruch 1, ferner enthaltend: Empfangen einer zusätzlichen selbstvalidierenden Mitteilung; Validieren der zusätzlichen Mitteilung unter Verwendung des sicheren Bootschlüssels; und Laden der zusätzlichen Mitteilung in eine Peripherievorrichtung, wenn die zusätzliche Mitteilung gültig ist.
  11. Ein oder mehrere rechenvorrichtungslesbares Medium, welches eine oder mehrere rechenvorrichtungsausführbare Instruktionen speichert, welche, wenn sie durch eine Vorrichtung ausgeführt werden, einen Prozess gemäß einem der Ansprüche 1 bis 10 durchführen.
DE200910008362 2008-02-11 2009-02-11 Verfahren der Handhabung von Speicherschlüsseln in einem sicheren System Active DE102009008362B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/029,464 2008-02-11
US12/029,464 US20090204801A1 (en) 2008-02-11 2008-02-11 Mechanism for secure download of code to a locked system

Publications (2)

Publication Number Publication Date
DE102009008362A1 DE102009008362A1 (de) 2009-10-15
DE102009008362B4 true DE102009008362B4 (de) 2015-01-29

Family

ID=40527146

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200910008362 Active DE102009008362B4 (de) 2008-02-11 2009-02-11 Verfahren der Handhabung von Speicherschlüsseln in einem sicheren System

Country Status (3)

Country Link
US (1) US20090204801A1 (de)
DE (1) DE102009008362B4 (de)
GB (1) GB2457172B (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8966254B2 (en) * 2010-10-11 2015-02-24 International Business Machines Corporation Keyless challenge and response system
US8839004B1 (en) * 2012-04-16 2014-09-16 Ionu Security, Inc. Secure cloud computing infrastructure
US9830456B2 (en) * 2013-10-21 2017-11-28 Cisco Technology, Inc. Trust transference from a trusted processor to an untrusted processor
US9735967B2 (en) * 2014-04-30 2017-08-15 International Business Machines Corporation Self-validating request message structure and operation
US10108800B1 (en) 2017-01-10 2018-10-23 Gbs Laboratories, Llc ARM processor-based hardware enforcement of providing separate operating system environments for mobile devices with capability to employ different switching methods
DE102019206302A1 (de) * 2019-05-02 2020-11-05 Continental Automotive Gmbh Verfahren und Vorrichtung zum Übertragen eines Boot-Codes mit verbesserter Datensicherheit

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6185678B1 (en) * 1997-10-02 2001-02-06 Trustees Of The University Of Pennsylvania Secure and reliable bootstrap architecture
US20060174240A1 (en) * 2005-02-02 2006-08-03 Insyde Software Corporation System and method for updating firmware in a secure manner
WO2006086301A1 (en) * 2005-02-07 2006-08-17 Transmeta Corporation System and method for providing a secure boot architecture
WO2008009112A1 (en) * 2006-07-18 2008-01-24 Certicom Corp. System and method for authenticating a gaming device

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5457748A (en) * 1992-11-30 1995-10-10 Motorola, Inc. Method and apparatus for improved security within encrypted communication devices
US6275931B1 (en) * 1998-06-22 2001-08-14 Elsag International N.V. Method and apparatus for upgrading firmware boot and main codes in a programmable memory
US7194092B1 (en) * 1998-10-26 2007-03-20 Microsoft Corporation Key-based secure storage
US7761653B2 (en) * 1999-08-04 2010-07-20 Super Talent Electronics, Inc. Flash micro-controller with shadow boot-loader SRAM for dual-device booting of micro-controller and host
US6757824B1 (en) * 1999-12-10 2004-06-29 Microsoft Corporation Client-side boot domains and boot rules
US20020073306A1 (en) * 2000-09-08 2002-06-13 Gaspare Aluzzo System and method for protecting information stored on a computer
US7237121B2 (en) * 2001-09-17 2007-06-26 Texas Instruments Incorporated Secure bootloader for securing digital devices
US6615329B2 (en) * 2001-07-11 2003-09-02 Intel Corporation Memory access control system, apparatus, and method
US20040255000A1 (en) * 2001-10-03 2004-12-16 Simionescu Dan C. Remotely controlled failsafe boot mechanism and remote manager for a network device
US20030115471A1 (en) * 2001-12-19 2003-06-19 Skeba Kirk W. Method and apparatus for building operational radio firmware using incrementally certified modules
US7266848B2 (en) * 2002-03-18 2007-09-04 Freescale Semiconductor, Inc. Integrated circuit security and method therefor
JP4099039B2 (ja) * 2002-11-15 2008-06-11 松下電器産業株式会社 プログラム更新方法
CN101241735B (zh) * 2003-07-07 2012-07-18 罗威所罗生股份有限公司 重放加密的视听内容的方法
US20050283601A1 (en) * 2004-06-22 2005-12-22 Sun Microsystems, Inc. Systems and methods for securing a computer boot
US7386736B2 (en) * 2004-12-16 2008-06-10 International Business Machines Corporation Method and system for using a compact disk as a smart key device
US7636780B2 (en) * 2005-07-28 2009-12-22 Advanced Micro Devices, Inc. Verified computing environment for personal internet communicator
US20070055881A1 (en) * 2005-09-02 2007-03-08 Fuchs Kenneth C Method for securely exchanging public key certificates in an electronic device
KR100778293B1 (ko) * 2005-10-10 2007-11-22 삼성전자주식회사 디지털방송처리장치 및 디지털방송처리장치 부트로더의업그레이드 방법
JP4868216B2 (ja) * 2006-01-19 2012-02-01 日本電気株式会社 ファームウェア更新回路およびファームウェア更新方法
JP2007213494A (ja) * 2006-02-13 2007-08-23 Ntt Docomo Inc 更新起動装置及び更新起動制御方法
JP4795812B2 (ja) * 2006-02-22 2011-10-19 富士通セミコンダクター株式会社 セキュアプロセッサ
US7676694B2 (en) * 2006-03-31 2010-03-09 Emc Corporation Managing system components
EP1845470B1 (de) * 2006-04-13 2016-11-09 STMicroelectronics (Research & Development) Limited Integrierte Mehrzweckschaltung
US7424398B2 (en) * 2006-06-22 2008-09-09 Lexmark International, Inc. Boot validation system and method
US8312509B2 (en) * 2006-09-21 2012-11-13 Intel Corporation High integrity firmware
US20080082680A1 (en) * 2006-09-29 2008-04-03 Karanvir Grewal Method for provisioning of credentials and software images in secure network environments
US7900032B2 (en) * 2006-10-06 2011-03-01 Broadcom Corporation Method and system for NAND flash support in autonomously loaded secure reprogrammable system
US7870379B2 (en) * 2006-10-10 2011-01-11 Exaflop Llc Updating a power supply microcontroller
US7876894B2 (en) * 2006-11-14 2011-01-25 Mcm Portfolio Llc Method and system to provide security implementation for storage devices
US20080148001A1 (en) * 2006-12-14 2008-06-19 Telefonaktiebolaget L M Ericsson (Publ) Virtual Secure On-Chip One Time Programming
US8254568B2 (en) * 2007-01-07 2012-08-28 Apple Inc. Secure booting a computing device
EP2196936A4 (de) * 2007-10-05 2012-05-02 Panasonic Corp Endgerät mit sicherem start, sicheres startverfahren, sicheres startprogramm, aufzeichnungsmedium und integrierte schaltung
US8719585B2 (en) * 2008-02-11 2014-05-06 Nvidia Corporation Secure update of boot image without knowledge of secure key

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6185678B1 (en) * 1997-10-02 2001-02-06 Trustees Of The University Of Pennsylvania Secure and reliable bootstrap architecture
US20060174240A1 (en) * 2005-02-02 2006-08-03 Insyde Software Corporation System and method for updating firmware in a secure manner
WO2006086301A1 (en) * 2005-02-07 2006-08-17 Transmeta Corporation System and method for providing a secure boot architecture
WO2008009112A1 (en) * 2006-07-18 2008-01-24 Certicom Corp. System and method for authenticating a gaming device

Also Published As

Publication number Publication date
DE102009008362A1 (de) 2009-10-15
GB0902210D0 (en) 2009-03-25
GB2457172B (en) 2010-06-16
GB2457172A (en) 2009-08-12
US20090204801A1 (en) 2009-08-13

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
US8719585B2 (en) Secure update of boot image without knowledge of secure key
DE102009013384B4 (de) System und Verfahren zur Bereitstellung einer sicheren Anwendungsfragmentierungsumgebung
DE112017004017T5 (de) Sichere öffentliche cloud
EP3259698B1 (de) Autonom bootendes system mit einem sicherheitsmodul
DE102019109088A1 (de) Schutz von schlüsseln und sensitiven daten gegen angriffe in einer mikroprozessorarchitektur
DE102009008362B4 (de) Verfahren der Handhabung von Speicherschlüsseln in einem sicheren System
DE112009005466T5 (de) Verfahren und Vorrichtung zum Bereitstellen einer sicheren Anwendungsausführung
US20090204803A1 (en) Handling of secure storage key in always on domain
DE112016004435T5 (de) Hardware-gestützte einseitige kryptografie
DE112009002502T5 (de) Multilayer inhalte-schützender Mikrocontoller
DE102015209108A1 (de) Verfahren und Entscheidungsgateway zum Autorisieren einer Funktion eines eingebetteten Steuergerätes
DE112008003931T5 (de) Systeme und Verfahren für Datensicherheit
DE202019005672U1 (de) System zum Verhindern eines unautorisierten Zugriffs auf verschlüsselten Speicher
DE112009004762T5 (de) System und verfahren zum durchführen einer verwaltunosoperation
DE102010054614A1 (de) Eindringen in eine gesicherte EDV-Umgebung unter Verwendung mehrerer authentifizierter Codemodule
DE102018004290A1 (de) Kryptographischer Speicherschutz mit Mehrfachschlüssel
DE102012215770A1 (de) Inhalt-Schutz über Online-Server und Code-Ausführung in einem sicheren Betriebssystem
DE112015007220T5 (de) Techniken zum Koordinieren von Vorrichtungshochfahrsicherheit
DE102020121075A1 (de) Einrichtung und Verfahren zur Authentifizierung von Software
US10949570B2 (en) Processing system, related integrated circuit and method
DE102020119389A1 (de) Vorrichtung und Verfahren zum sicheren Verwalten von Schlüsseln
DE112019007230T5 (de) Multimodus-Geschützter-Speicher

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R082 Change of representative

Representative=s name: KRAUS & WEISERT PATENTANWAELTE PARTGMBB, DE