DE69923466T2 - Vorrichtung zur überprüfung der integrität und berechtigung eines computerprogramms vor seiner ausführung auf einer lokalen plattform - Google Patents

Vorrichtung zur überprüfung der integrität und berechtigung eines computerprogramms vor seiner ausführung auf einer lokalen plattform Download PDF

Info

Publication number
DE69923466T2
DE69923466T2 DE69923466T DE69923466T DE69923466T2 DE 69923466 T2 DE69923466 T2 DE 69923466T2 DE 69923466 T DE69923466 T DE 69923466T DE 69923466 T DE69923466 T DE 69923466T DE 69923466 T2 DE69923466 T2 DE 69923466T2
Authority
DE
Germany
Prior art keywords
certificate
platform
boot
digital
signed
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.)
Expired - Lifetime
Application number
DE69923466T
Other languages
English (en)
Other versions
DE69923466D1 (de
Inventor
C. Paul DREWS
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Application granted granted Critical
Publication of DE69923466D1 publication Critical patent/DE69923466D1/de
Publication of DE69923466T2 publication Critical patent/DE69923466T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • 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/4416Network booting; Remote initial program loading [RIPL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
    • G06F2211/008Public Key, Asymmetric Key, Asymmetric Encryption

Description

  • STAND DER TECHNIK
  • 1. Gebiet der Technik
  • Die vorliegende Erfindung betrifft das Gebiet der Datensicherheit. Im Besonderen betrifft die vorliegende Erfindung eine Methode zum Verifizieren der Integrität von Software, die auf eine Plattform heruntergeladen wird, während den Operationen vor dem Booten sowie das selektive Autorisieren der Ausführung der Software.
  • 2. Beschreibung des Stands der Technik
  • Computer haben sich zumindest teilweise aufgrund ihrer Vielseitigkeit zu einem bedeutenden Produkt für gewerbliche und private Einsätze entwickelt. Während die Kaufpreise für Computer in den letzten Jahren zurückgegangen sind, sind die Gesamtbetriebskosten für Computer nahezu unverändert geblieben. Ein Grund dafür ist es, dass Computer gelegentlich zur Instandsetzung oder zum Austausch fehlerhafter Hardware, zur neuerlichen Konfiguration korrumpierter Software oder zur Ausführung anderer Aufgaben gewartet werden müssen. Normalerweise werden diese Arbeiten zu erheblichen Kosten durch Computertechniker ausgeführt.
  • Viele Unternehmen setzen zurzeit vor Ort einen oder mehrere Computertechniker für die Installation, Unterstützung und Wartung von Einzelcomputern ein. In großen Unternehmen gibt es sogar eigene IT-Abteilungen (IT als Abkürzung von Informationstechnologie) mit Computertechnikern, die dafür zuständig sind, Tausende von Einzelcomputern zu warten, die auf mehrere Betriebsstätten bzw. Standorte verteilt sind. Somit verbringt ein Techniker einen erheblichen Teil seiner Zeit mit dem Reisen von einem Auftrag zu dem nächsten. Zur Reduzierung der Fixkosten und zur Steigerung der Effizienz ist es wünschenswert, die Zeit zu reduzieren, die Computertechniker damit verbringen, von einem Auftrag oder einer Betriebsstätte zu dem bzw. der anderen zu reisen. Erreicht werden kann dies durch die Implementierung einer zentralen Plattform mit mehreren Plattenlaufwerken, auf deren Informationen bzw. Daten Mitarbeiter von entfernten Standorten aus zugreifen können. Dabei können die Computertechniker Probleme in Bezug auf die zentrale Plattform (z.B. Laufwerksfehler) an einem Standort diagnostizieren und beheben und dadurch das Ausmaß der Reisezeit erheblich reduzieren.
  • Immer mehr Unternehmen verwenden zentrale bzw. zentralisierte Plattformen, wobei in diesem Zusammenhang auch eine Veränderung der allgemeinen Architektur der Computer wahrscheinlich ist, um Plattenlaufwerke auszuschließen, welche die am wenigsten zuverlässige Komponente eines Computers sind. Diese Veränderung der Computerarchitektur stellt jedoch ein Problem dar, da die meisten Computer von einem lokalen Plattenlaufwerk booten.
  • Zur Überwindung dieses Problems kann eine Boot-Prozedur des Computers so modifiziert werden, dass die Boot-Software über ein Netzwerk geladen bzw. heruntergeladen wird. Im Besonderen würde die lokale Plattform während ihrer Boot-Sequenz auf einen bestimmten Speicherplatz auf einem Plattenlaufwerk zugreifen, das entfernt an der zentralisierten Plattform angeordnet ist, und wobei die Plattform ein Boot-Abbild von diesem Speicherplatz abrufen würde. Leider gibt es zurzeit kein Sicherheitssystem, das die Integrität des Boot-Abbilds gewährleistet (z.B. prüft, ob die Software virenfrei ist und nicht verfälscht worden ist, bevor oder während sie heruntergeladen wird) sowie dessen Authentizität bzw. Echtheit (z.B. prüft, ob das Boot-Abbild von der ordnungsgemäßen Quelle stammt). Die vorliegende Erfindung stellt ein System bereit, das diese Sicherheitsmängel beseitigt.
  • EP-A-0686906 offenbart ein Verfahren und eine Vorrichtung zur Verbesserung der Sicherheit von Software unter Verwendung von öffentlichen und privaten Schlüsseln, wobei dieses Dokument jedoch nicht das Arbeiten bzw. den Betrieb in einem Betriebszustand vor dem Booten betrifft.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Vorgesehen ist gemäß einem ersten Aspekt der vorliegenden Erfindung ein Verfahren gemäß dem gegenständlichen Anspruch 1.
  • Vorgesehen ist gemäß einem zweiten Aspekt der vorliegenden Erfindung eine Plattform gemäß dem gegenständlichen Anspruch 8.
  • Die vorliegende Erfindung betrifft ein Verfahren zum Verifizieren der Integrität von Informationen bzw. Daten. Die Daten werden auf eine Plattform geladen, die in einem Betriebszustand vor dem Booten betrieben wird. Danach wird selektiv bestimmt, ob die Ausführung der Daten durch die Plattform autorisiert ist.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die Merkmale und Vorteile der vorliegenden Erfindung werden aus der folgenden genauen Beschreibung der vorliegenden Erfindung deutlich. In den Zeichnungen zeigen:
  • 1 ein Blockdiagramm eines veranschaulichenden Ausführungsbeispiels eines Netzwerks mit einer zentralen Plattform und einer oder mehreren lokalen Plattformen;
  • 2 ein Blockdiagramm eines veranschaulichenden Ausführungsbeispiels einer lokalen Plattform;
  • 3 ein Blockdiagramm eines Veranschaulichenden Ausführungsbeispiels eines digital unterzeichneten Manifests, das während der Boot-Sequenz der lokalen Plattform von der zentralen Plattform heruntergeladen wird;
  • 4 ein Blockdiagramm eines veranschaulichenden Ausführungsbeispiels der Maßnahmen zum Erzeugen der digitalen Unterschrift des Manifests;
  • die 5A und 5B veranschaulichende Flussdiagramme der ausgeführten Maßnahmen zum Verifizieren, dass die heruntergeladene Anwendung nicht verfälscht worden ist, und dass die heruntergeladene Anwendung zur Ausführung auf der lokalen Plattform befugt ist.
  • GENAUE BESCHREIBUNG DER ERFINDUNG
  • Hierin beschrieben sind bestimmte Ausführungsbeispiele der Erfindung zur Verifizierung der auf eine lokale Plattform heruntergeladenen Software, während die Plattform in einem Betriebszustand vor dem Booten arbeitet und bevor die Software ausgeführt wird. Im Sinne des veranschaulichenden Ausführungsbeispiels umfasst die „Software" ein Abbild einer Anwendung, die vor der Boot-Sequenz der lokalen Plattform ausgeführt wird (das Abbild wird hierin als „Boot-Abbild" bezeichnet). Dieses Ausführungsbeispiel ist jedoch weit und als veranschaulichend auszulegen, wobei es lediglich den Geist der Erfindung darstellt. Die Verifizierung des heruntergeladenen Boot-Abbilds bestätigt ferner die Integrität des Boot-Abbilds (z.B. das Abbild wurde nicht verändert), und möglicherweise, dass das Abbild zur Ausführung auf der lokalen Plattform befugt ist.
  • Zur Beschreibung der verschiedenen Ausführungsbeispiele der Systemarchitektur wird eine bestimmte Terminologie verwendet. Eine "Plattform" weist Hardware auf, deren Funktionalität von der darin ausgeführten Software abhängig ist. Beispiele für eine Plattform sind unter anderem, ohne darauf beschränkt zu sein, ein Computer (z.B. ein Laptop, Desktop, Handheld-Computer, Server, Mainframe, etc.), ein Bildverarbeitungs- bzw. Bildbearbeitungsgerät (z.B. ein Drucker, Faxgerät, etc.), eine Settop-Box (eine Kabelbox oder Netzwerkcomputer, etc.). Ein "Zink" bzw. eine "Verknüpfung" weist einen oder mehrere Pfade für die Leitung von Informationen bzw. Daten auf. Diese Pfade können durch jede Art von Medium umgesetzt werden, wie etwa elektrische Drähte, Lichtwellenleiter, Kabel, herkömmliche Telefonleitungen (Plain Old Telephone System), Mietleitungen oder auch kabellose Übertragungsmedien. Ferner gelten Informationen bzw. Daten als „heruntergeladen", wenn sie von einem entfernten Standort erfasst und der Plattform über einen Link bzw. eine Verknüpfung oder eine entfernbare Speichervorrichtung, wie etwa eine Floppy Disk, eine Compact Disk, eine Smartcard und dergleichen, bereitgestellt werden.
  • In Bezug auf die Terminologie zur Verschlüsselung ist ein "Schlüssel" ein Codierungs- und/oder Decodierungsparameter. Im Allgemeinen umfasst eine "digitale Unterschrift" digitale Daten, die mit einem privaten Schlüssel ihres Unterzeichners codiert sind. In einigen Fällen werden digitale Daten insgesamt vorgesehen oder in einer codierten Form, die durch eine einseitige Hash-Funktion erzeugt wird. Die digitale Unterschrift wird zum Schutz der Integrität der Daten verwendet, indem deren unerlaubte Modifikation verhindert wird, und wobei die Unterschrift dazu verwendet wird, die Quelle der Daten zu identifizieren. Ein "digitales Zertifikat" ist eine Nachricht in einem Standardformat, mit: (i) einem öffentlichen Schlüssel der Quelle, die die Software an die lokale Plattform bereitstellt (nachstehend „öffentlicher Objektschlüssel"), (ii) Informationen (z.B. öffentlicher Schlüssel, Code, Seriennummer, etc.) zur Identifikation des Ausstellers des digitalen Zertifikats und (iii) einer digitalen Unterschrift des mit einem privaten Schlüssel des Ausstellers erzeugten Zertifikats. Zu den Beispielen für einen "Aussteller" zählen ein Hersteller, ein Handelsverband, eine Regierungsbehörde, eine Bank, eine bestimmte Abteilung eines Unternehmens (z.B. die Sicherheits- oder IT-Abteilung) oder jede andere Einheit in einer Vertrauensstellung. Eine „digitale Zertifikatkette" weist eine geordnete Sequenz bzw. Folge einer Mehrzahl von digitalen Zertifikaten auf, die zu Zwecken der Autorisierung gemäß der nachstehenden Beschreibung angeordnet sind, wobei jedes der aufeinanderfolgenden Zertifikate den Aussteller des vorhergehenden Zertifikats darstellt.
  • In folgendem Bezug auf die Abbildung aus 1 ist ein veranschaulichendes Blockdiagramm eines Ausführungsbeispiels eines Netzwerks 100 dargestellt, das eine zentrale Plattform 110 und eine oder mehrere lokale Plattformen 120 umfasst. In dem vorliegenden Ausführungsbeispiel weist die zentrale Plattform 110 einen Server mit mindestens einem Plattenlaufwerk 115 auf. In das Plattenlaufwerk 115 werden Anwendungen geladen, wobei Abbilder bzw. Images der Anwendungen auf Anforderung auf eine lokale Plattform 120 heruntergeladen werden. Zum Beispiel kann die lokale Plattform 120 in ihrem Betriebszustand vor dem Booten das Herunterladen eines Boot-Abbilds 140 über einen Datenübermittlungsabschnitt bzw. eine Datenübertragungsverknüpfung 130 von der zentralen Plattform 110 anfordern. Natürlich kann das Boot-Abbild 140 eines oder mehrere Teilabbilder umfassen, welche das ganze Boot-Abbild bilden. Zur Verifizierung, dass das Boot-Abbild 140 durch die lokale Plattform 120 ausgeführt werden kann, wird ein unterschriebenes Manifest 150 (siehe 3), das dem Boot-Abbild 140 entspricht, auf die lokale Plattform 120 heruntergeladen, und zwar allgemein gleichzeitig mit dem Boot-Abbild 140. Natürlich wird in Betracht gezogen, dass das unterschriebene Manifest 150 vor oder nach der Übertragung des Boot-Abbilds 140 heruntergeladen werden kann.
  • In Bezug auf die Abbildung aus 2 ist ein veranschaulichendes Blockdiagramm eines Ausführungsbeispiels der lokalen Plattform 120 dargestellt. In dem vorliegenden Ausführungsbeispiel umfasst die lokale Plattform 120 einen Chipsatz 200, der entsprechend über einen Host-Bus 230 und einen Speicherbus 240 mit einem Prozessor 210 und einem Speicher 220 gekoppelt ist. Darüber hinaus ist der Chipsatz 200 mit einem Bus 250 gekoppelt, der einen Pfad zu einer oder mehreren Systemressourcen 260 vorsieht. In dem vorliegenden Ausführungsbeispiel umfasst der Bus 250 einen multiplexierten Bus (z.B. einen Peripheral Component Interconnect Bus („PCI-Bus")); wobei jedoch auch jede andere Art der Busarchitektur z.B. eine Industriestandard-Architektur („ISA")) oder eine Kombination von Busarchitekturen verwendet werden kann. Der Bus 250 ist zum Beispiel als ein einzelner Bus dargestellt, wobei jedoch erwägt wird, dass der Bus 250 mehrere Busse aufweisen kann, die über Brückenschaltungen miteinander gekoppelt sind. Bei diesem Ausführungsbeispiel würden die Systemressourcen 260 mit mindestens einem Bus der Mehrzahl von Bussen gekoppelt werden.
  • Gemäß den Abbildungen umfassen die Systemressourcen 260 eine Kommunikationsvorrichtung 2601 und eine persistente Speichervorrichtung 2602 . Die Kommunikationsvorrichtung 2601 ist so konfiguriert, dass sie über den Datenübermittlungsabschnitt 130 aus 1 Kommunikationen mit der zentralen Plattform 110 herstellt. Zu den Beispielen für die Kommunikationsvorrichtung 2601 zählen eine Netzwerkschnittstellenkarte, eine Modemkarte oder ein externes Modem. Die persistente Speichervorrichtung 2602 weist zum Beispiel einen programmierbaren, nichtflüchtigen Speicher auf, wie etwa einen Flash-Speicher, einen Direktzugriffsspeicher (RAM) mit Batterieunterstützung und dergleichen.
  • Bevor die lokale Plattform einer Boot-Prozedur unterzogen wird, wird die persistente Speichervorrichtung 2602 mit einer Verifizierungsfunktion 270, einem Autorisierungszertifikat 280 und einem Autoritätsprüfungs-Freigabekennzeichen 290 versehen. Es wird erwäg, dass diese Informationen durch eine Vielzahl von Techniken vor unbefugten Modifikationen geschützt werden können. Zum Beispiel kann der Prozessor 210 so eingestellt werden, dass er Speicher-Schreibzugriffe innerhalb eines Adressbereichs abfängt und untersagt bzw. zurückweist, oder der Chipsatz 200 kann so eingestellt werden, dass er einen einseitigen Schreibschutz für einen Speicheradressbereich während einer früheren Phase der Boot-Prozedur vorsieht. Zu den anderen Techniken, die verwendet werden können, zählen:
    (i) das Konfigurieren der persistenten Speichervorrichtung 2602 , so dass diese auf Speicher-Schreibzugriffe nicht anspricht; (ii) das Bereitstellen einer Softwareschnittstelle, die eine Benutzerauthentifikation zur Aktualisierung der Inhalte der persistenten Speichervorrichtung 2602 erfordert; und (iii) das Implementieren verschiedener Materialien oder Schaltkreisanordnungen beim Versuch des Detektierens physikalischer Verfälschungen der persistenten Speichervorrichtung 2602 , welche die lokale Plattform betriebsunfähig machen können.
  • Wie dies in den Abbildungen der 5A und 5B näher dargestellt ist, weist die Verifizierungsfunktion 270 in dem vorliegenden Ausführungsbeispiel Software auf, die durch die lokale Plattform vor dem Booten ausgeführt wird, um eine Integritätsprüfprozedur auszuführen. Die Integritätsprüfprozedur verifiziert, dass ein Boot-Abbild nicht modifiziert worden ist, seit das unterschriebene Manifest erzeugt worden ist. Modifikationen des Boot-Abbilds können somit detektiert werden, während das Boot-Abbild lokal oder auf der zentralen Plattform gespeichert wird, oder während der Übermittlung zu der lokalen Plattform. Als optionales Merkmal führt die Verifizierungsfunktion 2709 ferner eine Autoritätsprüfprozedur aus, um zu bestimmen, ob das Boot-Abbild durch eine zulässige Quelle vorgesehen wird. Die Autoritätsprüfprozedur wird ausgeführt, wenn das Autoritätsprüfungs-Freigabekennzeichen 290 freigegeben ist.
  • Da die zentrale Plattform tatsächlich bestimmt, welches) Boot-Abbild er) zum Herunterladen auf die lokale Plattform befugt ist bzw. sind, wird auf der lokalen Plattform 120 nur ein einziger Konfigurationsparameter installiert, das Autorisierungszertifikat 280. Dies reduziert die Kosten der Aufrechterhaltung bzw. der Pflege verschiedenartiger Konfigurationen der lokalen Plattform. Im Besonderen sieht die Installation des Autorisierungszertifikats 280 einen öffentlichen Schlüssel einer Quelle auf (z.B. einer Person, eines Unternehmens, etc.), die autorisiert ist, das Boot-Abbild vorzusehen. Die Bestätigung der Autorisierung einer Quelle zur Bereitstellung des Abbilds wird durch eine Analyse des unterschriebenen Manifests unter Verwendung des öffentlichen Schlüssels bestimmt, der durch das Autorisierungszertifikat 280 vorgesehen wird. Es wird in Betracht gezogen, dass mehrere Autorisierungszertifikate in der persistenten Speichervorrichtung 2602 implementiert werden können, wenn dies für verschiedene, nicht verwandte Quellen wünschenswert ist, um die Ausführung von Boot-Abbildern auf der lokalen Plattform zu autorisieren.
  • In Bezug auf die Abbildung aus 3 ist ein veranschaulichendes Blockdiagramm des unterschriebenen Manifests 150 dargestellt, das dem Boot-Abbild 140 entspricht. Das unterschriebene Manifest 150 umfasst: (i) einen sicheren Hash-Wert 300 für jedes Teilabbild des Boot-Abbilds; (ii) eine digitale Unterschrift 310 des Manifests; und (iii) eine Zertifikatkette 320, welche die Identität des Unterzeichners des unterschriebenen Manifests 150 vorsieht sowie der Einheiten, welche die Befugnis zur Unterzeichnung an den Unterzeichner vergeben haben. Jeder sichere Hash-Wert 300 wird erzeugt, indem ein entsprechendes Teilabbild in eine einseitige Hash-Funktion geladen wird, welche die Abschnitte des Boot-Abbilds in Informationen mit einer festen Länge („Hash-Wert") umwandeln. Der Begriff „einseitig" zeigt an, dass keine einfache Umkehrfunktion zur Wiederherstellung eines wahrnehmbaren Abschnitts des Boot-Abbilds aus dem Hash-Wert existiert.
  • Gemäß der Abbildung aus 4 wird die digitale Unterschrift 310 des Manifests in dem vorliegenden Ausführungsbeispiel erzeugt, indem anfänglich M-Hash-Werte 300 Ende-zu-Ende angehängt werden (wobei „M" eine positive ganze Zahl darstellt mit M ≥ 1), so dass ein Hash-Satz 330 vorgesehen wird. Danach wird der Hash-Satz 330 mit einem privaten Schlüssel (PRKS) der Quelle, die zum Vorsehen des Boot-Abbilds autorisiert ist, digital unterschrieben. Zu den hierin verwendeten Funktionen zum digitalen Unterschreiben von Informationen zählen Rivest Shamir Adleman (RSA) von RSA Data Security, Inc., Redwood City, Kalifornien, USA, sowie der Digital Signature Algorithm (DSA), vorgeschlagen von dem National Institute of Standards. Diese beiden Funktionen sind auf den Seiten 466-494 der Publikation Applied Cryptography - Protocols, Algorithms and Source Code in C von Bruce Schneier, herausgegeben von John Wiley & Sons, Inc. (1996) beschrieben.
  • In erneutem Bezug auf die Abbildung aus 3 weist die Zertifikatkette 320 eine Reihe von „R" digitalen Zertifikaten auf, wobei „R" eine positive ganze Zahl ist (mit R ≥ 1). Ein erstes digitales Zertifikat 3201 (als „Zertifikat[1]" bezeichnet) weist einen öffentlichen Objektschlüssel des Unterzeichners auf, das heißt der verantwortlichen Quelle für das digitale Unterschreiben des unterschriebenen Manifests 150. Danach sehen die "R-1" digitalen Zertifikate gemeinsam eine Sequenz dieser Quellen vor, die das erste digitale Zertifikat 3201 ausgeben, das zum Unterschreiben des unterschriebenen Manifests 150 verwendet wird. Zum Beispiel weist ein zweites digitales Zertifikat 3202 (bezeichnet als „Zertifikat[2]") den öffentlichen Objektschlüssel der Quelle auf, die das Zertifikat[1] unter Verwendung des entsprechenden privaten Schlüssels der Quelle unterschrieben hat.
  • Der Einsatz der Zertifikatkette 320 sieht die Fähigkeit vor, die Unterzeichnungsbefugnis von einer Quelle auf eine andere zu übertragen. Der Unterzeichner des unterschriebenen Manifests wird als befugter Unterzeichner akzeptiert, wenn ein Zertifikat der Zertifikatkette 320, zum Beispiel das Zertifikat[K], wobei „K" eine positive ganze Zahl ist (1≤K≤R), einen öffentlichen Objektschlüssel aufweist, der mit dem öffentlichen Objektschlüssel in dem Autorisierungszertifikat 280 übereinstimmt. Für jedes Zertifikat[N] in der Zertifikatkette 320, wobei „N" eine positive ganze Zahl ist (1≤N<K), verifiziert das Zertifikat[N] ferner den öffentlichen Objektschlüssel des Zertifikats[N+1] in der Zertifikatkette 320. Eine autorisierte Quelle delegiert die Autorisierung an einen Unterzeichner, indem eine ununterbrochene Zertifikatfolge zwischen der autorisierten Quelle und dem Unterzeichner vorgesehen wird.
  • In folgendem Bezug auf die Abbildungen der 5A und 5B zeigen veranschaulichende Flussdiagramme die Maßnahmen, die ausgeführt werden, um die Integrität von heruntergeladener Software zu verifizieren, das heißt, dass die Software nicht modifiziert worden ist und die Autorisierung zur Ausführung auf der lokalen Plattform besitzt. Nach dem Abrufen eines Boot-Abbilds wird die Verifizierungsfunktion aufgerufen und Referenzen vergeben, die dem Boot-Abbild zugeordnet sind (Block 500). In dem vorliegenden Ausführungsbeispiel weisen diese "Referenzen" Adresszeiger auf Datenstrukturen auf, die sowohl einem Datenobjekt (z.B. einer speicherinternen Kopie des Boot-Abbilds, die auf die Verifizierung wartet) als auch einem optionalen unterschriebenen Manifest zugeordnet sind. Jede dieser Datenstrukturen umfasst: (i) einen physikalischen Adresszeiger auf einen zusammenhängenden Speicherblock und (ii) eine Länge in Byte.
  • Nach dem Aufrufen verifiziert die Verifizierungsfunktion das Boot-Abbild. Wenn das Anwendungsabbild durch die lokale Plattform ausgeführt werden kann, gibt die Verifizierungsfunktion einen Signalwert SUCCESS (erfolgreich) zurück (Blöcke 505, 535, 565 und 580). Im anderen Fall gibt die Verifizierungsfunktion einen Signalwert FAILURE (Fehler) zurück, um anzuzeigen, dass das Boot-Bild von der lokalen Plattform nicht ausgeführt werden kann (Blöcke 515, 530, 560, 590 und 600). Natürlich ist es möglich, dass die Verifizierungsfunktion automatisch einen Signalwert SUCCESS zurückgibt, wenn das Boot-Abbild beim Herunterladen auf die lokale Plattform von keinem unterschriebenen Manifest begleitet wird, und wobei keine Autorisierungsprüfprozedur erforderlich ist oder ausgeführt wird (Block 505). Als Folge dessen wird auch keine Integritätsprüfprozedur ausgeführt.
  • Wenn die Verifizierungsfunktion jedoch auf die Referenz des unterschriebenen Manifests zugreifen kann, wird die digitale Unterschrift des Manifests unter Verwendung des öffentlichen Objektschlüssels des Zertifikats[1] des unterschriebenen Manifests verifiziert (Block 510). Dies kann zum Beispiel durch Verschlüsseln der digitalen Unterschrift des Manifests mit dem öffentlichen Objektschlüssel und den Vergleich des Ergebnisses mit einem für die unterschriebenen Daten berechneten sicheren Hash-Wert erreicht werden. Wenn die digitale Unterschrift des Manifests nicht ordnungsgemäß verifiziert wird, gibt die Verifizierungsfunktion einen Signalwert FAILURE zurück (Block 515). Gemäß der Darstellung in den Blöcken 520-525 wird im anderen Fall ein Hash-Wert des heruntergeladenen Boot-Abbilds berechnet und mit dem sicheren Hash-Wert verglichen, der sich in dem unterschriebenen Manifest befindet. Wenn keine Übereinstimmung detektiert wird, gibt die Verifizierungsfunktion einen Signalwert FAILURE zurück, der bewirkt, dass die Netzwerk-Bootprozedur fehlschlägt (Block 530).
  • Als nächstes bestimmt die Verifizierungsfunktion, ob die Autorisierungsprüfprozedur wünschenswert ist (Block 540). Erreicht wird dies durch die Bestimmung, ob das Autoritätsprüfungs-Freigabekennzeichen freigegeben ist. Wenn dies nicht der Fall ist, gibt die Verifizierungsfunktion einen Signalwert SUCCESS zurück, der anzeigt, dass das Boot-Abbild durch die lokale Plattform ausgeführt werden kann, da die Datenintegritätsprüfprozedur erfolgreich abgeschlossen worden ist (Block 535). Ansonsten unterliegt die Verifizierungsfunktion der in der Abbildung aus 5B beschriebenen Autorisierungsprüfprozedur.
  • Die Autorisierungsprüfprozedur gewährleistet, dass die Quelle der Unterschrift mit unterschriebenem Manifest autorisiert worden ist. Erreicht wird dies durch die Bestätigung der Validität der Zertifikatkette in dem unterschriebenen Manifest. Gemäß der Abbildung aus 5B wird zum Beispiel bestimmt, ob das Autorisierungszertifikat vorab in eine persistenten Speichervorrichtung geladen worden ist (Block 550). Wenn dies nicht der Fall ist, wird bestimmt, ob der Benutzer das Abbild autorisiert hat (Block 555). Eine derartige Autorisierung kann z8um Beispiel dadurch erreicht werden, dass der Benutzer aufgefordert wird, einen Hash-Wert des Boot-Abbilds mit einem bekannten „guten" Hash-Wert zu vergleichen. Wenn der Benutzer das Bild autorisiert, gibt die Verifizierungsfunktion einen Signalwert SUCCESS zurück, um die Netzwerk-Bootprozedur fortzusetzen (Block 565). Ansonsten gibt die Verifizierungsfunktion einen Signalwert FAILURE zurück (Block 560).
  • Wenn eines oder mehrere Autorisierungszertifikate vorab in eine persistente Speichervorrichtung geladen worden sind, wird ein Zählwert (CNT) auf eine vorbestimmte Zahl (z.B. CNT=1) festgelegt, und es wird bestimmt, ob ein öffentlicher Schlüssel des Unterzeichners, der in dem Zertifikat[CNT] gefunden wird, mit dem öffentlichen Schlüssel eines der Autorisierungszertifikat(e) übereinstimmt (Blöcke 570-575). Wenn dies der Fall ist, gibt die Verifizierungsfunktion einen Signalwert SUCCESS zurück, der darstellt, dass das Boot-Abbild zur Ausführung auf der lokalen Plattform befugt ist (Block 580). Wenn keine Übereinstimmung detektiert wird, wird bestimmt, ob CNT<R gilt (Anzahl der Zertifikate in der Zertifikatkette), um zu prüfen, ob jedes digitale Zertifikat geprüft worden ist oder nicht (Block 585). Bei CNT≥R gibt die Verifizierungsfunktion einen Signalwert FAILURE zurück, der verhindert, dass das Boot-Abbild auf der lokalen Plattform ausgeführt wird (Block 590). Bei CNT<R wird hingegen bestimmt, ob die digitale Unterschrift in dem Zertifikat[CNT] unter Verwendung des öffentlichen Schlüssels des Zertifikats[CNT+1] verifiziert (Block 595). Wenn dies nicht der Fall ist, gibt die Verifizierungsfunktion einen Signalwert FAILURE zurück, der eine Ausführung des Boot-Abbilds auf der lokalen Plattform verhindert (Block 600). Bei erfolgreicher Verifizierung des Zertifikats[CNT] unter Verwendung des öffentlichen Schlüssels des Zertifikats[CNT+1] wird CNT hingegen inkrementiert (Block 605), und die Blöcke 575-605 werden für jedes Zertifikat wiederholt, bis ein Signalwert zurückgeführt wird.
  • Beschrieben und in den beigefügten Abbildungen dargestellt sind Ausführungsbeispiele der vorliegenden Erfindung, wobei hiermit festgestellt wird, dass diese Ausführungsbeispiele den umfassenden Umfang der Erfindung lediglich veranschaulichen und nicht einschränken, und wobei die vorliegende Erfindung nicht auf die speziellen dargestellten und beschriebenen Konstruktionen und Anordnungen beschränkt ist, da für den Durchschnittsfachmann auf dem Gebiet verschiedene weitere Modifikationen erdenklich sind.

Claims (10)

  1. Verfahren, das folgendes umfasst: das Bereitstellen von Informationen an eine Plattform (120), die in einem Betriebszustand vordem Booten arbeitet, wobei die Informationen folgendes aufweisen: (a) ein Abbild (140) einer Boot-Anwendung, die von der Plattform während einer Boot-Prozedur ausgeführt wird, und (b) ein von der Boot-Anwendung getrenntes unterzeichnetes Manifest (150), wobei das unterzeichnete Manifest folgendes aufweist: (i) einen sicheren Hash-Wert (300), der eine Mehrzahl von Hash-Werten mit einer Eins-zu-Eins-Entsprechung mit einer Mehrzahl von Teilabbildern aufweist, die das Abbild (140) der Boot-Anwendung bilden; (ii) eine digitale Unterschrift (310) des Manifests, welche die Mehrzahl von Hash-Werten (330) aufweist, die gemeinsam mit einen privaten Schlüssel eines ausgesuchten Unterzeichners unterschrieben sind; und (iii) eine Zertifikatkette (320); das Verifizieren der Integrität der auf die Plattform heruntergeladenen Boot-Anwendung; und nach der Bestimmung, dass ein Autoritätsprüfungs-Freigabekennzeichen (290) der Plattform freigegeben ist, das Bestimmen, ob die Boot-Anwendung zur Ausführung durch die Plattform autorisiert ist, durch (1) Zugriff auf Inhalte eines ersten digitalen Zertifikats (3201 ) der Zertifikatkette (320), um einen öffentlichen Objektschlüssel zu erhalten, (2) Vergleichen des öffentlichen Objektschlüssels in dem ersten digitalen Zertifikat mit einem öffentlichen Schlüssel des Unterzeichners der digitalen Unterschrift (310) des Unterzeichners, die durch ein vorher in die Plattform geladenes Autorisierungszertifikat vorgesehen wird, und (3) Autorisieren der Ausführung der Boot-Anwendung, wenn der öffentliche Objektschlüssel mit dem öffentlichen Schlüssel des Unterzeichners übereinstimmt.
  2. Verfahren nach Anspruch 1, wobei es sich bei dem ausgesuchten Unterzeichner um eine erste Quelle handelt.
  3. Verfahren nach Anspruch 2, wobei die Zertifikatkette des unterzeichneten Manifests das erste digitale Zertifikat aufweist, wobei das erste digitale Zertifikat den öffentlichen Objektschlüssel, den öffentlichen Schlüssel eines Ausstellers des ersten digitalen Zertifikats und eine digitale Unterschrift des ersten digitalen Zertifikats, digital unterschrieben von einer zweiten Quelle, aufweist.
  4. Verfahren nach Anspruch 3, wobei die Zertifikatkette ferner ein zweites digitales Zertifikat (3202 ) aufweist, wobei das zweite digitale Zertifikat einen öffentlichen Schlüssel der zweiten Quelle, einen öffentlichen Schlüssel eines Ausstellers des zweiten digitalen Zertifikats und eine digitale Signatur des zweiten digitalen Zertifikats, digital unterschrieben von einer dritten Quelle, aufweist.
  5. Verfahren nach Anspruch 2, wobei die Integrität der Informationen verifiziert wird durch: (i) Zugriff auf die Inhalte eines ersten digitalen Zertifikats der Zertifikatkette, um einen öffentlichen Schlüssel der ersten Quelle zu erhalten, (ii) Verifizieren der digitalen Unterschrift das Manifests mit dem öffentlichen Schlüssel der ersten Quelle, (iii) Zugriff auf die Inhalte des unterzeichneten Manifests, um den sicheren Hash-Wert zu erhalten, (iv) Ausführen einer Hash-Operation an dem Abbildung der Boot-Anwendung gemäß einer vorbestimmten Hash-Funktion, die zur Erzeugung des sicheren Hash-Wertes verwendet wird, um einen resultierenden Hash-Wert zu erzeugen, und (v) Vergleichen des sicheren Hash-Wertes mit dem resultierenden Hash-Wert.
  6. Verfahren nach Anspruch 5, wobei die Integrität der Informationen als aufrechterhalten gilt, wenn der sichere Hash-Wert mit dem resultierenden Hash-Wert übereinstimmt.
  7. Verfahren nach Anspruch 1, wobei die Zertifikatkette des unterzeichneten Manifests eine Mehrzahl aufeinanderfolgender digitaler Zertifikate aufweist, von denen ein R+1-tes digitales Zertifikat einen öffentlichen Schlüssel eines Unterzeichners einer digitalen Signatur in einem R-ten digitalen Zertifikat aufweist, wobei R eine positive ganze Zahl ist.
  8. Plattform, die folgendes umfasst: einen Prozessor (210); und eine persistente Speichervorrichtung (2602 ), die sich in Übertragungsverbindung mit dem Prozessor befindet, wobei die persistente Speichervorrichtung gekennzeichnet ist durch: ein Autorisierungszertifikat (280) mit einem öffentlichen Schlüssel einer Quelle, die ein Boot-Abbild auf die Plattform (120) herunterlädt; ein Autoritätsprüfungs-Freigabekennzeichen (290) zur Signalisierung einer Verifizierungsfunktion (270), um zu verifizieren, dass die Quelle befugt ist, das Boot-Abbild herunterzuladen; und wobei es sich bei der Verifizierungsfunktion um Software handelt, die durch den Prozessor ausgeführt wird, um zu verifizieren, ob das heruntergeladene Boot-Abbild modifiziert worden ist, wobei die Verifizierungsfunktion so konfiguriert ist, dass sie Informationen von einer ersten Quelle empfängt, während sich die Plattform in einem Betriebszustand vor dem Booten befindet, wobei die Informationen folgendes aufweisen: (a) ein Abbild (140) einer Boot-Anwendung, die von der Plattform während einer Boot-Prozedur ausgeführt wird, und (b) ein von der Boot-Anwendung getrenntes unterzeichnetes Manifest (150), wobei das unterzeichnete Manifest folgendes aufweist: (i) einen sicheren Hash-Wert (300), der eine Mehrzahl von Hash-Werten mit einer Eins-zu-Eins-Entsprechung mit einer Mehrzahl von Teilabbildern aufweist, die das Abbild (140) der Boot-Anwendung bilden; (ii) eine digitale Unterschrift (310) des Manifests, welche die Mehrzahl von Hash-Werten (330) aufweist, die gemeinsam mit einen privaten Schlüssel eines ausgesuchten Unterzeichners unterschrieben sind; und (iii) eine Zertifikatkette (320); und wobei bei freigegebenem Autoritätsprüfungs-Freigabekennzeichen (290) bestimmt wird, ob die Boot-Anwenudng zur Ausführung durch die Plattform befugt ist, durch (1) Zugriff auf Inhalte eines ersten digitalen Zertifikats (3201 ) der Zertifikatkette (320), um einen öffentlichen Objektschlüssel zu erhalten, (2) Vergleichen des öffentlichen Objektschlüssels in dem ersten digitalen Zertifikat mit einem öffentlichen Schlüssel eines Unterzeichners der digitalen Unterschrift des Manifests, die durch das Autorisierungszertifikat vorgesehen wird, und (3) Autorisieren der Ausführung der Boot-Anwendung, wenn der öffentliche Objektschlüssel mit dem öffentlichen Schlüssel des Unterzeichners übereinstimmt.
  9. Plattform nach Anspruch 8, wobei die persistente Speichervorrichtung (2602 ) einen Flash-Speicher aufweist.
  10. Plattform nach Anspruch 8, wobei die persistente Speichervorrichtung einen Direktzugriffsspeicher mit Batterieunterstützung aufweist.
DE69923466T 1998-10-05 1999-10-04 Vorrichtung zur überprüfung der integrität und berechtigung eines computerprogramms vor seiner ausführung auf einer lokalen plattform Expired - Lifetime DE69923466T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/166,275 US6463535B1 (en) 1998-10-05 1998-10-05 System and method for verifying the integrity and authorization of software before execution in a local platform
US166275 1998-10-05
PCT/US1999/023163 WO2000021238A1 (en) 1998-10-05 1999-10-04 A system for verifying the integrity and authorization of software before execution in a local platform

Publications (2)

Publication Number Publication Date
DE69923466D1 DE69923466D1 (de) 2005-03-03
DE69923466T2 true DE69923466T2 (de) 2005-12-29

Family

ID=22602577

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69923466T Expired - Lifetime DE69923466T2 (de) 1998-10-05 1999-10-04 Vorrichtung zur überprüfung der integrität und berechtigung eines computerprogramms vor seiner ausführung auf einer lokalen plattform

Country Status (6)

Country Link
US (1) US6463535B1 (de)
EP (1) EP1119938B1 (de)
AU (1) AU6289599A (de)
DE (1) DE69923466T2 (de)
HK (1) HK1036894A1 (de)
WO (1) WO2000021238A1 (de)

Families Citing this family (157)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7409546B2 (en) * 1999-10-20 2008-08-05 Tivo Inc. Cryptographically signed filesystem
US7032240B1 (en) * 1999-12-07 2006-04-18 Pace Anti-Piracy, Inc. Portable authorization device for authorizing use of protected information and associated method
DE10008973B4 (de) * 2000-02-25 2004-10-07 Bayerische Motoren Werke Ag Autorisierungsverfahren mit Zertifikat
US7013481B1 (en) * 2000-03-31 2006-03-14 Intel Corporation Attestation key memory device and bus
US6769058B1 (en) 2000-03-31 2004-07-27 Intel Corporation Resetting a processor in an isolated execution environment
US6760441B1 (en) 2000-03-31 2004-07-06 Intel Corporation Generating a key hieararchy for use in an isolated execution environment
US7194634B2 (en) * 2000-03-31 2007-03-20 Intel Corporation Attestation key memory device and bus
US6754815B1 (en) 2000-03-31 2004-06-22 Intel Corporation Method and system for scrubbing an isolated area of memory after reset of a processor operating in isolated execution mode if a cleanup flag is set
US7131143B1 (en) * 2000-06-21 2006-10-31 Microsoft Corporation Evaluating initially untrusted evidence in an evidence-based security policy manager
US7051366B1 (en) * 2000-06-21 2006-05-23 Microsoft Corporation Evidence-based security policy manager
US7117371B1 (en) * 2000-06-28 2006-10-03 Microsoft Corporation Shared names
US7124408B1 (en) * 2000-06-28 2006-10-17 Microsoft Corporation Binding by hash
US6678833B1 (en) * 2000-06-30 2004-01-13 Intel Corporation Protection of boot block data and accurate reporting of boot block contents
US7043636B2 (en) 2000-09-26 2006-05-09 Telefonaktiebolaget Lm Ericsson (Publ) Data integrity mechanisms for static and dynamic data
US7793111B1 (en) 2000-09-28 2010-09-07 Intel Corporation Mechanism to handle events in a machine with isolated execution
JP2002215585A (ja) * 2000-11-16 2002-08-02 Fuji Xerox Co Ltd 個人証明書サブジェクト名処理装置および方法
US7818808B1 (en) 2000-12-27 2010-10-19 Intel Corporation Processor mode for limiting the operation of guest software running on a virtual machine supported by a virtual machine monitor
US7047420B2 (en) * 2001-01-17 2006-05-16 Microsoft Corporation Exclusive encryption
US6892216B2 (en) * 2001-02-13 2005-05-10 Snap-On Incorporated Common platform for use in automotive services
US7043637B2 (en) * 2001-03-21 2006-05-09 Microsoft Corporation On-disk file format for a serverless distributed file system
US7478243B2 (en) * 2001-03-21 2009-01-13 Microsoft Corporation On-disk file format for serverless distributed file system with signed manifest of file modifications
US7062490B2 (en) 2001-03-26 2006-06-13 Microsoft Corporation Serverless distributed file system
US6981138B2 (en) * 2001-03-26 2005-12-27 Microsoft Corporation Encrypted key cache
US6922846B2 (en) * 2001-04-09 2005-07-26 Sony Corporation Memory utilization for set top box
US6988124B2 (en) * 2001-06-06 2006-01-17 Microsoft Corporation Locating potentially identical objects across multiple computers based on stochastic partitioning of workload
US7310644B2 (en) * 2001-06-06 2007-12-18 Microsoft Corporation Locating potentially identical objects across multiple computers
EP1283464A1 (de) * 2001-08-06 2003-02-12 Hewlett-Packard Company Verfahren und Festwertspeicher zum Hochfahren eines Rechners, und Rechner mit einem Festwertspeicher zum Hochfahren
DE10140721A1 (de) * 2001-08-27 2003-03-20 Bayerische Motoren Werke Ag Verfahren zur Bereitstellung von Software zur Verwendung durch ein Steuergerät eines Fahrzeugs
US7024555B2 (en) 2001-11-01 2006-04-04 Intel Corporation Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment
US7137004B2 (en) * 2001-11-16 2006-11-14 Microsoft Corporation Manifest-based trusted agent management in a trusted operating system environment
US8068610B2 (en) * 2001-11-21 2011-11-29 General Instrument Corporation Method and system for providing security within multiple set-top boxes assigned for a single customer
AU2002350339A1 (en) 2001-12-26 2003-07-30 Research In Motion Limited Secure booting of chip devices
US20030126454A1 (en) * 2001-12-28 2003-07-03 Glew Andrew F. Authenticated code method and apparatus
US7653164B2 (en) 2001-12-31 2010-01-26 Intel Corporation Adaptive IQ imbalance correction for multicarrier wireless communication systems
EP1338939A1 (de) * 2002-02-22 2003-08-27 Hewlett-Packard Company Vorrichtung zur Validierung des Zustandes eines Rechners
US7631196B2 (en) 2002-02-25 2009-12-08 Intel Corporation Method and apparatus for loading a trustable operating system
US7124273B2 (en) 2002-02-25 2006-10-17 Intel Corporation Method and apparatus for translating guest physical addresses in a virtual machine environment
US7194630B2 (en) * 2002-02-27 2007-03-20 Canon Kabushiki Kaisha Information processing apparatus, information processing system, information processing method, storage medium and program
US7020665B2 (en) * 2002-03-07 2006-03-28 Microsoft Corporation File availability in distributed file storage systems
JP2003271457A (ja) * 2002-03-14 2003-09-26 Sanyo Electric Co Ltd データ記憶装置
EP1349033B1 (de) * 2002-03-26 2004-03-31 Soteres GmbH Verfahren zum Schutz der Integrität von Programmen
US7028149B2 (en) * 2002-03-29 2006-04-11 Intel Corporation System and method for resetting a platform configuration register
US7069442B2 (en) 2002-03-29 2006-06-27 Intel Corporation System and method for execution of a secured environment initialization instruction
CA2380762A1 (en) * 2002-04-04 2003-10-04 Intrinsyc Software, Inc. Internet-enabled device provisioning, upgrade and recovery mechanism
US6973479B2 (en) * 2002-05-01 2005-12-06 Thales Avionics, Inc. Method and system for configuration and download in a restricted architecture network
GB0212318D0 (en) * 2002-05-28 2002-07-10 Symbian Ltd Tamper evident removable media storing executable code
US6820177B2 (en) 2002-06-12 2004-11-16 Intel Corporation Protected configuration space in a protected environment
US7558958B2 (en) * 2002-06-13 2009-07-07 Microsoft Corporation System and method for securely booting from a network
US7120786B2 (en) * 2002-06-17 2006-10-10 Microsoft Corporation Booting from a compressed image
AU2003281380A1 (en) * 2002-07-02 2004-01-23 Telefonaktiebolaget Lm Ericsson (Publ) Method of securing and exposing a logotype in an electronic device
EP1429224A1 (de) * 2002-12-10 2004-06-16 Texas Instruments Incorporated Firmware Laufzeit Authentisierung
US7143277B2 (en) * 2002-08-19 2006-11-28 Intel Corporation Methods and apparatus for event based console variable coherence maintenance in a pre-boot environment
US6986033B2 (en) * 2002-09-10 2006-01-10 Veritas Operating Corporation System for automated boot from disk image
US7900017B2 (en) 2002-12-27 2011-03-01 Intel Corporation Mechanism for remapping post virtual machine memory pages
US7076802B2 (en) * 2002-12-31 2006-07-11 Intel Corporation Trusted system clock
US20040158546A1 (en) * 2003-02-06 2004-08-12 Sobel William E. Integrity checking for software downloaded from untrusted sources
US8784195B1 (en) * 2003-03-05 2014-07-22 Bally Gaming, Inc. Authentication system for gaming machines
US7308578B2 (en) * 2003-03-06 2007-12-11 International Business Machines Corporation Method and apparatus for authorizing execution for applications in a data processing system
SE0300670L (sv) * 2003-03-10 2004-08-17 Smarttrust Ab Förfarande för säker nedladdning av applikationer
EP1611708A4 (de) * 2003-03-10 2009-12-30 Cyberview Technology Inc Dynamische konfiguration eines spielsystems
US20040193917A1 (en) * 2003-03-26 2004-09-30 Drews Paul C Application programming interface to securely manage different execution environments
GB2400463B (en) * 2003-04-11 2005-05-25 Nextenders Data processing apparatus and method for distributing and authenticating electronic documents
GB0309182D0 (en) 2003-04-23 2003-05-28 Hewlett Packard Development Co Security method and apparatus using biometric data
US20050005136A1 (en) * 2003-04-23 2005-01-06 Liqun Chen Security method and apparatus using biometric data
US7181723B2 (en) * 2003-05-27 2007-02-20 Intel Corporation Methods and apparatus for stride profiling a software application
US7467417B2 (en) * 2003-06-18 2008-12-16 Architecture Technology Corporation Active verification of boot firmware
US7415708B2 (en) 2003-06-26 2008-08-19 Intel Corporation Virtual machine management using processor state information
US7328340B2 (en) * 2003-06-27 2008-02-05 Intel Corporation Methods and apparatus to provide secure firmware storage and service access
US7313690B2 (en) * 2003-06-27 2007-12-25 Microsoft Corporation Three way validation and authentication of boot files transmitted from server to client
JP4676724B2 (ja) * 2003-08-12 2011-04-27 株式会社リコー 情報処理装置、情報処理方法、情報処理プログラム、及び記録媒体
US8079034B2 (en) 2003-09-15 2011-12-13 Intel Corporation Optimizing processor-managed resources based on the behavior of a virtual machine monitor
US7739521B2 (en) 2003-09-18 2010-06-15 Intel Corporation Method of obscuring cryptographic computations
US20050080934A1 (en) 2003-09-30 2005-04-14 Cota-Robles Erik C. Invalidating translation lookaside buffer entries in a virtual machine (VM) system
US7694151B1 (en) 2003-11-20 2010-04-06 Johnson Richard C Architecture, system, and method for operating on encrypted and/or hidden information
US8156343B2 (en) 2003-11-26 2012-04-10 Intel Corporation Accessing private data about the state of a data processing machine from storage that is publicly accessible
US8037314B2 (en) 2003-12-22 2011-10-11 Intel Corporation Replacing blinded authentication authority
FR2864655B1 (fr) * 2003-12-31 2006-03-24 Trusted Logic Procede de controle d'integrite de programmes par verification d'empreintes de traces d'execution
US20050171961A1 (en) * 2004-01-30 2005-08-04 Microsoft Corporation Fingerprinting software applications
US7802085B2 (en) 2004-02-18 2010-09-21 Intel Corporation Apparatus and method for distributing private keys to an entity with minimal secret, unique information
US7620949B2 (en) 2004-03-31 2009-11-17 Intel Corporation Method and apparatus for facilitating recognition of an open event window during operation of guest software in a virtual machine environment
US8024730B2 (en) 2004-03-31 2011-09-20 Intel Corporation Switching between protected mode environments utilizing virtual machine functionality
JP4736370B2 (ja) * 2004-07-27 2011-07-27 株式会社日立製作所 ホスティング環境構築方法および計算機システム
US7840962B2 (en) 2004-09-30 2010-11-23 Intel Corporation System and method for controlling switching between VMM and VM using enabling value of VMM timer indicator and VMM timer value having a specified time
US8156488B2 (en) * 2004-10-20 2012-04-10 Nokia Corporation Terminal, method and computer program product for validating a software application
US20060101310A1 (en) * 2004-10-22 2006-05-11 Nimrod Diamant Device, system and method for verifying integrity of software programs
US8146078B2 (en) 2004-10-29 2012-03-27 Intel Corporation Timer offsetting mechanism in a virtual machine environment
US8924728B2 (en) 2004-11-30 2014-12-30 Intel Corporation Apparatus and method for establishing a secure session with a device without exposing privacy-sensitive information
US7305544B2 (en) * 2004-12-10 2007-12-04 Intel Corporation Interleaved boot block to support multiple processor architectures and method of use
GB0427696D0 (en) * 2004-12-17 2005-01-19 Ncr Int Inc Method of authenticating an executable application
US8533777B2 (en) 2004-12-29 2013-09-10 Intel Corporation Mechanism to determine trust of out-of-band management agents
US7395405B2 (en) 2005-01-28 2008-07-01 Intel Corporation Method and apparatus for supporting address translation in a virtual machine environment
US7802294B2 (en) 2005-01-28 2010-09-21 Microsoft Corporation Controlling computer applications' access to data
US7810153B2 (en) * 2005-01-28 2010-10-05 Microsoft Corporation Controlling execution of computer applications
US20070130114A1 (en) * 2005-06-20 2007-06-07 Xiao-Feng Li Methods and apparatus to optimize processing throughput of data structures in programs
US7434218B2 (en) * 2005-08-15 2008-10-07 Microsoft Corporation Archiving data in a virtual application environment
US7809957B2 (en) 2005-09-29 2010-10-05 Intel Corporation Trusted platform module for generating sealed data
US8892694B2 (en) * 2005-10-24 2014-11-18 Microsoft Corporation Declarative system configurations
US8490093B2 (en) 2006-02-03 2013-07-16 Microsoft Corporation Managed control of processes including privilege escalation
US8291226B2 (en) 2006-02-10 2012-10-16 Qualcomm Incorporated Method and apparatus for securely booting from an external storage device
US7447892B2 (en) * 2006-03-10 2008-11-04 Inventec Corporation Operating system activation key embedding handling method and system
US20070220260A1 (en) * 2006-03-14 2007-09-20 Adobe Systems Incorporated Protecting the integrity of electronically derivative works
US8014530B2 (en) 2006-03-22 2011-09-06 Intel Corporation Method and apparatus for authenticated, recoverable key distribution with no database secrets
US20070250711A1 (en) * 2006-04-25 2007-10-25 Phonified Llc System and method for presenting and inputting information on a mobile device
US8667273B1 (en) 2006-05-30 2014-03-04 Leif Olov Billstrom Intelligent file encryption and secure backup system
US8099605B1 (en) * 2006-06-05 2012-01-17 InventSec AB Intelligent storage device for backup system
US8612971B1 (en) 2006-10-17 2013-12-17 Manageiq, Inc. Automatic optimization for virtual systems
US8458695B2 (en) 2006-10-17 2013-06-04 Manageiq, Inc. Automatic optimization for virtual systems
US8752045B2 (en) 2006-10-17 2014-06-10 Manageiq, Inc. Methods and apparatus for using tags to control and manage assets
US8234640B1 (en) 2006-10-17 2012-07-31 Manageiq, Inc. Compliance-based adaptations in managed virtual systems
US9086917B1 (en) 2006-10-17 2015-07-21 Manageiq, Inc. Registering and accessing virtual systems for use in a managed system
US9015703B2 (en) 2006-10-17 2015-04-21 Manageiq, Inc. Enforcement of compliance policies in managed virtual systems
US8949826B2 (en) 2006-10-17 2015-02-03 Managelq, Inc. Control and management of virtual systems
US8949825B1 (en) 2006-10-17 2015-02-03 Manageiq, Inc. Enforcement of compliance policies in managed virtual systems
US9038062B2 (en) 2006-10-17 2015-05-19 Manageiq, Inc. Registering and accessing virtual systems for use in a managed system
US9697019B1 (en) 2006-10-17 2017-07-04 Manageiq, Inc. Adapt a virtual machine to comply with system enforced policies and derive an optimized variant of the adapted virtual machine
US8234641B2 (en) 2006-10-17 2012-07-31 Managelq, Inc. Compliance-based adaptations in managed virtual systems
US8086637B1 (en) * 2006-12-22 2011-12-27 Emc Corporation Access control for business process data
CN101226569A (zh) * 2007-01-19 2008-07-23 国际商业机器公司 在虚拟机中验证代码模块的方法及装置
US7769993B2 (en) * 2007-03-09 2010-08-03 Microsoft Corporation Method for ensuring boot source integrity of a computing system
US8108856B2 (en) 2007-03-30 2012-01-31 Intel Corporation Method and apparatus for adaptive integrity measurement of computer software
US8683213B2 (en) 2007-10-26 2014-03-25 Qualcomm Incorporated Progressive boot for a wireless device
US20090129597A1 (en) * 2007-11-21 2009-05-21 Zimmer Vincent J Remote provisioning utilizing device identifier
US7962737B2 (en) * 2007-11-21 2011-06-14 Dell Products L.P. Methods, media and apparatus for booting diskless systems
US8418173B2 (en) * 2007-11-27 2013-04-09 Manageiq, Inc. Locating an unauthorized virtual machine and bypassing locator code by adjusting a boot pointer of a managed virtual machine in authorized environment
US8407688B2 (en) 2007-11-27 2013-03-26 Managelq, Inc. Methods and apparatus for storing and transmitting historical configuration data associated with information technology assets
US8621191B2 (en) * 2007-12-26 2013-12-31 Nokia Corporation Methods, apparatuses, and computer program products for providing a secure predefined boot sequence
US8112633B1 (en) * 2008-06-30 2012-02-07 Symantec Corporation Server side verification of digital signatures in streaming environments
US8694761B2 (en) * 2008-12-31 2014-04-08 Vincent Zimmer System and method to secure boot both UEFI and legacy option ROM's with common policy engine
US8417954B1 (en) * 2009-02-11 2013-04-09 Hewlett-Packard Development Company, L.P. Installation image including digital signature
US9270683B2 (en) 2009-05-15 2016-02-23 Amazon Technologies, Inc. Storage device authentication
US10148433B1 (en) 2009-10-14 2018-12-04 Digitalpersona, Inc. Private key/public key resource protection scheme
US8161012B1 (en) 2010-02-05 2012-04-17 Juniper Networks, Inc. File integrity verification using a verified, image-based file system
US8996851B2 (en) 2010-08-10 2015-03-31 Sandisk Il Ltd. Host device and method for securely booting the host device with operating system code loaded from a storage device
US20120331303A1 (en) * 2011-06-23 2012-12-27 Andersson Jonathan E Method and system for preventing execution of malware
WO2013012435A1 (en) * 2011-07-18 2013-01-24 Hewlett-Packard Development Company, L.P. Security parameter zeroization
US8782389B2 (en) 2011-07-19 2014-07-15 Sandisk Technologies Inc. Storage device and method for updating a shadow master boot record
US8832455B1 (en) * 2011-09-21 2014-09-09 Google Inc. Verified boot path retry
US11126418B2 (en) * 2012-10-11 2021-09-21 Mcafee, Llc Efficient shared image deployment
EP2735992B1 (de) * 2012-11-22 2018-03-28 Nxp B.V. Software-Identifizierung
US9294468B1 (en) * 2013-06-10 2016-03-22 Google Inc. Application-level certificates for identity and authorization
WO2015013474A2 (en) 2013-07-25 2015-01-29 Siemens Healthcare Diagnostics Inc. Anti-piracy protection for software
JP6244759B2 (ja) * 2013-09-10 2017-12-13 株式会社ソシオネクスト セキュアブート方法、半導体装置、及び、セキュアブートプログラム
US9411979B2 (en) 2014-08-07 2016-08-09 Vmware, Inc. Embedding secret data in code
US9398019B2 (en) * 2014-08-07 2016-07-19 Vmware, Inc. Verifying caller authorization using secret data embedded in code
GB2529838B (en) * 2014-09-03 2021-06-30 Advanced Risc Mach Ltd Bootstrap Mechanism For Endpoint Devices
US10922402B2 (en) 2014-09-29 2021-02-16 Vmware, Inc. Securing secret data embedded in code against compromised interrupt and exception handlers
US10867047B2 (en) * 2015-03-11 2020-12-15 Hewlett-Packard Development Company, L.P. Booting user devices to custom operating system (OS) images
GB2540989B (en) 2015-08-03 2018-05-30 Advanced Risc Mach Ltd Server initiated remote device registration
GB2540987B (en) 2015-08-03 2020-05-13 Advanced Risc Mach Ltd Bootstrapping without transferring private key
FR3044786B1 (fr) * 2015-12-07 2018-07-13 Ingenico Group Procede de chargement d'une ressource informatique au sein d'un dispositif electronique, module electronique et programme d'ordinateur correspondant
CN106126200B (zh) * 2016-06-13 2019-07-19 房玮 一种能够远程引导客户端计算机的云计算系统
US10956615B2 (en) * 2017-02-17 2021-03-23 Microsoft Technology Licensing, Llc Securely defining operating system composition without multiple authoring
US11324960B2 (en) 2018-04-26 2022-05-10 West Affum Holdings Corp. Permission-based control of interfacing components with a medical device
US11120137B2 (en) 2018-06-19 2021-09-14 Netgear, Inc. Secure transfer of registered network access devices
GB2582735B (en) 2019-02-01 2022-11-30 Arm Ip Ltd Template-based registration
US11475134B2 (en) 2019-04-10 2022-10-18 Arm Limited Bootstrapping a device
US20220147616A1 (en) * 2020-11-11 2022-05-12 Red Hat, Inc. Implementing trusted clients using secure execution environments

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4206315A (en) 1978-01-04 1980-06-03 International Business Machines Corporation Digital signature system and apparatus
FR2514593B1 (fr) 1981-10-09 1986-12-26 Bull Sa Procede et dispositif pour authentifier la signature d'un message signe
US5218637A (en) 1987-09-07 1993-06-08 L'etat Francais Represente Par Le Ministre Des Postes, Des Telecommunications Et De L'espace Method of transferring a secret, by the exchange of two certificates between two microcomputers which establish reciprocal authorization
US5214702A (en) 1988-02-12 1993-05-25 Fischer Addison M Public key/signature cryptosystem with enhanced digital signature certification
US5005200A (en) 1988-02-12 1991-04-02 Fischer Addison M Public key/signature cryptosystem with enhanced digital signature certification
US4868877A (en) 1988-02-12 1989-09-19 Fischer Addison M Public key/signature cryptosystem with enhanced digital signature certification
US5421006A (en) * 1992-05-07 1995-05-30 Compaq Computer Corp. Method and apparatus for assessing integrity of computer system software
US5465299A (en) 1992-12-03 1995-11-07 Hitachi, Ltd. Electronic document processing system and method of forming digital signature
FR2703800B1 (fr) 1993-04-06 1995-05-24 Bull Cp8 Procédé de signature d'un fichier informatique, et dispositif pour la mise en Óoeuvre.
US5349643A (en) * 1993-05-10 1994-09-20 International Business Machines Corporation System and method for secure initial program load for diskless workstations
US5367573A (en) 1993-07-02 1994-11-22 Digital Equipment Corporation Signature data object
US5444850A (en) 1993-08-04 1995-08-22 Trend Micro Devices Incorporated Method and apparatus for controlling network and workstation access prior to workstation boot
US5574915A (en) * 1993-12-21 1996-11-12 Taligent Object-oriented booting framework
US5537475A (en) 1994-02-01 1996-07-16 Micali; Silvio Efficient digital signature algorithm and use thereof technical field
US5805706A (en) 1996-04-17 1998-09-08 Intel Corporation Apparatus and method for re-encrypting data without unsecured exposure of its non-encrypted format
US5473692A (en) 1994-09-07 1995-12-05 Intel Corporation Roving software license for a hardware agent
US5724425A (en) * 1994-06-10 1998-03-03 Sun Microsystems, Inc. Method and apparatus for enhancing software security and distributing software
US5778070A (en) * 1996-06-28 1998-07-07 Intel Corporation Method and apparatus for protecting flash memory
US5944821A (en) * 1996-07-11 1999-08-31 Compaq Computer Corporation Secure software registration and integrity assessment in a computer system
US5844986A (en) * 1996-09-30 1998-12-01 Intel Corporation Secure BIOS
US5937063A (en) * 1996-09-30 1999-08-10 Intel Corporation Secure boot
US5935242A (en) * 1996-10-28 1999-08-10 Sun Microsystems, Inc. Method and apparatus for initializing a device
US5919257A (en) * 1997-08-08 1999-07-06 Novell, Inc. Networked workstation intrusion detection system

Also Published As

Publication number Publication date
HK1036894A1 (en) 2002-01-18
EP1119938B1 (de) 2005-01-26
WO2000021238A1 (en) 2000-04-13
EP1119938A1 (de) 2001-08-01
US6463535B1 (en) 2002-10-08
DE69923466D1 (de) 2005-03-03
EP1119938A4 (de) 2003-04-09
AU6289599A (en) 2000-04-26

Similar Documents

Publication Publication Date Title
DE69923466T2 (de) Vorrichtung zur überprüfung der integrität und berechtigung eines computerprogramms vor seiner ausführung auf einer lokalen plattform
DE112014005412B4 (de) Programmaktualisierungssystem und Programmaktualisierungsverfahren
DE602005001351T2 (de) Verteilte Verwaltung einer Zertifikatsrücknahmeliste
DE19781841C2 (de) Verfahren zum automatischen Entscheiden der Gültigkeit eines digitalen Dokuments von einer entfernten Stelle aus
DE69815599T2 (de) Verfahren und Vorrichtung zum Schutz von Anwendungsdaten in sicheren Speicherbereichen
DE69534757T2 (de) System und Verfahren zur sicheren Speicherung und Verteilung von Daten unter Verwendung digitaler Unterschriften
DE69724946T2 (de) Programmvermietungssystem und Verfahren zur Vermietung von Programmen
DE69731714T2 (de) Dynamische Dienstklassen für eine internationale kryptographische Struktur
EP3108610A1 (de) Verfarhen und system zum erstellen und zur gültigkeitsprüfung von gerätezertifikaten
DE102017214359A1 (de) Verfahren zum sicheren Ersetzen eines bereits in ein Gerät eingebrachten ersten Herstellerzertifikats
DE102013108020A1 (de) Authentifizierungsschema zum Aktivieren eines Spezial-Privileg-Modus in einem gesicherten elektronischen Steuergerät
DE112006000034T5 (de) Systemprogramm-Downloadsystem
EP3323076A1 (de) Verfahren und anordnung zum sicheren austausch von konfigurationsdaten einer vorrichtung
EP1185026B1 (de) Verfahren zur Datenübertragung
DE102016221108A1 (de) Verfahren zum Aktualisieren einer Software eines Steuergeräts eines Fahrzeugs
DE602004009639T2 (de) Verfahren oder Vorrichtung zur Authentifizierung digitaler Daten mittels eines Authentifizierungs-Plugins
EP3951516A1 (de) System und verfahren zum verifizieren von komponenten eines industriellen kontrollsystems
EP3422274A1 (de) Verfahren zur konfiguration oder änderung einer konfiguration eines bezahlterminals und/oder zur zuordnung eines bezahlterminals zu einem betreiber
EP3337085A1 (de) Nachladen kryptographischer programminstruktionen
DE102012220767A1 (de) Verfahren und Vorrichtungen zum Installieren von Gebäudesteuerungssoftware
EP3767513B1 (de) Verfahren zur sicheren durchführung einer fernsignatur sowie sicherheitssystem
DE102018213616A1 (de) Kryptografiemodul und Betriebsverfahren hierfür
EP3435265A1 (de) Verfahren zur sicheren authentifizierung bei mit einem server verbindbaren geräten, insbesondere bei zugangskontrollvorrichtungen oder bezahl- bzw. verkaufsautomaten eines zugangskontrollsystems
DE60032693T2 (de) Datenspeichersystem, Ausgabevorrichtung, datenliefernde Vorrichtung und rechnerlesbares Medium zum Speichern eines Datenspeicherprogrammes
DE10020562C1 (de) Verfahren zum Beheben eines in einer Datenverarbeitungseinheit auftretenden Fehlers

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: HEYER, V., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 806