DE102007057901A1 - Anordnung und Verfahren zur sicheren Aktualisierung von Firmwarevorrichtungen unter Verwendung eines Hypervisor - Google Patents

Anordnung und Verfahren zur sicheren Aktualisierung von Firmwarevorrichtungen unter Verwendung eines Hypervisor Download PDF

Info

Publication number
DE102007057901A1
DE102007057901A1 DE102007057901A DE102007057901A DE102007057901A1 DE 102007057901 A1 DE102007057901 A1 DE 102007057901A1 DE 102007057901 A DE102007057901 A DE 102007057901A DE 102007057901 A DE102007057901 A DE 102007057901A DE 102007057901 A1 DE102007057901 A1 DE 102007057901A1
Authority
DE
Germany
Prior art keywords
firmware
firmware update
guest operating
operating systems
hash value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE102007057901A
Other languages
English (en)
Other versions
DE102007057901B4 (de
Inventor
Daryl Carvis Cromer
Howard Jeffrey Locker
Randall Scott Springfield
Rod D. Waltermann
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.)
Lenovo Singapore Pte Ltd
Original Assignee
Lenovo Singapore Pte Ltd
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 Lenovo Singapore Pte Ltd filed Critical Lenovo Singapore Pte Ltd
Publication of DE102007057901A1 publication Critical patent/DE102007057901A1/de
Application granted granted Critical
Publication of DE102007057901B4 publication Critical patent/DE102007057901B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S40/00Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
    • Y04S40/20Information technology specific aspects, e.g. CAD, simulation, modelling, system security

Abstract

Eine Anordnung, ein Verfahren und ein Programmprodukt werden zur Verfügung gestellt, das eine Firmwareaktualisierung an einem Rechnersystem empfängt und verarbeitet. Das Rechnersystem führt einen Hypervisor und ein oder mehrere Gastbetriebssysteme aus, und die Firmwareaktualisierung bezieht sich auf eine durch das Rechnersystem zugängliche Hardwarevorrichtung. Die Hardwarevorrichtung ist von einer Art, die mit Hilfe einer aktualisierbaren Firmware programmiert wird. Der Hypervisor, der im Rechnersystem abläuft, verarbeitet die empfangene Firmwareaktualisierung durch zuerst das Sperren der Verwendung der Vorrichtung durch jedes der Gastbetriebssysteme. Nachdem die Gastbetriebssysteme daran gehindert worden sind, die Vorrichtung zu verwenden, wird die Firmware in der Vorrichtung durch den Hypervisor unter Verwendung der empfangenen Firmwareaktualisierung einem Upgrade unterzogen. Nachdem der Upgrade der Firmware ausgeführt wurde, wird die Verwendung der Vorrichtung für jedes der Gastbetriebssysteme zugelassen.

Description

  • Die vorliegende Erfindung bezieht sich auf eine Anordnung und ein Verfahren, die Firmwarevorrichtungen sicher aktualisieren. Im Besonderen bezieht sich die vorliegende Erfindung auf eine Anordnung und ein Verfahren, die einen Hypervisor verwenden, um eine sichere Umgebung zur Verfügung zu stellen, um Firmwarevorrichtungen zu aktualisieren.
  • Firmware ist ein Softwareprogramm oder ein Satz von Anweisungen, die auf einer Hardwarevorrichtung programmiert sind. Firmware stellt die Anweisungen zur Verfügung, die steuern, wie die Vorrichtung mit anderer Computerhardware, einschließlich der Hauptanordnung, kommuniziert. Firmware wird typischerweise im Flash ROM (Read Only Memory – schreibgeschützter Datenspeicher) einer Hardwarevorrichtung abgelegt. Während ROM im Wesentlichen ein "Read Only Memory" ist, ist Flash ROM eine Art von Flashdatenspeicher, der gelöscht und neu beschrieben werden kann.
  • Firmware kann als "halbpermanent" betrachtet werden, da sie unverändert bleibt, es sei denn, sie wird durch einen Firmwareaktualisierer aktualisiert. Es kann sein, dass Firmware von bestimmten Vorrichtungen, wie zum Beispielen Festplatten und Videokarten dann und wann aktualisiert werden muss zum Zweck, dass diese korrekt funktionieren (zum Beispiel auf Grund eines neuen Betriebssystems, das auf dem Rechnersystem installiert wird). Firmware wird auch aktualisiert, um die Funktionalität von Vorrichtungen und deren Wirkungsgrad zu verbessern. Zum Beispiel machen Hersteller von CD- und DVD-Laufwerken oft Firmwareaktualisierungen verfügbar, die ermöglichen, dass die Laufwerke schnellere Medien lesen können.
  • Hersteller haben festgestellt, dass es sowohl billiger als auch flexibler ist, die Firmware vom Hostrechnersystem zu laden. Als Ergebnis davon ist eine große Anzahl der gegenwärtigen Hardware außerstande, auf irgendeine nützliche Weise zu funktionieren, bis der Hostcomputer sie mit der erforderlichen Firmware ausgestattet hat. Diese Firmwarelast wird durch den Vorrichtungstreiber gehandhabt.
  • In gewisser Hinsicht ist Firmware genauso eine Softwarekomponente einer aktiven Anordnung wie das Betriebssystem. Bei traditionellen Rechnersystemen ist jedoch im Gegensatz zu den meisten modernen Betriebssystemen ein Mangel an einem guten entwickelten Mechanismus für das Aktualisieren der Firmware problematisch, um Programmfehler zu korrigieren und Probleme der Funktionalität anzugehen, die festgestellt werden, nachdem die Einheit ausgeliefert wurde.
  • Eine weitere Herausforderung, der sich traditionelle Firmwareaktualisierungen gegenüber sehen, ist, dass Mechanismen für das Feststellen von Firmwareversionen und das Aktualisieren von diesen nicht standardisiert sind. Als Ergebnis neigen diese Vorrichtungen dazu, einen bedeutend höheren Prozentsatz von firmwareabhängigen Problemen der Funktionalität aufzuweisen, als im Vergleich mit anderen Teilen eines modernen Rechnersystems.
  • Herausforderungen bezüglich der Aktualisierung der Firmware werden durch die Erhöhung der Komplexität in modernen Rechnersystemen verschärft. Moderne Rechnersysteme können mehr als ein Betriebssystem aufweisen, die zu einem gegebenen Zeitpunkt auf der Anordnung ablaufen. Außerdem ist eine wachsende Anzahl von Programmen bösartig, wie zum Beispiel Softwareviren. Diese bösartigen Anwendungen haben in den meisten traditionellen Anordnungen das Potential dazu, die Firmware einer Vorrichtung zu aktualisieren oder sogar zu löschen. Diese Herausforderungen sind in großen Organisationen, die stabile Anordnungen mit Standardsoftware einschließlich Vorrichtungstreibern benötigen, die vom Helpdesk der Organisationen nachverfolgt und verwaltet werden können, noch offensichtlicher.
  • Es ist festgestellt worden, dass die oben genannten Herausforderungen gelöst werden unter Verwendung einer Anordnung, eines Verfahren und eines Computerprogrammprodukts, die eine Firmwareaktualisierung an einem Rechnersystem empfangen und verarbeiten. Das Rechnersystem führt einen Hypervisor und ein oder mehrere Gastbetriebssysteme aus, und die Firmwareaktualisierung bezieht sich auf eine durch das Rechnersystem zugängliche Hardwarevorrichtung. Die Hardwarevorrichtung ist von einem Typ, der mit Hilfe einer aktualisierbaren Firmware programmiert wird. Der Hypervisor, der im Rechnersystem wirksam wird, verarbeitet die empfangene Firmwareaktualisierung, in dem er zuerst die Verwendung der Vorrichtung durch jedes der Gastbetriebssysteme sperrt. Nachdem die Gastbetriebssysteme daran gehindert worden sind, die Vorrichtung zu verwenden, wird die Firmware in der Vorrichtung unter Verwendung der empfangenen Firmwareaktualisierung durch den Hypervisor nachgerüstet. Nachdem der Upgrade (die Aufrüstung) der Firmware durchgeführt worden ist, wird die Verwendung der Vorrichtung für jedes Gastbetriebssystem zugelassen.
  • In einer Ausführungsform wird die Firmwareaktualisierung vor dem Upgrade der Firmware validiert. In dieser Ausführungsform wird das Ausführen des Upgrades nur als Reaktion auf eine erfolgreiche Validierung der Firmwareaktualisierung ausgeführt.
  • In einer weiteren Ausführungsform der Validierung beinhaltet die Validierung, ein Kennwort vom Anwender des Rechnersystems zu erhalten, das verwendet wird, um Firmwareaktualisierungen zu steuern. Das vom Anwender zur Verfügung gestellte Kennwort wird mit einem erwarteten Kennwort verglichen. In dieser Ausführungsform wird das Ausführen des Upgrades nur durchgeführt, wenn das empfangene Kennwort mit dem erwarteten Kennwort übereinstimmt.
  • In einer weitern Ausführungsform der Validierung wird eine mit der empfangenen Firmwareaktualisierung mitgelieferte digitale Signatur analysiert. In dieser Ausführungsform wird das Ausführen des Upgrades nur ausgeführt nach dem Verifizieren, dass die empfangene Firmwareaktualisierung digital von einem autorisierten Anwender signiert worden ist. Zum Beispiel signiert (verschlüsselt) ein autorisierter Anwender unter Verwendung asymmetrischer Schlüssel die Firmwareaktualisierung digital unter Verwendung des privaten Schlüssels des autorisierten Anwenders. Der Hypervisor überprüft die digitale Signatur durch Entschlüsseln der signierten Firmwareaktualisierung unter Verwendung des öffentlichen Schlüssels des autorisierten Anwenders.
  • In einer noch weiteren Ausführungsform der Validierung, führt der Hypervisor einen Hashalgorithmus gegen die empfangene Firmwareaktualisierung aus, die zu einem Hashwert führt. Der Hashwert wird mit einem erwarteten Hashwert verglichen. In dieser Ausführungsform wird die Firmwareaktualisierung zurückgewiesen als Reaktion auf den Hashwert, der nicht mit dem erwarteten Hashwert übereinstimmt, und die Firmwareaktualisie rung wird als Reaktion auf den Hashwert akzeptiert, der mit dem erwarteten Hashwert übereinstimmt. Ein Systemadministrator kann zum Beispiel erwartete Hashwerte für Firmwareaktualisierungen bereitstellen. Das Rechnersystem kann dann eine Firmwareaktualisierung von einer öffentlichen Quelle, wie zum Beispiel einer über das Internet zugänglichen Website herunterladen. Der Hypervisor stellt durch Ausführen des Hashalgorithmus gegen die herunter geladene Firmwareaktualisierung sicher, dass die Firmwareaktualisierung gültig ist. Wenn der Hashwert nicht mit dem erwarteten Hashwert übereinstimmt und möglicherweise eine verfälschte Firmwareaktualisierung anzeigt, die böswilligen Code enthält, weist der Hypervisor die Firmwareaktualisierung zurück.
  • In einer Ausführungsform trennt der Hypervisor, um die Verwendung der Vorrichtung zu sperren, die aktualisiert wird, die Vorrichtung von jedem der Gastbetriebssysteme. Der Hypervisor setzt dann jedes der Gastbetriebssysteme vorübergehend aus. Nachdem die Firmware der Vorrichtung einem Upgrade unterzogen worden ist, lässt der Hypervisor die Verwendung der Vorrichtung dadurch zu, dass der Betrieb jedes der Gastbetriebssysteme wieder aufgenommen wird und die Vorrichtung mit jedem der Gastbetriebssysteme verbunden wird, nachdem der Betrieb der Gastbetriebssysteme wieder aufgenommen wurde.
  • In einer Ausführungsform puffert der Hypervisor, um die Verwendung der Vorrichtung zu sperren, die aktualisiert wird, Anfragen von den Gastbetriebssystemen in einem Pufferspeicher. Nachdem die Firmware der Vorrichtung einem Upgrade unterzogen worden ist, lässt der Hypervisor die Verwendung der Vorrichtung zu, in dem er die zwischengespeicherten Anfragen zur Vorrichtung zu sendet.
  • Das Vorangehende ist eine Zusammenfassung und enthält daher notwendigerweise Vereinfachungen, Verallgemeinerungen und das Auslassen von Details; als Folge davon wird der Fachmann erkennen, dass die Zusammenfassung nur veranschaulichend ist, und nicht beabsichtigt ist, in irgendeiner Weise einschränkend zu sein. Andere Aspekte, erfinderische Merkmale und Vorteile der vorliegenden Erfindung, wie einzig durch die Ansprüche definiert, werden offensichtlich aus der nicht einschränkenden detaillierten Beschreibung, die nachfolgend ausgeführt wird.
  • Die vorliegende Erfindung kann besser verstanden werden und ihre zahlreiche Ziele, Merkmale und Vorteile können jenen, die in der Technik ausgebildet sind, klar gemacht werden durch Bezugnahme auf die begleitenden Zeichnungen, wobei:
  • 1 ein Diagramm auf höherer Ebene ist, das ausgewählte Rechnerkomponenten zeigt, die unter Verwendung eines Hypervisor bei der Aktualisierung der Firmware von Anordnungen verwendet wird;
  • 2 ein Ablaufdiagramm auf höherer Ebene ist, das die Schritte zeigt, die ergriffen werden, um die Firmware von Anordnungen unter Verwendung eines Hypervisor zu aktualisieren;
  • 3 ein Ablaufdiagramm ist, das die Schritte zeigt, die ergriffen werden, um Firmwareaktualisierungssoftware zu validieren;
  • 4 ein Ablaufdiagramm ist, das Schritte zeigt, die vom Hypervisor ergriffen werden, um das Rechnersystem auf eine Firmwareaktualisierung vorzubereiten;
  • 5 ein Ablaufdiagramm ist, das weitere Schritte zeigt, die vom Hypervisor ergriffen werden, um die Firmwareaktualisierung zu initialisieren und diese für das (die) Gastbetriebssystem(e) verfügbar zu machen; und
  • 6 ein Blockdiagramm einer Datenverarbeitungsanlage ist, in der die hierin beschriebenen Verfahren ausgeführt werden können.
  • Das Folgende beabsichtigt eine detaillierte Beschreibung eines Beispiels für die Erfindung zur Verfügung zu stellen und sollte nicht als die Erfindung selbst eingrenzend verstanden werden. Vielmehr kann eine beliebige Anzahl von Variationen innerhalb des Schutzumfangs der Erfindung fallen, die in den Ansprüchen definiert ist, die der Beschreibung folgen.
  • 1 ist ein Diagramm auf höherer Ebene, das ausgewählte Computerkomponenten zeigt, die dabei verwendet werden, unter Verwendung eines Hypervisor Firmware der Vorrichtung zu aktualisieren. Ausgewählte Rechnersystemkomponenten 100 umfassen einen Hypervisor 110, auf dem ein oder mehrere Gastbetriebssysteme wirksam werden. In der gezeigten Ausführungsform werden zwei Gastbetriebssysteme unter der Steuerung des Hypervisors 110 wirksam. Beispiele für Gastbetriebssysteme umfassen das LinuxTM Betriebssystem 120 und ein Microsoft WindowsTM Betriebssystem 130 (wie zum Beispiel Windows XPTM, Windows VistaTM, usw.).
  • Firmwareaktualisierungsquellen 140 umfassen jede verfügbare Quelle für die Firmwareaktualisierung die für das Rechnersystem zugänglich ist und die verwendet wird, um die Firmware einer Vorrichtung einem Upgrade zu unterziehen. Beispiele für Firmwareaktualisierungsquellen umfassen Disketten, CD-RUMs und Dateien, die von Computernetzwerken 150, wie zum Beispiel dem Internet oder einem Local Area Network (LAN) zugänglich sind. Aus Netzwerken zugängliche Dateien umfassen Firmwareaktualisierungen, die von einer Website im Internet oder aus Dateien zugänglich sind, die von einem von einem LAN, wie zum Beispiel einem von einer Organisation für seine Angestellten zur Verfügung gestellten LAN, zugänglichen gemeinsamen Netzwerklaufwerk zugänglich sind. Firmwareaktualisierungen sind häufig von der Website eines Herstellers verfügbar, um Funktionalität der Vorrichtungen des Herstellers zu verbessern oder zur Verfügung zu stellen. Die hierin gezeigte Verarbeitung kann verwendet werden, um sicherzustellen, dass die auf Computernetzwerken 150 gefundenen Firmwareaktualisierungen legitime Aktualisierungen sind (das heißt zugelassene), und kann verwendet werden, um die Installation von verfälschten Firmwareaktualisierungen zu verhindern, die böswilligen Code enthalten können, der dazu entworfen wurden, den Betrieb des Rechnersystems zu beschädigen oder zu unterbrechen.
  • Im gezeigten Beispiel umfasst das ausgewählte Rechnersystem 100 zwei Vorrichtungen (180 und 190), die vom Rechnersystem aus zugänglich sind, die jede zum Upgrade geeignete Firmware aufweisen, die ihren Betrieb steuern. Beispiele für solche Vorrichtungen umfassen Laufwerksteuerungen und Videoadapter. Hersteller dieser Vorrichtungen liefern oft Firmwareaktualisierungen, die auf der Firmware der Vorrichtung installiert werden. Die Firmwareaktualisierungen umfassen die Software, die verwendet wird, um den Betrieb der Vorrichtung zu steuern. In einigen Fällen werden Vorrichtungen ausgeliefert, ohne dass Software auf der Firmware der Vorrichtung installiert ist. In diesen Fällen umfasst die Firmwareaktualisierung die initiale Firmware (Software), die in die Firmware der Vorrichtung gela den wird, um die Funktionalität der Vorrichtung zur Verfügung zu stellen. Während einige Firmwareaktualisierungen auf eine bestimmte Vorrichtung beschränkt sind, sind andere Firmwareaktualisierungen "generisch" und können auf eine große Vielzahl von Vorrichtungen angewandt werden. Eine generische Videoadapterfirmware kann zum Beispiel auf eine große Vielzahl von Videoadaptern angewandt werden, um die Grundfunktionalität des Videoadapters zur Verfügung zu stellen. Generische oder grundlegende Firmwareaktualisierungen sind oft in das Betriebssystem einbezogen und werden verwendet, um Vorrichtungen zu initialisieren, wenn das Betriebssystem zum ersten Mal eingerichtet wird.
  • 2 ist ein Ablaufdiagramm auf höherer Ebene, das die Schritte zeigt, die ergriffen werden, um Firmware einer Vorrichtung unter Verwendung eines Hypervisor zu aktualisieren. Die Verarbeitung beginnt bei 200, woraufhin bei Schritt 210 der Anwender des Rechnersystems eine Firmwareaktualisierung auswählt, die in einer Vorrichtung zu installieren ist, die dem Rechnersystem des Anwenders zugänglich ist. Eine Feststellung wird ausgeführt, ob die Firmware auf dem Rechnersystem geschützt ist (Entscheidung 220). Wenn die Firmware auf dem Rechnersystem geschützt ist, dann verzweigt die Entscheidung 220 zum "Ja" Zweig 225, woraufhin in dem vordefinierten Verfahren 230 die Integrität der Firmwareaktualisierung unter Verwendung von einem oder mehren von einer Vielzahl von unterschiedlichen Validierungsverfahren validiert wird (siehe 3 und den entsprechenden Text zu den Verarbeitungsdetails). Nachdem die Validierung ausgeführt worden ist, wird eine Feststellung ausgeführt, ob die Firmwareaktualisierung gültig ist (Entscheidung 240). Wenn die Firmwareaktualisierung nicht gültig ist, dann verzweigt die Entscheidung 240 zum "Nein" Zweig 248, woraufhin die Verarbeitung bei 295 endet, ohne die Firmware der Vorrichtung zu aktualisieren. Andernfalls verzweigt die Entscheidung 240 dann, wenn die Aktualisierung gültig ist, zum "Ja" Zweig 244, um das Firmwareaktualisierungsverfahren fortzuführen. Zur Entscheidung 220 zurückkehrend, verzweigt die Entscheidung 220, wenn die Firmware nicht geschützt ist, dann zum "Nein" Zweig 246 und umgeht die Validierungsschritte 230 und 240.
  • Die Verarbeitung der Firmwareaktualisierung fährt fort durch Vorbereiten des Rechnersystems auf die Firmwareaktualisierung (vordefiniertes Verfahren 250, siehe 4 und den entsprechenden Text für die Verarbeitungsdetails). Das Vorbereiten des Rechnersystems auf die Firmwareaktualisierung beinhaltet, die Gastbetriebssysteme daran zu hindern, die Vorrichtung zu verwenden, die aktualisiert wird, bis die Aktualisierung vollständig ist. Nachdem das Rechnersystem bereit ist, die Firmwa reaktualisierung bei Schritt 260 zu akzeptieren, wird die Firmware der Vorrichtung mit Hilfe des Firmwareaktualisierungscodes nachgerüstet. Nachdem die Firmware der Vorrichtung durch das vordefinierte Verfahren 270 nachgerüstet worden ist, wird die Aktualisierung auf dem Rechnersystem initialisiert (siehe 5 und den entsprechenden Text für die Verarbeitungsdetails). Die Initialisierung der Aktualisierung beinhaltet, den Gastbetriebssystemen zu erlauben, die Vorrichtung zu verwenden. Die Aktualisierung der Firmware der Vorrichtung durch den Hypervisor endet dann bei 295.
  • 3 ist ein Ablaufdiagramm, das die Schritte zeigt, die ergriffen werden, um die Softwareintegrität der Firmwareaktualisierung zu validieren. Diese Routine wird von dem in 2 gezeigten vordefinierten Verfahren 230 aufgerufen. In 3 beginnt die Validierung der Firmwareaktualisierung bei 300, woraufhin eine Feststellung durchgeführt wird, ob ein Kennwort verwendet wird, um die Aktualisierung der Firmware einer vom Rechnersystem zugänglichen Vorrichtung zu steuern (Entscheidung 305). In einer Organisation kann zum Beispiel ein Systemadministrator dafür verantwortlich sein, die Firmware einer Vorrichtung zu aktualisieren. In solch einer Organisation würde ein Anwender ein Kennwort zuliefern müssen, um die Firmware einer Vorrichtung zu aktualisieren. Wenn das Kennwort, das benötigt wird, um die Firmware einer Vorrichtung zu aktualisieren, nicht zugeliefert wird, erlaubt der Hypervisor nicht, dass der Anwender die Firmware aktualisiert. Wenn ein Kennwort verwendet wird, um Aktualisierungen der Firmware einer Vorrichtung zu steuern, dann verzweigt die Entscheidung 305 zum "Ja" Zweig 308, woraufhin bei Schritt 310 der Anwender zu einem Kennwort aufgefordert wird, das verwendet wird (autorisiert ist), um die Firmware einer Vorrichtung zu aktualisieren. Bei Schritt 315 vergleicht der Hypervisor das Kennwort, das vom Anwender geliefert wurde, mit einem abgespeicherten autorisierten Kennwort. Eine Feststellung darüber wird ausgeführt, ob das vom Anwender bereitgestellte Kennwort mit einem Kennwort übereinstimmt, das verwendet wird, um die Aktualisierungen der Firmware zu steuern (Entscheidung 320). Wenn das vom Anwender zur Verfügung gestellte Kennwort nicht mit einem autorisierten Kennwort übereinstimmt, das verwendet wird, um die Aktualisierungen der Firmware zu steuern, dann verzweigt die Entscheidung 320 zum "Nein" Zweig 322, woraufhin die Verarbeitung zur aufrufenden Routine bei 325 zurückkehrt mit einem Rückkehrcode, der anzeigt, dass die Aktualisierung ungültig ist (siehe Entscheidung 240 gemäß 2 für die von der aufrufenden Routine bei Empfang des Rückkehrcodes ausgeführte Verarbeitung). Auf der anderen Seite, wenn das vom Anwender zur Verfügung gestellte Kennwort mit einem Kennwort überein stimmt, das verwendet wird, um Aktualisierungen der Firmware der Vorrichtung zu steuern, verzweigt die Entscheidung 320 dann zum "Ja" Zweig 326, um fortzufahren, die Integrität der Firmwareaktualisierung zu validieren. Zu Entscheidung 305 zurückkehrend verzweigt die Entscheidung 305, wenn kein Kennwort erforderlich ist, um die Firmware der Vorrichtung zu aktualisieren, dann zum "Nein" Zweig 328, der die Schritte 310 bis 325 umgeht.
  • Es wird eine Feststellung durchgeführt, ob eine digitale Signatur verwendet wird, um die Firmwareaktualisierung zu validieren (Entscheidung 330). Wenn digitale Signaturen verwendet werden, dann werden freigegebene Firmwareaktualisierungen von einem autorisierten Anwender, wie zum Beispiel einem Administrator, digital signiert. Ein Weg, die Firmwareaktualisierungen digital zu signieren, besteht in der Verwendung asymmetrischer Schlüssel, wobei der autorisierte Anwender die Firmwareaktualisierung mit Hilfe eines privaten Schlüssels digital signiert, um die Firmwareaktualisierung zu verschlüsseln. Die digital signierte (verschlüsselte) Firmwareaktualisierung kann mit Hilfe des öffentlichen Schlüssels des autorisierten Anwenders entschlüsselt werden. Wenn digitale Signaturen verwendet werden, dann verzweigt die Entscheidung 330 zum "Ja" Zweig 332, woraufhin der Hypervisor bei Schritt 335 versucht, die Firmwareaktualisierung unter Verwendung eines öffentlichen Schlüssels zu entschlüsseln, der dem autorisierten Anwender (zum Beispiel einem Systemadministrator) zugeordnet ist. Eine Feststellung darüber wird durchgeführt, ob die digitale Signatur gültig ist (Entscheidung 340), basierend darauf, ob der öffentliche Schlüssel in der Lage war, die Firmwareaktualisierung zu entschlüsseln, die mit Hilfe des privaten Schlüssels des autorisierten Anwenders verschlüsselt wurde. Wenn die di gitale Signatur nicht verifiziert wird, dann verzweigt die Entscheidung 340 zum "Nein" Zweig 342, woraufhin die Verarbeitung zur aufrufenden Routine bei 345 zurückkehrt mit einem Rückkehrcode, der anzeigt, dass die Aktualisierung ungültig ist (siehe Entscheidung 240 gemäß 2 für die von der aufrufenden Routine bei Empfang des Rückkehrcodes ausgeführte Verarbeitung). Andernfalls verzweigt die Entscheidung 340, wenn die digitale Signatur verifiziert wird, dann zum "Ja" Zweig 346, um fortzufahren, die Integrität der Firmwareaktualisierung zu validieren. Zu Entscheidung 330 zurückkehrend, verzweigt die Entscheidung 330, wenn keine digitale Signatur verwendet wird, um die Firmwareaktualisierung zu validieren, dann zum „Nein" Zweig 348 und umgeht die Schritte 335 bis 345.
  • Eine Feststellung darüber wird durchgeführt, ob die Firmwareaktualisierung mit Hilfe einer Hashtabelle gesteuert wird (Entscheidung 350). Die Verwendung einer Hashtabelle erlaubt Systemadministratoren, eine Liste von erwarteten Hashwerten zur Verfügung zu stellen, die verschiedenen Firmwareaktualisierungen zugehörig sind. Auf diese Weise kann die tatsächliche Firmwareaktualisierung aus einer im Internet zugänglichen öffentlichen Website abgerufen werden, wobei die Sicherheit der Website unbekannt ist. Wenn die Firmwareaktualisierungen mit Hilfe einer Hashtabelle gesteuert werden, dann verzweigt die Entscheidung 350 zum "Ja" Zweig 355, woraufhin der Hypervisor bei Schritt 360 einen Hashalgorithmus gegen die Firmwareaktualisierung ausführt, die vom Anwender herunter geladen wurde. Die Ausführung des Hashalgorithmus führt zu einem Hashwert. Bei Schritt 365 vergleicht der Hypervisor den Hashwert, der sich aus dem Hashalgorithmus ergab, mit einem erwarteten Hashwert durch Abrufen des erwarteten Hashwerts aus der Vergleichstabelle 370, die eine Liste von erwarteten Hashwerten umfasst, die verschiedenen freigegebenen Firmwareaktualisierungen entsprechen. Die Vergleichstabelle 370 beinhaltet das Identifizieren von Information über die Firmwareaktualisierungen, wie zum Beispiel des Dateinamens der Firmwareaktualisierung zusammen mit dem erwarteten Hashwert, wenn der Hashalgorithmus gegen die vorgegebene Firmwareaktualisierungsdatei ausgeführt wird. Wenn die Firmwareaktualisierungsdatei verfälscht, geändert oder anderweitig kompromittiert worden ist, stimmt der Hashwert nicht mit dem erwarteten Hashwert überein. Eine Feststellung darüber wird durchgeführt, ob der Hashwert, der sich aus dem Hashalgorithmus ergibt, mit dem erwarteten Hashwert übereinstimmt (Entscheidung 375). Wenn der Hashwert, der sich aus dem Hashalgorithmus ergibt, nicht mit dem erwarteten Hashwert übereinstimmt, dann verzweigt die Entscheidung 375 zum „Nein" Zweig 378, woraufhin die Verarbeitung zur aufrufenden Routine bei 380 zurückkehrt mit einem Rückkehrcode, der anzeigt, dass die Aktualisierung ungültig ist. Andernfalls verzweigt die Entscheidung 375, wenn der Hashwert, der sich aus dem Hashalgorithmus ergibt, mit dem erwarteten Hashwert übereinstimmt, dann zum "Ja" Zweig 385, woraufhin ein Rückkehrcode an die aufrufende Routine zurückgegeben wird, der anzeigt, dass die Firmwareaktualisierung validiert worden ist. Zu Entscheidung 350 zurückkehrend verzweigt die Entscheidung 350, wenn die Firmwareaktualisierung nicht mit Hilfe einer Hashtabelle gesteuert wird, dann zum „Nein" Zweig 390, woraufhin an die aufrufende Routine der Rückkehrcode zurückgegeben wird, der anzeigt, dass die Firmwareaktualisierung validiert worden ist. Siehe Entscheidung 240 gemäß 2 für die Verarbeitung, die bei Empfang des Rückkehrcodes von der aufrufenden Routine ausgeführt wird.
  • 4 ist ein Ablaufdiagramm, das die Schritte zeigt, die vom Hypervisor ergriffen werden, um das Rechnersystem auf eine Firmwareaktualisierung vorzubereiten. Die Verarbeitung beginnt bei 400, woraufhin bei Schritt 410 das erste Gastbetriebssystem, das unter dem Hypervisor abläuft, aus der Liste von Gastbetriebssystemen des Hypervisors 420 abgerufen wird, die unter dem Hypervisor ablaufen. Bei Schritt 425 trennt der Hypervisor die Vorrichtung vom ausgewählten Betriebssystem. Eine Feststellung darüber wird ausgeführt, ob das Gastbetriebssystem vorübergehend ausgesetzt wird oder ob vom Gastbetriebssystem an die Vorrichtung gerichtete Anfragen durch den Hypervisor zwischengespeichert werden (Entscheidung 430). In einer Ausführungsform wird jedes der Gastbetriebssysteme auf dieselbe Weise behandelt (entweder vorübergehend ausgesetzt, oder die Anfragen werden zwischengespeichert), während in einer anderen Ausführungsform jedes Betriebssystem unterschiedlich behandelt werden kann, basierend auf den Eigenschaften des bestimmten Gastbetriebssystems und der Vorrichtung, die aktualisiert wird (das heißt, einige Gastbetriebssysteme bewältigen besser, dass sie vorübergehend ausgesetzt werden als andere, während einige Vorrichtungen ziemlich häufig verwendet werden, wodurch das Zwischenspeichern der verschieden Anfragen an die Vorrichtung schwieriger gemacht werden). Der Hypervisor entscheidet, ob er das Gastbetriebssystem vorübergehend aussetzt oder die Anfragen des Gastbetriebssystems an die Vorrichtung zwischenspeichert. Wenn das Gastbetriebssystem vorübergehend ausgesetzt wird, dann verzweigt die Entscheidung 430 zum "Ja" Zweig 445, woraufhin bei Schritt 450 das ausgewählte Gastbetriebssystem vorübergehend ausgesetzt wird. Andernfalls verzweigt die Entscheidung 430, wenn Anfragen vom ausgewählten Gastbetriebssystem an die Vorrichtung zwischengespeichert werden, dann zum „Nein" Zweig 455, woraufhin bei Schritt 460 Anfragen vom aus gewählten Gastbetriebssystem an die Vorrichtung, die aktualisiert wird, vom Hypervisor zwischengespeichert werden.
  • Eine Feststellung darüber wird durchgeführt, ob es mehrere Gastbetriebssysteme gibt, die unter dem Hypervisor laufen (Entscheidung 470). Wenn es mehrere Gastbetriebssysteme gibt, die unter dem Hypervisor ablaufen, dann verzweigt die Entscheidung 470 zum "Ja" Zweig 475, woraufhin bei Schritt 480 das nächste Gastbetriebssystem aus der Liste 420 ausgewählt wird und die Verarbeitung in der Schleife zurückkehrt, um das neu ausgewählte Gastbetriebssystem daran zu hindern, die Vorrichtung zu verwenden (entweder durch vorübergehendes Aussetzen des Gastbetriebssystems oder durch Zwischenspeichern von Anfragen des Gastbetriebssystems an die Vorrichtung). Diese Schleife fährt fort, bis alle Gastbetriebssysteme, die unter dem Hypervisor ablaufen, verarbeitet worden sind, wobei die Entscheidung 470 an diesem Punkt zum "Nein" Zweig 485 verzweigt.
  • Bei Schritt 490 stellt der Hypervisor sicher, dass er (der Hypervisor) die Vorrichtung, die im Begriff ist, eine Firmwareaktualisierung zu empfangen, nicht verwendet. Bei 495 kehrt die Verarbeitung zu der aufrufenden Routine zurück (siehe 2), um die Firmware der Vorrichtung unter Verwendung der Firmwareaktualisierung, die angewandt wird, aufzurüsten.
  • 5 ist ein Ablaufdiagramm, das weitere Schritte zeigt, die vom Hypervisor ergriffen werden, um die Firmwareaktualisierung zu initialisieren und diese für das (die) Gastbetriebssystem(e) verfügbar zu machen. Die Verarbeitung beginnt bei 500, woraufhin bei Schritt 510 die Vorrichtung, die mit neuem Firmwarecode aktualisiert worden ist, zurückgesetzt wird. Bei Schritt 520 wählt der Hypervisor das erste Gastbe triebssystem aus der Liste 420 von Gastbetriebssystemen des Hypervisors aus, die unter dem Hypervisor ablaufen.
  • Eine Feststellung darüber wird durchgeführt, ob das ausgewählte Gastbetriebssystem vorübergehend ausgesetzt worden ist (Entscheidung 530). Wenn das ausgewählte Gastbetriebssystem vorübergehend ausgesetzt worden ist, dann verzweigt die Entscheidung 530 zum "Ja" Zweig 535, woraufhin bei Schritt 540 der Betrieb des ausgewählten Gastbetriebssystems wieder aufgenommen wird und bei Schritt 545 die Vorrichtung wieder mit dem ausgewählten Gastbetriebssystem verbunden (zum Beispiel "mounted"). Andernfalls verzweigt die Entscheidung 530, wenn das ausgewählte Gastbetriebssystem nicht vorübergehend ausgesetzt wurde, dann zum „Nein" Zweig 550, woraufhin bei Schritt 555 die Vorrichtung wieder mit dem ausgewählten Gastbetriebssystem verbunden wird und bei Schritt 560 Anfragen, die vom ausgewählten Gastbetriebssystem an die Vorrichtung gesandt und vom "Hypervisor zwischengespeichert wurden, verarbeitet werden (das heißt, die zwischengespeicherten Anfragen werden an die Vorrichtung gesandt, nachdem die Vorrichtung zurückgesetzt wurde).
  • Eine Feststellung darüber wird durchgeführt, ob es mehrere Gastbetriebssysteme gibt, die unter dem Hypervisor ablaufen (Entscheidung 570). Wenn es mehrere Gastbetriebssysteme gibt, die unter dem Hypervisor ablaufen, dann verzweigt die Entscheidung 570 zum "Ja" Zweig 575, woraufhin bei Schritt 580 das nächste Gastbetriebssystem aus der Liste 420 ausgewählt wird, und die Verarbeitung in der Schleife zurückkehrt, um die Verwendung der Vorrichtung durch das neu ausgewählte Gastbetriebssystem zuzulassen (entweder durch erneutes Aufnehmen des Betriebs des Gastbetriebssystem oder durch Verarbeiten von zwischengespeicherten Anfragen). Diese Schleife fährt fort, bis alle Gastbetriebssysteme, die unter dem Hypervisor ablaufen, verarbeitet worden sind, wobei zu diesem Zeitpunkt die Entscheidung 570 zum „Nein" Zweig 485 verzweigt, woraufhin die Verarbeitung zur aufrufenden Routine bei 495 zurückkehrt (siehe 2).
  • 6 veranschaulicht die Anordnung zur Informationsverarbeitung 600, die ein vereinfachtes Beispiel für ein Rechnersystem ist, das dazu in der Lage ist, die EDV-Operationen auszuführen, die hierin beschrieben werden. Die Anordnung zur Informationsverarbeitung 600 umfasst einen oder mehrere Prozessoren 610, die mit dem Prozessorschnittstellenbus 612 verbunden sind. Der Prozessorschnittstellenbus 612 verbindet die Prozessoren 610 mit der Northbridge 615, die auch als Memory Controller Hub (MCH) bekannt ist. Die Northbridge 615 ist mit dem Systemdatenspeicher 620 verbunden und stellt ein Mittel für den (die) Prozessor(en) 610 zur Verfügung, um auf den Systemdatenspeicher zuzugreifen. Die Graphiksteuereinheit 625 ist ebenfalls mit der Northbridge 615 verbunden. In einer Ausführungsform wird der PCI Express Bus 618 verwendet, um die Northbridge 615 mit der Graphiksteuereinheit 625 zu verbinden. Die Graphiksteuereinheit 625 ist mit der Anzeigeeinheit 630, wie zum Beispiel einen Computermonitor, verbunden.
  • Northbridge 615 und Southbridge 635 sind unter Verwendung des Bus 618 mit einander verbunden. In einer Ausführungsform ist der Bus ein Direct Media Interface (DMI) Bus, der Daten mit hoher Geschwindigkeit in jeder Richtung zwischen Northbridge 615 und Southbridge 635 überträgt. In einer weiteren Ausführungsform wird ein Peripheral Component Interconnect (PCI) Bus verwendet, um die Northbridge und die Southbridge zu verbinden. Die Southbridge 635, auch bekannt als der I/O Controller Hub (ICH) ist ein Chip, der im Wesentlichen Fähigkeiten ein richtet, die mit langsameren Geschwindigkeiten arbeiten als die Fähigkeiten, die von der Nouthbridge zur Verfügung gestellt werden. Die Southbridge 635 stellt typischerweise verschiedene Busse zur Verfügung, die verwendet werden, um verschiedene Komponenten zu verbinden. Diese Busse können PCI und PCI Express Busse, einen ISA Bus, einen System Management Bus (SMBus oder SMB) und einen Low Pin Count (LPC) Bus umfassen. Der LPC Bus wird häufig benutzt, um Vorrichtungen mit niedriger Bandbreite, wie zum Beispiel die Boot ROM und "Legacy" Ein/Ausgabe-Vorrichtungen zu verbinden (unter Verwendung eines "Super I/O" Chip). Die "Legacy" Ein/Ausgabe-Vorrichtungen (698) können serielle und parallele Ports, Tastatur, Maus und Diskettensteuereinheit umfassen. Der LPC Bus wird auch verwendet, um die Southbridge 635 mit der Komponente einer vertrauenswürdigen Plattform (TPC) 695 zu verbinden. Häufig in die Southbridge 635 einbezogene weitere Komponenten umfassen einen Direct Memory Access (DMA) Controller, einen Programmable Interrupt Controller (PIC) und eine Speichervorrichtungssteuereinheit, die die Southbridge 635 unter Verwendung des Bus 684 mit einer nichtflüchtigen Speichervorrichtung 685, wie zum Beispiel einem Festplattenlaufwerk, verbindet.
  • ExpressCard 655 ist ein Slot, der verwendet wird, um im laufenden Betrieb einsteckbare Vorrichtungen mit der Anordnung zur Informationsverarbeitung zu verbinden. Die ExpressCard 655 unterstützt sowohl PCI Express als auch USB Konnektivität, da sie unter Verwendung sowohl des Universa Serial Bus (USB) als auch des PCI Express Bus mit der Southbridge 635 verbunden wird. Die Southbridge 635 umfasst den USB Controller 640, der USB Konnektivität an Vorrichtungen zur Verfügung stellt, die mit dem USB verbunden sind. Diese Vorrichtungen umfassen die Webcam (Kamera) 650, den Infrarot-(IR) Empfänger 648, die Bluetooth Vorrichtung 646, die drahtlose Personal Area Networks (PANS) zur Verfügung stellt, Tastatur und Trackpad 644, und verschiedene andere über USB verbundene Vorrichtungen 642, wie zum Beispiel eine Maus, tragbare Speichervorrichtungen, Modems, Netzwerkkarten, ISDN Anschlüsse, Faxgeräte, Drucker, USB Hubs, und viele andere über USB verbundene Vorrichtungen.
  • Die drahtlose Local Area Network (LAN) Vorrichtung 675 ist durch den PCI oder PCI Express Bus 672 mit der Southbridge 635 verbunden. Die LAN Vorrichtung 675 richtet typischerweise einen der IEEE 802.11 Standards von „über die Luft" übertragenen Modulationsverfahren ein, die alle dasselbe Protokoll verwenden, um drahtlos zwischen der Anordnung zur Informationsverarbeitung 600 und einem anderen Rechnersystem oder einer anderen Vorrichtung zu kommunizieren.
  • Die optische Speichervorrichtung 690 ist unter Verwendung eines Serial ATA (SATA) Bus 688 an die Southbridge 635 angeschlossen. Serial ATA Adapter und Vorrichtungen kommunizieren über eine serielle Verbindung hoher Geschwindigkeit. Der Serial ATA Bus wird auch verwendet, um die Southbridge 635 mit anderen Formen von Speichervorrichtungen, wie zum Beispiel Festplattenlaufwerken zu verbinden.
  • Eine Audioschaltung 660, wie zum Beispiel eine Audiokarte, ist über den Bus 658 an die Southbridge 635 angeschlossen. Die Audioschaltung 660 wird verwendet, um Funktionalität zur Verfügung zu stellen, wie zum Beispiel Audio Line-in und optisches digitales Audio in Port 662, optischen digitalen Ausgang und Kopfhörerbuchse 664, interne Lautsprecher 666 und internes Mikrophon 668.
  • Die Ethernet Steuereinheit 670 ist mit der Southbridge 635 unter Verwendung eines Bus, wie zum Beispiel des PCI oder des PCI Express Bus verbunden. Die Ethernet Steuereinheit 670 wird verwendet, um die Anordnung zur Informationsverarbeitung 600 mit einem Computernetzwerk, wie zum Beispiel einem Local Area Network (LAN), dem Internet und anderen öffentlichen und privaten Computernetzwerken zu verbinden.
  • Während 6 eine Ausführungsform einer Anordnung zur Informationsverarbeitung zeigt, kann eine Anordnung zur Informationsverarbeitung viele Formen annehmen. Zum Beispiel kann eine Anordnung zur Informationsverarbeitung die Form eines Desktops, eines Servers, eines tragbaren Geräts, eines Laptops, eines Notebooks oder eines Computers oder einer Datenverarbeitungsanlage eines anderen Formfaktors annehmen. Außerdem kann eine Anordnung zur Informationsverarbeitung andere Formfaktoren, wie zum Beispiel die eines persönlichen digitalen Assistenten (PDA), einer Glücksspielvorrichtung, einer ATM Maschine, einer tragbaren Telefonvorrichtung, einer Datenübertragungseinheit oder anderer Vorrichtungen annehmen, die einen Prozessor und Datenspeicher umfassen.
  • Eine der bevorzugten Ausführungsformen der Erfindung ist eine Clientanwendung, und zwar ein Satz von Anweisungen (Programmcode) oder ein anderes funktionell beschreibendes Material in einem Codemodul, das zum Beispiel im Speicher mit wahlfreiem Zugriff des Computers vorliegend sein kann. Bis durch den Computer angefordert, kann der Satz von Anweisungen in einem anderen Computerdatenspeicher, zum Beispiel einem Festplattenlaufwerk oder einem entfernbaren Datenspeicher, wie zum Beispiel einer optischen Platte (zur letztendlichen Verwendung in einem CD-ROM) oder einer Diskette (zur letztendlichen Verwendung in einem Diskettenlaufwerk) gespeichert oder über das In ternet oder ein anderes Computernetzwerk herunter geladen werden. Auf diese Weise kann die vorliegende Erfindung als ein Computerprogrammprodukt zu Verwendung in einem Computer ausgeführt werden. Außerdem wird, obwohl die verschiedenen beschriebenen Verfahren in geeigneter Weise in einem selektiv durch Software aktivierten oder neu konfigurierten, universell einsetzbaren Computer eingerichtet sind, eine Person mit gewöhnlichen Kenntnissen in der Technik auch erkennen, dass solche Verfahren in Hardware, in Firmware, oder in weiter spezialisierten Vorrichtungen ausgeführt werden können, die eingerichtet sind, um die erforderlichen Schritte des Verfahrens auszuführen. Funktionell beschreibendes Material ist Information, die einer Maschine Funktionalität mitteilt. Funktionell beschreibendes Material umfasst, aber ist nicht darauf eingegrenzt, Computerprogramme, Anweisungen, Regeln, Daten und Definitionen für berechenbare Funktionen, Objekte und Datenstrukturen.
  • Während bestimmte Ausführungsformen der vorliegenden Erfindung gezeigt und beschrieben worden sind, wird es für jene, die in der Technik ausgebildet sind, offensichtlich sein, dass, basierend auf den Lehren hierin, Änderungen und Modifikationen durchgeführt werden können, ohne von dieser Erfindung und ihren allgemein gefassten Aspekten abzuweichen. Deshalb sollen die anhängenden Ansprüche innerhalb ihres Schutzumfangs alle diese Änderungen und Modifikationen umfassen, die innerhalb des Geists und des Schutzumfangs dieser Erfindung gelten. Weiterhin ist zu verstehen, dass die Erfindung einzig durch die anhängenden Ansprüche definiert wird. Es wird von jenen mit Kenntnissen in der Technik verstanden werden, dass, wenn eine bestimmte Nummer eines eingebrachten Anspruchselements beabsichtigt wird, solch eine Absicht klar in dem Anspruch vorgetragen wird, und in Abwesenheit von solch einer Nennung keine solche Beschränkung vorliegt. Für ein nicht einschränkendes Beispiel enthalten die folgenden angehängten Ansprüche als eine Hilfestellung zum Verständnis die Verwendung der einführenden Begriffe "mindestens ein" und "ein oder mehrere", um Anspruchselemente einzubringen. Jedoch sollte die Verwendung von solchen Begriffen nicht ausgelegt werden, um zu implizieren, dass die Einleitung eines Anspruchselements durch den unbestimmten Artikel "ein" oder "eine" irgend einen beliebigen Anspruch, der solch ein eingebrachtes Anspruchselement enthält, eingrenzt auf Erfindungen, die nur ein solches Element enthalten, auch dann, wenn der gleiche Anspruch die einführenden Formulierungen "ein oder mehrere" oder "mindestens ein" umfasst und unbestimmte Artikel, wie zum Beispiel "ein"; das Gleiche gilt für die Verwendung von bestimmten Artikeln in den Ansprüchen.

Claims (20)

  1. Computerimplementiertes Verfahren, umfassend: das Empfangen einer Firmwareaktualisierung an einem Rechnersystem, wobei das Rechnersystem einen Hypervisor und ein oder mehrere Gastbetriebssysteme ausführt, und wobei die Firmwareaktualisierung sich auf eine durch das Rechnersystem zugängliche Hardwarevorrichtung bezieht, wobei die Hardwarevorrichtung eine aktualisierbare Firmware umfasst; als Reaktion auf den Empfang der Firmwareaktualisierung, der Hypervisor agiert durch: das Sperren der Verwendung der Vorrichtung für jedes der Gastbetriebssysteme; nach dem Sperren das Ausführen des Upgrades der Firmware unter Verwendung der empfangenen Firmwareaktualisierung; und nach dem Ausführen des Upgrades das Zulassen der Verwendung der Vorrichtung für jedes der Gastbetriebssysteme.
  2. Verfahren gemäß Anspruch 1, weiterhin umfassend: vor dem Ausführen des Upgrades der Firmware das Validieren der Firmwareaktualisierung, wobei das Ausführen des Upgrades als Reaktion auf eine erfolgreiche Validierung der Firmwareaktualisierung ausgeführt wird.
  3. Verfahren gemäß Anspruch 2, wobei die Validierung weiterhin umfasst: das Empfangen eines Kennworts von einem Anwender, das verwendet wird, um Firmwareaktualisierungen auf das Rechnersystem zu steuern; und das Vergleichen des empfangenen Kennworts mit einem erwar teten Kennwort, wobei das Ausführen des Upgrades als Reaktion auf das Übereinstimmen des empfangenen Kennworts mit dem erwarteten Kennwort ausgeführt wird.
  4. Verfahren gemäß Anspruch 2, wobei die Validierung weiterhin umfasst: das Verifizieren, dass die empfangene Firmwareaktualisierung von einem autorisierten Anwender digital signiert worden ist.
  5. Verfahren gemäß Anspruch 2, wobei die Validierung weiterhin umfasst: das Ausführen eines Hashalgorithmus gegen die empfangene Firmwareaktualisierung, wobei das Ausführen zu einem Hashwert führt; das Vergleichen des Hashwerts mit einem erwarteten Hashwert; das Zurückweisen der Firmwareaktualisierung als Reaktion darauf, dass der Hashwert nicht mit dem erwarteten Hashwert übereinstimmt; und das Akzeptieren der Firmwareaktualisierung als Antwort darauf, dass der Hashwert mit dem erwarteten Hashwert übereinstimmt.
  6. Verfahren gemäß Anspruch 1, wobei: das Sperren weiterhin umfasst: das Trennen der Vorrichtung von jedem der Gastbetriebssysteme; und das vorübergehende Aussetzen jedes der Gastbetriebssysteme; und das Zulassen weiterhin umfasst: das Wiederaufnehmen des Betriebs jedes der Gastbetriebssysteme; und das Verbinden der Vorrichtung mit jedem der Gastbetriebssysteme.
  7. Verfahren gemäß Anspruch 1, wobei: das Sperren weiterhin umfasst: das Zwischenspeichern einer oder mehrerer Anfragen an die Vorrichtung in einem Zwischenspeicher, wobei die Anfragen von einem oder mehreren der Gastbetriebssystemen empfangen werden; und das Zulassen weiterhin umfasst: das Senden jeder der zwischengespeicherten Anfragen an die Vorrichtung.
  8. Anordnung zur Informationsverarbeitung, umfassend: einen oder mehrere Prozessoren; einen für mindestens einen der Prozessoren zugänglichen Datenspeicher; einen für mindestens einen der Prozessoren zugänglichen nichtflüchtigen Speicherbereich; eine für mindestens einem der Prozessoren zugängliche Hardwarevorrichtung, wobei die Hardwarevorrichtung eine aktualisierbare Firmware umfasst, die den Betrieb der Vorrichtung steuert; einen Hypervisor und ein oder mehrere Gastbetriebssysteme, die im Datenspeicher und dem nichtflüchtigen Speicherbereich abgelegt sind und von den Prozessoren ausgeführt werden; einen Satz von durch den Hypervisor ausgeführten Anweisungen, wobei einer oder mehrere der Prozessoren den Satz von Anweisungen ausführen, um nachfolgende Aktionen auszuführen: das Empfangen einer Firmwareaktualisierung, wobei sich die Firmwareaktualisierung auf die Hardwarevorrichtung bezieht; als Reaktion auf das Empfangen der Firmwareaktualisie rung: das Sperren der Verwendung der Vorrichtung für jedes der Gastbetriebssysteme; nach dem Sperren das Ausführen des Upgrades der Firmware unter Verwendung der empfangenen Firmwareaktualisierung; und nach dem Ausführen des Upgrades das Zulassen der Verwendung der Vorrichtung für jedes der Gastbetriebssysteme.
  9. Anordnung zur Informationsverarbeitung gemäß Anspruch 8, wobei der Satz von Anweisungen weitere Aktionen ausführt, umfassend: vor dem Ausführen des Upgrades der Firmware das Validieren der Firmwareaktualisierung, wobei das Ausführen des Upgrades als Reaktion auf eine erfolgreiche Validierung der Firmwareaktualisierung ausgeführt wird, wobei die Validierung umfasst: das Empfangen eines Kennworts von einem Anwender, das verwendet wird, um Firmwareaktualisierungen in das Rechnersystem zu steuern; und das Vergleichen des empfangenen Kennworts mit einem erwarteten Kennwort, wobei das Ausführen des Upgrades als Reaktion auf das Übereinstimmen des empfangenen Kennworts mit dem erwarteten Kennwort ausgeführt wird.
  10. Anordnung zur Informationsverarbeitung gemäß Anspruch 8, wobei der Satz von Anweisungen weitere Aktionen ausführt, umfassend: vor dem Ausführen des Upgrades der Firmware das Validieren der Firmwareaktualisierung, wobei das Ausführen des Upgrades als Reaktion auf eine erfolgreiche Validierung der Firmwareaktualisierung ausgeführt wird, wobei die Validierung das Verifizieren umfasst, dass die empfangene Firmwareaktualisierung von einem autorisierten Anwender digital signiert worden ist.
  11. Anordnung zur Informationsverarbeitung gemäß Anspruch 8, wobei der Satz von Anweisungen weitere Aktionen ausführt, umfassend: vor dem Ausführen des Upgrades der Firmware das Validieren der Firmwareaktualisierung, wobei das Ausführen des Upgrades als Reaktion auf eine erfolgreiche Validierung der Firmwareaktualisierung ausgeführt wird, wobei die Validierung umfasst: das Ausführen eines Hashalgorithmus gegen die empfangene Firmwareaktualisierung, wobei das Ausführen zu einem Hashwert führt; das Vergleichen des Hashwerts mit einem erwarteten Hashwert; das Zurückweisen der Firmwareaktualisierung als Reaktion darauf, dass der Hashwert nicht mit dem erwarteten Hashwert übereinstimmt; und das Akzeptieren der Firmwareaktualisierung als Reaktion darauf, dass der Hashwert mit dem erwarteten Hashwert übereinstimmt.
  12. Anordnung zur Informationsverarbeitung gemäß Anspruch 8, wobei: die Anweisungen, die das Sperren ausführen, Anweisungen umfassen, um einen ersten Satz von Aktionen auszuführen, umfassend: das Trennen der Vorrichtung von jedem der Gastbetriebssysteme; und das vorübergehende Aussetzen jedes der Gastbetriebssysteme; und Anweisungen, die das Zulassen ausführen, Anweisungen umfassen, um einen zweiten Satz von Aktionen auszuführen, umfassend: das Wiederaufnehmen des Betriebs jedes der Gastbe triebssysteme; und das Verbinden der Vorrichtung mit jedem der Gastbetriebssysteme.
  13. Anordnung zur Informationsverarbeitung gemäß Anspruch 8, wobei: die Anweisungen, die das Sperren ausführen, Anweisungen umfassen, um einen ersten Satz von Aktionen auszuführen, umfassend: das Zwischenspeichern von einer oder mehreren Anfragen an die Vorrichtung in einem im Datenspeicher abgelegten Zwischenspeicher, wobei die Anfragen von einem oder mehreren der Gastbetriebssysteme empfangen werden; und Anweisungen, die das Zulassen ausführen, Anweisungen umfassen, um eine zweite Aktion auszuführen, umfassend: das Senden jeder der zwischengespeicherten Anfragen an die Vorrichtung.
  14. Computerprogrammprodukt, gespeichert auf einem computerlesbaren Medium, das funktionell beschreibendes Material umfasst, das, wenn es von einer Datenverarbeitungsanlage ausgeführt wird, bewirkt, dass die Datenverarbeitungsanlage Aktionen ausführt, die umfassen: das Empfangen einer Firmwareaktualisierung an einem Rechnersystem, wobei das Rechnersystem einen Hypervisor und ein oder mehrere Gastbetriebssysteme ausführt, und wobei sich die Firmwareaktualisierung auf eine durch das Rechnersystem zugängliche Hardwarevorrichtung bezieht, wobei die Hardwarevorrichtung eine aktualisierbaren Firmware umfasst; als Antwort auf den Empfang der Firmwareaktualisierung agiert der Hypervisor durch: das Sperren der Verwendung der Vorrichtung für jedes der Gastbetriebssysteme; nach dem Sperren das Ausführen des Upgrades der Firmware unter Verwendung der empfangenen Firmwareaktualisierung; und nach dem Ausführen des Upgrades das Zulassen der Verwendung der Vorrichtung für jedes der Gastbetriebssysteme.
  15. Computerprogrammprodukt gemäß Anspruch 15, wobei das funktionell beschreibende Material bewirkt, dass die Datenverarbeitungsanlage weitere Aktionen ausführt, umfassend: vor dem Ausführen des Upgrades der Firmware das Validieren der Firmwareaktualisierung, wobei das Ausführen des Upgrades als Reaktion auf eine erfolgreiche Validierung der Firmwareaktualisierung ausgeführt wird.
  16. Computerprogrammprodukt gemäß Anspruch 15, wobei das funktionell beschreibende Material, das die Validierung ausführt, weitere Aktionen ausführt, umfassend: vor dem Ausführen des Upgrades der Firmware das Validieren der Firmwareaktualisierung, wobei das Ausführen des Upgrades als Reaktion auf eine erfolgreiche Validierung der Firmwareaktualisierung ausgeführt wird, wobei die Validierung weiterhin umfasst: das Empfangen eines Kennworts von einem Anwender, das verwendet wird, um Firmwareaktualisierungen in das Rechnersystem zu steuern; und das Vergleichen des empfangenen Kennworts mit einem erwarteten Kennwort, wobei das Ausführen des Upgrades als Reaktion auf das Übereinstimmen des empfangenen Kennworts mit dem erwarteten Kennwort ausgeführt wird.
  17. Computerprogrammprodukt gemäß Anspruch 15, wobei das funktionell beschreibende Material, das die Validierung ausführt, weitere Aktionen ausführt, umfassend: das Verifizieren, dass die empfangene Firmwareaktualisierung von einem autorisierten Anwender digital signiert worden ist.
  18. Computerprogrammprodukt gemäß Anspruch 15, wobei das funktionell beschreibende Material, das die Validierung ausführt, weitere Aktionen ausführt, umfassend: das Ausführen eines Hashalgorithmus gegen die empfangene Firmwareaktualisierung, wobei das Ausführen zu einem Hashwert führt; das Vergleichen des Hashwerts mit einem erwarteten Hashwert; das Zurückweisen der Firmwareaktualisierung als Reaktion darauf, dass der Hashwert nicht mit dem erwarteten Hashwert übereinstimmt; und das Akzeptieren der Firmwareaktualisierung als Reaktion darauf, dass der Hashwert mit dem erwarteten Hashwert übereinstimmt.
  19. Computerprogrammprodukt gemäß Anspruch 15, wobei das funktionell beschreibende Material bewirkt, dass die Datenverarbeitungsanlage weitere Aktionen ausführt, umfassend: das Sperren, das weiterhin umfasst: das Trennen der Vorrichtung von jedem der Gastbetriebssysteme; und das vorübergehende Aussetzen von jedem der Gastbetriebssysteme; und das Zulassen, das weiterhin umfasst: das Wiederaufnehmen des Betriebs jedes der Gastbetriebssysteme; und das Verbinden der Vorrichtung mit jedem der Gastbetriebssysteme.
  20. Computerprogrammprodukt gemäß Anspruch 15, wobei das funktionell beschreibende Material bewirkt, dass die Datenverarbeitungsanlage weitere Aktionen ausführt, umfassend: das Sperren, das weiterhin umfasst: das Zwischenspeichern von einer oder mehreren Anfragen an die Vorrichtung in einem Zwischenspeicher, wobei die Anfragen von einem oder von mehreren der Gastbetriebssysteme empfangen werden; und das Zulassen, das weiterhin umfasst: jede der zwischengespeicherten Anfragen an die Vorrichtung zu senden.
DE102007057901.4A 2007-03-28 2007-11-29 Anordnung, Computerprogrammprodukt und Verfahren zur sicheren Aktualisierung von Firmware einer Hardwarevorrichtung unter Verwendung eines Hypervisor Active DE102007057901B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/692,283 2007-03-28
US11/692,283 US20080244553A1 (en) 2007-03-28 2007-03-28 System and Method for Securely Updating Firmware Devices by Using a Hypervisor

Publications (2)

Publication Number Publication Date
DE102007057901A1 true DE102007057901A1 (de) 2008-10-02
DE102007057901B4 DE102007057901B4 (de) 2023-03-16

Family

ID=38983096

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102007057901.4A Active DE102007057901B4 (de) 2007-03-28 2007-11-29 Anordnung, Computerprogrammprodukt und Verfahren zur sicheren Aktualisierung von Firmware einer Hardwarevorrichtung unter Verwendung eines Hypervisor

Country Status (5)

Country Link
US (1) US20080244553A1 (de)
JP (1) JP5001818B2 (de)
CN (1) CN101295262B (de)
DE (1) DE102007057901B4 (de)
GB (1) GB2448010B (de)

Families Citing this family (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9384159B2 (en) * 2007-05-24 2016-07-05 International Business Machines Corporation Creating a checkpoint for a software partition in an asynchronous input/output environment
JP4980809B2 (ja) * 2007-07-10 2012-07-18 株式会社リコー 画像形成装置、画像形成装置の起動方法、およびプログラム
US8281298B2 (en) * 2007-08-27 2012-10-02 International Business Machines Corporation Evaluating computer driver update compliance
US8429643B2 (en) * 2007-09-05 2013-04-23 Microsoft Corporation Secure upgrade of firmware update in constrained memory
US8413130B2 (en) * 2007-10-03 2013-04-02 International Business Machines Corporation System and method for self policing of authorized configuration by end points
US7962738B2 (en) * 2007-12-20 2011-06-14 Intel Corporation Hypervisor runtime integrity support
US8201161B2 (en) * 2008-01-07 2012-06-12 Lenovo (Singapore) Pte. Ltd. System and method to update device driver or firmware using a hypervisor environment without system shutdown
EP2327015B1 (de) * 2008-09-26 2018-09-19 Sonova AG Drahtloses aktualisieren von hörgeräten
JP5223596B2 (ja) * 2008-10-30 2013-06-26 富士通株式会社 仮想計算機システム及びその管理方法、管理プログラム並びに記録媒体、制御方法
TW201108735A (en) * 2009-08-18 2011-03-01 Wistron Corp Method and apparatus and digital TV capable of preventing erroneous start of firmware update
US8214653B1 (en) 2009-09-04 2012-07-03 Amazon Technologies, Inc. Secured firmware updates
US8887144B1 (en) 2009-09-04 2014-11-11 Amazon Technologies, Inc. Firmware updates during limited time period
US10177934B1 (en) 2009-09-04 2019-01-08 Amazon Technologies, Inc. Firmware updates inaccessible to guests
US9565207B1 (en) * 2009-09-04 2017-02-07 Amazon Technologies, Inc. Firmware updates from an external channel
US8971538B1 (en) 2009-09-08 2015-03-03 Amazon Technologies, Inc. Firmware validation from an external channel
US8601170B1 (en) 2009-09-08 2013-12-03 Amazon Technologies, Inc. Managing firmware update attempts
US8300641B1 (en) 2009-09-09 2012-10-30 Amazon Technologies, Inc. Leveraging physical network interface functionality for packet processing
US8959611B1 (en) 2009-09-09 2015-02-17 Amazon Technologies, Inc. Secure packet management for bare metal access
US8381264B1 (en) 2009-09-10 2013-02-19 Amazon Technologies, Inc. Managing hardware reboot and reset in shared environments
US9639347B2 (en) * 2009-12-21 2017-05-02 International Business Machines Corporation Updating a firmware package
US8631404B2 (en) * 2010-02-18 2014-01-14 Red Hat Israel, Ltd. Mechanism for downloading hypervisor updates via a virtual hardware device using existing virtual machine-host channels
US8522322B2 (en) * 2010-09-22 2013-08-27 Intel Corporation Platform firmware armoring technology
CN102455950A (zh) * 2010-10-28 2012-05-16 鸿富锦精密工业(深圳)有限公司 基板管理控制器的韧体恢复系统及方法
US9021465B2 (en) 2010-12-15 2015-04-28 Red Hat Israel, Ltd. Downloading guest software updates by a hypervisor
US8578376B2 (en) 2011-01-04 2013-11-05 International Business Machines Corporation Automatically and securely configuring and updating virtual machines
GB2501433B (en) * 2011-01-19 2014-06-04 Ibm Ensuring the integrity of software
US8745614B2 (en) * 2011-05-13 2014-06-03 Lsi Corporation Method and system for firmware upgrade of a storage subsystem hosted in a storage virtualization environment
US8776040B2 (en) 2011-08-19 2014-07-08 International Business Machines Corporation Protection for unauthorized firmware and software upgrades to consumer electronic devices
US8856771B2 (en) * 2011-08-19 2014-10-07 International Business Machines Corporation Protection for unauthorized firmware and software upgrades to consumer electronic devices
US8972966B2 (en) * 2012-01-05 2015-03-03 Lenovo (Singapore) Pte. Ltd. Updating firmware in a hybrid computing environment
US8875124B2 (en) * 2012-01-11 2014-10-28 Dell Products L.P. In-band hypervisor-managed firmware updates
US9369867B2 (en) * 2012-06-29 2016-06-14 Intel Corporation Mobile platform software update with secure authentication
US11080035B2 (en) * 2013-02-13 2021-08-03 Vmware, Inc. Accessing a patch file in a system center configuration manager (SCCM) environment
US9223982B2 (en) * 2013-03-01 2015-12-29 Intel Corporation Continuation of trust for platform boot firmware
JP5713056B2 (ja) * 2013-06-24 2015-05-07 横河電機株式会社 プロセス制御装置及びシステム並びにその更新方法
JP6244759B2 (ja) * 2013-09-10 2017-12-13 株式会社ソシオネクスト セキュアブート方法、半導体装置、及び、セキュアブートプログラム
CN104007995B (zh) * 2014-06-13 2018-02-23 浪潮电子信息产业股份有限公司 一种刷写网络芯片未验证fw的方法
WO2016167801A1 (en) 2015-04-17 2016-10-20 Hewlett Packard Enterprise Development Lp Firmware map data
US9930051B1 (en) * 2015-11-06 2018-03-27 Amazon Technologies, Inc. Remote management of hardware hosts in cloud infrastructure
US10042720B2 (en) 2016-02-22 2018-08-07 International Business Machines Corporation Live partition mobility with I/O migration
US10002018B2 (en) 2016-02-23 2018-06-19 International Business Machines Corporation Migrating single root I/O virtualization adapter configurations in a computing system
US10042723B2 (en) 2016-02-23 2018-08-07 International Business Machines Corporation Failover of a virtual function exposed by an SR-IOV adapter
JP6520759B2 (ja) * 2016-02-26 2019-05-29 オムロン株式会社 プログラマブルコントローラ、プログラマブルコントローラの制御プログラム
US10025584B2 (en) 2016-02-29 2018-07-17 International Business Machines Corporation Firmware management of SR-IOV adapters
EP3220262B1 (de) * 2016-03-15 2018-06-13 Axis AB Vorrichtung, die während der firmware-aktualisierung betätigbar ist
US10318311B2 (en) 2016-06-30 2019-06-11 Amazon Technologies, Inc. Memory allocation techniques at partially-offloaded virtualization managers
US10318737B2 (en) 2016-06-30 2019-06-11 Amazon Technologies, Inc. Secure booting of virtualization managers
US10127068B2 (en) 2016-06-30 2018-11-13 Amazon Technologies, Inc. Performance variability reduction using an opportunistic hypervisor
US9720862B1 (en) 2016-10-21 2017-08-01 International Business Machines Corporation Migrating interrupts from a source I/O adapter of a computing system to a destination I/O adapter of the computing system
US9760512B1 (en) 2016-10-21 2017-09-12 International Business Machines Corporation Migrating DMA mappings from a source I/O adapter of a source computing system to a destination I/O adapter of a destination computing system
US9720863B1 (en) 2016-10-21 2017-08-01 International Business Machines Corporation Migrating MMIO from a source I/O adapter of a source computing system to a destination I/O adapter of a destination computing system
US9715469B1 (en) 2016-10-21 2017-07-25 International Business Machines Corporation Migrating interrupts from a source I/O adapter of a source computing system to a destination I/O adapter of a destination computing system
US9740647B1 (en) 2016-10-21 2017-08-22 International Business Machines Corporation Migrating DMA mappings from a source I/O adapter of a computing system to a destination I/O adapter of the computing system
US9785451B1 (en) 2016-10-21 2017-10-10 International Business Machines Corporation Migrating MMIO from a source I/O adapter of a computing system to a destination I/O adapter of the computing system
DE102016221108A1 (de) * 2016-10-26 2018-04-26 Volkswagen Aktiengesellschaft Verfahren zum Aktualisieren einer Software eines Steuergeräts eines Fahrzeugs
CN108170368B (zh) * 2016-12-07 2024-01-23 北京忆恒创源科技股份有限公司 在线升级固件的方法及系统
US9983823B1 (en) 2016-12-09 2018-05-29 Amazon Technologies, Inc. Pre-forking replicas for efficient scaling of a distribued data storage system
US10229404B1 (en) * 2016-12-16 2019-03-12 Worldpay, Llc Systems and methods for network configurations of pin pads
JP7027809B2 (ja) * 2017-10-31 2022-03-02 京セラドキュメントソリューションズ株式会社 アップデートシステム
WO2019120586A1 (en) * 2017-12-22 2019-06-27 Telefonaktiebolaget Lm Ericsson (Publ) Method for restricting memory write access in iot devices
US10642603B2 (en) * 2018-01-16 2020-05-05 Nutanix, Inc. Scheduling upgrades in distributed computing systems
US10838754B2 (en) 2018-04-27 2020-11-17 Nutanix, Inc. Virtualized systems having hardware interface services for controlling hardware
WO2019239191A1 (en) * 2018-06-14 2019-12-19 Sony Corporation Methods, wireless modules, electronic devices and server devices
US11218364B2 (en) 2018-06-25 2022-01-04 Amazon Technologies, Inc. Network-accessible computing service for micro virtual machines
US10776488B2 (en) * 2018-09-24 2020-09-15 Dell Products L.P. Extend root of trust to include firmware of individual components of a device
US10833949B2 (en) 2018-11-20 2020-11-10 Amazon Technologies, Inc Extension resource groups of provider network services
JP7036705B2 (ja) * 2018-12-03 2022-03-15 Kddi株式会社 通信装置、通信方法、およびコンピュータプログラム
US10848418B1 (en) 2019-06-24 2020-11-24 Amazon Technologies, Inc. Packet processing service extensions at remote premises
EP3992826A4 (de) * 2019-06-27 2023-07-19 KYOCERA Document Solutions Inc. Bilderzeugungsvorrichtung, verfahren zur verhinderung von firmware-änderungen und computerlesbares nichtflüchtiges speichermedium mit darauf gespeichertem änderungsverhinderndem programm
US11550917B2 (en) * 2019-06-28 2023-01-10 Intel Corporation Standardized interface for intellectual property blocks
US11113046B1 (en) 2019-09-24 2021-09-07 Amazon Technologies, Inc. Integration and remote control of a pre-assembled computer system into a server for a virtualization service
US11520530B2 (en) 2019-09-24 2022-12-06 Amazon Technologies, Inc. Peripheral device for configuring compute instances at client-selected servers
US11243589B1 (en) 2019-09-24 2022-02-08 Amazon Technologies, Inc. Remote power button actuation device for a pre-assembled computer system integrated into a server for a virtualization service
US11064017B2 (en) 2019-09-24 2021-07-13 Amazon Technologies, Inc. Peripheral device enabling virtualized computing service extensions
US11853771B1 (en) 2019-09-24 2023-12-26 Amazon Technologies, Inc. Offload card based virtualization of a pre-assembled computer system integrated into a server for a virtualization service
WO2021061715A1 (en) * 2019-09-25 2021-04-01 Shift5, Inc. Passive monitoring and prevention of unauthorized firmware or software upgrades between computing devices
CN110990037A (zh) * 2019-11-26 2020-04-10 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) 板卡软件升级方法及装置
US11704715B2 (en) 2019-11-27 2023-07-18 Amazon Technologies, Inc. Quantum computing service supporting multiple quantum computing technologies
US11650869B2 (en) 2019-11-27 2023-05-16 Amazon Technologies, Inc. Quantum computing service with local edge devices supporting multiple quantum computing technologies
US11605033B2 (en) 2019-11-27 2023-03-14 Amazon Technologies, Inc. Quantum computing task translation supporting multiple quantum computing technologies
US11605016B2 (en) 2019-11-27 2023-03-14 Amazon Technologies, Inc. Quantum computing service supporting local execution of hybrid algorithms
US11569997B1 (en) 2020-03-09 2023-01-31 Amazon Technologies, Inc. Security mechanisms for data plane extensions of provider network services
CN112559419A (zh) * 2020-12-21 2021-03-26 厦门市美亚柏科信息股份有限公司 一种pcie存储模块的固件升级保护方法、装置
US11797276B1 (en) 2021-09-30 2023-10-24 Amazon Technologies, Inc. Assisted composition of quantum algorithms
US11907092B2 (en) 2021-11-12 2024-02-20 Amazon Technologies, Inc. Quantum computing monitoring system

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH103384A (ja) * 1996-06-18 1998-01-06 Nec Eng Ltd 情報処理システム
JP2001092668A (ja) * 1999-09-20 2001-04-06 Sony Corp 電子機器、電子機器の内部プログラム書き換え方法及び電子機器の内部プログラム書き換え機能を有するプログラムを記録したコンピュータ読み取り可能な情報記録媒体
JP2001290637A (ja) * 2000-04-05 2001-10-19 Nec Corp コンポーネントの動的置換装置及びコンピュータ読み取り可能な記憶媒体
US7069452B1 (en) * 2000-07-12 2006-06-27 International Business Machines Corporation Methods, systems and computer program products for secure firmware updates
JP2002244874A (ja) * 2001-02-15 2002-08-30 Toshiba Corp 情報処理装置およびファームウェア更新方法
US6834340B2 (en) * 2001-03-01 2004-12-21 International Business Machines Corporation Mechanism to safely perform system firmware update in logically partitioned (LPAR) machines
US7082598B1 (en) * 2002-07-17 2006-07-25 Vmware, Inc. Dynamic driver substitution
US7974416B2 (en) 2002-11-27 2011-07-05 Intel Corporation Providing a secure execution mode in a pre-boot environment
US7401332B2 (en) * 2003-01-09 2008-07-15 International Business Machines Corporation System and apparatus for eliminating user interaction during hardware configuration at system boot
US7555657B2 (en) * 2003-03-28 2009-06-30 Ricoh Company, Ltd. Communication device, software update device, software update system, software update method, and program
US20040205776A1 (en) * 2003-04-10 2004-10-14 International Business Machines Corporation Method and apparatus for concurrent update and activation of partition firmware on a logical partitioned data processing system
US7805723B2 (en) * 2003-10-01 2010-09-28 Hewlett-Packard Development Company, L.P. Runtime virtualization and devirtualization of memory by a virtual machine monitor
US7793287B2 (en) * 2003-10-01 2010-09-07 Hewlett-Packard Development Company, L.P. Runtime virtualization and devirtualization of I/O devices by a virtual machine monitor
TWI229818B (en) * 2003-12-15 2005-03-21 Wistron Corp Method and device for updating firmware
US7353428B2 (en) * 2004-05-19 2008-04-01 Lenovo Singapore Pte. Ltd Polled automatic virus fix
JP2006185063A (ja) * 2004-12-27 2006-07-13 Kyocera Mita Corp プログラム書込装置及びプログラム書込プログラム
US7873959B2 (en) * 2005-02-01 2011-01-18 Microsoft Corporation Publishing the status of and updating firmware components
JP2006260058A (ja) * 2005-03-16 2006-09-28 Fujitsu Ltd 計算機サーバ・システムにおけるファームウェアアップデート方法
JP2006277216A (ja) * 2005-03-29 2006-10-12 Nec Corp マルチos搭載可能なプラットホームにおける自動fwアップデート方法
US20070011444A1 (en) * 2005-06-09 2007-01-11 Grobman Steven L Method, apparatus and system for bundling virtualized and non-virtualized components in a single binary
GB0516426D0 (en) 2005-08-10 2005-09-14 Symbian Software Ltd A method of operating a computing device through the use of extensible thread states
US20070074199A1 (en) * 2005-09-27 2007-03-29 Sebastian Schoenberg Method and apparatus for delivering microcode updates through virtual machine operations
US20070245334A1 (en) * 2005-10-20 2007-10-18 The Trustees Of Columbia University In The City Of New York Methods, media and systems for maintaining execution of a software process
US8776041B2 (en) * 2007-02-05 2014-07-08 Microsoft Corporation Updating a virtual machine monitor from a guest partition

Also Published As

Publication number Publication date
CN101295262A (zh) 2008-10-29
GB0723884D0 (en) 2008-01-16
CN101295262B (zh) 2012-01-25
JP2008243183A (ja) 2008-10-09
GB2448010A (en) 2008-10-01
JP5001818B2 (ja) 2012-08-15
US20080244553A1 (en) 2008-10-02
GB2448010B (en) 2009-11-11
DE102007057901B4 (de) 2023-03-16

Similar Documents

Publication Publication Date Title
DE102007057901B4 (de) Anordnung, Computerprogrammprodukt und Verfahren zur sicheren Aktualisierung von Firmware einer Hardwarevorrichtung unter Verwendung eines Hypervisor
DE112005001739B4 (de) Nachverfolgung geschützter Speicherbereiche zur Beschleunigung von Antivirusprogrammen
DE112018002031B4 (de) Sichern einer betriebssystemkonfiguration unter verwendung von hardware
DE102011103218B4 (de) Systeme, Verfahren und Vorrichtung zum Virtualisieren von TPM- Zugriffen
DE102008021567B4 (de) Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel
US8869264B2 (en) Attesting a component of a system during a boot process
DE112016005833T5 (de) Datenverarbeitungsgeräte
DE112007001321T5 (de) Ausführung eines Sichere-Umgebungs-Initialisierungsbefehls in einem Punkt-zu-Punkt-Verbindungssystem
DE112014000337T5 (de) Sichere Ausführung von Software-Modulen auf einem Computer
DE202014011092U1 (de) Sicherheitsarchitektur für virtuelle Maschinen
DE112016000576T5 (de) Sicheres Booten eines Computers von einer für den Benutzer vertrauenswürdigen Einheit aus
DE102008011925A1 (de) Computersysteme mit sicherem Initialisierungsmechanismus
DE112006001744T5 (de) Manipulationsschutz, um Installation von Betriebssystemen und anderer Software zu beschränken
DE102018115683A1 (de) Domänenübergreifende sicherheit in kryptographisch partionierter cloud
DE112011105687T5 (de) Verwendung eines Option-ROM-Speichers
DE112015007220T5 (de) Techniken zum Koordinieren von Vorrichtungshochfahrsicherheit
DE112018002954T5 (de) Bereitstellen eines konfigurationsabhängigen arbeitsablaufs
DE112020003881T5 (de) System und verfahren zur durchführung von trusted computing mit fernbescheinigung und informationsisolierung auf heterogenen prozessoren über eine offene verbindung
DE112008002032T5 (de) Elektronikvorrichtungsschnittstellensystem
DE102021109231A1 (de) Bedienungssystem installation mechanismus
DE112022003368T5 (de) Verschlüsselungsüberwachungsregister und -system
DE102021127631A1 (de) Auf speichersuche basierende prozessüberwachung
DE102010038179A1 (de) Individuelle Aktualisierung von Computerprogrammen
Périgaud et al. Subverting your server through its BMC: the HPE iLO4 case
EP3095065A1 (de) Vorrichtung und verfahren zum detektieren einer manipulation an einem programmcode

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R082 Change of representative

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

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final