DE112015007220T5 - Techniken zum Koordinieren von Vorrichtungshochfahrsicherheit - Google Patents

Techniken zum Koordinieren von Vorrichtungshochfahrsicherheit Download PDF

Info

Publication number
DE112015007220T5
DE112015007220T5 DE112015007220.9T DE112015007220T DE112015007220T5 DE 112015007220 T5 DE112015007220 T5 DE 112015007220T5 DE 112015007220 T DE112015007220 T DE 112015007220T DE 112015007220 T5 DE112015007220 T5 DE 112015007220T5
Authority
DE
Germany
Prior art keywords
firmware
secure
island
operating environment
routine
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.)
Withdrawn
Application number
DE112015007220.9T
Other languages
English (en)
Inventor
Jiewen Yao
Vincent J. Zimmer
Wei Li
Rajesh Poornachandran
Giri P. Mudusuru
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of DE112015007220T5 publication Critical patent/DE112015007220T5/de
Withdrawn legal-status Critical Current

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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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/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
    • G06F9/4406Loading of operating system
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services

Landscapes

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

Abstract

Techniken zum Bereitstellen und Erhalten des Schutzes von Firmwareroutinen, die Teil einer Vertrauenskette durch aufeinander folgende Verarbeitungsumgebungen bilden. Eine Einrichtung kann umfassen: eine erste Prozessorkomponente (550); einen mit der ersten Prozessorkomponente gekoppelten flüchtigen Speicher (562); eine Inselkomponente, um, in einer Vor-BS-Betriebsumgebung, eine sichere Insel innerhalb eines Teils des flüchtigen Speichers zu erzeugen, um Zugriff auf die in die sichere Insel geladene gesicherte Firmware einzuschränken; einen ersten Firmwaretreiber (646), um, in der Vor-BS-Betriebsumgebung, eine erste API bereitzustellen, um es nicht gesicherter Firmware zu ermöglichen, eine Unterstützungsroutine der gesicherten Firmware von außerhalb der sicheren Insel aufzurufen; und einen zweiten Firmwaretreiber (647), um, in einer BS-Betriebsumgebung, die die Vor-BS-Betriebsumgebung ersetzt, eine zweite API bereitzustellen, um es einem BS der BS-Betriebsumgebung zu ermöglichen, die Unterstützungsroutine von außerhalb der sicheren Insel aufzurufen.

Description

  • Hintergrund
  • Unterstützungsroutinen, die verwendet werden, um eine Verarbeitungsvorrichtung zu initialisieren, ein Betriebssystem auf der Verarbeitungsvorrichtung hochzufahren und fortlaufende Unterstützungsdienste für das Betriebssystem bereitzustellen, können ein Ziel für Beeinträchtigung und/oder Beschädigung durch bösartige Software werden (z. B. Schadsoftware wie Viren, Würmer usw.). Auf solche Unterstützungsroutinen kann sich verlassen werden, um Aspekte der Verarbeitungsvorrichtung in Vorbereitung des Hochfahrens und/oder Ausführens des Betriebssystems auszulegen. Alternativ oder zusätzlich kann sich auf eine solche Unterstützungsroutine verlassen werden, um verschiedene Sicherheitsfunktionen bereitzustellen, wie etwa Verschlüsselung für Netzwerkkommunikation und/oder Zugriff auf gesicherte Speichervorrichtungen.
  • Verschiedene Formen von Schadsoftware können versuchen, solche Unterstützungsroutinen während einer solchen Initialisierung und/oder Auslegung der Verarbeitungsvorrichtung zu beeinträchtigen und/oder zu beschädigen, um bereit zu sein, die Verarbeitungsvorrichtung vor dem Hochfahren des Betriebssystems zu übernehmen. Die Absicht kann sein zu versuchen, an einem Punkt innerhalb einer Vertrauenskette eingebettet zu werden, der früh genug ist, um verschiedene Sicherheitsmaßnahmen zu vereiteln, die zu dem Zeitpunkt eingesetzt werden, zu dem das Betriebssystem hochgefahren wird und/oder während das Betriebssystem ausgeführt wird.
  • Figurenliste
    • 1A und 1B stellen jeweils ein Ausführungsbeispiel eines sicheren Verarbeitungssystems dar.
    • 2 stellt ein Ausführungsbeispiel einer Bereitstellung von Sicherheitsberechtigungen für Komponenten einer Verarbeitungsvorrichtung dar.
    • 3A und 3B stellen zusammen ein Ausführungsbeispiel eines Erweiterns einer Vertrauenskette zum Einschließen von Firmware dar.
    • 4A, 4B, 4C und 4D stellen zusammen ein Ausführungsbeispiel eines Vorbereitens einer Verarbeitungsvorrichtung zum Unterstützen von Ausführung eines Betriebssystems dar.
    • 5A und 5B stellen zusammen ein Ausführungsbeispiel eines Erhaltens einer sicheren Insel bei einem Übergang zwischen zwei Betriebsumgebungen dar.
    • 6A und 6B stellen zusammen einen Logikfluss gemäß einer Ausführungsform dar.
    • 7A und 7B stellen zusammen einen weiteren Logikfluss gemäß einer Ausführungsform dar.
    • 8 stellt eine Verarbeitungsarchitektur gemäß einer Ausführungsform dar.
  • Ausführliche Beschreibung
  • Verschiedene Ausführungsformen sind allgemein auf Bereitstellen und Erhalten eines Schutzes von Firmwareroutinen gerichtet, die Teil einer Vertrauenskette durch aufeinander folgende Verarbeitungsumgebungen sind. Zumindest während Initialisierung einer Verarbeitungsvorrichtung kann in eine Prozessorkomponente davon integrierter Verifizierungsmikrocode als anfänglicher Teil einer Vertrauenskette dienen. Der Verifizierungsmikrocode und/oder eine Verifizierungsroutine, die durch den Verifizierungsmikrocode verifiziert wurde, kann versuchen, eine Firmware als vertrauenswürdig zu authentifizieren. Bei erfolgreicher Authentifizierung der Firmware, dabei die Vertrauenskette auf die Firmware erweiternd, kann die Prozessorkomponente die Firmware in einer Vor-Betriebssystem(Vor-BS)-Verarbeitungsumgebung ausführen, um verschiedene Initialisierungs- und Auslegungsaufgaben durchzuführen, um die Verarbeitungsvorrichtung für Betrieb in einer nachfolgenden BS-Verarbeitungsumgebung vorzubereiten. Dadurch kann die Prozessorkomponente eine sichere Insel innerhalb eines Teils eines Speichers der Verarbeitungsvorrichtung (z. B. eines Teils von Direktzugriffsspeicher (RAM, Random Access Memory) der Verarbeitungsvorrichtung) erzeugen, in der ein gesicherter Teil der Firmware vor Zugriff durch andere, innerhalb der Vor-BS-Verarbeitungsumgebung ausgeführte Routinen, die außerhalb der sicheren Insel befindlich sind, geschützt ist. Solche anderen Routinen könne Aufrufe an einen gesicherten Teil der Firmware innerhalb der sicheren Insel durch einen ersten Firmwaretreiber vornehmen. Im Anschluss an die Durchführung solcher Initialisierungs- und Auslegungsaufgaben innerhalb der Vor-BS-Betriebsumgebung kann die Firmware versuchen, ein BS als vertrauenswürdig zu authentifizieren. Bei erfolgreicher Authentifizierung des BS, dadurch die Vertrauenskette auf das BS erweiternd, kann die Prozessorkomponente Teile des BS in Vorbereitung auf Hochladen des BS laden. Dadurch kann sich die Prozessorkomponente darauf vorbereiten, dass die sichere Insel während des Übergangs vom Ende der Vor-BS-Betriebsumgebung und zum Beginn der BS-Betriebsumgebung, der als ein Resultat des Hochfahrens des BS stattfindet, eingesetzt bleibt. Dadurch kann die Prozessorkomponente einen zweiten Firmwaretreiber laden, um dem BS und/oder den Anwendungsroutinen, die in der BS-Umgebung ausgeführt werden, zu ermöglichen, Aufrufe an den gesicherten Teil der Firmware innerhalb der sicheren Insel vorzunehmen.
  • In einigen dieser Ausführungsformen können eine oder mehrere Komponenten der Verarbeitungsvorrichtung ausgewählt werden, um Aspekten der IA-32-Architektur, die durch Intel® Corporation aus Santa Clara, Kalifornien, veröffentlicht wurde, und/oder Aspekten der Unified Extensible Firmware Interface, die vom UEFI Forum in Beaverton, Oregon, veröffentlicht wurde, zu entsprechen. In solchen Ausführungsformen kann die Prozessorkomponente eine Komponente aus einer der Prozessorserien Pentium®, Itanium® oder Core von Intel Corporation sein, der Verifizierungsmikrocode kann während der Herstellung durch die Intel Corporation in die Prozessorkomponente integriert worden sein, die Verifizierungsroutine kann ein ACM (Authenticated Code Module), bereitgestellt von Intel Corporation, sein, die Firmware kann ein BIOS (Basic Input/Output System) sein, bereitgestellt von einer beliebigen aus einer Vielzahl von Quellen, und das BS kann eine Version von Window™ von der Microsoft® Corporation aus Redmond, Washington, oder eine Version von Linux®, bereitgestellt durch eine beliebige aus einer Vielzahl von Quellen sein.
  • Insbesondere können, während der Fertigung einer in eine Verarbeitungsvorrichtung zu integrierenden Prozessorkomponente, Verifizierungsmikrocode und zumindest eine Sicherheitsberechtigung in Verbindung mit dem Verifizierungsmikrocode in die Prozessorkomponente integriert werden. Erneut kann der Verifizierungsmikrocode als ein anfänglicher Teil einer Vertrauenskette dienen, für die beabsichtigt wird, sie auf zumindest die Prozessorkomponente, die Firmware und das BS zu erweitern als Teil einer sicheren Verarbeitungsumgebung, in der eine Anwendungsroutine ausgeführt werden kann. Um diese Vertrauenskette aufzubauen, kann der Verifizierungsmikrocode die Prozessorkomponente veranlassen, bei Initialisierung innerhalb der Verarbeitungsvorrichtung, eine Verifizierungsroutine abzurufen, die innerhalb der Verarbeitungsvorrichtung gespeichert sein kann, und die zumindest eine Sicherheitsberechtigung in Verbindung mit dem Verifizierungsmikrocode zu verwenden, um zu versuchen, die Verifizierungsroutine als vertrauenswürdig zu authentifizieren. Beim Authentifizieren kann die Verifizierungsroutine die Prozessorkomponente veranlassen, eine Firmware abzurufen, die auch innerhalb der Verarbeitungsvorrichtung gespeichert sein kann, und zumindest eine Sicherheitsberechtigung in Verbindung mit der Verifizierungsroutine zu verwenden, um zu versuchen, die Firmware als vertrauenswürdig zu authentifizieren. Alternativ kann der Verifizierungsmikrocode die Prozessorkomponente veranlassen zu versuchen, unter Verwendung der zumindest einen Sicherheitsberechtigung in Verbindung mit dem Verifizierungsmikrocode die Firmware direkt als vertrauenswürdig zu authentifizieren.
  • Die Initialisierung der Verarbeitungsvorrichtung kann durch solche Ereignisse wie Einschalten der Verarbeitungsvorrichtung, ein softwareausgelöstes und/oder hardwareausgelöstes Rücksetzen usw. ausgelöst werden. In einigen Ausführungsformen kann die zumindest eine Sicherheitsberechtigung in Verbindung mit dem Verifizierungsmikrocode und/oder mit der Verifizierungsroutine ein Verschlüsselungsschlüssel sein, der zum Authentifizieren einer digitalen Signatur (oder einem Hash davon) bestimmt ist. Noch andere Typen von Sicherheitsberechtigungen und/oder anderen Mechanismen zum Versuchen, die Verifizierungsroutine und/oder die Firmware zu authentifizieren, können in anderen Ausführungsformen verwendet werden. In einigen Ausführungsformen, wenn die Firmware nicht authentifiziert werden kann, kann die Prozessorkomponente damit aufhören, weitere Aktionen durchzuführen, um die Verarbeitungsvorrichtung zu initialisieren und/oder kann Aktionen durchführen, um die Verarbeitungsvorrichtung nicht betreibbar zu machen, als Teil des Sicherns der Verarbeitungsvorrichtung.
  • Wenn allerdings die Firmware authentifiziert werden kann, kann die Prozessorkomponente beginnen, die Firmware auszuführen, dadurch die Vertrauenskette erweiternd, um die Firmware einzuschließen, und eine Vor-BS-Verarbeitungsumgebung zu erzeugen, in der die Prozessorkomponente von der Firmware veranlasst werden kann, verschiedene Initialisierungs- und Auslegungsaufgaben durchzuführen, um die Verarbeitungsvorrichtung für Betrieb in einer nachfolgenden BS-Verarbeitungsumgebung vorzubereiten. Erneut kann, als Teil des Durchführens solcher Aufgaben, die Prozessorkomponente eine sichere Insel innerhalb eines Speichers der Verarbeitungsvorrichtung erzeugen, in die ein gesicherter Teil der Firmware geladen werden kann, um vor Zugriff durch andere, innerhalb der Vor-BS-Verarbeitungsumgebung ausgeführte Routinen, die außerhalb der sicheren Insel befindlich sind, geschützt zu sein. Ein solcher gesicherter Teil der Firmware kann verschiedene Unterstützungsroutinen umfassen, die verschiedene Sicherheitsfunktionen ausführen, wie etwa Verschlüsseln/Entschlüsseln von Daten und Authentifizieren verschiedener Hardware- und/oder Softwarekomponenten der Verarbeitungsvorrichtung und/oder von anderen Vorrichtungen, die mit der Verarbeitungsvorrichtung gekoppelt sein und/oder anderweitig mit dieser kommunizieren können. Alternativ oder zusätzlich kann ein solcher gesicherter Teil der Firmware verschiedene authentifizierte Variablen umfassen, die beim Durchführen verschiedener Sicherheitsfunktionen (z. B. Verschlüsselungs-/Entschlüsselungsschlüssel usw.) und/oder verschiedener Funktionen eingesetzt werden, deren Durchführung in einer gesicherten Umgebung als erforderlich erachtet wird.
  • In Ausführungsformen, in denen der gesicherte Teil Unterstützungsroutinen umfasst, die innerhalb der sicheren Insel zu halten sind, kann die Prozessorkomponente durch die Firmware veranlasst werden, verschiedene Routinen auszuführen, die außerhalb der sicheren Insel gehalten werden, um verschiedene der Initialisierungs- und Auslegungsaufgaben durchzuführen, die sich aber auf die Unterstützungsroutinen innerhalb der sicheren Insel verlassen können. Um Aufrufe zu ermöglichen, die durch Routinen außerhalb der sicheren Insel vorgenommen werden, um die Unterstützungsroutinen innerhalb der sicheren Insel zu erreichen, kann die Prozessorkomponente durch die Firmware veranlasst werden, einen außerhalb der sicheren Insel geladenen Firmwaretreiber einzusetzen, der in der Lage ist, diese Aufrufe zu empfangen und an die Unterstützungsroutinen innerhalb der sicheren Insel weiterzuleiten. Der Firmwaretreiber kann eine Anwendungsprogrammierschnittstelle (API, Application Programming Interface) bereitstellen, an die diese Aufrufe durch die verschiedenen Routinen, die außerhalb der sicheren Insel gehalten werden, gerichtet werden können.
  • Bei Bildung der sicheren Insel und dem Laden des gesicherten Teils der Firmware in die sichere Insel, kann ein Maß von der sicheren Insel genommen werden (z. B. ein Hash davon). In einigen Ausführungsformen kann das Nehmen des Maßes eine Funktion der Prozessorkomponente und/oder einer Speichersteuerung der Verarbeitungsvorrichtung sein. Ein solches Maß kann zur Verwendung bei einem nachfolgenden Vergleich mit einem anderen, von der sicheren Insel genommenen Maß vorgehalten werden, um sicherzustellen, dass der gesicherte Teil der darin gespeicherten Firmware nicht beeinträchtigt wurde. Es kann sein, dass eine oder mehrere der Routinen der Firmware, die außerhalb der sicheren Insel befindlich sind, das gespeicherte Maß verwenden können, um die Integrität des gesicherten Teils der innerhalb der sicheren Insel gespeicherten Firmware zu prüfen, während die Vor-BS-Betriebsumgebung eingesetzt ist.
  • Im Anschluss an die Durchführung solcher Initialisierungs- und Auslegungsaufgaben innerhalb der Vor-BS-Betriebsumgebung kann der gesicherte Teil der Firmware versuchen, ein BS als vertrauenswürdig zu authentifizieren. Bei erfolgreicher Authentifizierung des BS, dadurch die Vertrauenskette auf das BS erweiternd, kann die Prozessorkomponente Teile des BS in Vorbereitung auf Hochladen des BS laden. Unterstützungsroutinen und/oder authentifizierte Variablen, die in den gesicherten Teil der vorher in die sichere Insel geladenen Firmware eingeschlossen werden können, können durch das BS und/oder durch eine oder mehrere Anwendungsroutinen, die innerhalb der beim Hochfahren des BS zu erzeugenden BS-Betriebsumgebung ausgeführt werden, genutzt werden. Daher kann es für den gesicherten Teil der Firmware als wünschenswert erachtet werden, in der BS-Betriebsumgebung geschützt gehalten zu werden, genau wie er in der Vor-BS-Betriebsumgebung geschützt wird, sodass die sichere Insel erhalten werden kann, selbst nachdem die Vor-BS-Betriebsumgebung durch die BS-Betriebsumgebung ersetzt wurde.
  • In Ausführungsformen, in denen der gesicherte Teil Unterstützungsroutinen umfasst, die innerhalb der sicheren Insel zu halten sind und die durch BS-Routinen aufzurufen sind, die außerhalb der sicheren Insel gehalten werden können, kann die Prozessorkomponente durch die Firmware veranlasst werden, einen anderen Firmwaretreiber außerhalb der sicheren Insel zu laden, der in der Lage ist, Aufrufe zu empfangen, die von solchen BS-Routinen vorgenommen wurden, und diese an die Unterstützungsroutinen innerhalb der sicheren Insel weiterzuleiten. In einer Weise entsprechend dem anfänglichen Firmwaretreiber zum Empfangen von außerhalb der sicheren Insel befindlichen Firmwareroutinen kann der andere Firmwaretreiber eine Anwendungsprogrammierschnittstelle (API) bereitstellen, an die die durch die BS-Routinen vorgenommenen Aufrufe gerichtet werden können.
  • Im Anschluss an das Laden von zumindest Teilen des BS und das Laden des anderen Firmwaretreibers kann die Prozessorkomponente die Ausführung der Firmwareroutinen, die außerhalb der sicheren Insel befindlich sind, beenden und mit der Ausführung eines der Teile des BS beginnen, der durch die Firmware geladen wurde, dadurch das BS hochfahrend. Auf diese Weise kann der Übergang von der Vor-BS-Betriebsumgebung zur BS-Betriebsumgebung durchgeführt werden. Als Teil des Hochfahrens des BS kann die Prozessorkomponente veranlasst werden, mehrere Teile des BS zu laden und/oder mit deren Ausführung zu beginnen. Alternativ oder zusätzlich kann die Prozessorkomponente veranlasst werden, eine oder mehrere Anwendungsroutinen zu laden und/oder mit deren Ausführung zu beginnen.
  • Während des Hochfahrens des BS zum Erzeugen der BS-Betriebsumgebung und/oder im Anschluss an das Hochfahren des BS, sodass die BS-Betriebsumgebung eingesetzt ist, kann die Prozessorkomponente durch das BS veranlasst werden, das früher erzeugte und gespeicherte Maß der sicheren Insel zu verwenden, um die Integrität des darin gespeicherten gesicherten Teils der Firmware zu prüfen. Alternativ oder zusätzlich können eine oder mehrere durch die Prozessorkomponente innerhalb der BS-Betriebsumgebung ausgeführte Anwendungsroutinen so verfahren. Ebenfalls während und/oder im Anschluss an das Hochfahren des BS können das BS und/oder eine oder mehrere Anwendungsroutinen Aufrufe an die durch den anderen Firmwaretreiber erzeugte API vornehmen, um eine oder mehrere Unterstützungsroutinen und/oder authentifizierte Variablen, die in dem innerhalb der sicheren Insel gespeicherten gesicherten Teil der Firmware eingeschlossen sein können, zu nutzen.
  • Allgemein Bezug nehmend auf hier verwendete Notationen und Nomenklatur können Teile der nachfolgenden ausführlichen Beschreibung in Bezug auf Programmprozeduren, die auf einem Computer oder einem Netzwerk von Computern ausgeführt werden, dargestellt sein. Diese prozeduralen Beschreibungen und Darstellungen werden von Fachleuten verwendet, um das Wesen ihrer Arbeit anderen Fachleuten in der effektivsten Weise nahezubringen. Eine Prozedur wird hier und allgemein als eine in sich widerspruchsfreie Sequenz von Vorgängen wahrgenommen, die zu einem gewünschten Ergebnis führen. Diese Vorgänge sind diejenigen, die physische Manipulationen von physischen Mengen erfordern. Üblicherweise, obwohl nicht notwendigerweise, nehmen diese Mengen die Form von elektrischen, magnetischen oder optischen Signalen an, die gespeichert, übertragen, kombiniert, verglichen und anderweitig manipuliert werden können. Es erweist sich manchmal als günstig, hauptsächlich aus Gründen der allgemeinen Verwendung, diese Signale als Bits, Werte, Elemente, Symbole, Zeichen, Begriffe, Zahlen oder ähnliches zu bezeichnen. Es versteht sich allerdings, dass all diese und ähnliche Begriffe mit den entsprechenden physischen Mengen zu verbinden sind und lediglich günstige Bezeichnungen sind, die auf diese Mengen angewendet werden.
  • Ferner wird auf solche Manipulationen häufig begrifflich Bezug genommen, wie etwa als Addieren oder Vergleichen, die allgemein mit mentalen Vorgängen, die durch einen menschlichen Bediener durchgeführt werden, verknüpft sind. Allerdings ist in beliebigen der hier beschriebenen Vorgänge, die Teil von einer oder mehreren Ausführungsformen sind, keine solche Fähigkeit eines menschlichen Bedieners notwendig oder, in den meisten Fällen, wünschenswert. Stattdessen sind diese Vorgänge Maschinenvorgänge. Hilfreiche Maschinen zum Durchführen von Vorgängen von verschiedenen Ausführungsformen umfassen universelle digitale Computer, wie durch ein darin gespeichertes Computerprogramm, das in Übereinstimmung mit den Lehren hierin geschrieben wurde, gezielt aktiviert oder ausgelegt, und/oder Einrichtungen, die speziell für den geforderten Prozess konstruiert wurden. Verschiedene Ausführungsformen beziehen sich auch auf Einrichtungen oder Systeme zum Durchführen dieser Vorgänge. Diese Einrichtungen können speziell für den erforderlichen Zweck konstruiert sein oder können einen universellen Computer umfassen. Die erforderliche Struktur für eine Vielzahl dieser Maschinen erschließt sich aus der gegebenen Beschreibung.
  • Jetzt wird Bezug genommen auf die Zeichnungen, in denen ähnliche Bezugszeichen sämtlich verwendet werden, um sich auf ähnliche Elemente zu beziehen. In der folgenden Beschreibung werden, zum Zwecke der Erläuterung, zahlreiche spezifische Details dargelegt, um ein gründliches Verständnis derselben zu bieten. Es kann allerdings offensichtlich sein, dass die neuartigen Ausführungsformen ohne diese spezifischen Details praktiziert werden können. In anderen Instanzen sind wohlbekannte Strukturen und Vorrichtungen in Blockdiagrammform gezeigt, um eine Beschreibung derselben zu erleichtern. Die Absicht ist, alle Modifikationen, Äquivalente und Alternativen innerhalb des Schutzumfangs der Ansprüche abzudecken.
  • 1A stellt ein Blockdiagramm einer Ausführungsform eines sicheren Verarbeitungssystems 1000 dar, das eine oder mehrere Berechtigungsprüfvorrichtungen 100, eine oder mehrere abgesetzte Speichervorrichtungen 305 und/oder eine Verarbeitungsvorrichtung 500 einschließt. Im sicheren Verarbeitungssystem 1000 können ein oder mehrere passende Sätze von Sicherheitsberechtigungen durch die eine oder mehreren Berechtigungsprüfvorrichtungen 100 zur Verwendung durch ein oder mehrere Paare von Komponenten der Verarbeitungsvorrichtung 500 bereitgestellt sein, um zu ermöglichen, dass während der Initialisierung der Verarbeitungsvorrichtung 500 ein oder mehrere Teile einer Vertrauenskette dazwischen gebildet werden. Eine oder mehrere ausführbare Routinen dieser Komponenten können der Verarbeitungsvorrichtung 500 durch eine oder mehrere abgesetzte Speichervorrichtungen 305 bereitgestellt werden.
  • Wie dargestellt, können die eine oder mehreren abgesetzten Speichervorrichtungen 305 und die Verarbeitungsvorrichtung 500 solche ausführbaren Routinen über ein Netzwerk 999 austauschen. Außerdem können eine oder mehrere dieser ausgetauschten ausführbaren Routinen so in verschlüsselter Form ausgetauscht werden, um Lesen und/oder eine Modifizierung derselben zu verhindern. Allerdings können eine oder mehrere dieser Vorrichtungen andere Daten austauschen, die keinerlei Bezug zum Initialisieren der Verarbeitungsvorrichtung 500 miteinander und/oder mit noch weiteren Vorrichtungen (nicht gezeigt) über das Netzwerk 999 haben. In verschiedenen Ausführungsformen kann das Netzwerk 999 ein einzelnes Netzwerk sein, möglicherweise darauf beschränkt, sich innerhalb eines einzelnen Gebäudes oder eines anderen relativ begrenzten Bereichs zu erstrecken, eine Kombination von verbundenen Netzwerken sein, die sich möglicherweise über eine erhebliche Entfernung erstrecken, und/oder kann das Internet umfassen. Daher kann das Netzwerk 999 auf jeder aus einer Vielzahl (oder Kombination) von Kommunikationstechnologien basieren, durch die Signale ausgetauscht werden können, einschließlich, unter anderem, drahtgebundene Technologien, die elektrisch und/oder optische leitfähige Verkabelung einsetzen, und drahtlose Technologien, die Infrarot-, Hochfrequenz- oder andere Formen von drahtloser Übertragung einsetzen.
  • In verschiedenen Ausführungsformen kann die Verarbeitungsvorrichtung 500 eine Prozessorkomponente 550, einen Speicher 560, eine Messkomponente 555, manuell betätigbare Steuerungen 520, eine Anzeige 580 und/oder Netzwerkschnittstellen 590 zum Koppeln der Verarbeitungsvorrichtung 500 mit dem Netzwerk 999 einschließen. Die Prozessorkomponente 550 kann Mikrocode zum Steuern verschiedener Aspekte ihres Betriebs umfassen, einschließlich Verifizierungsmikrocode 410. Obwohl die Messkomponente 555 nicht als in eine andere Komponente der Verarbeitungsvorrichtung 500 eingeschlossen dargestellt ist, kann, in einigen Ausführungsformen, die Messkomponente 555 in die Prozessorkomponente 550 oder in eine Unterstützungskomponente (nicht gezeigt) eingeschlossen sein, die verschiedene Formen von hardwareumgesetzter Unterstützungslogik für die Prozessorkomponente 550 bereitstellen kann (z. B. eine Busschnittstelle zu einer oder mehreren anderen Komponenten der Verarbeitungsvorrichtung 500).
  • Der Speicher 560 kann eine Verifizierungsroutine 416, gesicherte Firmware 610, Firmwaretreiber 646 und 647, nicht gesicherte Firmware 670, ein Betriebssystem (BS) 770 und eine oder mehrere Anwendungsroutinen 870 speichern. Wie dargestellt, kann der Speicher 560 ein entfernbares Speichermedium 569 (z. B. eine optische Platte, eine Festkörperspeichervorrichtung und/oder Festplatte, die aus einem Gehäuse der Verarbeitungsvorrichtung 500 entfernbar ist, usw.) umfassen, von dem eine oder mehrere dieser ausführbaren Routinen in einen anderen Teil des Speichers 560 kopiert werden können, der nicht auf einem entfernbaren Speichermedium basieren muss (z. B. Festkörperspeicher und/oder eine Festplatte, integriert in ein Gehäuse der Verarbeitungsvorrichtung 500). Alternativ oder zusätzlich können eine oder mehrere dieser ausführbaren Routinen von der einen oder den mehreren abgesetzten Speichervorrichtungen 305 über das Netzwerk 999 und die Netzwerkschnittstelle 590 abgerufen werden. Wie ebenfalls dargestellt, können die Verifizierungsroutine 416, die gesicherte Firmware 610, die Treiber 646 und 647 und/oder die nicht gesicherte Firmware 670 in einem nicht-flüchtigen Speicher 562 gespeichert werden basierend auf einer Speichertechnologie, die erlaubt, die Inhalte davon zu überschreiben, die aber diese Inhalte während Zeiten erhält, wenn kein elektrischer Strom angelegt ist (z. B. eine oder mehrere FLASH-Speichervorrichtungen).
  • Der Verifizierungsmikrocode 410, die Verifizierungsroutine 416, die gesicherte Firmware 610, die Firmwaretreiber 646 und 647, die nicht gesicherte Firmware 670, das BS 770 und/oder die eine oder mehreren Anwendungsroutinen 870 können jeweils eine Sequenz von Anweisungen umfassen, die auf der Prozessorkomponente 550 betreibbar sind, um Logik zum Durchführen verschiedener Funktionen umzusetzen. Wie noch ausführlicher erläutert wird, kann die Prozessorkomponente 550 durch ihre Ausführung von zumindest dem Verifizierungsmikrocode 410 veranlasst werden zu versuchen, eine Vertrauenskette zwischen der Prozessorkomponente 550 und zumindest dem Verifizierungsmikrocode 410 und/oder der Verifizierungsroutine 416 unter Verwendung von Sicherheitsberechtigungen, die durch die eine oder mehrere Berechtigungsprüfvorrichtungen 100 bereitgestellt werden können, zu bilden. Insbesondere kann Ausführung des Verifizierungsmikrocodes 410 die Prozessorkomponente 550 veranlassen zu versuchen, die Verifizierungsroutine 416 zu authentifizieren, und vorausgesetzt, dass eine solche Authentifizierung erfolgreich ist, kann Ausführung der Verifizierungsroutine 416 die Prozessorkomponente 550 veranlassen zu versuchen, zumindest die gesicherte Firmware 610 zu authentifizieren. Wenn Authentifizierung der gesicherten Firmware 610 erfolgreich ist, kann Ausführung der gesicherten Firmware 610 die Prozessorkomponente 550 veranlassen, die gesicherte Firmware 610 innerhalb einer innerhalb des Speichers 560 definierten sicheren Insel (nicht gezeigt) zu speichern, um die gesicherte Firmware 610 zu schützen. Ferner, wenn Authentifizierung der gesicherten Firmware 610 ebenfalls erfolgreich ist, kann Ausführung der gesicherten Firmware 610 die Prozessorkomponente 550 veranlassen zu versuchen, das BS 770 zu authentifizieren.
  • 1B stellt ein Blockdiagramm einer alternativen Ausführungsform des sicheren Verarbeitungssystems 1000 dar, eine alternative Ausführungsform der Verarbeitungsvorrichtung 500 umfassend. Wie dargestellt, kann die alternative Ausführungsform der Verarbeitungsvorrichtung 500 eine zusätzliche Prozessorkomponente 450 umfassen. Die Prozessorkomponente 450 kann als ein Steuerungsprozessor in einer Steuerungsverarbeitungsumgebung wirken, die von der Hauptverarbeitungsumgebung, in der die Prozessorkomponente 550 als die Hauptprozessorkomponente der Verarbeitungsvorrichtung 500 wirken kann, getrennt ist. Eine solche Trennung kann dazu dienen, die Steuerungsverarbeitungsumgebung der Prozessorkomponente 450 unzugänglich für bösartige Software (z. B. „Schadsoftware“) zu machen, die die Hauptverarbeitungsumgebung der Prozessorkomponente 550 infiltrieren kann. Dies kann es der Prozessorkomponente 450 ermöglichen, verschiedene sicherheitsbezogene Funktionen mit zumindest einem gewissen Grad an Gewissheit durchzuführen, dass diese Funktionen nicht durch innerhalb der Hauptverarbeitungsumgebung vorhandene bösartige Software beeinträchtigt werden können.
  • Wie dargestellt, kann anstelle der Prozessorkomponente 550 die Prozessorkomponente 450 den Verifizierungsmikrocode 410 enthalten. Daher kann es, in der dargestellten alternativen Ausführungsform der Verarbeitungsvorrichtung 500 aus FIG. 1B, anstelle der Prozessorkomponente 550 die Prozessorkomponente 450 sein, die den Verifizierungsmikrocode 410 ausführt. Auf diese Weise kann es die Prozessorkomponente 450 sein, die versucht, die Verifizierungsroutine 416 als vertrauenswürdig von innerhalb der sichereren Steuerungsverarbeitungsumgebung zu authentifizieren, um den anfänglichen Teil einer Vertrauenskette zwischen der Prozessorkomponente 550, dem Verifizierungsmikrocode 410 und der Verifizierungsroutine 416 zu bilden.
  • 2 stellt Aspekte des Bereitstellens von passenden Sicherheitsberechtigungen dar, um Versuche zum Bilden und Erweitern einer Vertrauenskette zwischen Komponenten der Verarbeitungsvorrichtung 500 zu ermöglichen. Wie dargestellt, können der Verifizierungsmikrocode 410, die Verifizierungsroutine 416, die gesicherte Firmware 610 und das BS 770 allesamt unter Verwendung verschiedener Erstellungsvorrichtungen 200 erzeugt werden. Jede der Erstellungsvorrichtungen 200 kann ein Server oder eine andere Form von Datenverarbeitungsvorrichtung sein, die einen Compiler und/oder andere Werkzeuge zum Erzeugen von ausführbaren Routinen zum Erzeugen einer entsprechenden dieser ausführbaren Routinen 410, 416, 610 und/oder 770 ausführt.
  • Wie Fachleuten auf dem Gebiet des Entwickelns von Komponenten einer Verarbeitungsvorrichtung bekannt ist, können verschiedene Hardware- und Softwarekomponenten der Verarbeitungsvorrichtung 500 zum Einschließen in die Verarbeitungsvorrichtung 500 durch unterschiedliche Entitäten (z. B. unterschiedliche Unternehmens-, Bildungs- und/oder Regierungsentitäten) mit wenig oder keiner Koordinierung zwischen ihnen bereitgestellt werden, einschließlich solcher Komponenten wie jeder der Prozessorkomponenten 450 und/oder 550 und/oder jeder der ausführbaren Routinen 410, 416, 610 und/oder 770. Als ein Ergebnis können unterschiedliche Entitäten unterschiedliche der dargestellten Erstellungsvorrichtungen 200 besitzen und betreiben, um unterschiedliche der ausführbaren Routinen 410, 416, 610 und/oder 770 separat zu entwickeln und zu erzeugen. Erneut kann, als ein Beispiel, die Prozessorkomponente 450 oder 550 durch die Intel Corporation aus Santa Clara, Kalifornien, bereitgestellt werden, zusammen mit dem Verifizierungsmikrocode 410 und/oder der Verifizierungsroutine 416, während die gesicherte Firmware 610 durch eine beliebige aus einer Vielzahl von Entitäten bereitgestellt werden kann und das BS 770 durch die Microsoft Corporation aus Redmond, Washington, oder eine beliebige aus einer Vielzahl von Entitäten, die eine Version von Linux anbieten, bereitgestellt werden kann.
  • Während die reine Anordnung von Komponenten von unterschiedlichen Quellentitäten zum Bilden einer Verarbeitungsvorrichtung mit wenig oder keiner Koordination zwischen ihnen erfolgen kann, erfordert allerdings, wie Fachleuten ebenfalls bekannt ist, Bereitstellen der Fähigkeit für eine Komponente, die von einer solchen Quellentität bezogen wurde, eine andere von einer anderen solchen Quellentität bezogenen Komponente zu authentifizieren, häufig zumindest einen gewissen Grad an Koordination zwischen diesen Entitäten, zumindest bis zum Ausmaß des Vereinbarens einer Quelle der Sicherheitsberechtigungen, die bei einer solchen Authentifizierung verwendet werden, wie etwa Verschlüsselungsschlüssel, SEED-Werte usw. Als ein Ergebnis, und wie dargestellt, können passende Sätze von Sicherheitsberechtigungen für unterschiedliche der Erstellungsvorrichtungen 200 in Verbindung mit Erzeugen verschiedener der ausführbaren Routinen 410, 416, 610 und/oder 770 bereitgestellt werden, um eine solche Authentifizierung zwischen ihnen zu ermöglichen.
  • Insbesondere, und als Beispiel, um dem Verifizierungsmikrocode 410 zu ermöglichen, die Verifizierungsroutine 416 zu authentifizieren, können passende Sicherheitsberechtigungen 244a und 244b für die unterschiedlichen Erstellungsvorrichtungen 200 in Verbindung mit Erzeugen jeder dieser zwei ausführbaren Routinen 410 und 416 bereitgestellt werden. In einigen Ausführungsformen können die Sicherheitsberechtigungen 244a, die für die Erstellungsvorrichtung(en) 200 bereitgestellt werden, die beim Erzeugen des Verifizierungsmikrocodes 410 eingesetzt werden, einen in den Verifizierungsmikrocode 410 einzubettenden (oder anderweitig zusammen mit dem Verifizierungsmikrocode 410 enthaltenen) Verschlüsselungsschlüssel umfassen. Entsprechend können die Sicherheitsberechtigungen 244b, die für die Erstellungsvorrichtung(en) 200 bereitgestellt werden, die beim Erzeugen der Verifizierungsroutine 416 eingesetzt werden, einen passenden Verschlüsselungsschlüssel umfassen, durch den die Verifizierungsroutine 416 (oder ein Hash davon) digital signiert werden kann, wenn die Verifizierungsroutine 416 erzeugt wird, um der Verifizierungsroutine 416 zu ermöglichen, durch den Verifizierungsmikrocode 410 unter Verwendung des Verschlüsselungsschlüssels der Sicherheitsberechtigungen 244a authentifiziert zu werden. Erneut, und wie noch ausführlicher erörtert wird, kann eine erfolgreiche Authentifizierung der Verifizierungsroutine 416 durch den Verifizierungsmikrocode 410 den Beginn der Bildung der Vertrauenskette zwischen der Prozessorkomponente 550, dem Verifizierungsmikrocode 410 und der Verifizierungsroutine 416 ermöglichen.
  • Entsprechend, und als weiteres Beispiel, um der Verifizierungsroutine 416 zu ermöglichen, die gesicherte Firmware 610 zu authentifizieren, können passende Sicherheitsberechtigungen 246a und 246b für die unterschiedlichen Erstellungsvorrichtungen 200 in Verbindung mit Erzeugen jeder dieser zwei ausführbaren Routinen 416 und 610 bereitgestellt werden. In einigen Ausführungsformen können die Sicherheitsberechtigungen 246a, die für die Erstellungsvorrichtung(en) 200 bereitgestellt werden, die beim Erzeugen der Verifizierungsroutine 416 eingesetzt werden, einen in die Verifizierungsroutine 416 einzubettenden (oder anderweitig zusammen mit der Verifizierungsroutine 416 enthaltenen) Verschlüsselungsschlüssel umfassen. Entsprechend können die Sicherheitsberechtigungen 246b, die für die Erstellungsvorrichtung(en) 200 bereitgestellt werden, die beim Erzeugen der gesicherten Firmware 610 eingesetzt werden, einen passenden Verschlüsselungsschlüssel umfassen, durch den die gesicherte Firmware 610 (oder ein Hash davon) digital signiert werden kann, wenn die gesicherte Firmware 610 erzeugt wird, um der gesicherten Firmware 610 zu ermöglichen, durch die Verifizierungsroutine 416 unter Verwendung des Verschlüsselungsschlüssels der Sicherheitsberechtigungen 246a authentifiziert zu werden. Wie noch ausführlicher erörtert wird, kann eine erfolgreiche Authentifizierung der gesicherten Firmware 610 durch die Verifizierungsroutine 416 die Erweiterung der bereits vorhandenen Vertrauenskette zwischen der Prozessorkomponente 550, dem Verifizierungsmikrocode 410 und der Verifizierungsroutine 416, um dann die gesicherte Firmware 610 einzuschließen, ermöglichen.
  • Wie ferner dargestellt, können in ähnlicher Weise passende Sicherheitsberechtigungen 267a und 267b für die Erstellungsvorrichtungen 200 in Verbindung mit Erzeugen der gesicherten Firmware 610 und des BS 770 bereitgestellt werden, um der gesicherten Firmware 610 zu ermöglichen, das BS 770 zu authentifizieren. Es ist anzumerken, dass jeder der passenden Sätze von Sicherheitsberechtigungen 244a und 244b, 246a und 246b sowie 267a und 267b durch unterschiedliche Berechtigungsprüfvorrichtungen 100 bereitgestellt werden kann, die entweder von unterschiedlichen Entitäten besessen und betrieben werden oder die von einer einzelnen Entität besessen und betrieben werden können, die von allen Entitäten vereinbart wurde, die die unterschiedlichen ausführbaren Routinen 410, 416, 610 und 770 bereitstellen. Alternativ kann es sein, dass eine einzelne Berechtigungsprüfvorrichtung 100, die von einer einzelnen Entität besessen und betrieben wird, all diese Sicherheitsberechtigungen erzeugt und bereitstellt. Es sei auch darauf hingewiesen, dass, obwohl die obigen Beispiele spezifisch die Verwendung von passenden Schlüsseln als Sicherheitsberechtigungen erörtern, ein beliebiger aus einer Vielzahl von anderen Typen von Sicherheitsberechtigungen (z. B. Hashes, Hash-Werte, Zertifikate, Seeds für Zufallszahlenerzeugung usw.), die für eine Verwendung mit einem beliebigen aus einer Vielzahl von Typen von Authentifizierungstechniken bestimmt sind, in verschiedenen Ausführungsformen eingesetzt sein können.
  • Wie ebenfalls ferner dargestellt, können Kopien des Verifizierungsmikrocodes 410 zusammen mit den Sicherheitsberechtigungen 244a für die Prozessorkomponente 450 oder 550 über eine Bereitstellungsvorrichtung 304 bereitgestellt werden. Die Bereitstellungsvorrichtung 304 kann in den Betrieb der Fertigungseinrichtung, in der die Prozessorkomponente 450 und/oder 550 gefertigt wird, integriert sein. Insbesondere kann eine Kopie des Verifizierungsmikrocodes 410 zusammen mit den Sicherheitsberechtigungen 244a in die Prozessorkomponente 450 oder 550 integriert werden, bevor die Prozessorkomponente 450 oder 550 in die Verarbeitungsvorrichtung 500 integriert wird. Als Beispiel kann die Bereitstellungsvorrichtung 304 elektrisch mit einem oder mehreren Kontakten an einem Gehäuse gekoppelt sein, in dem der Halbleiter-Die der Prozessorkomponente 450 oder 550 enthalten ist, um den Verifizierungsmikrocode 410 zusammen mit den Sicherheitsberechtigungen 244a vor Befestigung der Prozessorkomponente 450 oder 550 an einer Leiterplatte der Verarbeitungsvorrichtung 500 dahin bereitzustellen.
  • Wieder Bezug nehmend auf FIG. 1A und 1B, kann die Prozessorkomponente 450 oder 550 als ein Ergebnis eines Einschaltens der Verarbeitungsvorrichtung 500 (z. B. als ein Ergebnis des Beginns der Bereitstellung von elektrischem Strom für die Verarbeitungsvorrichtung 500) und/oder als ein Ergebnis eines Rücksetzens der Verarbeitungsvorrichtung 500, ausgelöst entweder durch hardwarebasierte Logik oder durch Software, initialisiert werden. In Reaktion auf eine solche Initialisierung kann die Prozessorkomponente 450 oder 550 den Verifizierungsmikrocode 410 in einer Vor-BS-Betriebsumgebung ausführen, um zu beginnen, eine Vertrauenskette zu bilden, die ausgehend von zumindest dem Verifizierungsmikrocode 410 und der Prozessorkomponente 550 auf zumindest die gesicherte Firmware 610 erweitert wird.
  • 3A und 3B stellen zusammen Aspekte einer solchen Ausführung des Verifizierungsmikrocodes 410 durch eine der Prozessorkomponenten 450 oder 550 dar zum Authentifizieren der gesicherten Firmware 610 in einer Weise, die Authentifizieren der Verifizierungsroutine 416 umfasst. Insbesondere stellt 3A Aspekte der Authentifizierung der Verifizierungsroutine 416 dar, und 3B stellt Aspekte der Authentifizierung der gesicherten Firmware 610 dar. Wie in 3A dargestellt, kann der Verifizierungsmikrocode 410 eine Verifizierungskomponente 4102 umfassen. Daher kann Ausführung des Verifizierungsmikrocodes 410 durch die Prozessorkomponente 450 oder 550 Ausführung der Verifizierungskomponente 4102 davon beinhalten.
  • In einigen Ausführungsformen kann eine Adresse, an der auf die Verifizierungsroutine 416 innerhalb des Speichers 560 zugegriffen werden kann, so innerhalb des Verifizierungsmikrocodes 410 eingebettet (z. B. fest codiert) sein, dass die Prozessorkomponente 450 oder 550 (zumindest standardmäßig) veranlasst wird, zumindest zu versuchen, auf die Verifizierungsroutine 416 an dieser Adresse zuzugreifen. In solchen Ausführungsformen kann die Prozessorkomponente 450 oder 550 Anweisungen der Verifizierungskomponente 4102 ausführen, um zumindest auf einen Teil der Verifizierungsroutine 416 zuzugreifen, wo die Sicherheitsberechtigungen 244b gefunden werden können, oder wo eine Signatur, ein Hash oder eine andere von den Sicherheitsberechtigungen 244b abgeleitete Sicherheitsberechtigung gefunden werden kann. Die Verifizierungskomponente 4102 kann dann versuchen, diese abgerufene Sicherheitsberechtigung unter Verwendung der Sicherheitsberechtigungen 244a, die entweder den Verifizierungsmikrocode 410 begleiten oder direkt darin eingebettet sind, zu authentifizieren.
  • In anderen Ausführungsformen muss möglicherweise auf eine Spur von einem oder mehreren Zeigern, die zu der Verifizierungsroutine 416 führen, innerhalb des Speichers 560 zugegriffen und dieser dann gefolgt werden, um eine Adresse zu bestimmen, an der die Verifizierungsroutine 416 innerhalb des Speichers 560 gespeichert ist. In solchen anderen Ausführungsformen kann die Verifizierungskomponente 4102 des Verifizierungsmikrocodes 410 dieser Spur folgen, bis die Verifizierungsroutine 416 lokalisiert ist. Bei Lokalisieren der Verifizierungsroutine 416 kann die Verifizierungskomponente 4102 dann auf die Sicherheitsberechtigungen 244b, oder welche Sicherheitsberechtigungen auch immer dann von den Sicherheitsberechtigungen 244b abgeleitet wurden, zugreifen und dann fortfahren zu versuchen, die Verifizierungsroutine 416 zu authentifizieren. Eine solche Spur von einem oder mehreren Zeigern kann an Adressen angeordnet und/oder in einer Datenstruktur organisiert sein, die Aspekten der IA-32-Architektur, die durch die Intel Corporation aus Santa Clara, Kalifornien, veröffentlicht wurde, und/oder Aspekten der UEFI-Spezifikation (Unified Extensible Firmware Interface), die vom UEFI Forum in Beaverton, Oregon, veröffentlicht wurde, entspricht. In solchen Ausführungsformen können Teile des Speichers 560 auf bestimmte angegebene Adressen innerhalb eines Vier-Gigabyte-Adressbereichs abgebildet sein, und die Spur von einem oder mehreren Zeigern kann mit einem Zeiger beginnen, der an einer Adresse nahe dem obersten Ende dieses Vier-Gigabyte-Adressbereichs angeordnet ist.
  • Vorausgesetzt, dass die Verifizierungsroutine 416 erfolgreich authentifiziert wird, und unabhängig davon, welche der Prozessorkomponenten den Verifizierungsmikrocode 410 ausgeführt hat, kann die Prozessorkomponente 550 dann die Verifizierungsroutine 416 ausführen. Wie in 3B dargestellt, kann die Verifizierungsroutine 416 eine Verifizierungskomponente 4162 umfassen. Daher kann Ausführung der Verifizierungsroutine 416 durch die Prozessorkomponente 550 Ausführung der Verifizierungskomponente 4162 davon beinhalten. Wo ein relativ hohes Sicherheitsniveau ausgewählt wurde, kann die Prozessorkomponente 550 Anweisungen der Verifizierungskomponente 4162 ausführen, um zumindest auf einen Teil der gesicherten Firmware 610 zuzugreifen, wo die Sicherheitsberechtigungen 246b gefunden werden können, oder wo eine Signatur, ein Hash oder eine andere von den Sicherheitsberechtigungen 246b abgeleitete Sicherheitsberechtigung gefunden werden kann. Die Verifizierungskomponente 4162 kann dann versuchen, die gesicherte Firmware 610 zu authentifizieren, indem sie versucht, diese abgerufene Sicherheitsberechtigung unter Verwendung der Sicherheitsberechtigungen 246a, die entweder die Verifizierungsroutine 416 begleiten oder direkt darin eingebettet sind, zu authentifizieren.
  • Wenn die gesicherte Firmware 610 nicht durch die Verifizierungskomponente 4162 authentifiziert werden kann, dann kann, in einigen Ausführungsformen, die Prozessorkomponente 550 veranlasst werden, vom Durchführen beliebiger weiterer Vorgänge zum Initialisieren der Verarbeitungsvorrichtung 500 abzusehen und/oder kann Aktion einleiten, um die Verarbeitungsvorrichtung 500 nicht betreibbar zu machen und/oder um innerhalb der Verarbeitungsvorrichtung 500 gespeicherte Daten unzugänglich zu machen (z. B. Hochfahren in einem „sicheren Modus“ mit begrenzten Funktionen). Alternativ oder zusätzlich kann die Prozessorkomponente 550 veranlasst werden, die Steuerungen 520 und/oder die Anzeige 580 zu betreiben, um einem Bediener der Verarbeitungsvorrichtung eine Anzeige einer Fehlerbedingung darzustellen. Wenn allerdings die Verifizierungskomponente 4162 die gesicherte Firmware 610 authentifizieren kann, dann kann die Prozessorkomponente 550 mit der Initialisierung der Verarbeitungsvorrichtung 500 fortfahren.
  • Wieder Bezug nehmend auf FIG. 1A und 1B, wobei die gesicherte Firmware 610 erfolgreich authentifiziert wurde, umfasst die Vertrauenskette jetzt den Verifizierungsmikrocode 410, die Verifizierungsroutine 416, die Prozessorkomponente 550 und die gesicherte Firmware 610. Die Prozessorkomponente 550 kann mit der Ausführung zumindest der gesicherten Firmware 610 in der Vor-BS-Umgebung beginnen. Auf diese Weise kann eine sichere Insel innerhalb eines Teils des Speichers 560, in dem die gesicherte Firmware 610 gespeichert werden kann, definiert werden.
  • 4A, 4B, 4C und 4D stellen zusammen Aspekte einer solchen Ausführung der gesicherten Firmware 610 durch die Prozessorkomponente 550 zum Durchführen verschiedener Initialisierungs- und Auslegungsaufgaben auf verschiedenen Komponenten der Verarbeitungsvorrichtung in der Vor-BS-Betriebsumgebung dar, um die Verarbeitungsvorrichtung vorzubereiten, hochzufahren und das BS 770 in einer folgenden BS-Betriebsumgebung auszuführen. Insbesondere stellt 4A Aspekte des Erzeugens einer sicheren Insel 564 innerhalb des Speichers 560 dar, 4B stellt Aspekte des Ladens der gesicherten Firmware 610 innerhalb der sicheren Insel 564 dar, 4C stellt Aspekte des Messens der sicheren Insel 564 dar, und 4D stellt Aspekte dar, die der nicht gesicherten Firmware 670 ermöglichen, Aufrufe an eine oder mehrere Unterstützungsroutinen 6105 der gesicherten Firmware 610 von außerhalb der sicheren Insel 564 vorzunehmen.
  • Wie in 4A dargestellt, kann die gesicherte Firmware 610 eine Inselkomponente 6104 umfassen, sodass die Ausführung der gesicherten Firmware 610 durch die Prozessorkomponente 550 Ausführung der Inselkomponente 6104 beinhalten kann. In einigen Ausführungsformen kann die Prozessorkomponente 550 Anweisungen der Inselkomponente 6104 ausführen, um die sichere Insel 564 direkt zu erzeugen. Es kann sein, dass die Inselkomponente 6104 eine Anzeige eines oder mehrerer Adressbereiche innerhalb des Adressraums des Speichers 560 umfasst, die als Ort(e) der sicheren Insel 564 dienen sollen. Die Prozessorkomponente 550 kann daher aus einer Menge von Speicherorten (zusammenhängend oder nicht zusammenhängend) innerhalb des Speichers 560 bestehen, auf die die Prozessorkomponente 550 Zugriff durch eine beliebige durch die Prozessorkomponente 550 ausgeführte Routine, die nicht innerhalb der sicheren Insel 564 befindlich ist, begrenzt. Versuche durch eine durch die Prozessorkomponente 550 ausgeführte Routine, auf einen Teil des Speichers 560 zuzugreifen, der in der sicheren Insel 564 liegt, kann zur Erzeugung einer Unterbrechung führen und/oder eine Form von Ausnahmenverarbeitung durch die Prozessorkomponente 550 auslösen, bei der die Prozessorkomponente 550 veranlasst wird, eine Fehlerantwort auf diese Routine bereitzustellen, und/oder veranlasst wird, eine aus einer Vielzahl anderer Aktionen einzuleiten, um zumindest sicherzustellen, dass der versuchte Zugriff nicht erfolgreich ist, insbesondere, wenn es sich um einen versuchten Schreibzugriff handelt.
  • In anderen Ausführungsformen kann Prozessorkomponente 550 Anweisungen der Inselkomponente 6104 ausführen, um die Prozessorkomponente 450 der Steuerung 400 auszulösen, um die sichere Insel zu erzeugen. In solchen Ausführungsformen, in denen die Steuerung 400 verschiedene Sicherheitsfunktionen durchführt (z. B. Überwachen des Zustands der Prozessorkomponente 550, Steuern des Zugriffs auf eine oder mehrere Komponenten der Verarbeitungsvorrichtung 500 usw.), kann es sein, dass die Prozessorkomponente 450 agiert, um Zugriffe auf die sichere Insel 564 durch die Prozessorkomponente 550 zu verhindern, gleichzeitig eine Routine ausführend, die nicht innerhalb der sicheren Insel 564 befindlich ist.
  • In einigen Ausführungsformen kann zumindest ein Teil der sicheren Insel 564 innerhalb eines Teils des Speichers 560 definiert sein, der mit flüchtigen Speicherkomponenten umgesetzt ist, wie etwa Direktzugriffsspeicher (RAM), der durchgehend mit elektrischem Strom versorgt werden muss, um alles, was darin gespeichert ist, weiter zu halten. Wie Fachleuten bekannt ist, kann dies als wünschenswert erachtet sein, da der aktuelle Zustand von Speichertechnologien so ist, dass flüchtige Speicherkomponenten dazu neigen, Lese- und Schreibzugriffe unterstützen zu können, die deutlich schneller sind als die, die durch nicht-flüchtige Speicherkomponenten unterstützt werden können, wie etwa FLASH, die alles, was darin gespeichert ist, erhalten können, ohne dass eine durchgehende Versorgung mit elektrischem Strom vorhanden ist. Allerdings ist anzumerken, dass andere Ausführungsformen möglich sind, bei denen zumindest ein Teil der sicheren Insel 564 innerhalb eines Teils des Speichers 560 definiert sein kann, der mit nicht-flüchtigen Speicherkomponenten umgesetzt ist, wie etwa der Teil des Speichers 560, der aus dem nicht-flüchtigen Speicher 562 besteht.
  • Wie in 4B dargestellt, kann die gesicherte Firmware 610 einen Firmwarelader 6106 umfassen, sodass die Ausführung der gesicherten Firmware 610 durch die Prozessorkomponente 550 Ausführung des Firmwareladers 6106 beinhalten kann. Die Prozessorkomponente 550 kann Anweisungen des Firmwareladers 6106 ausführen, um zumindest eine Kopie der gesicherten Firmware 610 vom nicht-flüchtigen Speicher 562 in die sichere Insel 564 zu laden. Dabei kann die Prozessorkomponente 550 auch Kopien der nicht gesicherten Firmware 670 und/oder den Firmwaretreiber 646 aus dem nicht-flüchtigen Speicher 562 und in einen anderen Teil des Speichers 560 laden, der mit flüchtigen Speichervorrichtungen, die schnelleren Zugriff durch die Prozessorkomponente 550 ermöglichen, umgesetzt sein kann.
  • Wie auch in 4B dargestellt, kann die gesicherte Firmware 610 eine oder mehrere gesicherte Variablen 630 umfassen. Jede der einen oder mehreren gesicherten Variablen 630 kann einen Wert speichern, der mit einer Aufgabe eingesetzt oder anderweitig damit verbunden ist, die entweder Sicherheit innerhalb der Verarbeitungsvorrichtung 500 bereitstellt oder deren fortlaufende Sicherheit vor unangemessenen Zugriffen und/oder Beschädigung durch bösartige Software als wünschenswert erachtet wird. Ein Beispiel eines solchen Werts kann ein Wert, der eine Einstellung anzeigt, die einen Aspekt des Hochfahrens der Verarbeitungsvorrichtung 500 steuert; ein Wert, der ein Ergebnis einer versuchten Authentifizierung einer Komponente der Verarbeitungsvorrichtung 500 anzeigt; oder ein Schlüssel, ein Hash-Wert, eine digitale Signatur oder eine andere Sicherheitsberechtigung sein, die bei Verschlüsselung, Entschlüsselung, Authentifizierung einer Komponente der Verarbeitungsvorrichtung 500 oder beim Authentifizieren von Kommunikationen, die zwischen der Verarbeitungsvorrichtung 500 und einer anderen Vorrichtung ausgetauscht werden, verwendet wird.
  • In einigen Ausführungsformen können die eine oder mehreren gesicherten Variablen 630 Formatierung einsetzen und/oder in einer Weise entsprechend Aspekten der authentifizierten Variablen der UEFI-Spezifikation verwendet werden. Außerdem ist anzumerken, dass, obwohl die eine oder mehreren gesicherten Variablen 630 als vielleicht in die gesicherte Firmware 610 integriert dargestellt sind oder erörtert wurden, sodass sie als Teil der gesicherten Firmware 610 in die sichere Insel 564 geladen werden, andere Ausführungsformen möglich sind, in denen die eine oder mehreren gesicherten Variablen 630 getrennt von der gesicherten Firmware 610 abgerufen und/oder in die sichere Insel 564 geladen werden können. Als Beispiel können die eine oder mehreren gesicherten Variablen 630 eine Variable umfassen, die von einer gänzlich verschiedenen Speichervorrichtung und/oder von einem Register einer Komponente der Verarbeitungsvorrichtung 500 abgerufen wurde.
  • Bezug nehmend auf FIG. 4C, kann die Prozessorkomponente 550 Anweisungen der Inselkomponente 6104 ausführen, um die Messkomponente 555 zu veranlassen, ein Maß 530 der sicheren Insel 564 mit der darin geladenen gesicherten Firmware 610 zu nehmen (entweder mit oder ohne die gesicherten Variablen 630). In verschiedenen Ausführungsformen kann das Maß 530 aus einem oder mehreren Werten bestehen, die durch eine beliebige aus einer Vielzahl von numerischen Berechnungen und/oder bitweisen Operationen, einschließlich, unter anderem, jedes aus einer Vielzahl von Typen von Hash der Inhalte von zumindest einem Teil der sicheren Insel 565 (z. B. ein SHA-1, SHA-2 oder ein anderer Typ von Hash) abgeleitet wurden.
  • In einigen Ausführungsformen kann die Prozessorkomponente 550 bewirken, dass zumindest ein anfängliches Maß 530 im Anschluss an das Laden der gesicherten Firmware 610 und/oder der gesicherten Variablen 630 in die sichere Insel 564 genommen wird. Ein solches anfängliches Maß 530 kann dann durch die Messkomponente 555 und/oder innerhalb einer anderen Komponente der Verarbeitungsvorrichtung 500 wo das anfängliche Maß 530 in einer Weise gehalten werden, die Manipulieren des anfänglichen Maßes 530 verhindert, sodass das anfängliche Maß 530 verfügbar bleibt zur Verwendung in Vergleichen mit einem oder mehreren Maßen 530, die zu späteren Zeitpunkten genommen wurden, um die Integrität der Inhalte der sicheren Insel 564 zu prüfen.
  • Alternativ oder zusätzlich kann es eine Ableitung des anfänglichen Maßes 530 sein, die so zur Verwendung in solchen Vergleichen gespeichert sein kann. Als Beispiel kann ein Schlüssel, ein Zertifikat oder eine andere Sicherheitsberechtigung, die innerhalb der sicheren Insel 564 gehalten wird (z. B. eine der gesicherten Variablen 630, oder eine der Sicherheitsberechtigungen 246b oder 267a, die in die gesicherte Firmware 610 eingebettet sind oder diese anderweitig begleiten), verwendet werden, um jeden aus einer Vielzahl von Vorgängen an dem anfänglichen Maß 530 zu verschlüsseln, digital zu signieren, einen Hash davon zu nehmen oder durchzuführen, um eine anfängliche Ableitung davon zu erzeugen, die innerhalb der Messkomponente 555 oder innerhalb einer anderen Komponente der Verarbeitungsvorrichtung 500 gehalten werden kann. Alternativ kann das anfängliche Maß 530 als ein Verschlüsselungsschlüssel verwendet werden, um einen vorbestimmten Wert (z. B. eine der gesicherten Variablen 630, oder eine der Sicherheitsberechtigungen 246b oder 267a) zu verschlüsseln, um eine anfängliche Ableitung zu erzeugen. Es kann sein, dass das anfängliche Maß 530 selbst absichtlich verworfen wird, sobald die anfängliche Ableitung erzeugt wurde. Dies kann als wünschenswert erachtet werden, um jede Bemühung, die Weise rückzuentwickeln, in der das anfängliche Maß 530 selbst aus der sicheren Insel 564 erzeugt wurde, extrem zu erschweren. Eine Prüfung der Integrität der Inhalte der sicheren Insel 564 kann dann das Nehmen eines neuen Maßes 530, gefolgt vom Erzeugen einer neuen Ableitung dieses neuen Maßes 530 unter Verwendung der gleichen Technik, die zum Erzeugen der anfänglichen Ableitung des anfänglichen Maßes 530 eingesetzt wurde, beinhalten. Die neue Ableitung kann dann mit der anfänglichen Ableitung verglichen werden, um die Integrität der Inhalte der sicheren Insel 564 zu prüfen.
  • Wie in 4D dargestellt, kann die gesicherte Firmware 610 eine oder mehrere Unterstützungsroutinen 6105 umfassen, sodass Ausführung der gesicherten Firmware 610 durch die Prozessorkomponente 550 Ausführung der einen oder mehreren Unterstützungsroutinen 6105 beinhalten kann. Jede der einen oder mehreren Unterstützungsroutinen 6105 kann entweder eine Funktion in Verbindung mit dem Bereitstellen von Sicherheit (z. B. Verschlüsselung/Entschlüsselung, Authentifizierung usw.) durchführen oder eine Funktion durchführen, deren Durchführung in einer sicheren Umgebung (z. B. innerhalb der sicheren Insel 564) als wünschenswert erachtet wird. Dadurch, und wie auch in 4D dargestellt wird, kann zumindest eine der einen oder mehreren Unterstützungsroutinen 6105 zumindest eine der einen oder mehreren gesicherten Variablen 630 nutzen. Als Beispiel, wo eine der gesicherten Variablen 630 eine Sicherheitsberechtigung umfasst, die verwendbar ist, um Verschlüsselung und/oder Entschlüsselung durchzuführen, kann eine der Unterstützungsroutinen 6105 Verschlüsselung und/oder Entschlüsselung durchführen und kann dazu diese eine der gesicherten Variablen 630 einsetzen.
  • Wie auch in 4D dargestellt, kann der Firmwaretreiber 646 eine API-Komponente (Anwendungsprogrammierschnittstelle, Application Programming Interface) 6465 umfassen, sodass Ausführung des Firmwaretreibers 646 durch die Prozessorkomponente 550 Ausführung der API-Komponente 6465 beinhalten kann. Wenn die Prozessorkomponente 550 Anweisungen der nicht gesicherten Firmware 670 ausführt, um verschiedene Aspekte der Verarbeitungsvorrichtung 500 zu initialisieren und/oder auszulegen, um die Verarbeitungsvorrichtung 500 vorzubereiten, Ausführung des BS 770 zu unterstützen, können eine oder mehrere Routinen innerhalb der nicht gesicherten Firmware 670 Aufrufe an die eine oder mehreren Unterstützungsroutinen 6105 der gesicherten Firmware 610 vornehmen. Um zu ermöglichen, dass diese Aufrufe die eine oder mehreren Unterstützungsroutinen 6105 erreichen, kann die API-Komponente 6465 diese Routinen der nicht gesicherten Firmware 670 mit einer API versehen, an die diese Aufrufe gerichtet werden können. Wie Fachleuten bekannt ist, kann eine solche API ein Format definieren, einschließlich Aspekten von Parametern, die übermittelt werden können, an die solche Aufrufe angehängt werden können. Bei Empfangen eines an die API gerichteten Aufrufs, eine Unterstützungsroutine 6105 der gesicherten Firmware 610 zu nutzen, kann die API-Komponente 6465 Anzeigen dieses Aufrufs und/oder seiner Parameter an diese Unterstützungsroutine 6105 innerhalb der sicheren Insel 564 über eine beliebige sichere Schnittstelle übertragen, die definiert sein kann, um Kommunikationen zwischen dem Firmwaretreiber 646 und der gesicherten Firmware 610 zu ermöglichen. Beispiele einer solchen sicheren Schnittstelle umfassen, unter anderem, Aufruf einer Unterbrechung, eines Puffers, der innerhalb des Speichers 560 definiert und sowohl für den Firmwaretreiber 646 als auch für die gesicherte Firmware 610 zugänglich ist, usw.
  • In einigen Ausführungsformen können die eine oder mehreren Unterstützungsroutinen 6105 eine Unterstützungsroutine umfassen, um einfach eine der gesicherten Variablen 630 zu lesen und deren Wert wieder einer Routine der nicht gesicherten Firmware 670 bereitzustellen, die diesen Wert angefordert hat, wobei diese eine der gesicherten Variablen 630 gelesen werden darf, aber nicht durch Routinen geschrieben werden darf, die außerhalb der sicheren Insel 564 befindlich sind. In anderen Ausführungsformen können die eine oder mehreren Unterstützungsroutinen 6105 Unterstützungsroutinen umfassen, die das sichere Speichern einer Menge von Daten in einer Weise ermöglichen, bei der ein Schlüssel oder eine andere Sicherheitsberechtigung unter Verwendung eines Aufrufs verwendet wird, sodass die gleiche Sicherheitsberechtigung oder eine damit zusammenhängende Sicherheitsberechtigung erforderlich wäre, um diese Daten unter Verwendung eines weiteren Aufrufs aus dem sicheren Speicher abzurufen. Eine solche Menge von Daten kann als eine oder mehrere der gesicherten Variablen 630 innerhalb der sicheren Insel 564 gespeichert werden. In noch anderen Ausführungsformen können die eine oder mehreren Unterstützungsroutinen 6105 eine Unterstützungsroutine umfassen, um eine Prüfung der Integrität der Inhalte der sicheren Insel 564 in der oben unter Bezugnahme auf 4C beschriebenen Weise durchzuführen. Daher können eine oder mehrere Routinen der nicht gesicherten Firmware 670 Aufrufe an die durch die API-Komponente 6465 bereitgestellte API vornehmen, um eines oder mehrere dieser Beispiele von Unterstützungsroutinen 6105 zu nutzen.
  • In einigen Ausführungsformen können Aufrufe an die API-Komponente 6465, die durch eine Routine der nicht gesicherten Firmware 670 (und/oder durch andere außerhalb der sicheren Insel 564 befindliche Routinen) vorgenommen werden, Aufrufe sein, Authentifizierung und/oder Verschlüsselung beim Austauschen von Daten mit einer Vorrichtung, die mit der Verarbeitungsvorrichtung 500 gekoppelt ist, zu nutzen. Ein Beispiel solcher Kommunikationen können Austausche von Daten mit einer der abgesetzten Speichervorrichtungen 305 über das Netzwerk 999 sein, wo Verschlüsselung in einer Weise verwendet wird, die konform mit der IPSEC-Spezifikation (Internetprotokollsicherheit, Internet Protocol Security) ist, die durch die Internet Engineering Taskforce (IETF) aus Fremont, Kalifornien, veröffentlicht wurde. In einem solchen Beispiel kann eine Routine der nicht gesicherten Firmware 670 Aufrufe an die durch die API-Komponente 6465 bereitgestellte API für Blöcke von Daten vornehmen, die mit einer der abgesetzten Speichervorrichtungen 305 ausgetauscht werden sollen, unter Verwendung von Authentifizierung und/oder Verschlüsselung. Die API-Komponente 6465 kann solche Aufrufe an eine oder mehrere der Unterstützungsroutinen 6105 weiterleiten, die solche Authentifizierung und/oder solche Verschlüsselung/Entschlüsselung von Blöcken durchführen und die eine oder mehrere Unterstützungsroutinen 6105 dazu veranlassen. Beim Durchführen einer solchen Authentifizierung und/oder einer solchen Verschlüsselung/Entschlüsselung können die eine oder mehreren der so involvierten Unterstützungsroutinen 6105 eine oder mehrere Sicherheitsberechtigungen einsetzen, die unter der einen oder mehreren Variablen 630 erhalten werden können.
  • Wieder Bezug nehmend auf FIG. 1A und 1B, wobei die sichere Insel 564 innerhalb des Speichers 560 erzeugt und mit der gesicherten Firmware 610 und/oder den gesicherten Variablen 630 geladen ist, und mit Abschluss verschiedener Initialisierungs- und/oder Auslegungsaufgaben, die durch Routinen der nicht gesicherten Firmware 670 durchgeführt wurden, um die Verarbeitungsvorrichtung 500 zur Unterstützung von Ausführung des BS 770 vorzubereiten, kann zumindest ein Teil des BS 770 geladen werden, und die Prozessorkomponente 550 kann mit der Ausführung dieses Teils des BS 770 als Teil des Hochfahrens des BS 770 beginnen. Auf diese Weise kann der Übergang von der Vor-BS-Betriebsumgebung zur BS-Betriebsumgebung durchgeführt werden.
  • 5A und 5B stellen zusammen Aspekte eines solchen Ladens und Beginns von Ausführung des BS 770 durch die Prozessorkomponente 550 dar. Insbesondere stellt 5A Aspekte des Ladens des BS 770 dar, und 5B stellt Aspekte dar, die dem OS 770 und/oder einer oder mehreren der Anwendungsroutinen 870 ermöglichen, einen Aufruf an die eine oder mehreren Unterstützungsroutinen 6105 der gesicherten Firmware 610 von außerhalb der sicheren Insel 564 vorzunehmen.
  • Wie in 5A dargestellt, kann, zusätzlich zum Firmwarelader 6106, die gesicherte Firmware 610 einen BS-Lader 6107 umfassen, sodass die Ausführung der gesicherten Firmware 610 durch die Prozessorkomponente 550 Ausführung des BS-Laders 6107 beinhalten kann. Die Prozessorkomponente 550 kann Anweisungen des BS-Laders 6107 ausführen, um eine Kopie von zumindest einem Teil des BS 770 in einen Teil des Speichers 560 zu laden, der mit flüchtigen Speichervorrichtungen vom entfernbaren Speichermedium 569 und/oder von einer der abgesetzten Speichervorrichtungen 305 über das Netzwerk 999 umgesetzt werden kann. Die Prozessorkomponente 550 kann auch eine Kopie des Firmwaretreibers 647 aus dem nicht-flüchtigen Speicher 562 in einen solchen Teil des Speichers 560 laden, der mit flüchtigen Speichervorrichtungen umgesetzt sein kann.
  • Im Anschluss an ein solches Laden von zumindest einem Teil des BS 770 kann die Prozessorkomponente 550 aufhören, Anweisungen von zumindest der nicht gesicherten Firmware 670 auszuführen, und kann mit Ausführung des geladenen Teil des BS 770 beginnen. Mit dem Beginn der Ausführung des BS 770 kann einhergehen, dass der Übergang von der Vor-BS-Betriebsumgebung, in der Vorbereitungen für das Ausführen des BS 770 innerhalb der Verarbeitungsvorrichtung 500 getroffen wurden, zur BS-Betriebsumgebung, in der das BS 770 so ausgeführt wird, vorgenommen wird. Dadurch können, in einigen Ausführungsformen, die nicht gesicherte Firmware 670 und/oder der Firmwaretreiber 646 aus zumindest einem Teil des Speichers 560 gelöscht werden, der mit flüchtigen Speichervorrichtungen umgesetzt ist, und/oder können mit Teilen des BS 770 und/oder Teilen der einen oder mehreren Anwendungsroutinen 870 überschrieben werden. Allerdings kann die nicht gesicherte Firmware 670 und kann der Firmwaretreiber 646 in anderen Ausführungsformen innerhalb eines Teils des Speichers 560 gehalten werden, der mit flüchtigen Speichervorrichtungen umgesetzt ist, um für Verwendung durch das BS 770 und/oder die eine oder mehreren Anwendungsroutinen 870 verfügbar zu bleiben. Insbesondere kann die nicht gesicherte Firmware 670 eine oder mehrere Unterstützungsroutinen umfassen, die durch das BS 770 und/oder die eine oder mehreren Anwendungsroutinen 870 zusätzlich zu den Unterstützungsroutinen 6105 der gesicherten Firmware 610 über eine durch die nicht gesicherte Firmware 670 bereitgestellte API aufgerufen werden können. Solche Unterstützungsroutinen der nicht gesicherten Firmware 670 können Funktionen durchführen, die weder in Verbindung mit dem Bereitstellen von Sicherheit stehen, noch als die durch die sichere Insel 564 gebotene Sicherheit benötigend erachtet werden.
  • Wie in 5B dargestellt, kann der Firmwaretreiber 647 eine API-Komponente 6475 umfassen, sodass Ausführung des Firmwaretreibers 647 durch die Prozessorkomponente 550 Ausführung der API-Komponente 6475 beinhalten kann. Kurz gesagt, die API-Komponente 6475 des Firmwaretreibers 647 kann eine API erzeugen, die es Routinen des BS 770 ermöglicht, Aufrufe an Unterstützungsroutinen 6105 der gesicherten Firmware 610 in einer ähnlichen Weise vorzunehmen wie bei der Bereitstellung einer API durch die API-Komponente 6465 des Firmwaretreibers 646, um es Routinen der nicht gesicherten Firmware 670 zu ermöglichen, diese gleichen Unterstützungsroutinen 6105 der gesicherten Firmware 610 aufzurufen. Daher wird, zusätzlich zum Erhalten der sicheren Insel 564 und ihrer Inhalte über zwei verschiedene Betriebsumgebungen, die Fähigkeit außerhalb der sicheren Insel 564 befindlicher Routinen zum Aufrufen der innerhalb der sicheren Insel 564 gehaltenen Unterstützungsroutinen 6105 ebenfalls über diese zwei verschiedenen Betriebsumgebungen erhalten.
  • Als Ergebnis kann die Funktionalität, die durch die eine oder mehreren Unterstützungsroutinen 6105 der gesicherten Firmware 610 bereitgestellt wird, die anfänglich durch Routinen der nicht gesicherten Firmware 670 verwendet wurde, um die Verarbeitungsvorrichtung 500 zum Unterstützen der Ausführung des BS 770 vorzubereiten, anschließend durch die Routinen des BS 770 verwendet werden. Daher kann, beispielsweise, die früher beschriebene Unterstützungsroutine 6105 zum einfachen Lesen einer der gesicherten Variablen 630 und Bereitstellen ihres Werts, die durch eine Routine der nicht gesicherten Firmware 670 aufrufbar war, auch durch eine Routine des BS 770 aufrufbar sein. Außerdem können, beispielsweise, die früher beschriebenen Unterstützungsroutinen 6105, die durch Routinen der nicht gesicherten Firmware 670 aufrufbar waren, um eine Menge von Daten in einer Weise unter Verwendung eines Schlüssels oder einer anderen Sicherheitsberechtigung sicher zu speichern und später abzurufen, auch durch Routinen des BS 770 aufrufbar sein. Das BS 770 kann solche Aufrufe verwenden, um eine Menge von Daten sicher zu speichern, verschiedene Aspekte einer aktuellen Auslegung der Verarbeitungsvorrichtung 500 zu einem Zeitpunkt anzeigend, wenn die Verarbeitungsvorrichtung 500 von einem Zustand höherer Leistung zu einem Zustand niedrigerer Leistung (z. B. einen so genannten „Ruhe-“ oder „Schlafmodus“) übergeht, und dann könnte das BS 770 solche Aufrufe später verwenden, um eine solche Datenmenge abzurufen, wenn die Verarbeitungsvorrichtung 500 von diesem Zustand niedriger Leistung zurück in diesen Zustand höherer Leistung übergeht. Außerdem kann, in noch einem anderen Beispiel, die früher beschriebene Unterstützungsroutine 6105 zum Durchführen einer Prüfung der Integrität der Inhalte der sicheren Insel 564 in der oben unter Bezugnahme auf 4C beschriebenen Weise auch durch eine Routine des BS 770 aufrufbar sein.
  • Mit einer solchen Fähigkeit für beide Routinen der nicht gesicherten Firmware 670 zum Durchführen von Aufrufen an die eine oder mehreren Unterstützungsroutinen 6105 der gesicherten Firmware 610 innerhalb der früheren Vor-BS-Betriebsumgebung und Routinen des BS 770 zum Durchführen von Aufrufen an die gleichen eine oder mehreren Unterstützungsroutinen 6105 der gesicherten Firmware 610 innerhalb der späteren BS-Betriebsumgebung kann eine Serie von Vorgängen, die mit solchen, durch Routinen der nicht gesicherten Firmware 670 während der Vor-BS-Betriebsumgebung durchgeführten Aufrufen begonnen hat, mit solchen, durch Routinen des BS 770 während der BS-Betriebsumgebung durchgeführten Aufrufen fortgesetzt werden. Als Beispiel kann, wenn eine Routine der nicht gesicherten Firmware 670 dazu dient, während der Vor-BS-Betriebsumgebung verschlüsselte Stücke des BS 770 von entweder dem entfernbaren Speichermedium 569 oder einer abgesetzten Speichervorrichtung 305 abzurufen und dann diese Stücke in nicht verschlüsselter Form in einen Teil des Speichers 560 zu laden, der mit flüchtigen Speichervorrichtungen umgesetzt sein kann, als Teil des Vorbereitens zum Ausführen des BS 770, diese Routine der nicht gesicherten Firmware 670 Aufrufe an eine oder mehrere der Unterstützungsroutinen 6105 durchführen, um diese verschlüsselten Stücke des BS 770 zu entschlüsseln. Später kann dann eine Routine des BS 770 während der BS-Betriebsumgebung zusätzliche verschlüsselte Stücke des BS 770 von entweder dem entfernbaren Speichermedium 569 oder der abgesetzten Speichervorrichtung 305 abrufen und dann diese zusätzlichen Stücke in unverschlüsselter Form in diesen gleichen Teil des Speichers 560 zusammen mit den früher geladenen Stücken des BS 770 laden in Vorbereitung des Ausführens von mehr des BS 770, und diese Routine des BS 770 kann Aufrufe an die gleiche(n) der Unterstützungsroutinen 6105 durchführen, um diese verschlüsselten zusätzlichen Stücke des BS 770 zu entschlüsseln.
  • In verschiedenen Ausführungsformen können die Prozessorkomponenten 450 und/oder 550 einen beliebigen aus einer breiten Vielfalt von handelsüblichen Prozessoren umfassen. Ferner können eine oder mehrere dieser Prozessorkomponenten mehrere Prozessoren, einen Multithread-Prozessor, einen Mehrkernprozessor (unabhängig davon, ob die mehreren Kerne auf dem gleichen oder auf separaten Dies vorhanden sind) und/oder eine Mehrfachprozessorarchitektur irgendeiner anderen Variante, durch die mehrere physische getrennte Prozessoren auf irgendeine Weise verknüpft sind, umfassen.
  • In verschiedenen Ausführungsformen kann der Speicher 560 auf einer beliebigen aus einer breiten Vielfalt von Informationsspeichertechnologien basieren, möglicherweise flüchtige Technologien umfassend, die die ununterbrochene Bereitstellung von elektrischem Strom erfordern, und möglicherweise Technologien umfassend, die die Verwendung von maschinenlesbaren Speichermedien, die entfernbar sein können oder nicht, beinhalten. Daher kann jeder dieser Speicher einen beliebigen aus einer breiten Vielfalt von Typen (oder Kombination von Typen) von Speichervorrichtungen umfassen, einschließlich, unter anderem, Nur-Lese-Speicher (ROM, Read-Only Memory), Direktzugriffsspeicher (RAM, Random-Access Memory), dynamischen RAM (DRAM), DRAM mit doppelter Datenrate (DDR-DRAM, Double-Data-Rate DRAM), synchronen DRAM (SDRAM), statischen RAM (SRAM), programmierbaren ROM (PROM), löschbaren programmierbaren ROM (EPROM, Erasable Programmable ROM), elektrisch löschbaren programmierbaren ROM (EEPROM, Electrically Erasable Programmable ROM), Flash-Speicher, Polymerspeicher (z. B. ferroelektrischen Polymerspeicher), Ovonic-Speicher, Phasenwechsel oder ferroelektrischen Speicher, SONOS-Speicher (Silizium-Oxid-Nitrid-Oxid-Silizium), magnetische oder optische Karten, ein oder mehrere einzelne ferromagnetische Plattenlaufwerke oder mehrere Speichervorrichtungen, die in einem oder mehreren Arrays organisiert sind (z. B. mehrere ferromagnetische Plattenlaufwerke, die in ein redundantes Feld von unabhängigen Platten oder RAID-Array (Redundant Array of Independent Disks) organisiert sind). Es ist anzumerken, dass, obwohl jeder dieser Speicher als ein einzelner Block dargestellt ist, einer oder mehrere dieser mehrere Speichervorrichtungen umfassen können, die auf voneinander verschiedenen Speichertechnologien basieren können. Daher kann, beispielsweise, einer oder mehrerer von jedem dieser dargestellten Speicher eine Kombination eines optischen Laufwerks oder einer Flash-Speicherkarten-Lesevorrichtung, durch die Programme und/oder Daten gespeichert und auf einer gewissen Form von maschinenlesbaren Speichermedien transportiert werden können, eines ferromagnetischen Plattenlaufwerks zum lokalen Speichern von Programmen und/oder Daten für einen relativ ausgedehnten Zeitraum, und einer oder mehrerer flüchtiger Festkörperspeichervorrichtungen, die einen relativ schnellen Zugriff auf Programme und/oder Daten ermöglichen (z. B. SRAM oder DRAM) repräsentieren. Es sei auch darauf hingewiesen, dass jeder dieser Speicher aus mehreren Speicherkomponenten basierend auf identischer Speichertechnologie bestehen kann, die aber als ein Ergebnis von eingesetzter Spezialisierung getrennt gehalten sein können (z. B. einige DRAM-Vorrichtungen, die als ein Hauptspeicher eingesetzt sind, während andere DRAM-Vorrichtungen als ein Einzelbildspeicher einer Grafiksteuerung eingesetzt sind).
  • In verschiedenen Ausführungsformen kann zumindest ein Teil der Netzwerkschnittstelle 590 eine beliebige aus einer breiten Vielfalt von Signalisierungstechnologien einsetzen, was es diesen Vorrichtungen ermöglicht, mit anderen Vorrichtungen gekoppelt zu werden, wie beschrieben wurde. Jede dieser Schnittstellen umfasst Schaltungsanordnungen, die zumindest etwas der erforderlichen Funktionalität bereitstellen, um eine solche Kopplung zu ermöglichen. Allerdings kann jede dieser Schnittstellen auch zumindest teilweise mit Sequenzen von Anweisungen umgesetzt sein, die durch jeweils zugehörige der Prozessorkomponenten ausgeführt werden (z. B. um einen Protokollstapel oder andere Merkmale umzusetzen). Wo elektrisch und/oder optisch leitfähige Verkabelung eingesetzt wird, können diese Schnittstellen Signalisierung und/oder Protokolle einsetzen, die mit einem beliebigen aus einer Vielzahl von Industriestandards konform sind, einschließlich, unter anderem, RS-232C, RS-422, USB, Ethernet (IEEE-802.3) oder IEEE-1394. Wo die Verwendung einer drahtlosen Signalübertragung enthalten ist, können diese Schnittstellen Signalisierung und/oder Protokolle einsetzen, die mit einem beliebigen aus einer Vielzahl von Industriestandards konform sind, einschließlich, unter anderem, (IEEE 802.11a, 802.11b, 802.11g, 802.16, 802.20 (häufig als „Mobile Broadband Wireless Access“, mobiler drahtloser Breitbandzugang, bezeichnet); Bluetooth; ZigBee; oder einen Mobilradiotelefondienst wie etwa GSM/GPRS (GSM mit General Packet Radio Service), CDMA/1xRTT, EDGE (Erweiterte Datenraten für globale Evolution, Enhanced Data Rates for Global Evolution), EV-DO (Evolution Data Only/Optimized), EV-DV (Evolution For Data and Voice), HSDPA (High Speed Downlink Packet Access), HSUPA (High Speed Uplink Packet Access), 4G LTE usw.
  • 6A und 6B stellen zusammen eine Ausführungsform eines Logikflusses 2100 dar. Der Logikfluss 2100 kann repräsentativ für einige oder alle der Vorgänge sein, die durch eine oder mehrere der hier beschriebenen Ausführungsformen ausgeführt werden. Insbesondere kann der Logikfluss 2100 Vorgänge darstellen, die durch eine oder beide Prozessorkomponenten 450 und 550 beim Ausführen von einem oder mehreren aus dem Verifizierungsmikrocode 410, der Verifizierungsroutine 416, der gesicherten Firmware 610 und der nicht gesicherten Firmware 670 durchgeführt werden; und/oder durch eine oder mehrere andere Komponenten der Verarbeitungsvorrichtung 500 durchgeführt werden. Insbesondere ist der Logikfluss 2100 auf Vorgänge zum Initialisieren und/oder Auslegen der Verarbeitungsvorrichtung 500 konzentriert als Teil des Vorbereitens der Verarbeitungsvorrichtung 500 zum Unterstützen der Ausführung des BS 770.
  • Bei 2110, und beim Start einer Vor-BS-Verarbeitungsumgebung, kann entweder eine Hauptprozessorkomponente oder eine Steuerungsprozessorkomponente einer Verarbeitungsvorrichtung (z. B. eine der Prozessorkomponenten 450 oder 550 der Verarbeitungsvorrichtung 500) Verifizierungsmikrocode ausführen, der in diese Prozessorkomponente integriert ist (z. B. den Verifizierungsmikrocode 410), um zu versuchen, eine Verifizierungsroutine zum Authentifizieren einer Firmware (z. B. die Verifizierungsroutine 416) zu authentifizieren. Wenn, bei 2112, die Verifizierungsroutine nicht authentifiziert werden kann, dann kann, bei 2120, die Haupt- oder Steuerungsprozessorkomponente, die den Verifizierungsmikrocode ausführt, alle weiteren Vorgänge zum Initialisieren der Verarbeitungsvorrichtung einstellen (oder kann ein erneutes Hochfahren veranlassen). Ferner kann diese Prozessorkomponente eine Anzeige und/oder eine andere Komponente der Verarbeitungsvorrichtung betreiben, um eine Anzeige eines Fehlers bei der Initialisierung der Verarbeitungsvorrichtung bereitzustellen.
  • Wenn allerdings die Verifizierungsroutine bei 2112 authentifiziert werden kann, dann kann die Hauptprozessorkomponente bei 2130 die Verifizierungsroutine ausführen, um zu versuchen, die Firmware zu authentifizieren. Wenn bei 2132 die Firmware nicht authentifiziert werden konnte, dann kann bei 2120 die Hauptprozessorkomponente alle weiteren Vorgänge zum Initialisieren der Verarbeitungsvorrichtung einstellen. Ferner kann die Hauptprozessorkomponente eine Anzeige und/oder eine andere Komponente der Verarbeitungsvorrichtung betreiben, um eine Anzeige eines Fehlers bei der Initialisierung der Verarbeitungsvorrichtung bereitzustellen.
  • Wenn allerdings die Firmware bei 2132 authentifiziert werden konnte, dann kann bei 2140 die Hauptprozessorkomponente mit dem Ausführen der Firmware beginnen, um die Initialisierung der Verarbeitungsvorrichtung fortzusetzen. Dadurch kann die Hauptprozessorkomponente veranlasst werden, eine sichere Insel zu erzeugen, und kann zumindest einen gesicherten Teil der Firmware in die sichere Insel laden (z. B. die sichere Insel 564, in die zumindest die gesicherte Firmware 610 geladen werden kann, und wo die gesicherte Firmware 610 eine oder mehrere gesicherte Variablen 630 umfassen kann).
  • Bei 2142 kann die Hauptprozessorkomponente veranlassen, dass ein anfängliches Maß von den Inhalten der sicheren Insel genommen wird. Genauer, und wie bereits erörtert, kann hardwarebasierte Logik einer Schaltung der Verarbeitungsvorrichtung (z. B. der Messkomponente 555) durch die Hauptprozessorkomponente (oder durch Kooperation zwischen der Haupt- und der Steuerungsprozessorkomponente) veranlasst werden, das anfängliche Maß zu nehmen und kann auch das anfängliche Maß speichern. Alternativ oder zusätzlich kann eine anfängliche Ableitung erzeugt werden durch Verschlüsseln, Nehmen eines Hashs von, digitales Signieren oder anderweitiges Verarbeiten des anfänglichen Maßes unter Verwendung einer beliebigen aus einer Vielzahl von Sicherheitsberechtigungen, wobei solche Sicherheitsberechtigungen innerhalb der sicheren Insel als eine gesicherte Variable gespeichert worden sein können und/oder eine Sicherheitsberechtigung in Verbindung mit Authentifizierung zumindest des gesicherten Teils der Firmware sein können. Allerdings kann, als eine andere Alternative, die anfängliche Ableitung erzeugt werden durch Verwenden des anfänglichen Maßes als eine Sicherheitsberechtigung zum Verschlüsseln, digitalen Signieren oder anderweitigen Verarbeiten eines vorbestimmten Werts, der innerhalb der sicheren Insel als eine gesicherte Variable gespeichert worden sein kann.
  • Bei 2150 kann die Hauptprozessorkomponente einen Firmwaretreiber (z. B. den Firmwaretreiber 646) laden, um es Routinen eines anderen Teils der Firmware, der außerhalb der sicheren Insel befindlich ist (z. B. Routinen der nicht gesicherten Firmware 670) zu ermöglichen, Aufrufe an Unterstützungsroutinen des gesicherten Teils der Firmware, die in die sichere Insel geladen sind, vorzunehmen und/oder auf eine oder mehrere gesicherte Variablen, die in die sichere Insel geladen sind, zuzugreifen. Wie erörtert wurde, kann es sein, dass eine oder mehrere der Unterstützungsroutinen des gesicherten Teils der Firmware durch den Firmwaretreiber aufrufbar sind, um Zugriff (z. B. Nur-Lese-Zugriff oder Lese/Schreib-Zugriff) auf eine oder mehrere solche gesicherte Variablen bereitzustellen.
  • Bei 2152 kann die Hauptprozessorkomponente den anderen Teil der Firmware, der außerhalb der sicheren Insel befindlich ist, laden und kann mit der Ausführung dieses anderen Teils beginnen, um Vorgänge zum Initialisieren und/oder Auslegen verschiedener Aspekte der Datenverarbeitungsvorrichtung durchzuführen, um die Datenverarbeitungsvorrichtung für Unterstützung der Ausführung eines BS (z. B. des BS 770) vorzubereiten. Wie erörtert wurde, kann das Laden des Firmwaretreibers und/oder des anderen Teils der Firmware Abrufen von Kopien von einem oder beiden aus einem Teil von mit nicht-flüchtigen Speichervorrichtungen umgesetztem Speicher und Speichern dieser Kopien in einem anderen Teil des mit nicht-flüchtigen Speichervorrichtungen umgesetzten Speichers beinhalten, um den Vorteil von schnellerem Zugriff zu erhalten, um schnellere Ausführung zu ermöglichen.
  • Bei 2160 kann beim Ausführen des anderen Teils der Firmware, der außerhalb der sicheren Insel befindlich ist, die Hauptprozessorkomponente veranlasst werden, einen Teil des BS zu laden, um Hochfahren des BS zu ermöglichen, und wird veranlasst, einen anderen Firmwaretreiber zu laden, um es Routinen des BS zu ermöglichen, Aufrufe an die Unterstützungsroutinen des gesicherten Teils der Firmware, der in die sichere Insel geladen ist, vorzunehmen und/oder auf eine oder mehrere gesicherte Variablen, die in die sichere Insel geladen sind, zuzugreifen. Wie erörtert wurde, kann es sein, dass die Routinen des BS Aufrufe an genau die gleichen Unterstützungsroutinen des gesicherten Teils der Firmware vornehmen, die die Routinen des anderen Teils der Firmware aufrufen. Wie erörtert wurde, kann das Laden von Teilen des BS Abrufen von Kopien dieser Teile aus einem Teil von Speicher, der mit nicht-flüchtigen Speichervorrichtungen umgesetzt ist, ein entfernbares Speichermedium (z. B. das entfernbare Speichermedium 569) und/oder eine abgesetzte Speichervorrichtung (z. B. eine der abgesetzten Speichervorrichtungen 305), und Speichern dieser Teile in einem anderen Teil des Speichers, der mit nicht-flüchtigen Speichervorrichtungen umgesetzt ist, beinhalten, um den Vorteil von schnellerem Zugriff zu erhalten, um schnellere Ausführung zu ermöglichen. Bei 2170 wird die Vor-BS-Betriebsumgebung durch eine BS-Betriebsumgebung ersetzt, wenn der Hauptprozessor mit Ausführen des Teils des BS beginnt, der früher bei 2160 geladen wurde.
  • 7A und 7B stellen zusammen eine Ausführungsform eines Logikflusses 2200 dar. Der Logikfluss 2200 kann repräsentativ für einige oder alle der Vorgänge sein, die durch eine oder mehrere der hier beschriebenen Ausführungsformen ausgeführt werden. Insbesondere kann der Logikfluss 2200 Vorgänge darstellen, die durch die Prozessorkomponenten 550 beim Ausführen von einem oder mehreren aus der gesicherten Firmware 610, dem Firmwaretreiber 646, dem Firmwaretreiber 647, der nicht gesicherten Firmware 670, dem BS 770 und einer Anwendungsroutine 870 durchgeführt werden; und/oder durch andere Komponenten der Verarbeitungsvorrichtung 500 durchgeführt werden. Insbesondere ist der Logikfluss 2200 konzentriert auf Vorgänge zum Vorbereiten der Verarbeitungsvorrichtung 500 zum Unterstützen der Ausführung des BS 770 in der Vor-BS-Betriebsumgebung und zum Unterstützen der Ausführung des BS 770, wenn es in der BS-Betriebsumgebung ausgeführt wird.
  • Bei 2210, und beim Start einer Vor-BS-Verarbeitungsumgebung, kann eine Hauptprozessorkomponente einer Verarbeitungsvorrichtung (z. B. die Prozessorkomponente 550 der Verarbeitungsvorrichtung 500) veranlassen, dass ein anfängliches Maß der Inhalte einer sicheren Insel genommen wird, in die ein gesicherter Teil einer Firmware der Verarbeitungsvorrichtung geladen wurde (z. B. die sichere Insel 564, in die die gesicherte Firmware 610 geladen worden sein kann, die eine oder mehrere gesicherte Variablen 630 umfassen kann). Erneut kann, genauer, hardwarebasierte Logik einer Schaltung der Verarbeitungsvorrichtung (z. B. die Messkomponente 555) veranlasst werden, das anfängliche Maß zu nehmen, und kann auch das anfängliche Maß und/oder eine anfängliche Ableitung davon speichern.
  • Bei 2220 kann die Hauptprozessorkomponente mit der Ausführung eines anderen Teils der Firmware, der außerhalb der sicheren Insel befindlich ist (z. B. die nicht gesicherte Firmware 670), beginnen, um Vorgänge zum Initialisieren und/oder Auslegen verschiedener Aspekte der Datenverarbeitungsvorrichtung durchzuführen, um die Datenverarbeitungsvorrichtung für Unterstützung der Ausführung eines BS (z. B. des BS 770) vorzubereiten. Wie erörtert wurde, kann das Laden von Teilen der Firmware Abrufen von Kopien von diesen Teilen aus einem Teil von mit nicht-flüchtigen Speichervorrichtungen umgesetztem Speicher und Speichern dieser Kopien in einem anderen Teil des mit nicht-flüchtigen Speichervorrichtungen umgesetzten Speichers beinhalten, um den Vorteil von schnellerem Zugriff zu erhalten, um schnellere Ausführung zu ermöglichen.
  • Bei 2230 wird eine Prüfung durchgeführt, ob ein Aufruf an eine Unterstützungsroutine des gesicherten Teils der Firmware (z. B. eine der Unterstützungsroutinen 6105 der gesicherten Firmware 610) von einer Routine des nicht gesicherten Teils der Firmware empfangen wurde. Wenn das der Fall ist, dann führt die Hauptprozessorkomponente diese Unterstützungsroutine bei 2232 aus, um die durch den Aufruf angeforderte Funktion durchzuführen. Wie erörtert wurde, können, da die Unterstützungsroutinen des gesicherten Teils der Firmware innerhalb der sicheren Insel befindlich sind, während die Routinen des nicht gesicherten Teils der Firmware außerhalb der sicheren Insel befindlich sind, solche Aufrufe von Routinen des nicht gesicherten Teils der Firmware durch einen Firmwaretreiber (z. B. den Firmwaretreiber 646) an die Routinen des gesicherten Teils der Firmware weitergeleitet werden, an die diese Aufrufe gerichtet sind.
  • Unabhängig davon, ob bei 2230 ein solcher Aufruf empfangen wurde, wird bei 2240 eine Prüfung durchgeführt, ob eine Anforderung zum Verifizieren der Integrität des gesicherten Teils der Firmware von einer Routine des nicht gesicherten Teils der Firmware empfangen wurde. Wenn das der Fall ist, veranlasst die Hauptprozessorkomponente bei 2242, dass ein neues Maß der Inhalte der sicheren Insel genommen wird und ein Vergleich zwischen dem neuen Maß und dem anfänglichen Maß, oder zwischen einer neuen Ableitung der neuen Maßes und der anfänglichen Ableitung des anfänglichen Maßes, durchgeführt wird, um zu bestimmen, ob die Inhalte der sicheren Insel unverändert geblieben sind, seit das anfängliche Maß genommen wurde. Die Hauptprozessorkomponente kann dann eine Anzeige der Ergebnisse des Vergleiches für die Routine des nicht gesicherten Teils der Firmware bereitstellen, die ihn angefordert hat.
  • Unabhängig davon, ob bei 2240 eine solche Anforderung empfangen wurde, wird bei 2250 eine Prüfung durchgeführt, ob die Routinen des nicht gesicherten Teils der Firmware ihre Aufgaben zum Initialisieren und/oder Auslegen von Komponenten der Verarbeitungsvorrichtung zum Vorbereiten der Verarbeitungsvorrichtung zum Unterstützen der Ausführung des BS abgeschlossen haben. Wenn nicht, dann wird die Prüfung auf einen Aufruf an eine Unterstützungsroutine des gesichertes Teils der Firmware bei 2230 wiederholt. Wenn allerdings bei 2250 solche Vorbereitungen abgeschlossen wurden, dann wird die Vor-BS-Betriebsumgebung durch eine BS-Betriebsumgebung des BS ersetzt, da der Hauptprozessor bei 2260 mit Ausführen von Routinen des BS beginnt.
  • Bei 2270 wird eine Prüfung durchgeführt, ob ein Aufruf an eine Unterstützungsroutine des gesicherten Teils der Firmware von einer Routine des BS empfangen wurde. Wenn das der Fall ist, dann führt die Hauptprozessorkomponente diese Unterstützungsroutine bei 2272 aus, um die durch den Aufruf angeforderte Funktion durchzuführen. Wie erörtert wurde, können solche Aufrufe von Routinen des BS durch einen anderen Firmwaretreiber (z. B. den Firmwaretreiber 647) an die Routinen des gesicherten Teils der Firmware, an die diese Aufrufe gerichtet sind, in einer Weise weitergeleitet werden, die ähnlich dem Weiterleiten von Aufrufen durch Routinen des nicht gesicherten Teils der Firmware bei 2232 ist.
  • Unabhängig davon, ob bei 2270 ein solcher Aufruf empfangen wurde, wird bei 2280 eine Prüfung durchgeführt, ob eine Anforderung zum Verifizieren der Integrität des gesicherten Teils der Firmware von einer Routine des BS empfangen wurde. Wenn das der Fall ist, veranlasst die Hauptprozessorkomponente bei 2282, dass ein neues Maß der Inhalte der sicheren Insel genommen wird und ein Vergleich zwischen dem neuen Maß und dem anfänglichen Maß, oder zwischen einer neuen Ableitung der neuen Maßes und der anfänglichen Ableitung des anfänglichen Maßes, durchgeführt wird, um zu bestimmen, ob die Inhalte der sicheren Insel unverändert geblieben sind, seit das anfängliche Maß genommen wurde. Wie erörtert wurde, kann die Weise, in der eine solche Prüfung in Reaktion auf eine Anforderung von einer Routine des BS in der BS-Betriebsumgebung durchgeführt wird, ähnlich der Weise sein, in der eine solche Prüfung in Reaktion auf eine Anforderung von einer Routine des nicht gesicherten Teils der Firmware in der Vor-BS-Betriebsumgebung durchgeführt wird. Die Hauptprozessorkomponente kann dann eine Anzeige der Ergebnisse des Vergleiches für die Routine des nicht gesicherten Teils der Firmware bereitstellen, die ihn angefordert hat.
  • Unabhängig davon, ob bei 2280 eine solche Anforderung empfangen wurde, kann die Prüfung bei 2270 wiederholt werden. Tatsächlich, solange das BS weiterhin durch die Hauptprozessorkomponente ausgeführt werden kann, sodass die BS-Betriebsumgebung eingesetzt bleibt, können die Prüfungen bei 2270 und 2280 wiederholt durchgeführt werden.
  • 8 stellt eine Ausführungsform einer beispielhaften Verarbeitungsarchitektur 3000 dar, die zum Umsetzen verschiedener Ausführungsformen, wie vorher beschrieben, geeignet ist. Insbesondere kann die Verarbeitungsarchitektur 3000 (oder Varianten davon) als Teil von einer oder mehreren der Vorrichtungen 100, 200, 304, 305 oder 500 und/oder der Steuerung 400 umgesetzt sein. Es ist anzumerken, dass Komponenten der Verarbeitungsarchitektur 3000 Bezugsnummern gegeben werden, bei denen die letzten beiden Stellen den letzten beiden Stellen von Bezugsnummern von zumindest einigen der früher dargestellten und als Teil dieser Vorrichtungen und/oder Steuerungen beschriebenen Komponenten entsprechen. Dies wird als ein Hilfsmittel zum Korrelieren der jeweiligen Komponenten durchgeführt.
  • Die Verarbeitungsarchitektur 3000 umfasst verschiedene Elemente, die üblicherweise bei digitaler Verarbeitung eingesetzt werden, einschließlich, unter anderem, eines oder mehrerer Prozessoren, Mehrkernprozessoren, Koprozessoren, Speichereinheiten, Chipsätze, Steuerungen, Peripherieeinrichtungen, Schnittstellen, Oszillatoren, Zeitsteuerungsvorrichtungen, Videokarten, Audiokarten, Multimedia-Eingabe/Ausgabe(E/A)-Komponenten, Stromversorgungen usw. Wie in dieser Anmeldung verwendet, sollen sich die Begriffe „System“ und „Komponente“ auf eine Entität einer Vorrichtung beziehen, in der digitale Verarbeitung durchgeführt wird, wobei diese Entität Hardware, eine Kombination aus Hardware und Software, Software oder Software in Ausführung ist, wobei Beispiele dafür durch diese dargestellte beispielhafte Verarbeitungsarchitektur bereitgestellt werden. Beispielsweise kann eine Komponente, unter anderem, ein auf einer Prozessorkomponente laufender Prozess, die Prozessorkomponente selbst, eine Speichervorrichtung (z. B. ein Festplattenlaufwerk, mehrere Speicherlaufwerke in einer Anordnung usw.), die ein optisches und/oder magnetisches Speichermedium einsetzen kann, ein Softwareobjekt, eine ausführbare Sequenz von Anweisungen, ein Ausführungsstrang, ein Programm und/oder eine vollständige Vorrichtung (z. B. ein vollständiger Computer) sein. Als Veranschaulichung kann sowohl eine auf einem Server laufende Anwendung als auch der Server eine Komponente sein. Eine oder mehrere Komponenten können innerhalb eines Prozesses und/oder Ausführungsstrangs befindlich sein, und eine Komponente kann auf einer Vorrichtung lokalisiert und/oder zwischen zwei oder mehr Vorrichtungen verteilt sein. Ferner können Komponenten durch verschiedene Typen von Kommunikationsmedien kommunikativ miteinander gekoppelt sein, um Vorgänge zu koordinieren. Die Koordinierung kann unidirektionalen oder bidirektionalen Informationsaustausch beinhalten. Beispielsweise können die Komponenten Informationen in der Form von Signalen kommunizieren, die über die Kommunikationsmedien kommuniziert werden. Die Informationen können als Signale umgesetzt werden, die einer oder mehreren Signalleitungen zugeordnet sind. Eine Nachricht (umfassend eine Befehls-, Status-, Adress- oder Datennachricht) kann eines von solchen Signalen sein oder kann mehrere solcher Signale sein und kann entweder seriell oder im Wesentlichen parallel durch eine beliebige einer Vielzahl von Verbindungen und/oder Schnittstellen übertragen werden.
  • Wie dargestellt, umfasst eine Vorrichtung beim Umsetzen der Verarbeitungsarchitektur 3000 zumindest eine Prozessorkomponente 950, einen Speicher 960, eine Schnittstelle 990 zu anderen Vorrichtungen und eine Kopplung 959. Wie erklärt wird, kann, in Abhängigkeit von verschiedenen Aspekten einer Vorrichtung, die die Verarbeitungsarchitektur 3000 umsetzt, einschließlich ihrer beabsichtigten Verwendung und/oder Verwendungsbedingungen, eine solche Vorrichtung ferner zusätzliche Komponenten umfassen, wie etwa, unter anderem, eine Anzeigeschnittstelle 985.
  • Die Kopplung 959 umfasst einen oder mehrere Busse, Punkt-zu-Punkt-Verbindungen, Sende-/Empfangsvorrichtungen, Puffer, Koppelfelder und/oder andere Leiter und/oder Logik, die zumindest die Prozessorkomponente 950 kommunikativ mit dem Speicher 960 koppelt. Kopplung 959 kann ferner die Prozessorkomponente 950 mit einem oder mehreren aus der Schnittstelle 990, dem Audioteilsystem 970 und der Anzeigeschnittstelle 985 koppeln (in Abhängigkeit davon, welche dieser und/oder anderer Komponenten ebenfalls vorhanden sind). Wenn die Prozessorkomponente 950 so durch Kopplungen 959 gekoppelt ist, ist die Prozessorkomponente 950 in der Lage, die verschiedenen der oben ausführlich beschriebenen Aufgaben für eine beliebige der vorher beschriebenen Vorrichtungen durchzuführen, die die Verarbeitungsarchitektur 3000 umsetzen. Kopplung 959 kann mit einer beliebigen aus einer Vielzahl von Technologien oder Kombinationen von Technologien umgesetzt sein, durch die Signale optisch und/oder elektrisch transportiert werden. Ferner können zumindest Teile von Kopplungen 959 Zeitsteuerungen und/oder Protokolle einsetzen, die mit einem beliebigen aus einer breiten Vielfalt von Industriestandards konform sind, einschließlich, unter anderem, AGP (Accelerated Graphics Port), CardBus, E-ISA (Extended Industry Standard Architecture), MCA (Micro Channel Architecture), NuBus, PCI-X (Peripheral Component Interconnect (Extended)), PCI Express (PCI-E), PCMCIA-Bus (Personal Computer Memory Card International Association), HyperTransport™, QuickPath und ähnliches.
  • Wie bereits erörtert, kann die Prozessorkomponente 950 (die der Prozessorkomponente 450 entsprechen kann) einen beliebigen aus einer breiten Vielfalt an handelsüblichen Prozessoren umfassen, in denen eine beliebige aus einer breiten Vielfalt an Technologien eingesetzt wird und die mit einem oder mehreren Kernen, die einer beliebigen aus einer Anzahl von Wegen physisch kombiniert sind, umgesetzt sind.
  • Wie bereits erörtert, kann der Speicher 960 (der dem Speicher 460 entsprechen kann) aus einer oder mehreren einzelnen Speichervorrichtungen aufgebaut sein, basierend auf einer beliebigen aus einer breiten Vielfalt an Technologien oder Kombinationen von Technologien. Insbesondere, wie dargestellt, kann der Speicher 960 eines oder mehrere aus einem flüchtigen Speicher 961 (z. B. Festkörperspeicher basierend auf einer oder mehreren Formen von RAM-Technologie), einem nicht-flüchtigen Speicher 962 (z. B. Festkörper-, ferromagnetischer oder anderer Speicher, der keine durchgehende Bereitstellung von elektrischem Strom zum Erhalten seiner Inhalte erfordert) und einem entfernbaren Medienspeicher 963 (z. B. entfernbare Platte oder Festkörperspeicherkartenspeicher, wodurch Informationen zwischen Vorrichtungen transportiert werden können) umfassen. Diese Darstellung des Speichers 960 als möglicherweise mehrere einzelne Typen von Speicher umfassend erfolgt in Anerkennung der allgemein üblichen Verwendung von mehr als einem Typ von Speichervorrichtung in Vorrichtungen, in denen ein Typ relativ schnelle Lese- und Schreibfähigkeiten bietet, was eine schnellere Manipulation von Daten durch die Prozessorkomponente 950 ermöglicht (aber möglicherweise unter Verwendung einer „flüchtigen“ Technologie, die durchgehend elektrischen Strom benötigt), während ein anderer Typ relativ hohe Dichte von nicht-flüchtigem Speicher bietet (aber wahrscheinlich relativ langsame Lese- und Schreibfähigkeiten bietet).
  • In Anbetracht der häufig unterschiedlichen Charakteristiken von unterschiedlichen Speichervorrichtungen, in denen unterschiedliche Technologien eingesetzt sind, ist es auch allgemein üblich, dass solche unterschiedlichen Speichervorrichtungen gekoppelt sind mit anderen Teilen einer Vorrichtung über verschiedene Speichersteuerungen, die mit ihren unterschiedlichen Speichervorrichtungen über unterschiedliche Schnittstellen gekoppelt sind. Als ein Beispiel, wo der flüchtige Speicher 961 vorhanden ist und auf RAM-Technologie basiert, kann der flüchtige Speicher 961 kommunikativ mit Kopplung 959 gekoppelt sein, über eine Speichersteuerung 965a, die eine geeignete Schnittstelle zum flüchtigen Speicher 961 bietet, die vielleicht Zeilen- und Spaltenadressierung einsetzt und wobei die Speichersteuerung 965a Zeilenaktualisierung und/oder andere Wartungsaufgaben durchführen kann, um beim Erhalten der innerhalb des flüchtigen Speichers 961 gespeicherten Informationen zu helfen. Als ein weiteres Beispiel, wo der nicht-flüchtige Speicher 962 vorhanden ist und ein oder mehrere ferromagnetische und/oder Festkörperplattenlaufwerke umfasst, kann der nicht-flüchtige Speicher 962 kommunikativ mit Kopplung 959 gekoppelt sein, über eine Speichersteuerung 965b, die eine geeignete Schnittstelle zum nicht-flüchtigen Speicher 962 bietet, die vielleicht Adressierung von Blöcken von Informationen und/oder von Zylindern und Sektoren einsetzt. Als noch ein weiteres Beispiel, wo der entfernbare Medienspeicher 963 vorhanden ist und ein oder mehrere optische und/oder Festkörperplattenlaufwerke umfasst, die ein oder mehrere Stücke von maschinenlesbarem Speichermedium 969 einsetzen, kann der entfernbare Medienspeicher 963 kommunikativ mit Kopplung 959 gekoppelt sein, über eine Speichersteuerung 965c, die eine geeignete Schnittstelle zum entfernbaren Medienspeicher 963 bietet, die vielleicht Adressierung von Blöcken von Informationen einsetzt, und wobei die Speichersteuerung 965c Lese-, Lösch- und Schreibvorgänge in einer Weise koordinieren kann, die spezifisch zum Verlängern der Lebenszeit des maschinenlesbaren Speichermediums 969 ist.
  • Der eine oder der andere aus dem flüchtigen Speicher 961 oder dem nicht-flüchtigen Speicher 962 kann einen Fertigungsartikel in der Form eines maschinenlesbaren Speichermediums umfassen, auf dem eine Routine, die eine Sequenz von durch die Prozessorkomponente 950 ausführbaren Anweisungen umfasst, gespeichert werden kann, in Abhängigkeit von den Technologien, auf denen die einzelnen basieren. Als ein Beispiel, wo der nicht-flüchtige Speicher 962 ferromagnetisch basierte Plattenlaufwerke (z. B. so genannte „Festplatten“) umfasst, setzt jedes solche Plattenlaufwerk in der Regel eine oder mehrere rotierende Platten ein, auf denen eine Beschichtung aus magnetisch reagierenden Partikeln aufgetragen und magnetisch in verschiedenen Mustern ausgerichtet ist, um Informationen, wie etwa eine Sequenz von Anweisungen, in einer Weise zu speichern, die ähnlich einem Speichermedium, wie etwa einer Floppy-Diskette ist. Als ein weiteres Beispiel, kann der nicht-flüchtige Speicher 962 aus Bänken von Festkörperspeichervorrichtungen bestehen, um Informationen, wie etwa Sequenzen von Anweisungen, in einer Weise zu speichern, die ähnlich einer Compact-Flash-Karte ist. Erneut ist es allgemein üblich, zu unterschiedlichen Zeiten unterschiedliche Typen von Speichervorrichtungen in einer Vorrichtung einzusetzen, um ausführbare Routinen und/oder Daten zu speichern. Daher kann ein Routine, die eine Sequenz von durch die Prozessorkomponente 950 auszuführenden Anweisungen umfasst, anfänglich auf dem maschinenlesbaren Speichermedium 969 gespeichert sein, und der entfernbare Medienspeicher 963 kann nachfolgend beim Kopieren dieser Routine in den nicht-flüchtigen Speicher 962 zur längerfristigen Speicherung eingesetzt werden, die keine fortlaufende Anwesenheit des maschinenlesbaren Speichermediums 969 und/oder des flüchtigen Speichers 961 erfordert, um einen schnelleren Zugriff durch die Prozessorkomponente 950 zu ermöglichen, wenn diese Routine ausgeführt wird.
  • Wie bereits erörtert, kann die Schnittstelle 990 (die der bzw. den Schnittstellen 490 entsprechen kann) eine beliebige aus einer Vielzahl von Signalisierungstechnologien einsetzen, die einer beliebigen aus einer Vielzahl von Kommunikationstechnologien entspricht, die eingesetzt werden kann, um eine Vorrichtung kommunikativ mit einer oder mehreren anderen Vorrichtungen zu koppeln. Erneut können eine oder beide der verschiedenen Formen von drahtgebundener oder drahtloser Signalisierung eingesetzt werden, um es der Prozessorkomponente 950 zu ermöglichen, mit Eingabe/Ausgabe-Vorrichtungen (z. B. der dargestellten Tastatur 920 oder dem Drucker 925) und/oder anderen Vorrichtungen zu interagieren, möglicherweise über ein Netzwerk (z. B. das Netzwerk 999) oder eine untereinander verbundene Menge von Netzwerken. In Anerkennung des häufig sehr unterschiedlichen Charakters von mehreren Typen von Signalisierung und/oder Protokollen, die oft durch eine beliebige Vorrichtung unterstützt werden müssen, wird die Schnittstelle 990 als mehrere verschiedene Schnittstellensteuerungen 995a, 995b und 995c umfassend dargestellt. Die Schnittstellensteuerung 995a kann einen beliebigen aus einer Vielzahl von Typen von drahtgebundenen digitalen seriellen Schnittstellen oder drahtlosen Hochfrequenzschnittstellen einsetzen, um seriell von Benutzereingabevorrichtungen, wie etwa der dargestellten Tastatur 920, gesendete Nachrichten zu empfangen. Die Schnittstellensteuerung 995b kann ein(e) beliebige(s) aus einer Vielzahl von verkabelungsbasierten oder drahtlosen Signalisierungen, Zeitsteuerungen und/oder Protokollen sein, um über das dargestellte Netzwerk 999 (vielleicht ein aus einer oder mehreren Verbindungen, kleineren Netzwerken oder vielleicht dem Internet bestehendes Netzwerk) auf andere Vorrichtungen zuzugreifen. Insbesondere kann die Schnittstellensteuerung 995b eine oder mehrere Hochfrequenz(HF)-Sende-/Empfangsvorrichtungen enthalten oder kann mit einer oder mehreren Antennen 991 (die in einen Teil der Schnittstelle 990 integriert sein können), gekoppelt sein, um drahtlose HF-Signale mit einer oder mehreren Antennen der einen oder mehreren Vorrichtungen als Teil der drahtlosen Kommunikationen auf dem dargestellten Netzwerk 999 auszutauschen. Die Schnittstellensteuerung 995c kann eine beliebige aus einer Vielzahl von elektrisch leitfähigen Verkabelungen einsetzen, die die Verwendung von entweder serieller oder paralleler Signalübertragung zum Transportieren von Daten zu dem dargestellten Drucker 925 ermöglichen. Andere Beispiele von Vorrichtungen, die kommunikativ über eine oder mehrere Schnittstellensteuerungen der Schnittstelle 990 gekoppelt sein können, umfassen, unter anderem, ein Mikrofon zum Überwachen von Lauten von Personen zum Annehmen von Befehlen und/oder Daten, die von diesen Personen über Stimme oder andere von ihnen möglicherweise ausgehende Laute signalisiert werden, Fernbedienungen, Schreibgriffel, Kartenleser, Fingerabdruckleser, Handschuhe zur Interaktion in virtueller Realität, grafische Eingabetablets, Joysticks, andere Tastaturen, Netzhautscanner, die Berührungseingabekomponente von Touchscreens, Trackballs, verschiedene Sensoren, eine Kamera oder ein Kamerafeld zum Überwachen der Bewegung von Personen zum Annehmen von Befehlen und/oder Daten, die von diesen Personen durch Gesten und/oder Gesichtsausdrücke signalisiert werden, Laserdrucker, Tintenstrahldrucker, mechanische Roboter, Fräsmaschinen usw.
  • Wo eine Vorrichtung kommunikativ mit einer Anzeige (z. B. der dargestellten beispielhaften Anzeige 980) gekoppelt ist (oder diese vielleicht tatsächlich enthält), kann eine solche Vorrichtung, die die Verarbeitungsarchitektur 3000 umsetzt, auch die Anzeigeschnittstelle 985 umfassen. Obwohl beim kommunikativen Koppeln mit einer Anzeige stärker generalisierte Typen von Schnittstelle eingesetzt sein können, machen die beim visuellen Anzeigen von verschiedenen Formen von Inhalt auf einer Anzeige häufig erforderliche, in gewisser Weise spezialisierte zusätzliche Verarbeitung sowie die in gewisser Weise spezialisierte Natur der verwendeten verkabelungsbasierten Schnittstellen die Bereitstellung einer einzelnen Anzeigeschnittstelle wünschenswert. Drahtgebundene und/oder drahtlose Signalisierungstechnologien, die durch die Anzeigeschnittstelle 985 bei einer kommunikativen Kopplung der Anzeige 980 eingesetzt sein können, können Signalisierung und/oder Protokolle nutzen, die mit einem beliebigen aus einer Vielzahl von Industriestandards konform sind, einschließlich, unter anderem, einer beliebigen aus einer Vielzahl von analogen Videoschnittstellen, DVI (Digital Video Interface), DisplayPort usw.
  • Allgemeiner können die hier beschriebenen und dargestellten verschiedenen Elemente der Vorrichtungen verschiedene Hardwareelemente, Softwareelemente oder eine Kombination von beiden umfassen. Beispiele von Hardwareelementen können Vorrichtungen, Logikvorrichtungen, Komponenten, Prozessoren, Mikroprozessoren, Schaltungen, Prozessorkomponenten, Schaltungselemente (z. B. Transistoren, Widerstände, Kapazitäten, Induktivitäten und so weiter), integrierte Schaltungen, anwendungsspezifische integrierte Schaltungen (ASICs, Application Specific Integrated Circuits), programmierbare Logikvorrichtungen (PLD, Programmable Logic Devices), Digitalsignalprozessoren (DSP), feldprogrammierbare Gate-Arrays (FPGA, Field Programmable Gate Array), Speichereinheiten, Logikgatter, Register, Halbleitervorrichtungen, Chips, Mikrochips, Chipsätze und so weiter umfassen. Beispiele von Softwareelementen können Softwarekomponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Softwareentwicklungsprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Softwaremodule, Routinen, Unterroutinen, Funktionen, Methoden, Prozeduren, Softwareschnittstellen, Anwendungsprogrammierschnittstellen (API, Application Program Interfaces), Befehlssätze, Datenverarbeitungscode, Computercode, Codesegmente, Computercodesegmente, Wörter, Werte, Symbol oder eine beliebige Kombination daraus umfassen. Allerdings kann Bestimmen, ob eine Ausführungsform unter Verwendung von Hardwareelementen und/oder Softwareelementen umgesetzt ist, variieren entsprechend einer beliebigen Anzahl von Faktoren, wie etwa gewünschter Datenverarbeitungsrate, Leistungsniveaus, Wärmetoleranzen, Verarbeitungszyklusbudget, Eingabedatenraten, Ausgabedatenraten, Speicherressourcen, Datenbusgeschwindigkeiten und andere Ausgestaltungs- oder Leistungsbeschränkungen, wie für eine gegebene Umsetzung gewünscht.
  • Einige Ausführungsformen können unter Verwendung des Ausdrucks „eine Ausführungsform“ zusammen mit ihren Ableitungen beschrieben sein. Diese Begriffe bedeuten, dass ein bestimmtes Merkmal, eine Struktur oder eine Charakteristik, das bzw. die in Verbindung mit der Ausführungsform beschrieben wird, in zumindest einer Ausführungsform enthalten ist. Auftreten der Phrase „in einer Ausführungsform“ an verschiedenen Stellen in dieser Spezifikation bezieht sich nicht notwendigerweise immer auf die gleiche Ausführungsform. Fernen können einige Ausführungsformen unter Verwendung der Ausdrücke „gekoppelt“ und „verbunden“ zusammen mit ihren Ableitungen beschrieben sein. Diese Begriffe sind nicht notwendigerweise als synonym zueinander zu betrachten. Beispielsweise können einige Ausführungsformen unter Verwendung der Begriffe „verbunden“ und/oder „gekoppelt“ beschrieben sein, um anzuzeigen, dass sich zwei oder mehr Elemente in direktem physischen oder elektrischen Kontakt miteinander befinden. Der Begriff „gekoppelt“ kann allerdings auch bedeuten, dass sich zwei oder mehr Elemente nicht in direktem Kontakt miteinander befinden, aber dennoch kooperieren oder miteinander interagieren. Ferner können Aspekte oder Elemente von unterschiedlichen Ausführungsformen kombiniert werden.
  • Es ist hervorzuheben, dass die Zusammenfassung der Offenbarung dazu bereitgestellt wird, um es einem Leser zu ermöglichen, schnell die Natur der technischen Offenbarung zu erfassen. Es ist selbstverständlich, dass sie nicht verwendet wird, um den Schutzbereich oder die Bedeutung der Ansprüche zu interpretieren oder zu begrenzen. Darüber hinaus ist in der vorstehenden ausführlichen Beschreibung zu sehen, dass verschiedene Merkmale zum Zwecke der Straffung der Offenbarung in einer einzelnen Ausführungsform gruppiert sind. Dieses Verfahren der Offenbarung ist nicht als eine Absicht, dass die beanspruchten Ausführungsformen mehr Merkmale erfordern, als in den einzelnen Ansprüchen aufgeführt sind, widerspiegelnd zu interpretieren. Stattdessen liegt, wie die folgenden Ansprüche widerspiegeln, der erfindungsgemäße Gegenstand in weniger als allen Merkmalen einer einzelnen offenbarten Ausführungsform. Daher werden die folgenden Ansprüche hiermit in die ausführliche Beschreibung aufgenommen, wobei jeder Anspruch als eine separate Ausführungsform für sich allein steht. In den beigefügten Ansprüchen werden die Begriffe „umfassend“ und „bei denen“ als direkte sprachliche Äquivalente zu den entsprechenden Begriffen „enthaltend“ bzw. „wobei“ verwendet. Darüber hinaus werden die Begriffe „erste(r)“, „zweite(r)“, „dritte(r)“ und so weiter lediglich als Bezeichnungen verwendet und dienen nicht dazu, numerische Anforderungen an ihre Objekte zu stellen.
  • Was oben beschrieben wurde, umfasst Beispiele der offenbarten Architektur. Es ist natürlich nicht möglich, jede vorstellbare Kombination von Komponenten und/oder Methodologien zu beschreiben, aber ein Durchschnittsfachmann kann erkennen, dass viele weitere Kombinationen und Permutationen möglich sind. Entsprechend soll die neuartige Architektur alle solchen Abweichungen, Modifikationen und Variationen einschließen, die in den Geist und den Schutzumfang der beigefügten Ansprüche fallen. Die ausführliche Offenbarung geht jetzt zur Angabe von Beispielen über, die weitere Ausführungsformen betreffen. Die angegebenen Beispiele sind nicht als einschränkend aufzufassen.
  • In Beispiel 1 umfasst eine Einrichtung eine erste Prozessorkomponente; einen flüchtigen Speicher, der mit der ersten Prozessorkomponente gekoppelt ist; eine Inselkomponente, um in einer Vor-Betriebssystem(Vor-BS)-Betriebsumgebung eine sichere Insel innerhalb eines Teils des flüchtigen Speichers zu erzeugen, um Zugriff auf eine gesicherte Firmware, die in die sichere Insel geladen ist, einzuschränken; einen ersten Firmwaretreiber, um in der Vor-BS-Betriebsumgebung eine erste Anwendungsprogrammierschnittstelle (API, Application Programming Interface) bereitzustellen, um es der nicht gesicherten Firmware zu ermöglichen, eine Unterstützungsroutine der gesicherten Firmware von außerhalb der sicheren Insel aufzurufen; und einen zweiten Firmwaretreiber, um in einer BS-Betriebsumgebung, die die Vor-BS-Betriebsumgebung ersetzt, eine zweite API bereitzustellen, um es einem BS der BS-Betriebsumgebung zu ermöglichen, die Unterstützungsroutine von außerhalb der sicheren Insel aufzurufen.
  • In Beispiel 2, das den Gegenstand von Beispiel 1 umfasst, kann die Einrichtung einen nicht-flüchtigen Speicher, der mit der ersten Prozessorkomponente gekoppelt ist, um die gesicherte Firmware vor dem Laden der gesicherten Firmware in die sichere Insel zu speichern; und eine Verifizierungsroutine, um zu versuchen, vor Erzeugung der sicheren Insel die gesicherte Firmware innerhalb des nicht-flüchtigen Speichers zu authentifizieren, um zumindest die Verifizierungsroutine und die gesicherte Firmware in eine Vertrauenskette einzuschließen, umfassen.
  • In Beispiel 3, das den Gegenstand von einem beliebigen der Beispiele 1-2 umfasst, kann die gesicherte Firmware die Inselkomponente und einen Firmwarelader umfassen, wobei die Inselkomponente dazu dient, die sichere Insel zu erzeugen, und der Firmwarelader dazu dient, nach erfolgreicher Authentifizierung der gesicherten Firmware durch die Verifizierungsroutine die gesicherte Firmware in die sichere Insel zu laden, um die Vertrauenskette zu erweitern, sodass sie die sichere Insel einschließt.
  • In Beispiel 4, das den Gegenstand von einem beliebigen der Beispiele 1-3 umfasst, kann die erste Prozessorkomponente Verifizierungsmikrocode umfassen, um, in Reaktion auf Initialisierung einer Verarbeitungsvorrichtung zum Starten der Vor-BS-Betriebsumgebung innerhalb der Verarbeitungsvorrichtung, zu versuchen, die Verifizierungsroutine zu authentifizieren, bevor die Verifizierungsroutine versucht, die gesicherte Firmware zu authentifizieren, um die Vertrauenskette mit dem Verifizierungsmikrocode zu starten.
  • In Beispiel 5, das den Gegenstand von einem beliebigen der Beispiele 1-4 umfasst, kann die Einrichtung eine zweite Prozessorkomponente umfassen, wobei die zweite Prozessorkomponente Verifizierungsmikrocode umfassen kann, um, in Reaktion auf Initialisierung einer Verarbeitungsvorrichtung zum Starten der Vor-BS-Betriebsumgebung innerhalb der Verarbeitungsvorrichtung, zu versuchen, die Verifizierungsroutine zu authentifizieren, bevor die Verifizierungsroutine versucht, die gesicherte Firmware zu authentifizieren, um die Vertrauenskette mit dem Verifizierungsmikrocode und der zweiten Prozessorkomponente zu starten.
  • In Beispiel 6, das den Gegenstand von einem beliebigen der Beispiele 1-5 umfasst, kann die Inselkomponente die erste Prozessorkomponente veranlassen, die zweite Prozessorkomponente auszulösen, um die sichere Insel zu erzeugen.
  • In Beispiel 7, das den Gegenstand von einem beliebigen der Beispiele 1-6 umfasst, kann die Einrichtung eine Messkomponente umfassen, um, in der Vor-BS-Betriebsumgebung, nach Laden der gesicherten Firmware in die sichere Insel und vor Verwenden der Unterstützungsroutine durch die nicht gesicherte Firmware über die erste API ein anfängliches Maß von Inhalten der sicheren Insel zu erzeugen.
  • In Beispiel 8, das den Gegenstand von einem beliebigen der Beispiele 1-7 umfasst, kann die erste Prozessorkomponente die Messkomponente umfassen.
  • In Beispiel 9, das den Gegenstand von einem beliebigen der Beispiele 1-8 umfasst, kann die Messkomponente, in der Vor-BS-Betriebsumgebung, ein anderes Maß der Inhalte der sicheren Insel erzeugen und, in Reaktion auf einen Aufruf von der nicht gesicherten Firmware an die Unterstützungsroutine über die erste API, die gesicherte Firmware zu authentifizieren, das andere Maß mit dem anfänglichen Maß vergleichen.
  • In Beispiel 10, das den Gegenstand von einem beliebigen der Beispiele 1-9 umfasst, kann die Messkomponente, in der BS-Betriebsumgebung, ein anderes Maß der Inhalte der sicheren Insel erzeugen und, in Reaktion auf einen Aufruf vom BS an die Unterstützungsroutine über die zweite API, die gesicherte Firmware zu authentifizieren, das andere Maß mit dem anfänglichen Maß vergleichen.
  • In Beispiel 11, das den Gegenstand von einem beliebigen der Beispiele 1-10 umfasst, kann die Unterstützungsroutine in Reaktion auf zumindest einen Aufruf an die Unterstützungsroutine von der nicht gesicherten Firmware über die erste API in der Vor-BS-Betriebsumgebung oder einen Aufruf an die Unterstützungsroutine vom BS über die zweite API in der BS-Betriebsumgebung auf eine innerhalb der sicheren Insel gespeicherte gesicherte Variable zugreifen.
  • In Beispiel 12, das den Gegenstand von einem beliebigen der Beispiele 1-11 umfasst, kann die gesicherte Variable eine Sicherheitsberechtigung und die Unterstützungsroutine, um die gesicherte Variable beim Verschlüsseln von gesendeten Daten, Entschlüsseln von empfangenen Daten und/oder beim Zugreifen auf gespeicherte Daten einzusetzen, umfassen.
  • In Beispiel 13, das den Gegenstand von einem beliebigen der Beispiele 1-12 umfasst, kann die gesicherte Firmware einen BS-Lader umfassen, um, in der Vor-BS-Umgebung, zumindest einen Teil des BS in den flüchtigen Speicher und außerhalb der sicheren Insel zu laden, in Vorbereitung auf das Ersetzen der Vor-BS-Betriebsumgebung durch die BS-Betriebsumgebung.
  • In Beispiel 14, das den Gegenstand von einem beliebigen der Beispiele 1-13 umfasst, kann die gesicherte Firmware versuchen, in der Vor-BS-Umgebung, das BS vor Laden des zumindest einen Teils des BS in den flüchtigen Speicher zu authentifizieren.
  • In Beispiel 15 umfasst eine Einrichtung eine erste Prozessorkomponente einer Verarbeitungsvorrichtung; einen flüchtigen Speicher der Verarbeitungsvorrichtung; eine Inselkomponente, um in einer Vor-Betriebssystem(Vor-BS)-Betriebsumgebung der Verarbeitungsvorrichtung eine sichere Insel innerhalb eines Teils des flüchtigen Speichers zu erzeugen, um Zugriff auf eine gesicherte Variable, die in die sichere Insel geladen ist, einzuschränken; einen ersten Firmwaretreiber, um in der Vor-BS-Betriebsumgebung eine erste Anwendungsprogrammierschnittstelle (API, Application Programming Interface) bereitzustellen, um es der nicht gesicherten Firmware zu ermöglichen, eine Unterstützungsroutine von außerhalb der sicheren Insel aufzurufen, um auf die gesicherte Variable zuzugreifen; und einen zweiten Firmwaretreiber, um in einer BS-Betriebsumgebung, die die Vor-BS-Betriebsumgebung ersetzt, eine zweite API bereitzustellen, um es einem BS der BS-Betriebsumgebung zu ermöglichen, die Unterstützungsroutine zum Zugreifen auf die gesicherte Variable von außerhalb der sicheren Insel aufzurufen.
  • In Beispiel 16, das den Gegenstand von Beispiel 15 umfasst, kann die Einrichtung umfassen: einen mit der Verarbeitungsvorrichtung gekoppelten nicht-flüchtigen Speicher zum Speichern der gesicherten Variable vor Laden der gesicherten Variable in die sichere Insel; eine Verifizierungsroutine, um zu versuchen, vor Erzeugung der sicheren Insel eine gesicherte Firmware innerhalb des nicht-flüchtigen Speichers zu authentifizieren, um zumindest die Verifizierungsroutine und die gesicherte Firmware in eine Vertrauenskette einzuschließen, wobei die gesicherte Firmware die Inselkomponente umfassen kann; und einen in die gesicherte Firmware integrierten Firmwarelader zum Laden der gesicherten Variable und der gesicherten Firmware in die sichere Insel nach erfolgreicher Authentifizierung der gesicherten Firmware durch die Verifizierungsroutine, um die Vertrauenskette zu erweitern, sodass sie die sichere Insel umfasst.
  • In Beispiel 17, das den Gegenstand von einem beliebigen der Beispiele 15-16 umfasst, kann die erste Prozessorkomponente Verifizierungsmikrocode umfassen, um, in Reaktion auf Initialisierung der Verarbeitungsvorrichtung zum Starten der Vor-BS-Betriebsumgebung innerhalb der Verarbeitungsvorrichtung, zu versuchen, die Verifizierungsroutine zu authentifizieren, bevor die Verifizierungsroutine versucht, die gesicherte Firmware zu authentifizieren, um die Vertrauenskette mit dem Verifizierungsmikrocode zu starten.
  • In Beispiel 18, das den Gegenstand von einem beliebigen der Beispiele 15-17 umfasst, kann die erste Prozessorkomponente, in Reaktion auf eine Unmöglichkeit, die Verifizierungsroutine oder die gesicherte Firmware zu authentifizieren, davon absehen, weitere Initialisierung der Verarbeitungsvorrichtung durchzuführen, die Initialisierung der Verarbeitungsvorrichtung neu starten oder eine Netzwerkschnittstelle der Verarbeitungsvorrichtung betreiben, um eine Anzeige der Unmöglichkeit über ein Netzwerk an eine andere Vorrichtung zu senden.
  • In Beispiel 19, das den Gegenstand von einem beliebigen der Beispiele 15-18 umfasst, kann die Einrichtung eine zweite Prozessorkomponente der Verarbeitungsvorrichtung umfassen, und die zweite Prozessorkomponente kann Verifizierungsmikrocode umfassen, um, in Reaktion auf Initialisierung der Verarbeitungsvorrichtung zum Starten der Vor-BS-Betriebsumgebung innerhalb der Verarbeitungsvorrichtung, zu versuchen, die Verifizierungsroutine zu authentifizieren, bevor die Verifizierungsroutine versucht, die gesicherte Firmware zu authentifizieren, um die Vertrauenskette mit dem Verifizierungsmikrocode und der zweiten Prozessorkomponente zu starten.
  • In Beispiel 20, das den Gegenstand von einem beliebigen der Beispiele 15-19 umfasst, kann die Inselkomponente die erste Prozessorkomponente veranlassen, die zweite Prozessorkomponente auszulösen, um die sichere Insel zu erzeugen.
  • In Beispiel 21, das den Gegenstand von einem beliebigen der Beispiele 15-20 umfasst, kann die Verarbeitungsvorrichtung eine Messkomponente umfassen, um, in der Vor-BS-Betriebsumgebung, nach Laden der gesicherten Firmware in die sichere Insel und vor Zugriff auf die gesicherte Variable durch die nicht gesicherte Firmware über die erste API ein anfängliches Maß von Inhalten der sicheren Insel zu erzeugen.
  • In Beispiel 22, das den Gegenstand von einem beliebigen der Beispiele 15-21 umfasst, kann die erste Prozessorkomponente die Messkomponente umfassen.
  • In Beispiel 23, das den Gegenstand von einem beliebigen der Beispiele 15-22 umfasst, kann die Messkomponente, in der Vor-BS-Betriebsumgebung, ein anderes Maß der Inhalte der sicheren Insel erzeugen und, in Reaktion auf einen Aufruf von der nicht gesicherten Firmware über die erste API, die gesicherte Firmware zu authentifizieren, das andere Maß mit dem anfänglichen Maß vergleichen.
  • In Beispiel 24, das den Gegenstand von einem beliebigen der Beispiele 15-23 umfasst, kann die Messkomponente, in der BS-Betriebsumgebung, ein anderes Maß der Inhalte der sicheren Insel erzeugen und, in Reaktion auf einen Aufruf vom BS über die zweite API, die gesicherte Firmware zu authentifizieren, das andere Maß mit dem anfänglichen Maß vergleichen.
  • In Beispiel 25, das den Gegenstand von einem beliebigen der Beispiele 15-24 umfasst, kann die Einrichtung eine Netzwerkschnittstelle zum Koppeln der Verarbeitungsvorrichtung mit einem Netzwerk umfassen, die gesicherte Variable kann eine Sicherheitsberechtigung zum Unterstützen von Datenverschlüsselung in Kommunikationen über die Netzwerkschnittstelle umfassen, die gesicherte Firmware kann die Unterstützungsroutine umfassen, und die Unterstützungsroutine kann die gesicherte Variable verwenden, um über das Netzwerk an eine andere Vorrichtung gesendete Daten zu verschlüsseln oder um von einer anderen Vorrichtung an der Netzwerkschnittstelle empfangene Daten zu entschlüsseln.
  • In Beispiel 26, das den Gegenstand von einem beliebigen der Beispiele 15-25 umfasst, kann die Einrichtung eine nicht-flüchtige Speicherkomponente der Verarbeitungsvorrichtung umfassen, die gesicherte Variable kann eine Sicherheitsberechtigung zum Unterstützen des Zugreifens auf innerhalb der nicht-flüchtigen Speicherkomponente gespeicherte Daten umfassen, die gesicherte Firmware kann die Unterstützungsroutine umfassen, und die Unterstützungsroutine kann die gesicherte Variable verwenden, um ein von der Verarbeitungsvorrichtung empfangenes Passwort zu authentifizieren, um Zugriff auf die innerhalb der nicht-flüchtigen Speicherkomponente gespeicherten Daten zu gewähren oder die gesicherte Variable verwendet, um die innerhalb des nicht-flüchtigen Speichers gespeicherten Daten zu entschlüsseln.
  • In Beispiel 27 umfasst ein computerumgesetztes Verfahren in einer Vor-Betriebssystem(Vor-BS)-Betriebsumgebung: Erzeugen einer sicheren Insel innerhalb eines Teils von flüchtigem Speicher einer Verarbeitungsvorrichtung; Laden, in der Vor-BS-Betriebsumgebung, einer in einem nicht-flüchtigen Speicher der Verarbeitungsvorrichtung gespeicherten gesicherten Firmware in die sichere Insel; Laden, in der Vor-BS-Betriebsumgebung, eines ersten Firmwaretreibers und eines zweiten Firmwaretreibers, die in dem nicht-flüchtigen Speicher gespeichert sind, in den flüchtigen Speicher und außerhalb der sicheren Insel; Ausführen, in der Vor-BS-Betriebsumgebung, des ersten Firmwaretreibers zum Bereitstellen einer ersten Anwendungsprogrammierschnittstelle (API), um es einer nicht gesicherten Firmware zu ermöglichen, eine Unterstützungsroutine der gesicherten Firmware von außerhalb der sicheren Insel in der Vor-BS-Betriebsumgebung aufzurufen; und Ausführen, in einer BS-Betriebsumgebung, die die Vor-BS-Betriebsumgebung ersetzt, des zweiten Firmwaretreibers zum Bereitstellen einer zweiten API, um es einem BS der BS-Betriebsumgebung zu ermöglichen, die Unterstützungsroutine von außerhalb der sicheren Insel in der BS-Betriebsumgebung aufzurufen.
  • In Beispiel 28, das den Gegenstand von Beispiel 27 umfasst, kann das Verfahren umfassen: Ausführen, durch eine erste Prozessorkomponente der Verarbeitungsvorrichtung, einer Verifizierungsroutine, um zu versuchen, vor Erzeugung der sicheren Insel die gesicherte Firmware innerhalb des nicht-flüchtigen Speichers zu authentifizieren, um zumindest die Verifizierungsroutine und die gesicherte Firmware in eine Vertrauenskette einzuschließen; und Ausführen, durch die erste Prozessorkomponente, der gesicherten Firmware, um nach erfolgreicher Authentifizierung der gesicherten Firmware durch die Verifizierungsroutine die sichere Insel zu erzeugen und die gesicherte Firmware in die sichere Insel zu laden, um die Vertrauenskette zu erweitern, sodass sie die sichere Insel umfasst.
  • In Beispiel 29, das den Gegenstand von einem beliebigen der Beispiele 27-28 umfasst, kann das Verfahren, in Reaktion auf Initialisierung der Verarbeitungsvorrichtung zum Starten der Vor-BS-Betriebsumgebung innerhalb der Verarbeitungsvorrichtung umfassen: Ausführen des in die erste Prozessorkomponente integrierten Verifizierungsmikrocodes, um zu versuchen, die Verifizierungsroutine zu authentifizieren, bevor die Verifizierungsroutine versucht, die gesicherte Firmware zu authentifizieren, um die Vertrauenskette mit dem Verifizierungsmikrocode zu starten.
  • In Beispiel 30, das den Gegenstand von einem beliebigen der Beispiele 27-29 umfasst, kann das Verfahren, in Reaktion auf eine Unmöglichkeit, die Verifizierungsroutine oder die gesicherte Firmware zu authentifizieren, umfassen: Absehen davon, weitere Initialisierung der Verarbeitungsvorrichtung durchzuführen, Neustarten der Initialisierung der Verarbeitungsvorrichtung oder Betreiben einer Netzwerkschnittstelle der Verarbeitungsvorrichtung, um eine Anzeige der Unmöglichkeit über ein Netzwerk an eine andere Vorrichtung zu senden.
  • In Beispiel 31, das den Gegenstand von einem beliebigen der Beispiele 27-30 umfasst, kann das Verfahren, in Reaktion auf Initialisierung der Verarbeitungsvorrichtung zum Starten der Vor-BS-Betriebsumgebung innerhalb der Verarbeitungsvorrichtung umfassen: Ausführen des in die zweite Prozessorkomponente integrierten Verifizierungsmikrocodes, um zu versuchen, die Verifizierungsroutine zu authentifizieren, bevor die Verifizierungsroutine versucht, die gesicherte Firmware zu authentifizieren, um die Vertrauenskette mit dem Verifizierungsmikrocode und der zweiten Prozessorkomponente zu starten.
  • In Beispiel 32, das den Gegenstand von einem beliebigen der Beispiele 27-31 umfasst, kann Erzeugen der sicheren Insel umfassen, dass die erste Prozessorkomponente die zweite Prozessorkomponente auslöst, um die sichere Insel zu erzeugen.
  • In Beispiel 33, das den Gegenstand von einem beliebigen der Beispiele 27-32 umfasst, kann das Verfahren Erzeugen eines anfänglichen Maßes von Inhalten der sicheren Insel in der Vor-BS-Betriebsumgebung nach Laden der gesicherten Firmware in die sichere Insel und vor Verwenden der Unterstützungsroutine durch die nicht gesicherte Firmware über die erste API umfassen.
  • In Beispiel 34, das den Gegenstand von einem beliebigen der Beispiele 27-33 umfasst, kann das Verfahren Erzeugen eines anderen Maßes der Inhalte der sicheren Insel und Vergleichen des anderen Maßes mit dem anfänglichen Maß in der Vor-BS-Betriebsumgebung, in Reaktion auf einen Aufruf von der nicht gesicherten Firmware an die Unterstützungsroutine über die erste API, die gesicherte Firmware zu authentifizieren, umfassen.
  • In Beispiel 35, das den Gegenstand von einem beliebigen der Beispiele 27-34 umfasst, kann das Verfahren Erzeugen eines anderen Maßes der Inhalte der sicheren Insel und Vergleichen des anderen Maßes mit dem anfänglichen Maß in der BS-Betriebsumgebung, in Reaktion auf einen Aufruf vom BS an die Unterstützungsroutine über die zweite API, die gesicherte Firmware zu authentifizieren, umfassen.
  • In Beispiel 36, das den Gegenstand von einem beliebigen der Beispiele 27-35 umfasst, kann das Verfahren Ausführen der Unterstützungsroutine zum Zugreifen auf eine innerhalb der sicheren Insel gespeicherte gesicherte Variable in Reaktion auf zumindest einen Aufruf an die Unterstützungsroutine von der nicht gesicherten Firmware über die erste API in der Vor-BS-Betriebsumgebung oder einen Aufruf an die Unterstützungsroutine vom BS über die zweite API in der BS-Betriebsumgebung umfassen.
  • In Beispiel 37, das den Gegenstand von einem beliebigen der Beispiele 27-36 umfasst, kann die Verarbeitungsvorrichtung eine Netzwerkschnittstelle zum Koppeln der Verarbeitungsvorrichtung mit einem Netzwerk umfassen, die gesicherte Variable kann eine Sicherheitsberechtigung zum Unterstützen von Datenverschlüsselung in Kommunikationen über die Netzwerkschnittstelle umfassen, und die Unterstützungsroutine kann die gesicherte Variable verwenden, um über das Netzwerk an eine andere Vorrichtung gesendete Daten zu verschlüsseln oder um von einer anderen Vorrichtung an der Netzwerkschnittstelle empfangene Daten zu entschlüsseln.
  • In Beispiel 38, das den Gegenstand von einem beliebigen der Beispiele 27-37 umfasst, kann die Verarbeitungsvorrichtung eine nicht-flüchtige Speicherkomponente umfassen, die gesicherte Variable kann eine Sicherheitsberechtigung zum Unterstützen des Zugreifens auf innerhalb der nicht-flüchtigen Speicherkomponente gespeicherte Daten umfassen, und die Unterstützungsroutine kann die gesicherte Variable verwenden, um ein von der Verarbeitungsvorrichtung empfangenes Passwort zu authentifizieren, um Zugriff auf die innerhalb der nicht-flüchtigen Speicherkomponente gespeicherten Daten zu gewähren oder die gesicherte Variable verwendet, um die innerhalb des nicht-flüchtigen Speichers gespeicherten Daten zu entschlüsseln.
  • In Beispiel 39, das den Gegenstand von einem beliebigen der Beispiele 27-38 umfasst, kann das Verfahren Ausführen, in der Vor-BS-Umgebung, eines BS-Laders der sicheren Firmware umfassen, um zumindest einen Teil des BS in den flüchtigen Speicher und außerhalb der sicheren Insel zu laden, in Vorbereitung auf das Ersetzen der Vor-BS-Betriebsumgebung durch die BS-Betriebsumgebung.
  • In Beispiel 40, das den Gegenstand von einem beliebigen der Beispiele 27-39 umfasst, kann das Verfahren Ausführen, in der Vor-BS-Umgebung, der gesicherten Firmware umfassen, um zu versuchen, das BS vor Laden des zumindest einen Teils des BS in den flüchtigen Speicher zu authentifizieren.
  • In Beispiel 41 umfasst zumindest ein greifbares maschinenlesbares Speichermedium Anweisungen, die, wenn durch eine Verarbeitungsvorrichtung ausgeführt, die Verarbeitungsvorrichtung veranlassen können, in einer Vor-Betriebssystem(Vor-BS)-Betriebsumgebung eine sichere Insel innerhalb eines Teils von flüchtigem Speicher zu erzeugen; in die sichere Insel, in der Vor-BS-Betriebsumgebung, eine in einem nicht-flüchtigen Speicher gespeicherte gesicherte Firmware zu laden; in den flüchtigen Speicher und außerhalb der sicheren Insel, in der Vor-BS-Betriebsumgebung, einen ersten Firmwaretreiber und einen zweiten Firmwaretreiber, die in dem nicht-flüchtigen Speicher gespeichert sind, zu laden; in der Vor-BS-Betriebsumgebung den ersten Firmwaretreiber auszuführen, um eine erste Anwendungsprogrammierschnittstelle (API) bereitzustellen, um es einer nicht gesicherten Firmware zu ermöglichen, eine Unterstützungsroutine der gesicherten Firmware von außerhalb der sicheren Insel in der Vor-BS-Betriebsumgebung aufzurufen; und, in einer BS-Betriebsumgebung, die die Vor-BS-Betriebsumgebung ersetzt, den zweiten Firmwaretreiber auszuführen, um eine zweite API bereitzustellen, um es einem BS der BS-Betriebsumgebung zu ermöglichen, die Unterstützungsroutine von außerhalb der sicheren Insel in der BS-Betriebsumgebung aufzurufen.
  • In Beispiel 42, das den Gegenstand von Beispiel 41 umfasst, kann die Verarbeitungsvorrichtung veranlasst werden, durch eine erste Prozessorkomponente der Verarbeitungsvorrichtung, eine Verifizierungsroutine auszuführen, um zu versuchen, vor Erzeugung der sicheren Insel die gesicherte Firmware innerhalb des nicht-flüchtigen Speichers zu authentifizieren, um zumindest die Verifizierungsroutine und die gesicherte Firmware in eine Vertrauenskette einzuschließen; und, durch die erste Prozessorkomponente, die gesicherte Firmware auszuführen, um nach erfolgreicher Authentifizierung der gesicherten Firmware durch die Verifizierungsroutine die sichere Insel zu erzeugen und die gesicherte Firmware in die sichere Insel zu laden, um die Vertrauenskette zu erweitern, sodass sie die sichere Insel umfasst.
  • In Beispiel 43, das den Gegenstand von einem beliebigen der Beispiele 41-42 umfasst, kann die Verarbeitungsvorrichtung veranlasst werden, in Reaktion auf Initialisierung der Verarbeitungsvorrichtung zum Starten der Vor-BS-Betriebsumgebung innerhalb der Verarbeitungsvorrichtung, den in die erste Prozessorkomponente integrierten Verifizierungsmikrocode auszuführen, um zu versuchen, die Verifizierungsroutine zu authentifizieren, bevor die Verifizierungsroutine versucht, die gesicherte Firmware zu authentifizieren, um die Vertrauenskette mit dem Verifizierungsmikrocode zu starten.
  • In Beispiel 44, das den Gegenstand von einem beliebigen der Beispiele 41-43 umfasst, kann die Verarbeitungsvorrichtung veranlasst werden, in Reaktion auf eine Unmöglichkeit, die Verifizierungsroutine oder die gesicherte Firmware zu authentifizieren, von einer Durchführung einer weiteren Initialisierung der Verarbeitungsvorrichtung abzusehen, die Initialisierung der Verarbeitungsvorrichtung neu zu starten oder eine Netzwerkschnittstelle der Verarbeitungsvorrichtung zu betreiben, um eine Anzeige der Unmöglichkeit über ein Netzwerk an eine andere Vorrichtung zu senden.
  • In Beispiel 45, das den Gegenstand von einem beliebigen der Beispiele 41-44 umfasst, kann die Verarbeitungsvorrichtung veranlasst werden, in Reaktion auf Initialisierung der Verarbeitungsvorrichtung zum Starten der Vor-BS-Betriebsumgebung innerhalb der Verarbeitungsvorrichtung, den in eine zweite Prozessorkomponente integrierten Verifizierungsmikrocode auszuführen, um zu versuchen, die Verifizierungsroutine zu authentifizieren, bevor die Verifizierungsroutine versucht, die gesicherte Firmware zu authentifizieren, um die Vertrauenskette mit dem Verifizierungsmikrocode und der zweiten Prozessorkomponente zu starten.
  • In Beispiel 46, das den Gegenstand von einem beliebigen der Beispiele 41-45 umfasst, kann die erste Prozessorkomponente die zweite Prozessorkomponente auslösen, um die sichere Insel zu erzeugen.
  • In Beispiel 47, das den Gegenstand von einem beliebigen der Beispiele 41-46 umfasst, kann die Verarbeitungsvorrichtung veranlasst werden, ein anfängliches Maß von Inhalten der sicheren Insel in der Vor-BS-Betriebsumgebung nach Laden der gesicherten Firmware in die sichere Insel und vor Verwenden der Unterstützungsroutine durch die nicht gesicherte Firmware über die erste API zu erzeugen.
  • In Beispiel 48, das den Gegenstand von einem beliebigen der Beispiele 41-47 umfasst, kann die Verarbeitungsvorrichtung veranlasst werden, ein anderes Maß der Inhalte der sicheren Insel zu erzeugen und das andere Maß mit dem anfänglichen Maß in der Vor-BS-Betriebsumgebung zu vergleichen, in Reaktion auf einen Aufruf von der nicht gesicherten Firmware an die Unterstützungsroutine über die erste API, die gesicherte Firmware zu authentifizieren.
  • In Beispiel 49, das den Gegenstand von einem beliebigen der Beispiele 41-48 umfasst, kann die Verarbeitungsvorrichtung veranlasst werden, ein anderes Maß der Inhalte der sicheren Insel zu erzeugen und das andere Maß mit dem anfänglichen Maß in der BS-Betriebsumgebung zu vergleichen, in Reaktion auf einen Aufruf vom BS an die Unterstützungsroutine über die zweite API, die gesicherte Firmware zu authentifizieren.
  • In Beispiel 50, das den Gegenstand von einem beliebigen der Beispiele 41-49 umfasst, kann die Verarbeitungsvorrichtung veranlasst werden, die Unterstützungsroutine zum Zugreifen auf eine innerhalb der sicheren Insel gespeicherte gesicherte Variable in Reaktion auf zumindest einen Aufruf an die Unterstützungsroutine von der nicht gesicherten Firmware über die erste API in der Vor-BS-Betriebsumgebung oder einen Aufruf an die Unterstützungsroutine vom BS über die zweite API in der BS-Betriebsumgebung auszuführen.
  • In Beispiel 51, das den Gegenstand von einem beliebigen der Beispiele 41-50 umfasst, kann die Verarbeitungsvorrichtung eine Netzwerkschnittstelle zum Koppeln der Verarbeitungsvorrichtung mit einem Netzwerk umfassen, die gesicherte Variable kann eine Sicherheitsberechtigung zum Unterstützen von Datenverschlüsselung in Kommunikationen über die Netzwerkschnittstelle umfassen, und die Unterstützungsroutine kann die gesicherte Variable verwenden, um über das Netzwerk an eine andere Vorrichtung gesendete Daten zu verschlüsseln oder um von einer anderen Vorrichtung an der Netzwerkschnittstelle empfangene Daten zu entschlüsseln.
  • In Beispiel 52, das den Gegenstand von einem beliebigen der Beispiele 41-51 umfasst, kann die Verarbeitungsvorrichtung eine nicht-flüchtige Speicherkomponente umfassen, die gesicherte Variable kann eine Sicherheitsberechtigung zum Unterstützen des Zugreifens auf innerhalb der nicht-flüchtigen Speicherkomponente gespeicherte Daten umfassen, und die Unterstützungsroutine kann die gesicherte Variable verwenden, um ein von der Verarbeitungsvorrichtung empfangenes Passwort zu authentifizieren, um Zugriff auf die innerhalb der nicht-flüchtigen Speicherkomponente gespeicherten Daten zu gewähren oder die gesicherte Variable verwendet, um die innerhalb des nicht-flüchtigen Speichers gespeicherten Daten zu entschlüsseln.
  • In Beispiel 53, das den Gegenstand von einem beliebigen der Beispiele 41-52 umfasst, kann die Verarbeitungsvorrichtung veranlasst werden, in der Vor-BS-Umgebung, einen BS-Lader der sicheren Firmware auszuführen, um zumindest einen Teil des BS in den flüchtigen Speicher und außerhalb der sicheren Insel zu laden, in Vorbereitung auf das Ersetzen der Vor-BS-Betriebsumgebung durch die BS-Betriebsumgebung.
  • In Beispiel 54, das den Gegenstand von einem beliebigen der Beispiele 41-53 umfasst, kann die Verarbeitungsvorrichtung veranlasst werden, in der Vor-BS-Umgebung, die gesicherte Firmware auszuführen, um zu versuchen, das BS vor Laden des zumindest einen Teils des BS in den flüchtigen Speicher zu authentifizieren.
  • In Beispiel 55 kann zumindest ein greifbares maschinenlesbares Speichermedium Anweisungen umfassen, die, wenn durch eine Prozessorkomponente ausgeführt, die Prozessorkomponente veranlassen, eine der oben genannten Aktionen durchzuführen.
  • In Beispiel 56 kann eine Einrichtung Mittel zum Durchführen einer der oben genannten Aktionen umfassen.

Claims (25)

  1. Einrichtung zum Unterstützen einer sicheren Verarbeitung, die Folgendes umfasst: eine erste Prozessorkomponente; einen flüchtigen Speicher, der mit der ersten Prozessorkomponente gekoppelt ist; eine Inselkomponente, um in einer Vor-Betriebssystem(Vor-BS)-Betriebsumgebung eine sichere Insel innerhalb eines Teils des flüchtigen Speichers zu erzeugen, um Zugriff auf eine gesicherte Firmware, die in die sichere Insel geladen ist, einzuschränken; einen ersten Firmwaretreiber, um in der Vor-BS-Betriebsumgebung eine erste Anwendungsprogrammierschnittstelle (API, Application Programming Interface) bereitzustellen, um es der nicht gesicherten Firmware zu ermöglichen, eine Unterstützungsroutine der gesicherten Firmware von außerhalb der sicheren Insel aufzurufen; und einen zweiten Firmwaretreiber, um in einer BS-Betriebsumgebung, die die Vor-BS-Betriebsumgebung ersetzt, eine zweite API bereitzustellen, um es einem BS der BS-Betriebsumgebung zu ermöglichen, die Unterstützungsroutine von außerhalb der sicheren Insel aufzurufen.
  2. Einrichtung nach Anspruch 1, umfassend eine Messkomponente, um, in der Vor-BS-Betriebsumgebung, nach Laden der gesicherten Firmware in die sichere Insel und vor Verwenden der Unterstützungsroutine durch die nicht gesicherte Firmware über die erste API ein anfängliches Maß von Inhalten der sicheren Insel zu erzeugen.
  3. Einrichtung nach Anspruch 2, wobei die erste Prozessorkomponente die Messkomponente umfasst.
  4. Einrichtung nach Anspruch 2, wobei die Messkomponente, in der Vor-BS-Betriebsumgebung, ein anderes Maß der Inhalte der sicheren Insel erzeugt und, in Reaktion auf einen Aufruf von der nicht gesicherten Firmware an die Unterstützungsroutine über die erste API, die gesicherte Firmware zu authentifizieren, das andere Maß mit dem anfänglichen Maß vergleicht.
  5. Einrichtung nach Anspruch 2, wobei die Messkomponente, in der BS-Betriebsumgebung, ein anderes Maß der Inhalte der sicheren Insel erzeugt und, in Reaktion auf einen Aufruf vom BS an die Unterstützungsroutine über die zweite API, die gesicherte Firmware zu authentifizieren, das andere Maß mit dem anfänglichen Maß vergleicht.
  6. Einrichtung nach Anspruch 1, wobei die Unterstützungsroutine, in Reaktion auf zumindest einen Aufruf an die Unterstützungsroutine von der nicht gesicherten Firmware über die erste API in der Vor-BS-Betriebsumgebung oder einen Aufruf an die Unterstützungsroutine vom BS über die zweite API in der BS-Betriebsumgebung auf eine innerhalb der sicheren Insel gespeicherte gesicherte Variable zugreift.
  7. Einrichtung nach Anspruch 1, wobei die gesicherte Firmware einen BS-Lader umfasst, um, in der Vor-BS-Umgebung, zumindest einen Teil des BS in den flüchtigen Speicher und außerhalb der sicheren Insel zu laden, in Vorbereitung auf das Ersetzen der Vor-BS-Betriebsumgebung durch die BS-Betriebsumgebung.
  8. Einrichtung zum Unterstützen einer sicheren Verarbeitung, die Folgendes umfasst: eine erste Prozessorkomponente einer Verarbeitungsvorrichtung; einen flüchtigen Speicher der Verarbeitungsvorrichtung; eine Inselkomponente, um in einer Vor-Betriebssystem(Vor-BS)-Betriebsumgebung der Verarbeitungsvorrichtung eine sichere Insel innerhalb eines Teils des flüchtigen Speichers zu erzeugen, um Zugriff auf eine gesicherte Variable, die in die sichere Insel geladen ist, einzuschränken; einen ersten Firmwaretreiber, um in der Vor-BS-Betriebsumgebung eine erste Anwendungsprogrammierschnittstelle (API, Application Programming Interface) bereitzustellen, um es der nicht gesicherten Firmware zu ermöglichen, eine Unterstützungsroutine von außerhalb der sicheren Insel aufzurufen, um auf die gesicherte Variable zuzugreifen; und einen zweiten Firmwaretreiber, um in einer BS-Betriebsumgebung, die die Vor-BS-Betriebsumgebung ersetzt, eine zweite API bereitzustellen, um es einem BS der BS-Betriebsumgebung zu ermöglichen, die Unterstützungsroutine zum Zugreifen auf die gesicherte Variable von außerhalb der sicheren Insel aufzurufen.
  9. Einrichtung nach Anspruch 8, die Folgendes umfasst: einen mit der Verarbeitungsvorrichtung gekoppelten nicht-flüchtigen Speicher zum Speichern der gesicherten Variable vor Laden der gesicherten Variable in die sichere Insel; eine Verifizierungsroutine, um zu versuchen, vor Erzeugung der sicheren Insel eine gesicherte Firmware innerhalb des nicht-flüchtigen Speichers zu authentifizieren, um zumindest die Verifizierungsroutine und die gesicherte Firmware in eine Vertrauenskette einzuschließen, wobei die gesicherte Firmware die Inselkomponente umfasst; und einen in die gesicherte Firmware integrierten Firmwarelader zum Laden der gesicherten Variable und der gesicherten Firmware in die sichere Insel nach erfolgreicher Authentifizierung der gesicherten Firmware durch die Verifizierungsroutine, um die Vertrauenskette zu erweitern, sodass sie die sichere Insel umfasst.
  10. Einrichtung nach Anspruch 9, wobei die erste Prozessorkomponente Verifizierungsmikrocode umfasst, um, in Reaktion auf Initialisierung der Verarbeitungsvorrichtung zum Starten der Vor-BS-Betriebsumgebung innerhalb der Verarbeitungsvorrichtung, zu versuchen, die Verifizierungsroutine zu authentifizieren, bevor die Verifizierungsroutine versucht, die gesicherte Firmware zu authentifizieren, um die Vertrauenskette mit dem Verifizierungsmikrocode zu starten.
  11. Einrichtung nach Anspruch 10, wobei die erste Prozessorkomponente, in Reaktion auf eine Unmöglichkeit, die Verifizierungsroutine oder die gesicherte Firmware zu authentifizieren, davon absieht, weitere Initialisierung der Verarbeitungsvorrichtung durchzuführen, die Initialisierung der Verarbeitungsvorrichtung neu startet oder eine Netzwerkschnittstelle der Verarbeitungsvorrichtung betreibt, um eine Anzeige der Unmöglichkeit über ein Netzwerk an eine andere Vorrichtung zu senden.
  12. Einrichtung nach Anspruch 9, eine zweite Prozessorkomponente der Verarbeitungsvorrichtung umfassend, wobei die zweite Prozessorkomponente Verifizierungsmikrocode umfasst, um, in Reaktion auf Initialisierung der Verarbeitungsvorrichtung zum Starten der Vor-BS-Betriebsumgebung innerhalb der Verarbeitungsvorrichtung, zu versuchen, die Verifizierungsroutine zu authentifizieren, bevor die Verifizierungsroutine versucht, die gesicherte Firmware zu authentifizieren, um die Vertrauenskette mit dem Verifizierungsmikrocode und der zweiten Prozessorkomponente zu starten.
  13. Einrichtung nach Anspruch 12, wobei die Inselkomponente die erste Prozessorkomponente veranlasst, die zweite Prozessorkomponente auszulösen, um die sichere Insel zu erzeugen.
  14. Einrichtung nach Anspruch 9, umfassend eine Netzwerkschnittstelle zum Koppeln der Verarbeitungsvorrichtung mit einem Netzwerk, wobei die gesicherte Variable eine Sicherheitsberechtigung zum Unterstützen von Datenverschlüsselung in Kommunikationen über die Netzwerkschnittstelle umfasst, die gesicherte Firmware die Unterstützungsroutine umfasst und die Unterstützungsroutine die gesicherte Variable verwendet, um über das Netzwerk an eine andere Vorrichtung gesendete Daten zu verschlüsseln oder um von einer anderen Vorrichtung an der Netzwerkschnittstelle empfangene Daten zu entschlüsseln.
  15. Einrichtung nach Anspruch 9, umfassend eine nicht-flüchtige Speicherkomponente der Verarbeitungsvorrichtung, wobei die gesicherte Variable eine Sicherheitsberechtigung zum Unterstützen des Zugreifens auf innerhalb der nicht-flüchtigen Speicherkomponente gespeicherte Daten umfasst, die gesicherte Firmware die Unterstützungsroutine umfasst und die Unterstützungsroutine die gesicherte Variable verwendet, um ein von der Verarbeitungsvorrichtung empfangenes Passwort zu authentifizieren, um Zugriff auf die innerhalb der nicht-flüchtigen Speicherkomponente gespeicherten Daten zu gewähren oder die gesicherte Variable verwendet, um die innerhalb des nicht-flüchtigen Speichers gespeicherten Daten zu entschlüsseln.
  16. Computerumgesetztes Verfahren zum Unterstützen einer sicheren Verarbeitung, umfassend: Erzeugen, in einer Vor-Betriebssystem(Vor-BS)-Betriebsumgebung, einer sicheren Insel innerhalb eines Teils von flüchtigem Speicher einer Verarbeitungsvorrichtung; Laden, in der Vor-BS-Betriebsumgebung, einer in einem nicht-flüchtigen Speicher der Verarbeitungsvorrichtung gespeicherten gesicherten Firmware in die sichere Insel; Laden, in der Vor-BS-Betriebsumgebung, eines ersten Firmwaretreibers und eines zweiten Firmwaretreibers, die in dem nicht-flüchtigen Speicher gespeichert sind, in den flüchtigen Speicher und außerhalb der sicheren Insel; Ausführen, in der Vor-BS-Betriebsumgebung, des ersten Firmwaretreibers zum Bereitstellen einer ersten Anwendungsprogrammierschnittstelle (API), um es einer nicht gesicherten Firmware zu ermöglichen, eine Unterstützungsroutine der gesicherten Firmware von außerhalb der sicheren Insel in der Vor-BS-Betriebsumgebung aufzurufen; und Ausführen, in einer BS-Betriebsumgebung, die die Vor-BS-Betriebsumgebung ersetzt, des zweiten Firmwaretreibers zum Bereitstellen einer zweiten API, um es einem BS der BS-Betriebsumgebung zu ermöglichen, die Unterstützungsroutine von außerhalb der sicheren Insel in der BS-Betriebsumgebung aufzurufen.
  17. Computerumgesetztes Verfahren nach Anspruch 16, umfassend: Ausführen, durch eine erste Prozessorkomponente der Verarbeitungsvorrichtung, einer Verifizierungsroutine, um zu versuchen, vor Erzeugung der sicheren Insel die gesicherte Firmware innerhalb des nicht-flüchtigen Speichers zu authentifizieren, um zumindest die Verifizierungsroutine und die gesicherte Firmware in eine Vertrauenskette einzuschließen; und Ausführen, durch die erste Prozessorkomponente, der gesicherten Firmware, um nach erfolgreicher Authentifizierung der gesicherten Firmware durch die Verifizierungsroutine die sichere Insel zu erzeugen und die gesicherte Firmware in die sichere Insel zu laden, um die Vertrauenskette zu erweitern, sodass sie die sichere Insel umfasst.
  18. Computerumgesetztes Verfahren nach Anspruch 17, umfassend, in Reaktion auf Initialisierung der Verarbeitungsvorrichtung zum Starten der Vor-BS-Betriebsumgebung innerhalb der Verarbeitungsvorrichtung, Ausführen des in die erste Prozessorkomponente integrierten Verifizierungsmikrocodes, um zu versuchen, die Verifizierungsroutine zu authentifizieren, bevor die Verifizierungsroutine versucht, die gesicherte Firmware zu authentifizieren, um die Vertrauenskette mit dem Verifizierungsmikrocode zu starten.
  19. Computerumgesetztes Verfahren nach Anspruch 16, umfassend Erzeugen eines anfänglichen Maßes von Inhalten der sicheren Insel in der Vor-BS-Betriebsumgebung nach Laden der gesicherten Firmware in die sichere Insel und vor Verwenden der Unterstützungsroutine durch die nicht gesicherte Firmware über die erste API.
  20. Computerumgesetztes Verfahren nach Anspruch 19, umfassend Erzeugen eines anderen Maßes der Inhalte der sicheren Insel und Vergleichen des anderen Maßes mit dem anfänglichen Maß in der Vor-BS-Betriebsumgebung, in Reaktion auf einen Aufruf von der nicht gesicherten Firmware an die Unterstützungsroutine über die erste API, die gesicherte Firmware zu authentifizieren.
  21. Computerumgesetztes Verfahren nach Anspruch 19, umfassend Erzeugen eines anderen Maßes der Inhalte der sicheren Insel und Vergleichen des anderen Maßes mit dem anfänglichen Maß in der BS-Betriebsumgebung, in Reaktion auf einen Aufruf vom BS an die Unterstützungsroutine über die zweite API, die gesicherte Firmware zu authentifizieren.
  22. Computerumgesetztes Verfahren nach Anspruch 16, umfassend Ausführen der Unterstützungsroutine, in Reaktion auf zumindest einen Aufruf an die Unterstützungsroutine von der nicht gesicherten Firmware über die erste API in der Vor-BS-Betriebsumgebung oder einen Aufruf an die Unterstützungsroutine vom BS über die zweite API in der BS-Betriebsumgebung, um auf eine innerhalb der sicheren Insel gespeicherte gesicherte Variable zuzugreifen.
  23. Computerumgesetztes Verfahren nach Anspruch 22, wobei die Verarbeitungsvorrichtung eine Netzwerkschnittstelle zum Koppeln der Verarbeitungsvorrichtung mit einem Netzwerk umfasst, die gesicherte Variable eine Sicherheitsberechtigung zum Unterstützen von Datenverschlüsselung in Kommunikationen über die Netzwerkschnittstelle umfasst und die Unterstützungsroutine die gesicherte Variable verwendet, um über das Netzwerk an eine andere Vorrichtung gesendete Daten zu verschlüsseln oder um von einer anderen Vorrichtung an der Netzwerkschnittstelle empfangene Daten zu entschlüsseln.
  24. Computerumgesetztes Verfahren nach Anspruch 22, wobei die Verarbeitungsvorrichtung eine nicht-flüchtige Speicherkomponente umfasst, die gesicherte Variable eine Sicherheitsberechtigung zum Unterstützen des Zugreifens auf innerhalb der nicht-flüchtigen Speicherkomponente gespeicherte Daten umfasst und die Unterstützungsroutine die gesicherte Variable verwendet, um ein von der Verarbeitungsvorrichtung empfangenes Passwort zu authentifizieren, um Zugriff auf die innerhalb der nicht-flüchtigen Speicherkomponente gespeicherten Daten zu gewähren oder die gesicherte Variable verwendet, um die innerhalb des nicht-flüchtigen Speichers gespeicherten Daten zu entschlüsseln.
  25. Zumindest ein greifbares maschinenlesbares Speichermedium umfassend Anweisungen, die, wenn durch eine Prozessorkomponente ausgeführt, die Prozessorkomponente veranlassen, das Verfahren nach einem der Ansprüche 16-24 durchzuführen.
DE112015007220.9T 2015-12-24 2015-12-24 Techniken zum Koordinieren von Vorrichtungshochfahrsicherheit Withdrawn DE112015007220T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/098651 WO2017107122A1 (en) 2015-12-24 2015-12-24 Techniques for coordinating device boot security

Publications (1)

Publication Number Publication Date
DE112015007220T5 true DE112015007220T5 (de) 2018-09-20

Family

ID=59088702

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112015007220.9T Withdrawn DE112015007220T5 (de) 2015-12-24 2015-12-24 Techniken zum Koordinieren von Vorrichtungshochfahrsicherheit

Country Status (3)

Country Link
US (1) US10747884B2 (de)
DE (1) DE112015007220T5 (de)
WO (1) WO2017107122A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10884952B2 (en) * 2016-09-30 2021-01-05 Intel Corporation Enforcing memory operand types using protection keys
JP6706278B2 (ja) * 2018-03-27 2020-06-03 キヤノン株式会社 情報処理装置、及び情報処理方法
EP3762846B1 (de) * 2018-04-11 2023-06-07 Google LLC Einander misstrauende enklaven
US10846162B2 (en) * 2018-11-29 2020-11-24 Oracle International Corporation Secure forking of error telemetry data to independent processing units
US11196832B2 (en) * 2019-03-05 2021-12-07 Dell Products L.P. System and method for providing UEFI protocol access control
US11734429B1 (en) * 2022-03-24 2023-08-22 Dell Products L.P. Secure bios-enabled passthrough system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7200758B2 (en) 2002-10-09 2007-04-03 Intel Corporation Encapsulation of a TCPA trusted platform module functionality within a server management coprocessor subsystem
US7162626B2 (en) * 2003-09-25 2007-01-09 Intel Corporation Use of common language infrastructure for sharing drivers and executable content across execution environments
US7836309B2 (en) * 2007-07-20 2010-11-16 Microsoft Corporation Generic extensible pre-operating system cryptographic infrastructure
US20090327741A1 (en) 2008-06-30 2009-12-31 Zimmer Vincent J System and method to secure boot uefi firmware and uefi-aware operating systems on a mobile internet device (mid)
US8589302B2 (en) * 2009-11-30 2013-11-19 Intel Corporation Automated modular and secure boot firmware update
US10248428B2 (en) 2014-04-28 2019-04-02 Intel Corporation Securely booting a computing device

Also Published As

Publication number Publication date
US10747884B2 (en) 2020-08-18
US20180341774A1 (en) 2018-11-29
WO2017107122A1 (en) 2017-06-29

Similar Documents

Publication Publication Date Title
DE112015007220T5 (de) Techniken zum Koordinieren von Vorrichtungshochfahrsicherheit
DE112018002031B4 (de) Sichern einer betriebssystemkonfiguration unter verwendung von hardware
DE102008011925B4 (de) Sicheres Initialisieren von Computersystemen
DE102008021567B4 (de) Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel
DE102009013384B4 (de) System und Verfahren zur Bereitstellung einer sicheren Anwendungsfragmentierungsumgebung
EP3259698B1 (de) Autonom bootendes system mit einem sicherheitsmodul
DE10393662T5 (de) Bereitstellen eines sicheren Ausführungsmodus in einer Preboot-Umgebung
EP3437012B1 (de) Verfahren, prozessor und gerät zur integritätsprüfung von nutzerdaten
DE112019005701T5 (de) Sichere boot-unterstützung für vorrichtungen und zugehörige systeme, verfahren und vorrichtungen
DE112009004491T5 (de) System und Verfahren zum sicheren Speichern von Daten in einem elektronischen Gerät
DE102018004786A1 (de) Verfahren und Vorrichtung zum sicheren Binden eines ersten Prozessors an einen zweiten Prozessor
DE102013105248A1 (de) Vorrichtung zum Erzeugen eines Sicherheitsschlüssels unter Verwendung einer Vorrichtungs-ID und von Benutzer-Authentifizierungsinformation
DE102018115683A1 (de) Domänenübergreifende sicherheit in kryptographisch partionierter cloud
DE112020000792T5 (de) Durch grafikverarbeitungseinheit beschleunigte vertrauenswürdige ausführungsumgebung
DE112011102876T5 (de) Ressourcenverwaltungs- und Sicherheitssystem
DE102018126136A1 (de) Technologien zur biometrischen Authentifizierung vor dem Booten
DE112011105687T5 (de) Verwendung eines Option-ROM-Speichers
DE112017005005T5 (de) Systeme, vorrichtungen, und verfahren zur plattformsicherheit
EP3557463A1 (de) Verfahren und ausführungsumgebung zum ausführen von programmcode auf einem feldgerät
DE112018006401T5 (de) Transparent zugeordnete flash-memory-sicherheit
DE102022108380A1 (de) Verwaltung der speicherung von geheimnissen in speichern von baseboard-management-controller
EP1705592A2 (de) Verfahren und Steuervorrichtung zur Steuerung eines Zugriffs eines Computers auf Nutzdaten
DE112019005417T5 (de) Sichern von Datenprotokollen in Arbeitsspeichervorrichtungen
EP3286872B1 (de) Bereitstellen eines gerätespezifischen kryptographischen schlüssels aus einem systemübergreifenden schlüssel für ein gerät
DE112019007230T5 (de) Multimodus-Geschützter-Speicher

Legal Events

Date Code Title Description
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee