[go: up one dir, main page]

DE112012000512B4 - Verfahren, system, computerprogrammprodukt zum aktualisieren von software - Google Patents

Verfahren, system, computerprogrammprodukt zum aktualisieren von software Download PDF

Info

Publication number
DE112012000512B4
DE112012000512B4 DE112012000512.0T DE112012000512T DE112012000512B4 DE 112012000512 B4 DE112012000512 B4 DE 112012000512B4 DE 112012000512 T DE112012000512 T DE 112012000512T DE 112012000512 B4 DE112012000512 B4 DE 112012000512B4
Authority
DE
Germany
Prior art keywords
attestation
code
new
update
identifying
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE112012000512.0T
Other languages
English (en)
Other versions
DE112012000512T5 (de
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
Application granted granted Critical
Publication of DE112012000512B4 publication Critical patent/DE112012000512B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3668Testing of software
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3698Environments for analysis, debugging or testing of software
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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

Verfahren zum Aktualisieren von Code in einer Ausführungsumgebung, aufweisend:Identifizieren einer Aktualisierungseinrichtung, die einem neuen chain-of-trust Code zugeordnet ist;Messen eines kennzeichnenden Merkmals der identifizierten Aktualisierungseinrichtung und Bereitstellen des kennzeichnenden Merkmals der Aktualisierungseinrichtung für ein Attestierungssystem, das Einrichtungen zur Speicherung und zum Vergleich von Messwerten mit Attestierungswerten aufweist;Installieren des neuen chain-of-trust Codes in die Ausführungsumgebung;Messen eines kennzeichnenden Merkmals des neuen chain-of-trust Codes und Bereitstellen des kennzeichnenden Merkmals des neuen chain-of-trust Codes für das Attestierungssystem;Benachrichtigen des Attestierungssystems, dass der chain-of-trust Code auf eine neue Version aktualisiert wurde, wobei das Attestierungssystem direkt nach der Benachrichtigung die Herkunftsquelle des neuen chain-of-trust Codes prüft;Attestieren des kennzeichnenden Merkmals der dem neuen chain-of-trust Code zugeordneten Aktualisierungseinrichtung gegen einen zuvor gespeicherten Attestierungswert durch das Attestierungssystem; undals Antwort auf eine Feststellung des Attestierungssystems, dass das kennzeichnende Merkmal der Aktualisierungseinrichtung mit einem zuvor gespeicherten Attestierungswert der Aktualisierungseinrichtung übereinstimmt, Validieren der Integrität des aktualisierten chain-of-trust Code in der Ausführungsumgebung,wobei, wenn das kennzeichnende Merkmal der Aktualisierungseinrichtung nicht mit dem zuvor gespeicherten Attestierungswert übereinstimmt und das Attestierungssystem die Herkunftsquelle des entsprechenden Codes geprüft hat, dann:Aktualisieren des Attestierungswerts mit dem kennzeichnenden Merkmal der neuen Version der Komponente; undBenachrichtigen einer Verwaltungsebene, dass das kennzeichnende Merkmal nicht mit einem Attestierungswert übereinstimmt und ob das Attestierungssystem die Herkunftsquelle der Komponente erkennt.

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung bezieht sich auf ein Verfahren, ein System und ein Computerprogrammprodukt 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.
  • Das Dokument „Property-Based TPM Virtualization" von Ahmad-Reza Sadeghi, Christian Stüble und Marcel Winandy, veröffentlicht in „Information Security, 11th International Conference, ISC 2008, 2008, S. 1-16, http://www.trust.rub.de/research/publications/SaStWi2008/ [abgerufen am 18.10.2016] beschreibt ein flexibles und datenschutzbewahrendes Design eines virtuellen Trusted Platform Moduls.
  • Das Dokument „A Practical Property-based Bootstrap Architecture" von René Korthaus et al., veröffentlicht in „Proceedings of the 2009 ACM Workshop on Scalable Trusted Computing, 2009, S. 29-38, http://doi.acm.org/10.1145/1655108.1655114" [abgerufen am 18.10.2016] beschreibt eine eigenschaftsbasierte Bootstrap-Architektur mit einem erweiterten Bootloader.
  • Das Dokument US 2008 / 0 256 363 A1 beschreibt ein Updatesystem für vertrauenswürdige Komponenten umfassend einer Prüflogik, die zum Validieren der Integrität eines Updates einer vertrauenswürdigen Komponente eines Computergeräts konfiguriert ist, sowie eine in der vertrauenswürdigen Komponente angeordnete Logik, die zum Validieren der Integrität der Prüflogik konfiguriert ist.
  • Das Dokument „TCG Mobile Reference Architecture" der „Trusted Computing Group", Beaverton, Oregon, 12.06.2007, https://www.trustedcomputinggroup.org/wpcontent/uploads/MPWG-tcg-mobile-reference-architecture-1.pdf [abgerufen am 18.10.2016] beschreibt Trusted Platform Modules (TPMs) und deren Verwendung durch einen Client-Computer.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Der Erfindung liegt die Aufgabe zugrunde, ein verbessertes Verfahren, System und Computerprogrammprodukt zum Aktualisieren von Software bereitzustellen. Die Lösung der Aufgabe erfolgt durch die Gegenstände unabhängigen Patentansprüche.
  • 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.
  • 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-Abbild 1 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. 1. Bosboot (eine Aktualisierungseinrichtung) wird aufgerufen (Schritt 702), um das Boot-Abbild neu zu schreiben.
    2. 2. Der AIX-Kern lädt (Schritt 704) Bosboot in den Speicher und ruft H_Messen auf.
    3. 3. PHYP misst (Schritt 706) Bosboot und vergrößert PCR17 in dem TPM.
    4. 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. 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.
  • 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 USamerikanischen Warenzeichen von IBM kann unter folgender Adresse abgerufen werden: www.ibm.com/legal/copytrade.shtml.

Claims (11)

  1. Verfahren zum Aktualisieren von Code in einer Ausführungsumgebung, aufweisend: Identifizieren einer Aktualisierungseinrichtung, die einem neuen chain-of-trust Code zugeordnet ist; Messen eines kennzeichnenden Merkmals der identifizierten Aktualisierungseinrichtung und Bereitstellen des kennzeichnenden Merkmals der Aktualisierungseinrichtung für ein Attestierungssystem, das Einrichtungen zur Speicherung und zum Vergleich von Messwerten mit Attestierungswerten aufweist; Installieren des neuen chain-of-trust Codes in die Ausführungsumgebung; Messen eines kennzeichnenden Merkmals des neuen chain-of-trust Codes und Bereitstellen des kennzeichnenden Merkmals des neuen chain-of-trust Codes für das Attestierungssystem; Benachrichtigen des Attestierungssystems, dass der chain-of-trust Code auf eine neue Version aktualisiert wurde, wobei das Attestierungssystem direkt nach der Benachrichtigung die Herkunftsquelle des neuen chain-of-trust Codes prüft; Attestieren des kennzeichnenden Merkmals der dem neuen chain-of-trust Code zugeordneten Aktualisierungseinrichtung gegen einen zuvor gespeicherten Attestierungswert durch das Attestierungssystem; und als Antwort auf eine Feststellung des Attestierungssystems, dass das kennzeichnende Merkmal der Aktualisierungseinrichtung mit einem zuvor gespeicherten Attestierungswert der Aktualisierungseinrichtung übereinstimmt, Validieren der Integrität des aktualisierten chain-of-trust Code in der Ausführungsumgebung, wobei, wenn das kennzeichnende Merkmal der Aktualisierungseinrichtung nicht mit dem zuvor gespeicherten Attestierungswert übereinstimmt und das Attestierungssystem die Herkunftsquelle des entsprechenden Codes geprüft hat, dann: Aktualisieren des Attestierungswerts mit dem kennzeichnenden Merkmal der neuen Version der Komponente; und Benachrichtigen einer Verwaltungsebene, dass das kennzeichnende Merkmal nicht mit einem Attestierungswert übereinstimmt und ob das Attestierungssystem die Herkunftsquelle der Komponente erkennt.
  2. Verfahren nach einem der Ansprüche 1, wobei die kennzeichnenden Merkmale in einem sicheren Speicher gespeichert werden, auf den nur das Speicherverfahren und das Attestierungssystem Zugriff haben.
  3. Verfahren nach einem der Ansprüche 1 oder 2, 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.
  4. Verfahren nach einem der Ansprüche 1 bis 3, wobei Register sich in einem vertrauenswürdigen Plattformmodul befinden.
  5. Verfahren nach einem der Ansprüche 1 bis 4, 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.
  6. System zum Aktualisieren von Code in einer Ausführungsumgebung durch Ausführen eines Verfahrens nach einem der vorhergehenden Ansprüche, aufweisend: ein Identifizierungsmittel zum Identifizieren einer Aktualisierungseinrichtung, die einem neuen chain-of-trust Code zugeordnet ist; ein Messmittel zum Messen eines kennzeichnenden Merkmals der identifizierten Aktualisierungseinrichtung; ein Installationsmittel zum Installieren des neuen chain-of-trust Codes in die Ausführungsumgebung; ein Messmittel zum Messen eines kennzeichnenden Merkmals des neuen chain-of-trust Codes und Bereitstellen des kennzeichnenden Merkmals des neuen chain-of-trust Codes für ein Attestierungssystem; ein Benachrichtigungsmittel zum Benachrichtigen des Attestierungssystems, dass der neue chain-of-trust Code auf eine neue Version aktualisiert wurde, wobei das Attestierungssystem direkt nach der Benachrichtigung die Herkunftsquelle des neuen chain-of-trust Codes prüft; ein Mittel zum Bereitstellen des kennzeichnenden Merkmals der Aktualisierungseinrichtung für das Attestierungssystem, wobei das Attestierungssystem das kennzeichnende Merkmal der Aktualisierungseinrichtung mit einem zuvor gespeicherten Attestierungswert in Übereinstimmung bringen kann, um eine zulässige Aktualisierung für gültig zu erklären, wobei, wenn das kennzeichnende Merkmal der Aktualisierungseinrichtung nicht mit dem Attestierungswert übereinstimmt und das Attestierungssystem die Herkunftsquelle des entsprechenden Codes geprüft hat, dann: Aktualisieren des Attestierungswerts mit dem kennzeichnenden Merkmal der neuen Version der Komponente; und Benachrichtigen einer Verwaltungsebene, dass das kennzeichnende Merkmal nicht mit einem Attestierungswert übereinstimmt und ob das Attestierungssystem die Herkunftsquelle der Komponente erkennt.
  7. System nach einem der Ansprüche 6, wobei die kennzeichnenden Merkmale in einem sicheren Speicher gespeichert werden, auf den nur das Speicherverfahren und das Attestierungssystem Zugriff haben.
  8. System nach einem der Ansprüche 6 oder 7, 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.
  9. System nach einem der Ansprüche 6 bis 8, wobei Register sich in einem vertrauenswürdigen Plattformmodul befinden.
  10. System nach einem der Ansprüche 6 bis 9, das weiterhin ein Feststellen beinhaltet, dass neuer Code zur Verfügung steht und dass eine Aktualisierung erforderlich ist, bevor die Schritte von Anspruch 6 durchgeführt werden.
  11. 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 5 durchzuführen.
DE112012000512.0T 2011-01-19 2012-01-10 Verfahren, system, computerprogrammprodukt zum aktualisieren von software Active DE112012000512B4 (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 (2)

Publication Number Publication Date
DE112012000512T5 DE112012000512T5 (de) 2013-10-24
DE112012000512B4 true DE112012000512B4 (de) 2025-07-03

Family

ID=46515210

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112012000512.0T Active DE112012000512B4 (de) 2011-01-19 2012-01-10 Verfahren, system, computerprogrammprodukt zum 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) DE112012000512B4 (de)
GB (1) GB2501433B (de)
WO (1) WO2012098478A1 (de)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012098478A1 (en) 2011-01-19 2012-07-26 International Business Machines Corporation Updating software
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
US10050787B1 (en) * 2014-03-25 2018-08-14 Amazon Technologies, Inc. Authentication objects with attestation
US10049202B1 (en) 2014-03-25 2018-08-14 Amazon Technologies, Inc. Strong authentication using authentication objects
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
US9424067B2 (en) 2014-12-11 2016-08-23 Amazon Technologies, Inc. Managing virtual machine instances utilizing an offload device
US9400674B2 (en) 2014-12-11 2016-07-26 Amazon Technologies, Inc. Managing virtual machine instances utilizing a virtual 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
US9292332B1 (en) 2014-12-11 2016-03-22 Amazon Technologies, Inc. Live updates for virtual machine monitor
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
US10243739B1 (en) 2015-03-30 2019-03-26 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
US9667414B1 (en) 2015-03-30 2017-05-30 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
EP4052444A4 (de) * 2019-10-28 2023-07-12 Hewlett-Packard Development Company, L.P. Autorisierung von komponentenaktualisierungen
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
US11726767B2 (en) * 2020-09-30 2023-08-15 Mobileye Vision Technologies Ltd. Updating software elements with different trust levels
US11204777B1 (en) * 2020-11-30 2021-12-21 EMC IP Holding Company LLC Boot from SAN operation support on multi-pathing devices
CN115130143A (zh) * 2021-03-25 2022-09-30 华为技术有限公司 一种安全启动的方法及装置
US20240036902A1 (en) * 2022-07-26 2024-02-01 Microsoft Technology Licensing, Llc Accumulations of measurements for attestations

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080256363A1 (en) 2007-04-13 2008-10-16 Boris Balacheff Trusted component update system and method

Family Cites Families (89)

* 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
EP2037388A4 (de) 2006-07-03 2016-12-14 Panasonic Ip Man Co Ltd Zertifiziereinrichtung, verifiziereinrichtung, verifiziersystem, computerprogramm und integrierte schaltung
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
US9026771B2 (en) 2007-04-27 2015-05-05 Hewlett-Packard Development Company, L.P. Secure computer system update
EP2169549A4 (de) * 2007-07-05 2012-08-29 Panasonic Corp Datenverarbeitungsvorrichtung, datenverarbeitungsverfahren, datenverarbeitungsprogramm, aufzeichnungsmedium und integrierte schaltung
GB2450869B (en) * 2007-07-09 2012-04-25 Hewlett Packard Development Co Establishing a trust relationship between computing entities
WO2009044533A1 (ja) * 2007-10-05 2009-04-09 Panasonic Corporation セキュアブート端末、セキュアブート方法、セキュアブートプログラム、記録媒体及び集積回路
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
EA201070673A1 (ru) 2008-01-30 2011-02-28 Панасоник Корпорэйшн Безопасная начальная загрузка с помощью способа необязательных компонентов
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
US20110173643A1 (en) * 2008-10-10 2011-07-14 Nicolson Kenneth Alexander 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 バージョン管理システム、装置、方法及びプログラム
US8566815B2 (en) * 2009-05-04 2013-10-22 Nokia Siemens Networks Oy Mechanism for updating 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
KR101533876B1 (ko) * 2010-03-05 2015-07-03 인터디지탈 패튼 홀딩스, 인크 장치에 대한 보안을 제공하는 방법 및 장치
US9059978B2 (en) * 2010-03-23 2015-06-16 Fujitsu Limited 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
CN103124973B (zh) * 2010-09-22 2015-09-30 国际商业机器公司 证明引导过程期间交互式组件的使用
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
US8677115B2 (en) 2010-12-09 2014-03-18 Red Hat, Inc. Methods for verifying system integrity
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
US9021465B2 (en) * 2010-12-15 2015-04-28 Red Hat Israel, Ltd. Downloading guest software updates by a hypervisor
US9202062B2 (en) * 2010-12-21 2015-12-01 International Business Machines Corporation Virtual machine validation
TW201241662A (en) * 2010-12-21 2012-10-16 Ibm Virtual machine validation
US8578376B2 (en) * 2011-01-04 2013-11-05 International Business Machines Corporation Automatically and securely configuring and updating virtual machines
WO2012098478A1 (en) 2011-01-19 2012-07-26 International Business Machines Corporation Updating software
US20120254624A1 (en) * 2011-03-29 2012-10-04 Microsoft Corporation Three party attestation of untrusted software on a robot
US8799997B2 (en) * 2011-04-18 2014-08-05 Bank Of America Corporation Secure network cloud architecture
US9043747B2 (en) * 2011-09-07 2015-05-26 Imagine Communications Corp. Systems and methods for dynamic development and deployment of computing applications using blueprints
US8806579B1 (en) * 2011-10-12 2014-08-12 The Boeing Company Secure partitioning of devices connected to aircraft network data processing systems
KR101359841B1 (ko) 2011-12-29 2014-02-07 인텔 코오퍼레이션 신뢰성 있는 부트 최적화를 위한 방법 및 장치
US8875124B2 (en) * 2012-01-11 2014-10-28 Dell Products L.P. In-band hypervisor-managed firmware updates
US9027125B2 (en) * 2012-05-01 2015-05-05 Taasera, Inc. Systems and methods for network flow remediation based on risk correlation
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
EP2981892B1 (de) * 2013-04-01 2020-05-06 OC Acquisition LLC Aktualisierungsverwaltung für ein verteiltes rechnersystem
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
SG11201605659SA (en) * 2014-02-07 2016-08-30 Oracle Int Corp Mobile cloud service architecture
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080256363A1 (en) 2007-04-13 2008-10-16 Boris Balacheff Trusted component update system and method

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Korthaus, Rene [u.a.]: A Practical Property-based Bootstrap Architecture. In: Proceedings of the 2009 ACM Workshop on Scalable Trusted Computing, 2009, S. 29-38. http://doi.acm.org/10.1145/1655108.1655114 [abgerufen am 18.10.2016]
Sadeghi, Ahmad-Reza; Stüble, Christian; Winandy, Marcel: Property-Based {TPM} Virtualization. In: Information Security, 11th International Conference, ISC 2008, 2008, S. 1-16. http://www.trust.rub.de/research/publications/SaStWi2008/ [abgerufen am 18.10.2016]
Trusted Computing Group: TCG Mobile Reference Architecture. Revision 1. Beaverton, Oregon, 12.06.2007. S. 1-2, 13-14, 33, 44, 80. - Firmenschrift. https://www.trustedcomputinggroup.org/wp-content/uploads/MPWG-tcg-mobile-reference-architecture-1.pdf [abgerufen am 18.10.2016]
Trusted Computing Group: TCG Mobile Reference Architecture. Revision 1. Beaverton, Oregon, 12.06.2007. S. i-ii, 12-14,17,19-20,23-30,33,35,37,40-42,44,49,52,54-56,58,63-69,71,73.76,78-81. - Firmenschrift. https://www.trustedcomputinggroup.org/wp-content/uploads/MPWG-tcg-mobile-reference-architecture-1.pdf [abgerufen am 18.10.2016]

Also Published As

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

Similar Documents

Publication Publication Date Title
DE112012000512B4 (de) Verfahren, system, computerprogrammprodukt zum aktualisieren von software
CN103201747B (zh) 用于验证多个数据处理系统的方法和设备
DE102021127237B4 (de) Messung von Containern
US9436827B2 (en) Attesting a component of a system during a boot process
DE102021127631B4 (de) Verfahren, speichermedium und computerplattform zur prozessüberwachung mittels speichersuche und heartbeat-überwachung
US7698305B2 (en) Program modification and loading times in computing devices
US8151142B2 (en) Thread interception and analysis
US9471594B1 (en) Defect remediation within a system
DE112012000526T5 (de) Malware - Erkennung
DE102013213314A1 (de) Hinterlegen mindestens eines berechenbaren Integritätsmesswertes in einem Speicherbereich eines Speichers
EP3095065A1 (de) Vorrichtung und verfahren zum detektieren einer manipulation an einem programmcode
US9430216B2 (en) Self-contained executable for predetermined software updating
Xiao et al. Managing vulnerabilities in a cloud native world with bluefix
DE112022006994T5 (de) Datenpflegesystem, datenpflegeverfahren, datenpflegeprogramm, datenregistrierungsvorrichtung und datenverifizierungsvorrichtung
DE102021127718A1 (de) Bestimmung der korruption von datenelementen, die von einem build-server verwendet werden
DE102022210264A1 (de) Verfahren zur Erkennung von potenziellen Datenexfiltrationsangriffen bei wenigstens einem Softwarepaket
DE102010011654A1 (de) System und Verfahren zum kontrollierten Ausführen einer Programmdatei auf einem Rechner
EP1997018A1 (de) Unterbrechung und analyse von threads

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
R084 Declaration of willingness to licence
R016 Response to examination communication
R018 Grant decision by examination section/examining division