DE112012000512T5 - Aktualisieren von Software - Google Patents

Aktualisieren von Software Download PDF

Info

Publication number
DE112012000512T5
DE112012000512T5 DE112012000512T DE112012000512T DE112012000512T5 DE 112012000512 T5 DE112012000512 T5 DE 112012000512T5 DE 112012000512 T DE112012000512 T DE 112012000512T DE 112012000512 T DE112012000512 T DE 112012000512T DE 112012000512 T5 DE112012000512 T5 DE 112012000512T5
Authority
DE
Germany
Prior art keywords
attestation
code
new
component
updating
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.)
Pending
Application number
DE112012000512T
Other languages
English (en)
Inventor
James William Walker
David Haikney
David Alan Gilbert
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112012000512T5 publication Critical patent/DE112012000512T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • 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
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

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

Abstract

Die vorliegende Erfindung bezieht sich auf ein Verfahren und eine Vorrichtung zum Aktualisieren von Software. Diese Erfindung bezieht sich insbesondere auf ein Verfahren, ein System und ein Computerprogrammprodukt zum Aktualisieren eines Betriebssystems in einem Hypervisor, aufweisend: Feststellen einer neuen Version einer Komponente des Betriebssystems; Installieren der neuen Komponentenversion; Messen eines kennzeichnenden Merkmals der Komponente und Bereitstellen dieser für ein Attestierungssystem; Benachrichtigen des Attestierungssystems, dass eine Komponente auf eine neue Version aktualisiert wurde, wobei, wenn das Attestierungssystem feststellt, dass das kennzeichnenden Merkmal der neuen Komponente nicht mit einem zuvor gespeicherten Attestierungswert übereinstimmt, das System weiß, dass eine zulässige Nichtübereinstimmung aufgetreten sein könnte. Das Installieren der neuen Version der Komponente weist auf: Identifizieren einer Aktualisierungsvorrichtung, die der neuen Version der Komponente zugeordnet ist; Messen eines kennzeichnenden Merkmals der identifizierten Aktualisierungseinrichtung; Laden und Installieren der neuen Version der Komponente; und Bereitstellen sowohl des kennzeichnenden Messwerts der Aktualisierungseinrichtung als auch der neuen Version der Komponente für das Attestierungssystem.

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung bezieht sich auf ein Verfahren und eine Vorrichtung zum Aktualisieren von Software. Die Erfindung bezieht sich insbesondere auf Prozesse zum vertrauenswürdigen Booten (Hochfahren) und entfernt ausgeführten Attestieren (remote attestation). Vertrauenswürdige Datenverarbeitung (trusted computing), vertrauenswürdiges Booten und entfernte Attestierung beziehen sich wie in dieser Beschreibung dargelegt allgemein auf Technologiestandards, die von einer Standardisierungsorganisation namens Trusted Computing Group entwickelt wurden.
  • HINTERGRUND
  • Vertrauenswürdiges Booten ist ein Verfahren zum Booten und Aufbauen einer Vertrauenskette (chain of trust) in einem vertrauenswürdigen Datenverarbeitungssystem. Boot-Komponenten können kryptografisch gemessen und in einer sicheren Einheit, zum Beispiel einem Trusted Platform Module (TPM, vertrauenswürdiges Plattformmodul), gespeichert werden. Jede Boot-Komponente misst einen charakteristischen Messwert der nächsten Boot-Komponente und speichert diesen Messwert in der sicheren Einheit, wobei der Messwert ermittelt wird, bevor die Steuerung an die gemessene Komponente weitergegeben wird. Sobald das System läuft, können die Messwerte von einem entfernt angeordneten System mit Hilfe eines Prozesses zur entfernt vorgenommenen Attestierung, zum Beispiel Direct Anonymous Attestation (DAA, direkte anonyme Attestierung), zur Prüfung extrahiert werden. Eine Messwertfolge wird als Vertrauenskette bezeichnet.
  • Computersysteme werden häufig mit neuen Funktionen und Software-Ergänzungen aktualisiert. Für eine Aktualisierung muss unter Umständen eine Boot-Komponente geändert werden, die Teil der Vertrauenskette ist, und nach einer solchen Aktualisierung zeigt die entfernt vorgenommene Attestierung eine Änderung des Messwerts an; die Vertrauenskette ist unterbrochen. Bei vielen Systemen und zahlreichen Aktualisierungen führt dies zu einem größeren, schwierigen Verwaltungsproblem. Die Änderung des Messwerts ”zeigt” sich nur nach mindestens einem erneuten Messwert. Der erneute Messwert kann nur bei einem erneuten Booten oder während der Laufzeit auftreten (je nach Aufbau des Systems).
  • Es besteht in der Technik somit der Bedarf, das oben genannte Problem zu lösen.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Bei einem ersten Aspekt der Erfindung wird ein Verfahren zum Aktualisieren von Code in einer Ausführungsumgebung bereitgestellt, wobei das Verfahren aufweist: Installieren von neuem Code; Messen eines kennzeichnenden Merkmals des neuen Codes und Bereitstellen des kennzeichnenden Merkmals für ein Attestierungssystem; Benachrichtigen des Attestierungssystems, dass der Code auf eine neue Version aktualisiert wurde, wobei, wenn das Attestierungssystem feststellt, dass das kennzeichnende Merkmal des neuen Codes nicht mit einem zuvor gespeicherten Attestierungswert übereinstimmt, das System weiß, dass eine zulässige Nichtübereinstimmung aufgetreten sein könnte.
  • Bei der bevorzugten Ausführungsform ist der Code eine Komponente, die in dem Boot-Prozess verwendet wird, wobei der Code sich auch auf eine andere Komponente in der Vertrauenskette beziehen könnte, die nicht hochgefahren wird. Bei anderen Ausführungsformen ist der Code vollständig oder zum Teil Firmware, ein Hypervisor, eine virtuelle Maschine, ein Betriebssystem oder eine Anwendung. Bei neuem Code kann es sich um eine neue Version einer Komponente oder eine vollständig neue Komponente handeln.
  • Ein zuvor gespeicherter Attestierungswert ist ein von dem Attestierungssystem verwendeter Referenzwert, um zu prüfen, ob ein gültiges kennzeichnendes Merkmal einer Systemkomponente vorhanden ist. Der zuvor gespeicherte Attestierungswert wird durch eine Systemverwaltung in dem Attestierungssystem gespeichert oder durch einen Initialisierungsprozess angefordert, wobei ein erstes kennzeichnendes Merkmal einer Komponente vertrauenswürdig ist und von dem Attestierungssystem als Attestierungswert verwendet wird.
  • Das Verfahren weist vorteilhafterweise auf, dass das Vorhandensein einer neuen Version einer Betriebssystemkomponente festgestellt wird, wobei die Aktualisierungsphase automatisch durchgeführt wird.
  • Die Erfindung benachrichtigt das Attestierungssystem über die Aktualisierung, Attestierungswerte können jedoch nur von dem Attestierungssystem oder einem Systemadministrator aktualisiert werden. Attestierungswerte könnten nur in einer weniger sicheren Ausführungsform von dem Hypervisor aktualisiert werden. Bei der bevorzugten Ausführungsform hat der Hypervisor außer durch Benachrichtigungen keinen Zugriff auf das Attestierungssystem; das Attestierungssystem muss eine Attestierung unmittelbar nach der Benachrichtigung durchführen, wobei es die Herkunftsquelle der neuen Version der Komponente prüft. Sobald es die Herkunftsquelle der neuen Komponente geprüft hat, kann es nach einem künftigen erneuten Booten den Boot-Messwert der neuen Komponente annehmen, auch wenn der Messwert nicht mit dem gespeicherten Attestierungswert übereinstimmt.
  • Zu dem bekannten Software-Aktualisierungsprozess kommt noch eine Hypervisor-Benachrichtigungsphase hinzu, so dass die Vertrauenskette mit dem Hypervisor beginnt. Bei der bevorzugten Ausführungsform besteht die Benachrichtigungsphase darin, dass das aktualisierte System dem Attestierungssystem eine Nachricht ”Prüfe mich” sendet, so dass das Attestierungssystem weiß, dass ein neuer Messwert ermittelt wurde. Die Attestierungsbenachrichtigung verhindert, dass das Attestierungssystem in Panik gerät, wenn das attestierte System neu bootet und verschiedene Messwerte feststellt.
  • Die bevorzugte Ausführungsform kann es einer vertrauenswürdigen Komponente wie beispielsweise dem Hypervisor ermöglichen, an dem Messprozess teilzunehmen und eine andere Komponente zu messen, so dass das Attestierungssystem der gemessenen Komponente vertrauen kann.
  • Das Installieren der neuen Version (651.N) der Komponente (616.N) weist vorteilhafterweise auf: Identifizieren einer Aktualisierungseinrichtung (612.N), die der neuen Version (651.N) zugeordnet ist; Messen eines kennzeichnenden Merkmals der identifizierten Aktualisierungseinrichtung (612.N); Installieren der neuen Version (651.N) der Einrichtung; und Bereitstellen des kennzeichnenden Messwerts (PCR17) der Aktualisierungseinrichtung für das Attestierungssystem (620), wobei das Attestierungssystem (620) den kennzeichnenden Messwert (PCR17) der Aktualisierungseinrichtung (612.N) mit einem zuvor gespeicherten Attestierungswert (624.N) in Übereinstimmung bringen kann, um eine zulässige Aktualisierung für gültig zu erklären. Die Bezugsziffern von 6 wurden zur Veranschaulichung und nur als Beispiel in den vorhergehenden Absatz mit aufgenommen.
  • Das Attestierungssystem prüft noch vorteilhafterweise direkt nach der Benachrichtigung die Herkunftsquelle der neuen Version der Komponente, die es in dem Hypervisor findet. Bei der bevorzugten Ausführungsform beinhaltet das Prüfen der Herkunftsquelle einer Komponente das Prüfen der Komponente, die die Aktualisierung installiert hat, in anderen Ausführungsformen können jedoch andere Prüfungen durchgeführt werden, beispielsweise woher die Aktualisierung kommt oder wie diese installiert wurde. Wenn der Messwert darüber hinaus nicht mit einem Attestierungswert übereinstimmt und das Attestierungssystem die Herkunftsquelle der entsprechenden Komponente geprüft hat, wird eines oder mehreres von Folgendem durchgeführt: Aktualisieren des Attestierungswerts mit dem Messwert der neuen Version der Komponente; und/oder Benachrichtigen einer Verwaltungsebene, dass ein Messwert nicht mit einem Attestierungswert übereinstimmt und ob das Attestierungssystem die Herkunftsquelle der Komponente erkennt.
  • Bei einem zweiten Aspekt der Erfindung wird ein Verfahren zum Aktualisieren und Attestieren einer Betriebssystemkomponente in einem Hypervisor bereitgestellt, wobei das Verfahren aufweist: Feststellen einer neuen Version einer Komponente eines Betriebssystems; Installieren der neuen Komponentenversion; Messen eines kennzeichnenden Merkmals der Komponente und Bereitstellen des Merkmals für ein Attestierungssystem; Benachrichtigen des Attestierungssystems, dass eine Komponente auf eine neue Version aktualisiert wurde; und wobei, wenn das Attestierungssystem feststellt, dass das kennzeichnende Merkmal der neuen Komponente nicht mit einem zuvor gespeicherten Attestierungswert übereinstimmt, das System weiß, dass eine zulässige Nichtübereinstimmung aufgetreten sein könnte.
  • Bei einem dritten Aspekt der Erfindung wird ein Verfahren zum Prüfen der Unversehrtheit eines Programms bereitgestellt, wobei das Verfahren aufweist:
    Extrahieren eines von dem Programminstallationsprozess gespeicherten Komponentenmesswerts; Prüfen des Komponentenmesswerts anhand von Messwerten, die von dem Prüfsystem gespeichert werden, und Zurückweisen des Messwerts, wenn dieser nicht übereinstimmt; weiteres Prüfen des zurückgewiesenen Komponentenmesswerts und erneutes Zurückweisen, wenn dieser nicht von einer anderen Komponente kommt, die dem Prüfsystem bekannt ist; und Anzeigen einer Annahme, wenn der Komponentenmesswert eine Prüfung besteht, und einer Zurückweisung, wenn der Messwert keine der Prüfungen besteht.
  • Ein vierter Aspekt der Erfindung wird wie in Anspruch 11 beschrieben bereitgestellt.
  • Ein fünfter Aspekt der Erfindung wird wie in Anspruch 19 beschrieben bereitgestellt.
  • Ein sechster Aspekt der Erfindung wird wie in Anspruch 20 beschrieben bereitgestellt.
  • Im Hinblick auf einen weiteren Aspekt stellt die vorliegende Erfindung ein Computerprogrammprodukt zum Aktualisieren eines Codes in einer Ausführungsumgebung bereit, wobei das Computerprogrammprodukt aufweist: ein computerlesbares Speichermedium, das von einer Verarbeitungsschaltung gelesen werden kann und das Befehle zum Ausführen durch die Verarbeitungsschaltung speichert, um ein Verfahren zum Durchführen der Schritte der Erfindung durchzuführen.
  • Im Hinblick auf einen weiteren Aspekt stellt die vorliegende Erfindung ein Computerprogramm bereit, das auf einem computerlesbaren Medium gespeichert ist und in den internen Speicher eines digitalen Computers geladen werden kann, wobei das Computerprogramm Softwarecodeteile aufweist, wenn das Programm auf einem Computer ausgeführt wird, um die Schritte der Erfindung durchzuführen.
  • Diese Beschreibung stellt eine Lösung vor, die es einem System ermöglicht, die attestierende Partei darüber zu informieren, was bei dem nächsten vertrauenswürdigen Booten in einem virtualisierten System unter Verwendung eines virtuellen TMP zu erwartet ist.
  • Kurzbeschreibung der Zeichnungen
  • Die vorliegende Erfindung wird nunmehr lediglich beispielhaft mit Bezug auf bevorzugte Ausführungsformen beschrieben, wie sie in den folgenden Figuren veranschaulicht sind:
  • 1 ist ein schematisches Implementierungsschaubild eines vertrauenswürdigen Datenverarbeitungssystems nach dem Stand der Technik und bei dem eine bevorzugte Ausführungsform der vorliegenden Erfindung ausgeführt werden kann;
  • 2 ist ein schematisches Prozessschaubild eines vertrauenswürdigen Datenverarbeitungssystems nach dem Stand der Technik und bei dem eine bevorzugte Ausführungsform der vorliegenden Erfindung ausgeführt werden kann;
  • 3 ist ein schematisches Prozessschaubild zum Attestieren des vertrauenswürdigen Datenverarbeitungssystems nach dem Stand der Technik und bei dem eine bevorzugte Ausführungsform der vorliegenden Erfindung ausgeführt werden kann;
  • 4 ist ein schematisches Prozessschaubild zum Aktualisieren des vertrauenswürdigen Datenverarbeitungssystems nach dem Stand der Technik und bei dem eine bevorzugte Ausführungsform der vorliegenden Erfindung ausgeführt werden kann;
  • 5 ist ein Vergleichsschaubild, das gleichwertige Schritte eines Aktualisierungsprozesses der Ausführungsform und des Aktualisierungsprozesses nach dem Stand der Technik zeigt und bei dem eine bevorzugte Ausführungsform der vorliegenden Erfindung ausgeführt werden kann;
  • 6 ist ein schematisches Implementierungsschaubild eines Systems gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung;
  • 7 ist ein schematisches Prozessschaubild des Aktualisierungsprozesses gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung;
  • 8 ist ein Prozessschaubild eines Ladeprozesses einer neuen Komponente gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung;
  • 9 ist ein Prozessschaubild eines Attestierungsprozesses gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung; und
  • 10 ist ein schematisches Implementierungsschaubild eines Systems einer physischen Ausführungsform.
  • BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
  • 1 ist ein vereinfachtes Implementierungsschaubild eines vertrauenswürdigen Systems nach dem Stand der Technik, das aufweist: eine Plattform 10; ein Trusted Platform Module 20 (TPM 20) und ein Attestierungssystem 30. Die Plattform 10 weist auf: einen Boot-Prozess 200 (nachstehend mit Bezug auf 2 beschrieben); einen Aktualisierungsprozess 12 und die Boot-Komponenten 15.1 bis 15N (an dieser und anderer Stelle in dieser Beschreibung wird der Buchstabe N verwendet, um eine Zahl darzustellen, jedoch keine spezifische Zahl). Die Boot-Komponenten 15 beinhalten: die Boot-Komponenten 15.1 bis 15N. Das TPM 20 weist die Plattformkonfigurationsregister 22.1 bis 22N auf. Das TPM 20 ist separat implementiert von der Plattform 10 dargestellt, es könnte jedoch auch Teil der Plattform 10 sein. Ein Plattformkonfigurationsregister PCR wird ebenfalls als Register bezeichnet. Das Attestierungssystem 30 weist einen Attestierungsprozess 300 und die Attestierungswerte 34.1 bis 34N auf. Das Attestierungssystem 30 ist separat implementiert von der Plattform dargestellt.
  • 2 ist ein vereinfachtes Prozessschaubild eines Boot-Prozesses 200 nach dem Stand der Technik, das eine Folge von Schritten 202 bis 212 zum Ausführen einer Reihe von Boot-Komponenten in folgender Reihenfolge aufweist.
  • Schritt 202 dient zum Ausführen der ersten Boot-Komponente.
  • Schritt 204 dient zum Messen eines kennzeichnenden Merkmals der nächsten Boot-Komponente und Speichern des Messwerts in einem Register (zum Beispiel 22.1).
  • Schritt 206 dient zum Ausführen der nächsten Komponente.
  • Schritt 208 dient gegebenenfalls zum Messen eines kennzeichnenden Merkmals der nachfolgenden Boot-Komponente und Speichern des Messwerts in einem nachfolgenden Register (zum Beispiel 22.2).
  • Schritt 210 stellt einen Boot-Zyklus dar, der die Schritte 206 und 208 für mögliche nachfolgende Boot-Komponenten wiederholt.
  • Schritt 212 stellt das Ende des Prozesses dar, wenn keine Boot-Komponenten mehr übrig sind.
  • Bei der bevorzugten Ausführungsform führt ein Hypervisor Anfangsschritte durch (die entsprechenden Schritte 200, 202, 204 nach dem Stand der Technik), so dass das Messen und Ausführen in dem Hypervisor beginnen. Der Hypervisor stellt zum Beispiel einen Hypercall ”H-Messen” bereit, der Code wie beispielsweise eine nächste Boot-Komponente misst und ausführt. Bei einem anderen Beispiel könnte Plattform-Firmware die Anfangsschritte durchführen und eine nachfolgende Boot-Komponente in einem Hypervisor starten.
  • 3 ist ein vereinfachtes Prozessschaubild eines Attestierungsprozesses 300 nach dem Stand der Technik, das eine Folge von nachfolgend beschriebenen Logikschritten 302 bis 308 aufweist. Der Attestierungsprozess wird ausgeführt, nachdem die vertrauenswürdige Plattform hochgefahren ist.
  • Schritt 302 dient zum Extrahieren von Messwerten, die in Registern gespeichert sind.
  • Schritt 304 dient zum Vergleichen der Messwerte mit den Attestierungswerten 34.1 bis 34N, die von dem Attestierungssystem 30 gespeichert werden.
  • Schritt 306 dient zum Anzeigen 1) einer Annahme, wenn die Werte mit den Messwerten übereinstimmen, oder 2) einer Zurückweisung, wenn zwischen den Werten und Messwerten keine Übereinstimmung besteht.
  • Schritt 308 stellt das Ende des Prozesses dar. Der Attestierungsprozess nach dem Stand der Technik vertraut darauf, dass die Attestierungswerte richtig sind, und nach dem Stand der Technik werden die Attestierungswerte von einem Administrator aktualisiert.
  • 4 ist ein vereinfachtes Prozessschaubild eines Aktualisierungsprozesses 400 nach dem Stand der Technik, das eine Folge von Schritten 402 bis 406 aufweist.
  • Schritt 402 dient zum Feststellen, dass eine Komponente durch eine neuere Version der Komponente aktualisiert werden muss.
  • Schritt 404 dient zum Aktualisieren der Komponente, indem die alte Komponente entfernt und die neue Komponente geladen wird.
  • Schritt 406 stellt das Ende des Prozesses dar. Bei diesem Prozess wird die Komponente nicht als eine Boot-Komponente identifiziert und daher ist nicht bekannt, dass die Aktualisierung sich auf den von dem Attestierungssystem vorgehaltenen Attestierungswert auswirken wird.
  • 5 zeigt einen Vergleich von Ergebnissen eines vertrauenswürdigen Systems nach dem Stand der Technik mit den Ergebnissen des vertrauenswürdigen Systems der bevorzugten Ausführungsform.
  • Eine vollständige Aktualisierung und Attestierung nach dem Stand der Technik weist die folgenden kombinierten Prozesse in Folge auf: 200, 300, 400 und erneut 300. Der Boot-Prozess 200 lädt die Boot-Komponenten, und jede Komponente wird der Reihe nach gemessen; die Messwerte werden in dem TPM20 gespeichert. Der Attestierungsprozess 300 ruft die Messwerte ab und prüft diese anhand der gespeicherten Attestierungswerte und zeigt eine Annahme an, da die Werte und Messwerte übereinstimmen. Der Aktualisierungsprozess 400 führt eine Aktualisierung bei einer oder mehreren Komponenten durch, darunter bei einer oder mehreren Boot-Komponenten, wobei der TPM-Messwert geändert wird. Eine weitere Ausführung des Attestierungsprozesses 300 zeigt eine Zurückweisung an, da der Attestierungswert nicht aktualisiert wurde und die Attestierungswerte und die TPM-Messwerte nicht übereinstimmen.
  • Der Aktualisierungs- und Attestierungsprozess der bevorzugten Ausführungsform weist folgende kombinierte Prozessschritte in Folge auf: 606, 622, 700 und erneut 622. Der Boot-Prozess 606 lädt die Boot-Komponenten; jede Boot-Komponente wird gemessen, und die Messwerte werden in einem TPM gespeichert. Ein Attestierungsprozess 622 der Ausführungsform ruft die Messwerte ab und prüft diese anhand der gespeicherten Attestierungswerte und zeigt eine Annahme an, da die Werte und Messwerte übereinstimmen. Der Aktualisierungsprozess 700 der Ausführungsform führt eine Aktualisierung bei einer oder mehreren Boot-Komponenten durch und ändert die Messwerte in dem TPM. Bei der bevorzugten Ausführungsform wird das Attestierungssystem benachrichtigt, dass die Aktualisierung durchgeführt wurde. Der Attestierungsprozess 622 zeigt eine Annahme an, da er die Herkunftsquelle der Aktualisierungskomponente prüft.
  • Bei einer anderen Ausführungsform werden die Attestierungswerte durch Messwerte aktualisiert, die während der Aktualisierung ermittelt wurden.
  • 6 zeigt ein schematisches Komponentenschaubild des vertrauenswürdigen Datenverarbeitungssystems der bevorzugten Ausführungsform. Das vertrauenswürdige Datenverarbeitungssystem weist auf: eine Plattform 600; ein Attestierungssystem 620 und eine Aktualisierungsregistrierungsdatenbank 650.
  • Die Aktualisierungsregistrierungsdatenbank 650 ist eine Speicherressource und ein Index zum Vorhalten der aktuellen Versionen einzelner Komponenten von Betriebssystemen und Anwendungen, die zur Verwendung in Aktualisierungsinstanzen der Betriebssysteme oder Anwendungen dienen. In der Figur weist die Aktualisierungsregistrierungsdatenbank die Aktualisierungen 651.1 bis 650N auf. Das Abfragen der Versionsnummern oder Datumsangaben der Komponente in der Aktualisierungsregistrierungsdatenbank im Vergleich mit den Versionsnummern oder Datumsangaben einer Komponente einer Betriebssysteminstanz ergibt, welche Komponenten aktualisiert werden müssen.
  • Während des Betriebs ist die Plattform 600 eine Hardware-Plattform mit einem Hypervisor 604 zum Ausführen und Verwalten von virtuellen Betriebssystemen. Ein Beispiel einer Plattform ist ein IBM Power System. Während des Betriebs weist der Hypervisor 604 auf: einen Boot-Prozess 606; einen Aktualisierungsprozess 700; Aktualisierungseinrichtungen 612.1 bis 612N; und eine Hosting-Umgebung für eine virtuelle Maschine. Der Hypervisor des vorliegenden Beispiels erzeugt eine einzelne virtuelle Maschine 605 in der Hosting-Umgebung für ein einzelnes Betriebssystem 614, die bevorzugte Ausführungsform geht jedoch davon aus, dass mehr als ein Betriebssystem auf mehr als einer virtuellen Maschine aktualisiert werden könnte. Jede virtuelle Maschine verfügt über ein entsprechendes virtuelles TPM. Das Attestierungssystem vertraut jeder virtuellen Maschine, die auf einem Hypervisor ausgeführt wird. Das Vertrauen ergibt sich durch ein reales TPM oder durch aktuelle und vertrauenswürdige signierte Aktualisierungen und andere Sicherheitsmaßnahmen.
  • Das virtuelle Trusted Platform Module 610 weist eine Vielzahl von Registern (PCRs) PCR1, 2, 3 ... 17, 18 ... N auf. Jedes PCR kann einen Messwert oder einen Wert speichern.
  • Die Aktualisierungseinrichtungen 612.1 bis 612N weisen einen Beispielsatz von separaten Komponenten auf, von denen jede einer entsprechenden Boot-Komponente (616.1 bis 616N) zugeordnet ist und jede kann das Betriebssystem mit einer entsprechenden Aktualisierung (651.1 bis 651N) aktualisieren. Die Boot-Komponente 616.3 kann zum Beispiel von der Aktualisierungseinrichtung 612.3 unter Verwendung der Aktualisierung 651.3 aktualisiert werden und so weiter für die Boot-Komponente 616N, die Aktualisierungseinrichtung 612N und die Aktualisierung 651N. Jede Aktualisierungseinrichtung weist Verknüpfungen zu entsprechenden Aktualisierungen und Boot-Komponenten auf. Jede Aktualisierungseinrichtung soll gemessen und dann von dem Hypervisor ausgeführt werden. Der Messwert wird in einem ersten vereinbarten Register (zum Beispiel PCR17) gespeichert. Während der Ausführung misst eine Aktualisierungseinrichtung die neue Komponente, die sie installiert, und aktualisiert ein zweites vereinbartes Register (zum Beispiel PCR18). Es sei darauf hingewiesen, dass die Aktualisierungseinrichtung nur etwas kopieren oder während der Verarbeitung die Komponente erzeugen kann. Die Aktualisierungseinrichtung ”Bosboot” zum Beispiel erzeugt während der Verarbeitung ein Abbild einer neuen Betriebssystemkomponente von vielen Konfigurationsdateien und Systemdaten.
  • Bei einer bevorzugten Ausführungsform ist die Aktualisierungseinrichtung in der Lage, das Attestierungssystem direkt zu benachrichtigen, dass das Betriebssystem aktualisiert wurde. Dies kann bedeuten, dass die Aktualisierungseinrichtung direkten Kontakt zu dem Attestierungssystem herstellt oder einen gemeinsamen Prozess auf dem Hypervisor erhält, um Kontakt herzustellen. Das virtuelle Betriebssystem 614 (zum Beispiel IBM AIX*) weist, wenn es von dem Hypervisor geladen wird, die Boot-Komponenten 616.1 bis 616N auf, die als Teil des Boot-Prozesses geladen werden, um ein funktionierendes virtuelles Betriebssystem mit Anwendungen, Daten und Schnittstellen bereitzustellen. Andere Betriebssystemkomponenten, die nicht Teil des Boot-Prozesses sind, sind nicht dargestellt.
  • Der Boot-Prozess 606 weist einen Prozess wie der Boot-Prozess 200 nach dem Stand der Technik auf.
  • Das Attestierungssystem 620 weist auf: einen Attestierungsprozess 622 und die Attestierungswerte 624.1 bis 624N. Das Attestierungssystem 620 und der Hypervisor 604 haben vereinbart, welche Register (PCR1 ... N) verwendet werden, um den Messwert der Aktualisierungseinrichtung und die Signatur der geänderten Komponente (auch als das kennzeichnende Merkmal bezeichnet) aufzuzeichnen. Bei der bevorzugten Ausführungsform werden diese vereinbarten Register als erstes vereinbartes Register und zweites vereinbartes Register bezeichnet. In dem Beispiel handelt es sich bei dem ersten und zweiten vereinbarten Register beispielsweise um PCR17 und PCR18.
  • Das Attestierungssystem muss die Register in dem TPM attestieren. Alle Registerwerte werden unter Verwendung eines Attestierungsprotokolls weitergeleitet, bei dem digitale Signaturen und andere Sicherheitsmechanismen zur Gewährleistung des Vertrauens verwendet werden. Das Attestierungssystem kann erkennen, ob die vereinbarten Register (zum Beispiel das erste und zweite vereinbarte Register PCR17 und 18) gesetzt und in der Lage sind, das erneute Booten und die nachfolgende Änderung der aktuell vertrauenswürdigen Register (zum Beispiel PCR1, 2 und 3) vorzubereiten.
  • Das Attestierungssystem liest das erste vereinbarte Register (zum Beispiel PCR17) und stellt fest, dass es sich bei der Aktualisierungseinrichtung um eine vertrauenswürdige Aktualisierungseinrichtung handelt. Die Feststellung wird getroffen durch: Prüfen einer Hauptliste von Messwerten von bekannten und vertrauenswürdigen Aktualisierungseinrichtung; und Prüfen eines vertrauenswürdigen Boot-Ereignisprotokolls, das bei jeder Änderung an den Registern mit Metadaten aktualisiert wurde. Wenn das Attestierungssystem feststellt, dass das erste vereinbarte Register einen vertrauenswürdigen Wert enthält, geht es davon aus, dass das zweite vereinbarte Register ebenfalls einen vertrauenswürdigen Wert enthält, der beim nächsten Vergleich des Boot-Registers verwendet wird, das der in der Aktualisierung erkannten Aktualisierungseinrichtung zugeordnet ist.
  • Mit Bezug auf 7 weist der Hypervisor-Aktualisierungsprozess 700 die logischen Prozessschritte 702 bis 710 auf.
  • Schritt 702 dient zum Feststellen, dass eine Boot-Komponente eine verfügbare Aktualisierung aufweist, indem die Aktualisierungsregistrierungsdatenbank 650 nach neueren Komponenten abgesucht wird. Die Boot-Komponente 616.3 des virtuellen Betriebssystems 614 zum Beispiel weist Version 1 des AIX-Boot-Abbilds (AIX-Boot-Abbild1) auf, die Aktualisierung 651.3 in der Aktualisierungsregistrierungsdatenbank 650 wurde jedoch mit Version 2 des AIX-Boot-Abbilds (AIX-Boot-Abbild2) geladen. Dies wird bevorzugt, bei anderen Ausführungsformen kann jedoch ein anderer Mechanismus verwendet werden, um festzustellen, wann zu aktualisieren ist.
  • Schritt 704 dient zum Laden der neuen Boot-Komponente, indem die zugeordnete Aktualisierungseinrichtung (zum Beispiel die Aktualisierungseinrichtung 612.3) aktiviert wird und wobei die zugeordnete Aktualisierungseinrichtung in der Lage ist, die Boot-Komponente zu aktualisieren; die zugeordnete Aktualisierungseinrichtung greift auf die neue Boot-Komponente zu und installiert die neue Boot-Komponente über der alten Boot-Komponente oder installiert diese an deren Stelle. Die vorstehende Beschreibung ist die wesentliche Operation des Boot-Ladeschritts, und eine genauere Operation des Boot-Ladeschritts wird nachstehend mit Bezug auf 8 beschrieben.
  • Schritt 706 dient zum Messen einer neuen Boot-Komponente, nachdem diese in das virtuelle Betriebssystem geladen wurde, so dass der neue Messwert die neue Boot-Komponente an ihrem Platz in dem virtuellen Betriebssystem eindeutig identifiziert. Der neue Messwert wird zu einem spezifischen Register in dem Trusted Platform Module hinzugefügt. Bei der bevorzugten Ausführungsform sucht das Attestierungssystem 620 nach dem spezifischen Register und weiß, dass dieses einen neuen und keinen alten Messwert vorhält.
  • Schritt 708 dient zum Benachrichtigen des Attestierungssystems 620, dass eine Boot-Komponente aktualisiert wurde.
  • Schritt 710 zeigt das Ende des Aktualisierungsprozesses 700 an.
  • Während Schritt 704 zum Laden einer neuen Boot-Komponente vorstehend zwar als eine einfache Ausführungsform der Erfindung beschrieben wurde, verwendet die bevorzugte Ausführungsform der Erfindung eine weitere Verarbeitung, um das Niveau der Vertrauenswürdigkeit zu verbessern. Der wie nachstehend mit Bezug auf 8 beschriebene Prozess 704 zum Laden einer neuen Boot-Komponente ist eine bevorzugte Ausführungsform der Erfindung und weist die Prozessschritte 802 bis 812 auf.
  • Schritt 802 dient zum Identifizieren einer Aktualisierungskomponente, die der Boot-Komponente zugeordnet ist. In dem nachstehenden Beispiel wird ein Bosboot genanntes Programm aufgerufen, um das AIX-Boot-Abbild1 mit dem AIX-Boot-Abbild2 zu überschreiben.
  • Schritt 804 dient zum Laden der identifizierten Aktualisierungseinrichtung in das Betriebssystem.
  • Schritt 806 dient zum Messen der Aktualisierungseinrichtung und Hinzufügen des Messwerts zu dem ersten vereinbarten Register. In dem nachstehenden Beispiel misst ein Programm namens Hypercall Bosboot und vergrößert das erste vereinbarte Register (zum Beispiel PCR17) in dem TPM.
  • Schritt 808 dient zum Aufrufen der Aktualisierungseinrichtung, um die Aktualisierungskomponente zu installieren. In dem nachstehenden Beispiel schreibt Bosboot das neue Boot-Abbild.
  • Schritt 810 dient zum Messen der neuen Boot-Komponente und Hinzufügen des Messwerts zu dem zweiten vereinbarten Register.
  • Schritt 812 ist das Ende des Prozesses 704 zum Laden einer neuen Boot-Komponente.
  • Mit Bezug auf 9 werden die logischen Prozessschritte 902 bis 910 des Attestierungsprozesses 622 gemäß der bevorzugten Ausführungsform beschrieben. Der Attestierungsprozess wird nach dem Booten der vertrauenswürdigen Plattform ausgeführt, ist jedoch unabhängig von der vertrauenswürdigen Plattform.
  • Schritt 902 dient zum Extrahieren von Messwerten, die in Registern gespeichert sind.
  • Schritt 904 dient zum Vergleichen der Messwerte mit den Attestierungswerten 624.1 bis 624N, die von dem Attestierungssystem 620 gespeichert werden.
  • Schritt 906 dient zum Anzeigen einer Annahme, wenn die Werte mit den Messwerten übereinstimmen.
  • Schritt 908 dient zum Anzeigen einer Zurückweisung, wenn nichtübereinstimmende Boot-Messwerte von Schritt 906 mit einer bekannten Aktualisierungseinrichtung übereinstimmen.
  • Schritt 910 dient zum Anzeigen einer Zurückweisung, wenn nichtübereinstimmende Messwerte nach den Schritten 908 und 910 vorliegen.
  • Schritt 912 dient zum Anzeigen des Endes des Prozesses.
  • BEISPIEL
  • Ein Beispiel der Operation der bevorzugten Ausführungsform weist ein IBM Power* System auf, das einen IBM Power Hypervisor (PHYP) mit einem einzelnen virtuellen AIX-System beherbergt. Das AIX-System verwendet eine virtuelle TPM-Einheit und beinhaltet eine vertrauenswürdige Boot-Funktionalität. Das System wird von einem separaten Attestierungssystem überwacht und attestiert. Beim Attestieren werden die folgenden PCR-Messwerte zurückgesendet, wobei PCR1, PCR2, PCR3 Register in dem TPM sind.
    PCR1 = Open-Firmware
    PCR2 = AIX-Boot-Abbild
    PCR3 = AIX Trusted Execution Database
  • Das Attestierungssystem betrachtet diese Messwerte als vertrauenswürdig und zeigt kein Sicherheitsproblem an, wenn diese über die Attestierung zurückgesendet werden. Damit das AIX-Boot-Abbild geändert und das Attestierungssystem über diese Aktualisierung informiert werden kann, gibt es noch folgende Funktionen.
  • PHYP wird geändert, so dass er ein neues Verfahren (als Hypercall und insbesondere als H_Messen bezeichnet) aufweist. H_Messen verwendet Parameter, die etwas beschreiben, das gemessen und ausgeführt werden soll, zum Beispiel Adresse und Länge. Der sich daraus ergebende Messwert wird in ein bestimmtes Register des TPM, beispielsweise PCR17, gesetzt. Das jeweilige Boot-Register ist nicht wichtig, wobei es sich um ein absolut adressiertes Register oder ein indirekt adressiertes Register handeln kann. Wichtig ist, dass das Attestierungssystem weiß, wo es nachschauen muss. PHYP gibt die Steuerung an der Adresse, an der vorbeigegangen wurde, an AIX zurück, der wichtige Unterschied besteht darin, dass der Hypercall zuerst verwendet wird, um eine Komponente zu messen, und dann, um diese Komponente auszuführen. Was gemessen wird, wird anschließend ausgeführt.
  • Um zu funktionieren, muss auch der Hypervisor vertrauenswürdig sein. Die Vertrauenswürdigkeit eines Hypervisor nach dem Stand der Technik wird durch das IBM Power System gewährleistet, das den PHYP-Code in sehr restriktiver Art und Weise aktualisiert, und nur durch das IBM Power System signierte Aktualisierungen können installiert werden. Bei der vorliegenden Ausführungsform weist das IBM Power System eine reale TPM-Einheit auf, und der PHYP wird in dem realen TPM gemessen. Eine als ”Deep-Attestation” (tiefe Attestierung) bekannte Technik kann verwendet werden, um die realen TPM-Messwerte über das virtuelle AIX-System abzurufen.
  • Ein definierter Satz von AIX-Programmen, die in der Beschreibung als Aktualisierungseinrichtung bezeichnet werden, dürfen Komponenten des vertrauenswürdigen Boot-Vorgangs ändern. In diesem Beispiel ist Bosboot das einzige Aktualisierungseinrichtungsprogramm, das das AIX-Boot-Abbild aktualisieren darf. Bei dieser Technik muss Bosboot vertrauenswürdig sein, und wenn Bosboot daher aufgebaut wird, wird eine digitale Signatur von Bosboot genommen und veröffentlicht. Damit H_Messen Bosboot erfolgreich messen kann, sollte Bosboot ein einzelner statischer Codeteil sein, der in einen zusammenhängenden Speicherteil geladen werden kann, damit die Messung durchgeführt werden kann. Es ist wichtig, dass Bosboot messbar ist. Bosboot muss nicht statisch sein, wenn andere Sicherheitsmaßnahmen vorhanden sind, um sicherzustellen, dass nichtstatische Programme nicht ohne Weiteres umgangen werden können.
  • In diesem Beispiel wird ein AIX-Boot-Abbild1 in ein AIX-Boot-Abbild2 geändert, womit dem Attestierungssystem mitgeteilt wird, dass eine unnötige Sicherheitsverletzung verhindert wurde. Die Operationen sind wie folgt:
    • 1. Bosboot (eine Aktualisierungseinrichtung) wird aufgerufen (Schritt 702), um das Boot-Abbild neu zu schreiben.
    • 2. Der AIX-Kern lädt (Schritt 704) Bosboot in den Speicher und ruft H_Messen auf.
    • 3. PHYP misst (Schritt 706) Bosboot und vergrößert PCR17 in dem TPM.
    • 4. Die Ausführung wird von dem Hypervisor an Bosboot weitergegeben, und Bosboot schreibt das neue Boot-Abbild und vergrößert PCR18 mit einem Messwert eines AIX-Boot-Abbilds2. Ähnlich wie bei PCR17 ist es auch hier nicht wichtig, welches Register verwendet wird, solange das Attestierungssystem weiß, dass PCR18 eine besondere Bedeutung hat.
    • 5. Das Attestierungssystem wird informiert (Schritt 708), dass es erneut attestieren sollte, wobei keine Informationen mehr ausgetauscht werden müssen.
  • Wenn das Attestierungssystem das System nun attestiert, werden folgende Werte zurückgesendet (Schritt 902).
    PCR1 = Open-Firmware
    PCR2 = AIX-Boot-Abbild1
    PCR3 = AIX Trusted-Execution Database1
    PCR17 = bosboot
    PCR18 = AIX-Boot-Abbild2
  • Das Attestierungssystem wird feststellen, dass PCR17 seit der letzten Attestierung geändert wurde, dies wird eine Maßnahme (Schritt 908) in dem Attestierungssystem auslösen. Zuerst wird der Wert von PCR17 geprüft, das System stellt fest, dass ein zulässiges von IBM veröffentlichtes Bosboot aufgerufen wurde, daher weiß das System, dass PCR18 ein neues AIX-Boot-Abbild sein wird. Wenn das Attestierungssystem nun einen neuen vertrauenswürdigen Boot-Vorgang abschließt, kann das Attestierungssystem feststellen, dass der neue über PCR1 gemeldete Wert von einem vertrauenswürdigen Bosboot gekommen ist, so dass keine Maßnahme erforderlich ist.
  • AUSFÜHRUNGSFORMEN
  • Vorstehend ist die bevorzugte Ausführungsform mit einem Hypervisor beschrieben, um eine Betriebsumgebung einer virtuellen Maschine zu verwalten, sowie andere Ausführungsformen, bei denen eine einzelne Funktion auf die eine oder andere Weise von der bevorzugten Ausführungsform abweichen kann.
  • Eine Ausführungsform, die sich wesentlich von der bevorzugten Ausführungsform unterscheidet, bezieht sich auf eine Ausführungsform ohne Virtualisierung, eine wie in 10 dargestellte nichtvirtuelle Umgebung. Diese Ausführungsform weist auf: eine Plattform 1000; ein Attestierungssystem 1020 und eine Aktualisierungsregistrierungsdatenbank 1050. Die Plattform 1000 ist auf der Basis von Silicium entworfen und hergestellt. Ähnlich wie die bevorzugte Ausführungsform ist das TPM 1010 kein wesentlicher Bestandteil, und eine andere sichere Einheit/ein anderer Speicher, die/der Messwerte und etwas Ähnliches wie eine Attestierung vorhält, könnte verwendet werden.
  • Die Aktualisierungsregistrierungsdatenbank 1050 ist eine Speicherressource und ein Index zum Vorhalten der aktuellen Versionen einzelner Komponenten von Betriebssystemen und Anwendungen, die zur Verwendung in Aktualisierungsinstanzen der Betriebssysteme oder Anwendungen dienen. In der Figur weist die Aktualisierungsregistrierungsdatenbank die Aktualisierungen 1051.1 bis 1050N auf. Das Abfragen der Versionsnummern oder Datumsangaben der Komponente in der Aktualisierungsregistrierungsdatenbank im Vergleich mit den Versionsnummern oder Datumsangaben einer Komponente einer Betriebssysteminstanz ergibt, welche Komponenten aktualisiert werden müssen.
  • Das Attestierungssystem 1020 weist einen Attestierungsprozess 1022 und die Attestierungswerte 1024.1 bis 1024N auf. Neben dem Unterschied, dass das Betriebssystem ein reales Betriebssystem ist, das auf einer physischen Maschine ausgeführt wird, sind der Attestierungsprozess 1022 und die Attestierungswerte 1024.1 bis 1024N gleich wie die in 6 dargestellten.
  • Während des Betriebs ist die Plattform 1000 eine Hardware-Plattform, die aufweist: einen Boot-Prozess 1006; einen Aktualisierungsprozess 1700; Aktualisierungseinrichtungen 1012.1 bis 1012N; ein TPM 1010; und ein Betriebssystem 1014. Ähnlich wie die bevorzugte Ausführungsform ist das TPM 1010 kein wesentlicher Bestandteil, und eine andere sichere Einheit/ein anderer Speicher, die/der Messwerte und etwas Ähnliches wie eine Attestierung vorhält, könnte verwendet werden.
  • In der nichtvirtuellen Umgebung weist ein TPM 1010 die Spezialregister (SR1 ... SRN) auf, die zum Vorhalten von Messwerten verwendet werden können. SRs verhalten sich insofern genau wie PCRs, als ein Schreibvorgang in ihnen tatsächlich ein Schreiben eines neuen Werts zusammen mit dem alten Wert sowie anschließend unter Verwendung eines starken Hash-Algorithmus ein Streuen beinhaltet. Der Prozessor weist Befehle auf, die eine Aktualisierung dieser Spezialregister (SRs) ermöglichen. Der Prozessor wird geändert, um einen Messbefehl aufzuweisen. Dieser Befehl verwendet eine Kennung für ein SR, eine Speicheradresse und eine Länge. Er misst die Daten an der Adresse (und alle Bytes bis zur Länge) und speichert dann den Messwert in dem spezifizierten SR. Der Prozessor überträgt die Ausführung an die Adresse.
  • In der nichtvirtuellen Umgebung muss die Plattform 1000 Code aktualisieren, wobei dem Code zugeordneter Aktualisierungscode vorhanden ist, um die Aktualisierung durchzuführen. Der zugeordnete Code wird in den Speicher geladen, anschließend wird der Messbefehl verwendet, um den zugeordneten Code zu messen und auszuführen. Der Messwert wird in einem ersten vereinbarten Register gespeichert. Der ausgeführte zugeordnete Code kann nun den Code installieren, dies beinhaltet vielleicht nur das Schreiben von Daten auf eine Platte. Vor dem Schreibvorgang oder vor jedem Schreibvorgang (sofern eine N-Byte-Schreibbegrenzung besteht) werden Messwerte ermittelt und in ein zweites vereinbartes Register geschrieben (ein SR, wobei dies mit der Aktualisierung des zweiten vereinbarten Registers PCR18 korreliert).
  • In der nichtvirtuellen Umgebung muss die Plattform 1000 ein Attestierungssystem 1020 darüber informieren, dass eine Aktualisierung stattgefunden hat. Wie bei der bevorzugten Ausführungsform attestiert das Attestierungssystem 1020, wodurch die Werte der SRs unter Verwendung kryptografischer Techniken übertragen werden, um die Vertrauenswürdigkeit aufrechtzuerhalten. Der Attestierungsprozess 1022 ähnelt der bevorzugten Ausführungsform.
  • Fachleuten ist ersichtlich, dass das Verfahren der beschriebenen Ausführungsformen der vorliegenden Erfindung ganz oder teilweise auf geeignete Weise in einer Logikvorrichtung oder einer Vielzahl von Logikvorrichtungen ausgeführt werden kann, die Logikelemente aufweist, die so angeordnet sind, dass sie die Verfahrensschritte durchführen, und dass diese Logikelemente Hardware-Komponenten, Firmware-Komponenten oder eine Kombination davon aufweisen können.
  • Fachleuten ist ferner ersichtlich, dass eine Logikanordnung gemäß den beschriebenen Ausführungsformen der vorliegenden Erfindung ganz oder teilweise auf geeignete Weise in einer Logikvorrichtung umgesetzt werden kann, die Logikelemente aufweist, um die Verfahrensschritte durchzuführen, und dass diese Logikelemente Komponenten wie Logikgatter in beispielsweise einem programmierbaren Logik-Array oder einer anwendungsspezifischen integrierten Schaltung aufweisen können. Eine solche Logikanordnung kann weiterhin in Basiselementen umgesetzt werden, um Logikstrukturen in einem solchen Array oder einer solchen Schaltung zum Beispiel unter Verwendung einer virtuellen Hardware-Deskriptorsprache vorübergehend oder dauerhaft einzurichten, die mit Hilfe fester oder übertragbarer Trägermedien gespeichert und übertragen werden kann.
  • Es ist ersichtlich, dass das oben beschriebene Verfahren und die oben beschriebene Anordnung auch ganz oder teilweise auf geeignete Weise in einer Software ausgeführt werden können, die auf einem oder mehreren Prozessoren (nicht in den Figuren dargestellt) läuft, und dass die Software in Form von einem oder mehreren Computerprogrammelementen bereitgestellt werden kann, die sich auf einem beliebigen geeigneten Datenträger (ebenfalls nicht in den Figuren dargestellt) wie beispielsweise einer Magnet- oder optischen Platte oder Ähnlichem befinden können. Kanäle für die Übertragung von Daten können ihrerseits Speichermedien aller Beschreibungen sowie signaltragende Medien wie drahtgebundene oder drahtlose signaltragende Medien aufweisen.
  • Die vorliegende Erfindung kann weiterhin auf geeignete Weise als ein Computerprogrammprodukt zur Verwendung mit einem Computersystem ausgeführt werden. Eine solche Ausführung kann eine Reihe von computerlesbaren Befehlen aufweisen, die entweder auf einem physischen Medium wie einem computerlesbaren Medium, beispielsweise einer Diskette, einer CD-ROM, ROM oder einer Festplatte, fest gespeichert sind oder zu einem Computersystem übertragen werden können und zwar unter Verwendung eines Modems oder einer anderen Schnittstelleneinheit über entweder ein physisches Medium, darunter optische oder analoge Datenübertragungsleitungen, ohne jedoch auf diese beschränkt zu sein, oder immateriell unter Verwendung drahtloser Techniken, darunter Mikrowellen-, Infrarot- oder andere Übertragungstechniken, ohne jedoch auf diese beschränkt zu sein. Die Reihe von computerlesbaren Befehlen setzt die oben beschriebene Funktionalität ganz oder teilweise um.
  • Fachleuten ist ersichtlich, dass diese computerlesbaren Befehle in einer Reihe von Programmiersprachen zur Verwendung mit vielen Computerarchitekturen oder Betriebssystemen geschrieben werden können. Solche Befehle können weiterhin unter Verwendung einer beliebigen aktuellen oder künftigen Speichertechnologie gespeichert werden, einschließlich Halbleiter-, magnetische oder optische Technologie, ohne jedoch auf diese beschränkt zu sein, oder unter Verwendung einer aktuellen oder künftigen Datenübertragungstechnologie übertragen werden, einschließlich optische, Infrarot- oder Mikrowellentechnologie, ohne jedoch auf diese beschränkt zu sein. Es ist denkbar, dass ein solches Computerprogrammprodukt als ein austauschbares Medium mit beigefügter gedruckter oder elektronischer Dokumentation verbreitet werden kann, zum Beispiel als in Folie eingeschweißte Software, vorinstalliert auf einem Computersystem, zum Beispiel auf einer System-ROM oder einer Festplatte, oder von einem Server oder einem elektronischen Schwarzen Brett über ein Netzwerk, zum Beispiel das Internet oder das World Wide Web, verbreitet werden kann.
  • Alternativ kann die bevorzugte Ausführungsform der vorliegenden Erfindung in Form eines auf einem Computer implementierten Verfahrens zum Implementieren eines Dienstes umgesetzt werden, das die Schritte zum Implementieren eines Computerprogrammcodes aufweist, der das Computersystem funktionsmäßig veranlassen kann, alle Verfahrensschritte durchzuführen, wenn der Code in einer Computerinfrastruktur implementiert und in dieser ausgeführt wird.
  • Alternativ können die beschriebenen Ausführungsformen der vorliegenden Erfindung in Form eines Datenträgers mit darauf enthaltenen Funktionsdaten umgesetzt werden, wobei die Funktionsdaten funktionale Computerdatenstrukturen aufweisen, um das Computersystem in die Lage zu versetzen, alle Verfahrensschritte durchzuführen, wenn die Daten in ein Computersystem geladen und auf diesem ausgeführt werden.
  • Dem Fachmann ist ersichtlich, dass viele Verbesserungen und Änderungen an der vorgenannten beispielhaften Ausführungsform vorgenommen werden können, ohne vom Schutzumfang der vorliegenden Erfindung abzuweichen.
  • ZUSAMMENFASSUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
  • Zusammenfassend bezieht sich diese Erfindung auf ein Verfahren und eine Vorrichtung zum Aktualisieren eines Betriebssystems, das in einer vertrauenswürdigen Hypervisor-Datenverarbeitungsumgebung ausgeführt wird. Diese Erfindung bezieht sich insbesondere auf ein Verfahren, ein System und ein Computerprogrammprodukt zum Aktualisieren eines Betriebssystems, das in einer Hypervisor-Umgebung ausgeführt wird, aufweisend: Feststellen einer neuen Version einer Komponente eines Betriebssystems; Installieren der neuen Komponentenversion; Messen eines kennzeichnenden Merkmals der Komponente und Bereitstellen desselben für ein Attestierungssystem; Benachrichtigen des Attestierungssystems, dass eine Komponente auf eine neue Version aktualisiert wurde, wobei, wenn das Attestierungssystem feststellt, dass das kennzeichnende Merkmal der neuen Komponente nicht mit einem zuvor gespeicherten Attestierungswert übereinstimmt, das System weiß, dass eine zulässige Nichtübereinstimmung aufgetreten sein könnte. Das Installieren der neuen Version der Komponente weist auf: Identifizieren einer Aktualisierungsvorrichtung, die der neuen Version der Komponente zugeordnet ist; Messen eines kennzeichnenden Merkmals der identifizierten Aktualisierungseinrichtung; Laden und Installieren der neuen Version der Komponente; und Bereitstellen sowohl des kennzeichnenden Messwerts der Aktualisierungseinrichtung als auch der neuen Version der Komponente für das Attestierungssystem.
  • HINWEISE
    • *IBM, AIX, Express, ibm.com, Power, Power7 und Tivoli sind Warenzeichen oder eingetragene Warenzeichen der International Business Machines Corporation in den Vereinigten Staaten, anderen Ländern oder beides. Eine vollständige Liste der US-amerikanischen Warenzeichen von IBM kann unter folgender Adresse abgerufen werden: www.ibm.com/legal/copytrade.shtml.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • www.ibm.com/legal/copytrade.shtml [0109]

Claims (22)

  1. Verfahren zum Aktualisieren von Code in einer Ausführungsumgebung, aufweisend: Installieren von neuem Code; Messen eines kennzeichnenden Merkmals des neuen Codes und dessen Bereitstellen für ein Attestierungssystem; Benachrichtigen des Attestierungssystems, dass Code auf eine neue Version aktualisiert wurde, wobei, wenn das Attestierungssystem feststellt, dass das kennzeichnende Merkmal des neuen Codes nicht mit einem zuvor gespeicherten Attestierungswert übereinstimmt, das System weiß, dass eine zulässige Nichtübereinstimmung aufgetreten sein könnte.
  2. Verfahren nach Anspruch 1, wobei das Installieren des neuen Codes aufweist: Identifizieren einer Aktualisierungseinrichtung, die dem neuen Code zugeordnet ist; Messen eines kennzeichnenden Merkmals der identifizierten Aktualisierungseinrichtung; Installieren des neuen Codes; und Bereitstellen des kennzeichnenden Messwerts der Aktualisierungseinrichtung für das Attestierungssystem, wobei das Attestierungssystem den kennzeichnenden Messwert der Aktualisierungseinrichtung mit einem zuvor gespeicherten Attestierungswert in Übereinstimmung bringen kann, um eine zulässige Aktualisierung für gültig zu erklären.
  3. Verfahren nach einem der Ansprüche 1 oder 2, wobei die kennzeichnenden Merkmale in einem sicheren Speicher gespeichert werden, auf den nur das Speicherverfahren und das Attestierungssystem Zugriff haben.
  4. Verfahren nach einem der Ansprüche 1 bis 3, wobei es sich bei der Ausführungsumgebung um einen Hypervisor und bei dem Code um ein virtuelles Betriebssystem zum Ausführen in einer virtuellen Maschine des Hypervisor handelt.
  5. Verfahren nach einem der Ansprüche 1 bis 4, wobei Register sich in einem vertrauenswürdigen Plattformmodul befinden.
  6. Verfahren nach einem der Ansprüche 1 bis 5, das weiterhin ein Feststellen beinhaltet, dass neuer Code zur Verfügung steht und dass eine Aktualisierung erforderlich ist, bevor die Schritte von Anspruch 1 durchgeführt werden.
  7. Verfahren nach einem der Ansprüche 1 bis 6, wobei das Attestierungssystem direkt nach der Benachrichtigung die Herkunftsquelle des neuen Codes prüft.
  8. Verfahren nach Anspruch 7, wobei, wenn der Messwert nicht mit einem Attestierungswert übereinstimmt und das Attestierungssystem die Herkunftsquelle des entsprechenden Codes geprüft hat, dann: Aktualisieren des Attestierungswerts mit dem Messwert der neuen Version der Komponente; und/oder Benachrichtigen einer Verwaltungsebene, dass ein Messwert nicht mit einem Attestierungswert übereinstimmt und ob das Attestierungssystem die Herkunftsquelle der Komponente erkennt.
  9. Verfahren zum Aktualisieren und Attestieren von Code in einer Ausführungsumgebung, aufweisend: Installieren von neuem Code; Messen eines kennzeichnenden Merkmals des neuen Codes und dessen Bereitstellen für ein Attestierungssystem; Benachrichtigen des Attestierungssystems, dass Code auf eine neue Version aktualisiert wurde; und wobei, wenn das Attestierungssystem feststellt, dass das kennzeichnende Merkmal des neuen Codes nicht mit einem zuvor gespeicherten Attestierungswert übereinstimmt, das System weiß, dass eine zulässige Nichtübereinstimmung aufgetreten sein könnte.
  10. Verfahren zum Prüfen der Unversehrtheit eines Programms, aufweisend: Extrahieren eines von dem Programminstallationsprozess gespeicherten Code-Messwerts; Prüfen des Code-Messwerts anhand von Referenzmesswerten, die von dem Prüfsystem gespeichert werden, und Zurückweisen des Messwerts, wenn dieser nicht übereinstimmt; weiteres Prüfen des zurückgewiesenen Code-Messwerts und erneutes Zurückweisen, wenn der Messwert nicht von einer dem Prüfsystem bekannten Komponente stammt; und Anzeigen einer Annahme, wenn der Code-Messwert eine Prüfung besteht, und einer Zurückweisung, wenn ein Code-Messwert keine der Prüfungen besteht.
  11. System zum Aktualisieren von Code in einer Ausführungsumgebung, aufweisend: ein Installationsmittel zum Installieren von neuem Code; ein Messmittel zum Messen eines kennzeichnenden Merkmals des neuen Codes und dessen Bereitstellen für ein Attestierungssystem; ein Benachrichtigungsmittel zum Benachrichtigen des Attestierungssystems, dass Code auf eine neue Version aktualisiert wurde, wobei, wenn das Attestierungssystem feststellt, dass das kennzeichnende Merkmal des neuen Codes nicht mit einem zuvor gespeicherten Attestierungswert übereinstimmt, das System weiß, dass eine zulässige Nichtübereinstimmung aufgetreten sein könnte.
  12. System nach Anspruch 11, wobei das Installieren des neuen Codes aufweist: ein Identifizierungsmittel zum Identifizieren einer Aktualisierungseinrichtung, die dem neuen Code zugeordnet ist; ein Messmittel zum Messen eines kennzeichnenden Merkmals der identifizierten Aktualisierungseinrichtung; ein Installationsmittel zum Installieren des neuen Codes; und ein Mittel zum Bereitstellen des kennzeichnenden Messwerts der Aktualisierungseinrichtung für das Attestierungssystem, wobei das Attestierungssystem den kennzeichnenden Messwert der Aktualisierungseinrichtung mit einem zuvor gespeicherten Attestierungswert in Übereinstimmung bringen kann, um eine zulässige Aktualisierung für gültig zu erklären.
  13. System nach einem der Ansprüche 11 oder 12, wobei die kennzeichnenden Merkmale in einem sicheren Speicher gespeichert werden, auf den nur das Speicherverfahren und das Attestierungssystem Zugriff haben.
  14. System nach einem der Ansprüche 11 bis 13, wobei es sich bei der Ausführungsumgebung um einen Hypervisor und bei dem Code um ein virtuelles Betriebssystem zum Ausführen in einer virtuellen Maschine des Hypervisor handelt.
  15. System nach einem der Ansprüche 11 bis 14, wobei Register sich in einem vertrauenswürdigen Plattformmodul befinden.
  16. System nach einem der Ansprüche 11 bis 15, das weiterhin ein Feststellen beinhaltet, dass neuer Code zur Verfügung steht und dass eine Aktualisierung erforderlich ist, bevor die Schritte von Anspruch 11 durchgeführt werden.
  17. System nach einem der Ansprüche 11 bis 16, wobei das Attestierungssystem direkt nach der Benachrichtigung die Herkunftsquelle des neuen Codes prüft.
  18. System nach Anspruch 17, wobei, wenn der Messwert nicht mit einem Attestierungswert übereinstimmt und das Attestierungssystem die Herkunftsquelle des entsprechenden Codes geprüft hat, dann: Aktualisieren des Attestierungswerts mit dem Messwert der neuen Version der Komponente; und/oder Benachrichtigen einer Verwaltungsebene, dass ein Messwert nicht mit einem Attestierungswert übereinstimmt und ob das Attestierungssystem die Herkunftsquelle der Komponente erkennt.
  19. System zum Aktualisieren und Attestieren von Code in einer Ausführungsumgebung, wobei das System aufweist: Installationsmittel zum Installieren von neuem Code; ein Messmittel zum Messen eines kennzeichnenden Merkmals des neuen Codes und dessen Bereitstellen für ein Attestierungssystem; ein Benachrichtigungsmittel zum Benachrichtigen des Attestierungssystems, dass Code auf eine neue Version aktualisiert wurde; und wobei, wenn das Attestierungssystem feststellt, dass das kennzeichnende Merkmal des neuen Codes nicht mit einem zuvor gespeicherten Attestierungswert übereinstimmt, das System weiß, dass eine zulässige Nichtübereinstimmung aufgetreten sein könnte.
  20. System zum Prüfen der Unversehrtheit eines Programms, aufweisend: Extrahieren eines von dem Programminstallationsprozess gespeicherten Code-Messwerts; ein Prüfmittel zum Prüfen des Code-Messwerts anhand von Referenzmesswerten, die von dem Prüfsystem gespeichert werden, und Zurückweisen des Messwerts, wenn dieser nicht übereinstimmt; ein weiteres Prüfmittel zum Prüfen des zurückgewiesenen Code-Messwerts und erneutes Zurückweisen, wenn der Messwert nicht von einer dem Prüfsystem bekannten Komponente stammt; und ein Anzeigemittel zum Anzeigen einer Annahme, wenn der Code-Messwert eine Prüfung besteht, und einer Zurückweisung, wenn ein Code-Messwert keine der Prüfungen besteht.
  21. Computerprogrammprodukt zum Erzeugen einer ersten Computerressource in einem Client-Computer, wobei das Computerprogrammprodukt aufweist: ein computerlesbares Speichermedium, das von einer Verarbeitungsschaltung lesbar ist und Befehle zum Ausführen durch die Verarbeitungsschaltung speichert, um ein Verfahren gemäß einem der Ansprüche 1 bis 10 durchzuführen.
  22. Computerprogramm, das in einem computerlesbaren Medium gespeichert ist und in den internen Speicher eines digitalen Computers ladbar ist und Teile eines Softwarecodes aufweist, wenn das Programm auf einem Computer ausgeführt wird, um das Verfahren eines der Ansprüche 1 bis 10 durchzuführen.
DE112012000512T 2011-01-19 2012-01-10 Aktualisieren von Software Pending DE112012000512T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP11151339 2011-01-19
EP11151339.6 2011-01-19
PCT/IB2012/050111 WO2012098478A1 (en) 2011-01-19 2012-01-10 Updating software

Publications (1)

Publication Number Publication Date
DE112012000512T5 true DE112012000512T5 (de) 2013-10-24

Family

ID=46515210

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112012000512T Pending DE112012000512T5 (de) 2011-01-19 2012-01-10 Aktualisieren von Software

Country Status (7)

Country Link
US (4) US9317276B2 (de)
JP (1) JP5932837B2 (de)
KR (1) KR20130114672A (de)
CN (1) CN103329093B (de)
DE (1) DE112012000512T5 (de)
GB (1) GB2501433B (de)
WO (1) WO2012098478A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10620936B2 (en) 2011-01-19 2020-04-14 International Business Machines Corporation Updating software

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9992024B2 (en) * 2012-01-25 2018-06-05 Fujitsu Limited Establishing a chain of trust within a virtual machine
US9141802B2 (en) * 2012-09-25 2015-09-22 Intel Corporation Computing device boot software authentication
US8997080B2 (en) * 2013-02-11 2015-03-31 Citrix Systems, Inc. System updates with personal virtual disks
FR3010553B1 (fr) * 2013-09-10 2015-09-04 Sagemcom Broadband Sas Procede de mise a jour d'un logiciel de demarrage d'un dispositif multiprocesseur
US9519466B2 (en) * 2013-12-20 2016-12-13 Oracle International Corporation Executable code for constrained computing environments
US10389709B2 (en) * 2014-02-24 2019-08-20 Amazon Technologies, Inc. Securing client-specified credentials at cryptographically attested resources
US10049202B1 (en) 2014-03-25 2018-08-14 Amazon Technologies, Inc. Strong authentication using authentication objects
US10050787B1 (en) * 2014-03-25 2018-08-14 Amazon Technologies, Inc. Authentication objects with attestation
KR101647487B1 (ko) * 2014-05-22 2016-08-10 소프트캠프(주) 패치파일 분석시스템과 분석방법
US9264419B1 (en) 2014-06-26 2016-02-16 Amazon Technologies, Inc. Two factor authentication with authentication objects
US10303879B1 (en) * 2014-11-06 2019-05-28 Amazon Technologies, Inc. Multi-tenant trusted platform modules
US9400674B2 (en) 2014-12-11 2016-07-26 Amazon Technologies, Inc. Managing virtual machine instances utilizing a virtual offload device
US9292332B1 (en) 2014-12-11 2016-03-22 Amazon Technologies, Inc. Live updates for virtual machine monitor
US9424067B2 (en) 2014-12-11 2016-08-23 Amazon Technologies, Inc. Managing virtual machine instances utilizing an offload device
US9886297B2 (en) * 2014-12-11 2018-02-06 Amazon Technologies, Inc. Systems and methods for loading a virtual machine monitor during a boot process
US9535798B1 (en) 2014-12-19 2017-01-03 Amazon Technologies, Inc. Systems and methods for maintaining virtual component checkpoints on an offload device
US10068092B2 (en) * 2015-01-21 2018-09-04 Microsoft Technology Licensing, Llc Upgrading a secure boot policy on a virtual machine
US9667414B1 (en) 2015-03-30 2017-05-30 Amazon Technologies, Inc. Validating using an offload device security component
US10211985B1 (en) 2015-03-30 2019-02-19 Amazon Technologies, Inc. Validating using an offload device security component
US10243739B1 (en) 2015-03-30 2019-03-26 Amazon Technologies, Inc. Validating using an offload device security component
CN106155887A (zh) * 2015-03-31 2016-11-23 展讯通信(天津)有限公司 一种自动匹配版本的应用程序测试方法及系统及移动终端
CN105468964B (zh) 2015-12-04 2018-09-14 上海兆芯集成电路有限公司 计算机系统以及计算机系统操作方法
US9779248B1 (en) * 2016-03-30 2017-10-03 Microsoft Technology Licensing, Llc Protection of secured boot secrets for operating system reboot
US10318737B2 (en) * 2016-06-30 2019-06-11 Amazon Technologies, Inc. Secure booting of virtualization managers
CN109804378A (zh) * 2016-10-21 2019-05-24 惠普发展公司 ,有限责任合伙企业 Bios安全
WO2018092289A1 (ja) * 2016-11-21 2018-05-24 大日本印刷株式会社 情報処理装置
US10783235B1 (en) * 2017-05-04 2020-09-22 Amazon Technologies, Inc. Secure remote access of computing resources
US10339034B2 (en) 2017-06-16 2019-07-02 Google Llc Dynamically generated device test pool for staged rollouts of software applications
CN108536486A (zh) * 2018-04-08 2018-09-14 苏州犀牛网络科技有限公司 Rn小程序的加载方法及装置
EP3598333B1 (de) * 2018-07-16 2023-01-18 Nokia Technologies Oy Verwaltung der aktualisierung elektronischer vorrichtungen
WO2020053469A1 (en) * 2018-09-12 2020-03-19 Nokia Solutions And Networks Oy Method and apparatus for automating software updating of devices
US10984108B2 (en) * 2018-10-05 2021-04-20 International Business Machines Corporation Trusted computing attestation of system validation state
CN109522038A (zh) * 2018-11-22 2019-03-26 凌云天博光电科技股份有限公司 一种cs架构的客户端升级方法及装置
US10915632B2 (en) 2018-11-27 2021-02-09 International Business Machines Corporation Handling of remote attestation and sealing during concurrent update
US11080039B2 (en) * 2019-11-25 2021-08-03 Micron Technology, Inc. Resilient software updates in secure storage devices
US10970064B1 (en) 2020-07-28 2021-04-06 Bank Of America Corporation Dynamically updating a software program to resolve errors
US11204777B1 (en) * 2020-11-30 2021-12-21 EMC IP Holding Company LLC Boot from SAN operation support on multi-pathing devices
US20240036902A1 (en) * 2022-07-26 2024-02-01 Microsoft Technology Licensing, Llc Accumulations of measurements for attestations

Family Cites Families (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5325532A (en) 1992-09-25 1994-06-28 Compaq Computer Corporation Automatic development of operating system boot image
US6993648B2 (en) * 2001-08-16 2006-01-31 Lenovo (Singapore) Pte. Ltd. Proving BIOS trust in a TCPA compliant system
US7711775B2 (en) * 2001-10-24 2010-05-04 Groove Networks, Inc. Method and apparatus for managing software component downloads and updates
GB2382419B (en) * 2001-11-22 2005-12-14 Hewlett Packard Co Apparatus and method for creating a trusted environment
US7243347B2 (en) 2002-06-21 2007-07-10 International Business Machines Corporation Method and system for maintaining firmware versions in a data processing system
US7275263B2 (en) 2003-08-11 2007-09-25 Intel Corporation Method and system and authenticating a user of a computer system that has a trusted platform module (TPM)
US20050132357A1 (en) 2003-12-16 2005-06-16 Microsoft Corporation Ensuring that a software update may be installed or run only on a specific device or class of devices
US7480804B2 (en) * 2004-04-29 2009-01-20 International Business Machines Corporation Method and system for hierarchical platform boot measurements in a trusted computing environment
US8006100B2 (en) * 2004-06-10 2011-08-23 Oracle America, Inc. Enhancing trusted platform module performance
US7631360B2 (en) * 2004-06-12 2009-12-08 Microsoft Corporation Hardware protection
US7590867B2 (en) * 2004-06-24 2009-09-15 Intel Corporation Method and apparatus for providing secure virtualization of a trusted platform module
US20060143600A1 (en) * 2004-12-29 2006-06-29 Andrew Cottrell Secure firmware update
US7725703B2 (en) 2005-01-07 2010-05-25 Microsoft Corporation Systems and methods for securely booting a computer with a trusted processing module
US7613921B2 (en) * 2005-05-13 2009-11-03 Intel Corporation Method and apparatus for remotely provisioning software-based security coprocessors
US7590841B2 (en) * 2005-07-19 2009-09-15 Microsoft Corporation Automatic update of computer-readable components to support a trusted environment
WO2008004525A1 (fr) * 2006-07-03 2008-01-10 Panasonic Corporation Dispositif de traitement d'informations, dispositif d'enregistrement d'informations, système de traitement d'informations, procédé de mise à jour de programme, programme, et circuit intégré
JP2008033751A (ja) * 2006-07-31 2008-02-14 Ziosoft Inc アップデート方法およびアップデートシステム
US7987351B2 (en) * 2006-10-06 2011-07-26 Broadcom Corporation Method and system for enhanced boot protection
US9086917B1 (en) * 2006-10-17 2015-07-21 Manageiq, Inc. Registering and accessing virtual systems for use in a managed system
US8060941B2 (en) * 2006-12-15 2011-11-15 International Business Machines Corporation Method and system to authenticate an application in a computing platform operating in trusted computing group (TCG) domain
US20080235754A1 (en) * 2007-03-19 2008-09-25 Wiseman Willard M Methods and apparatus for enforcing launch policies in processing systems
US20080244553A1 (en) * 2007-03-28 2008-10-02 Daryl Carvis Cromer System and Method for Securely Updating Firmware Devices by Using a Hypervisor
GB0707150D0 (en) * 2007-04-13 2007-05-23 Hewlett Packard Development Co Dynamic trust management
US9053323B2 (en) * 2007-04-13 2015-06-09 Hewlett-Packard Development Company, L.P. Trusted component update system and method
US9026771B2 (en) 2007-04-27 2015-05-05 Hewlett-Packard Development Company, L.P. Secure computer system update
WO2009004757A1 (ja) * 2007-07-05 2009-01-08 Panasonic Corporation データ処理装置、データ処理方法、データ処理プログラム、記録媒体及び集積回路
GB2450869B (en) * 2007-07-09 2012-04-25 Hewlett Packard Development Co Establishing a trust relationship between computing entities
JP5385148B2 (ja) * 2007-10-05 2014-01-08 パナソニック株式会社 セキュアブート端末、セキュアブート方法、セキュアブートプログラム、記録媒体及び集積回路
US20090204964A1 (en) * 2007-10-12 2009-08-13 Foley Peter F Distributed trusted virtualization platform
US8584229B2 (en) * 2007-12-21 2013-11-12 Intel Corporation Methods and apparatus supporting access to physical and virtual trusted platform modules
US20090210702A1 (en) * 2008-01-29 2009-08-20 Palm, Inc. Secure application signing
US8677108B2 (en) 2008-01-30 2014-03-18 Panasonic Corporation Method for finding next component to be booted based on booting status of current component to continue booting process by using a component look-up table
US8321931B2 (en) * 2008-03-31 2012-11-27 Intel Corporation Method and apparatus for sequential hypervisor invocation
DE102008021567B4 (de) * 2008-04-30 2018-03-22 Globalfoundries Inc. Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel
US8140835B2 (en) * 2008-05-09 2012-03-20 International Business Machines Corporation Updating a basic input/output system (‘BIOS’) boot block security module in compute nodes of a multinode computer
US9361089B2 (en) * 2008-07-22 2016-06-07 International Business Machines Corporation Secure patch updates of a virtual machine image in a virtualization data processing system
US20100082960A1 (en) 2008-09-30 2010-04-01 Steve Grobman Protected network boot of operating system
WO2010041467A2 (en) * 2008-10-10 2010-04-15 Panasonic Corporation USING TRANSIENT PCRs TO REALISE TRUST IN APPLICATION SPACE OF A SECURE PROCESSING SYSTEM
US8176336B1 (en) * 2008-12-19 2012-05-08 Emc Corporation Software trusted computing base
JP2010257180A (ja) 2009-04-24 2010-11-11 Nec Access Technica Ltd バージョン管理システム、装置、方法及びプログラム
ES2773042T3 (es) * 2009-05-04 2020-07-09 Nokia Solutions & Networks Oy Mecanismo para actualizar software
US8200790B1 (en) * 2009-07-13 2012-06-12 Sprint Communications Company L.P. Dynamically identifying client applications on mobile devices
US8887144B1 (en) * 2009-09-04 2014-11-11 Amazon Technologies, Inc. Firmware updates during limited time period
US8296579B2 (en) * 2009-11-06 2012-10-23 Hewlett-Packard Development Company, L.P. System and method for updating a basic input/output system (BIOS)
US8589302B2 (en) * 2009-11-30 2013-11-19 Intel Corporation Automated modular and secure boot firmware update
US9317267B2 (en) * 2009-12-15 2016-04-19 International Business Machines Corporation Deployment and deployment planning as a service
US8510569B2 (en) * 2009-12-16 2013-08-13 Intel Corporation Providing integrity verification and attestation in a hidden execution environment
US8667263B2 (en) * 2010-02-12 2014-03-04 The Johns Hopkins University System and method for measuring staleness of attestation during booting between a first and second device by generating a first and second time and calculating a difference between the first and second time to measure the staleness
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
EP2543215A2 (de) * 2010-03-05 2013-01-09 InterDigital Patent Holdings, Inc. Verfahren und vorrichtung zur bereitstellung von sicherheit an vorrichtungen
US20110239209A1 (en) * 2010-03-23 2011-09-29 Fujitsu Limted System and methods for remote maintenance in an electronic network with multiple clients
EP2550621A4 (de) * 2010-03-25 2015-09-16 Virtustream Canada Holdings Inc System und verfahren für sicheres cloud-computing
US8505003B2 (en) * 2010-04-28 2013-08-06 Novell, Inc. System and method for upgrading kernels in cloud computing environments
US8812871B2 (en) * 2010-05-27 2014-08-19 Cisco Technology, Inc. Method and apparatus for trusted execution in infrastructure as a service cloud environments
WO2012038211A1 (en) * 2010-09-22 2012-03-29 International Business Machines Corporation Attesting use of an interactive component during a boot process
US8869264B2 (en) * 2010-10-01 2014-10-21 International Business Machines Corporation Attesting a component of a system during a boot process
US8819225B2 (en) * 2010-11-15 2014-08-26 George Mason Research Foundation, Inc. Hardware-assisted integrity monitor
US20120131334A1 (en) * 2010-11-18 2012-05-24 International Business Machines Corporation Method for Attesting a Plurality of Data Processing Systems
US20120151209A1 (en) * 2010-12-09 2012-06-14 Bae Systems National Security Solutions Inc. Multilevel security server framework
US8566574B2 (en) * 2010-12-09 2013-10-22 International Business Machines Corporation Secure encrypted boot with simplified firmware update
US8677115B2 (en) * 2010-12-09 2014-03-18 Red Hat, Inc. Methods for verifying system integrity
US9021465B2 (en) * 2010-12-15 2015-04-28 Red Hat Israel, Ltd. Downloading guest software updates by a hypervisor
TW201241662A (en) * 2010-12-21 2012-10-16 Ibm Virtual machine validation
US9202062B2 (en) * 2010-12-21 2015-12-01 International Business Machines Corporation Virtual machine validation
US8578376B2 (en) * 2011-01-04 2013-11-05 International Business Machines Corporation Automatically and securely configuring and updating virtual machines
JP5932837B2 (ja) 2011-01-19 2016-06-08 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation コードを更新および認証するための方法およびシステム、プログラムの完全性を試験する方法およびシステム
US20120254624A1 (en) * 2011-03-29 2012-10-04 Microsoft Corporation Three party attestation of untrusted software on a robot
US8875240B2 (en) * 2011-04-18 2014-10-28 Bank Of America Corporation Tenant data center for establishing a virtual machine in a cloud environment
EP2754041B1 (de) * 2011-09-07 2020-06-24 Imagine Communications Corp. Systeme und verfahren zur entwicklung von komponentenbasierten datenverarbeitungsanwendungen
US8806579B1 (en) * 2011-10-12 2014-08-12 The Boeing Company Secure partitioning of devices connected to aircraft network data processing systems
BR112014013583A8 (pt) * 2011-12-29 2017-06-13 Intel Corp método e aparelho para otimização de inicialização confiável
US8875124B2 (en) * 2012-01-11 2014-10-28 Dell Products L.P. In-band hypervisor-managed firmware updates
US9092616B2 (en) * 2012-05-01 2015-07-28 Taasera, Inc. Systems and methods for threat identification and remediation
GB2513826A (en) * 2012-06-29 2014-11-12 Ibm Trusted boot of a virtual machine
US9244743B1 (en) * 2012-08-01 2016-01-26 Amazon Technologies, Inc. Remotely interacting with a virtualized machine instance
US9176752B1 (en) * 2012-12-04 2015-11-03 Amazon Technologies, Inc. Hardware-based mechanisms for updating computer systems
US9386045B2 (en) * 2012-12-19 2016-07-05 Visa International Service Association Device communication based on device trustworthiness
US9645811B2 (en) * 2013-04-01 2017-05-09 Oc Acquisition Llc Fault tolerance for a distributed computing system
US20150089297A1 (en) * 2013-09-25 2015-03-26 International Business Machines Corporation Using Crowd Experiences for Software Problem Determination and Resolution
US9401954B2 (en) * 2013-11-06 2016-07-26 International Business Machines Corporation Scaling a trusted computing model in a globally distributed cloud environment
JP6364496B2 (ja) * 2014-02-07 2018-07-25 オラクル・インターナショナル・コーポレイション モバイルクラウドサービスアーキテクチャ
US9563545B2 (en) * 2014-05-28 2017-02-07 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Autonomous propagation of system updates
US9965632B2 (en) * 2014-12-22 2018-05-08 Capital One Services, Llc System and methods for secure firmware validation
US9996374B2 (en) * 2015-06-16 2018-06-12 Assured Information Security, Inc. Deployment and installation of updates in a virtual environment
US9917687B2 (en) * 2015-10-12 2018-03-13 Microsoft Technology Licensing, Llc Migrating secrets using hardware roots of trust for devices
US10181034B2 (en) * 2016-02-12 2019-01-15 Sophos Limited Virtual machine security
US10097563B2 (en) * 2016-05-04 2018-10-09 Gbs Laboratories, Llc Reliable and secure firmware update with a dynamic validation for internet of things (IoT) devices
US10552138B2 (en) * 2016-06-12 2020-02-04 Intel Corporation Technologies for secure software update using bundles and merkle signatures
US10185550B2 (en) * 2016-09-28 2019-01-22 Mcafee, Inc. Device-driven auto-recovery using multiple recovery sources
US10069633B2 (en) * 2016-09-30 2018-09-04 Data I/O Corporation Unified programming environment for programmable devices

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
www.ibm.com/legal/copytrade.shtml

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10620936B2 (en) 2011-01-19 2020-04-14 International Business Machines Corporation Updating software

Also Published As

Publication number Publication date
CN103329093B (zh) 2017-09-12
US9317276B2 (en) 2016-04-19
CN103329093A (zh) 2013-09-25
JP2014503101A (ja) 2014-02-06
WO2012098478A1 (en) 2012-07-26
GB2501433B (en) 2014-06-04
KR20130114672A (ko) 2013-10-17
US10108413B2 (en) 2018-10-23
GB2501433A (en) 2013-10-23
US10620936B2 (en) 2020-04-14
US10007510B2 (en) 2018-06-26
JP5932837B2 (ja) 2016-06-08
US20180246709A1 (en) 2018-08-30
US20160162396A1 (en) 2016-06-09
GB201313795D0 (en) 2013-09-18
US20140026124A1 (en) 2014-01-23
US20160162285A1 (en) 2016-06-09

Similar Documents

Publication Publication Date Title
DE112012000512T5 (de) Aktualisieren von Software
DE112011103048B4 (de) Ein Verfahren zum Beglaubigen einer Vielzahl von Datenverarbeitungssystemen
US9436827B2 (en) Attesting a component of a system during a boot process
Beyer et al. Benchmarking and resource measurement
DE112012003716T5 (de) Erzeugen von kompiliertem Code, der Registeraktivität angibt
JP6788178B2 (ja) 設定支援プログラム、設定支援方法及び設定支援装置
DE112016006003T5 (de) Vertrauenswürdiger Start sicherer Enklaven in virtuellen Umgebungen
CN104158910B (zh) 一种云端Web应用自动化部署系统
DE112013001711T5 (de) Optimieren von Unterroutine-Aufrufen auf der Grundlage der Architekturebene einer aufgerufenen Unterroutine
DE112007001321T5 (de) Ausführung eines Sichere-Umgebungs-Initialisierungsbefehls in einem Punkt-zu-Punkt-Verbindungssystem
EP2474910B1 (de) Einstellungsprogramm, Arbeitsflusserzeugungsverfahren und Arbeitsflusserzeugungsvorrichtung
DE102007046475A1 (de) Überwachen eines Ausführungsmusters eines Target-Agents auf einem VT-fähigen System
DE112011103829T5 (de) Verfahren und System zum Erzeugen einer virtuellen Maschine auf der Grundlage von Vorlagen
DE112011100166T5 (de) Starten von virtuellen Instanzen in einer Cloud-Computing-Umgebung
DE112012000526T5 (de) Malware - Erkennung
DE112019005729T5 (de) Erkennen von sicherheitsrisiken in zusammenhang mit einer software-komponente
DE112011105098T5 (de) Virtuelles BIOS
WO2015003943A1 (de) Hinterlegen mindestens eines berechenbaren integritätsmesswertes in einem speicherbereich eines speichers
DE102021127237A1 (de) Messbehälter
JP2019008377A (ja) 照合情報生成装置、管理システム及び照合情報生成方法
US20160092679A1 (en) Inspection and recovery method and apparatus for handling virtual machine vulnerability
EP2100225B1 (de) Verfahren, system und computerprogramm zum identifizieren interpretierter programme durch klassenladesequenzen
WO2020090469A1 (ja) 管理システム、取得装置及び管理方法
EP2945059B1 (de) Autonomes ausführbares programm zur softwareaktualisierung
US9372626B2 (en) Parallel storage system testing wherein I/O test pattern identifies one or more set of jobs to be executed concurrently

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R084 Declaration of willingness to licence
R085 Willingness to licence withdrawn