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 PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4416—Network booting; Remote initial program loading [RIPL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/007—Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
- G06F2211/008—Public 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 und5B 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 Netzwerks100 dargestellt, das eine zentrale Plattform110 und eine oder mehrere lokale Plattformen120 umfasst. In dem vorliegenden Ausführungsbeispiel weist die zentrale Plattform110 einen Server mit mindestens einem Plattenlaufwerk115 auf. In das Plattenlaufwerk115 werden Anwendungen geladen, wobei Abbilder bzw. Images der Anwendungen auf Anforderung auf eine lokale Plattform120 heruntergeladen werden. Zum Beispiel kann die lokale Plattform120 in ihrem Betriebszustand vor dem Booten das Herunterladen eines Boot-Abbilds140 über einen Datenübermittlungsabschnitt bzw. eine Datenübertragungsverknüpfung130 von der zentralen Plattform110 anfordern. Natürlich kann das Boot-Abbild140 eines oder mehrere Teilabbilder umfassen, welche das ganze Boot-Abbild bilden. Zur Verifizierung, dass das Boot-Abbild140 durch die lokale Plattform120 ausgeführt werden kann, wird ein unterschriebenes Manifest150 (siehe3 ), das dem Boot-Abbild140 entspricht, auf die lokale Plattform120 heruntergeladen, und zwar allgemein gleichzeitig mit dem Boot-Abbild140 . Natürlich wird in Betracht gezogen, dass das unterschriebene Manifest150 vor oder nach der Übertragung des Boot-Abbilds140 heruntergeladen werden kann. - In Bezug auf die Abbildung aus
2 ist ein veranschaulichendes Blockdiagramm eines Ausführungsbeispiels der lokalen Plattform120 dargestellt. In dem vorliegenden Ausführungsbeispiel umfasst die lokale Plattform120 einen Chipsatz200 , der entsprechend über einen Host-Bus230 und einen Speicherbus240 mit einem Prozessor210 und einem Speicher220 gekoppelt ist. Darüber hinaus ist der Chipsatz200 mit einem Bus250 gekoppelt, der einen Pfad zu einer oder mehreren Systemressourcen260 vorsieht. In dem vorliegenden Ausführungsbeispiel umfasst der Bus250 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 Bus250 ist zum Beispiel als ein einzelner Bus dargestellt, wobei jedoch erwägt wird, dass der Bus250 mehrere Busse aufweisen kann, die über Brückenschaltungen miteinander gekoppelt sind. Bei diesem Ausführungsbeispiel würden die Systemressourcen260 mit mindestens einem Bus der Mehrzahl von Bussen gekoppelt werden. - Gemäß den Abbildungen umfassen die Systemressourcen
260 eine Kommunikationsvorrichtung2601 und eine persistente Speichervorrichtung2602 . Die Kommunikationsvorrichtung2601 ist so konfiguriert, dass sie über den Datenübermittlungsabschnitt130 aus1 Kommunikationen mit der zentralen Plattform110 herstellt. Zu den Beispielen für die Kommunikationsvorrichtung2601 zählen eine Netzwerkschnittstellenkarte, eine Modemkarte oder ein externes Modem. Die persistente Speichervorrichtung2602 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 Verifizierungsfunktion270 , einem Autorisierungszertifikat280 und einem Autoritätsprüfungs-Freigabekennzeichen290 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 Prozessor210 so eingestellt werden, dass er Speicher-Schreibzugriffe innerhalb eines Adressbereichs abfängt und untersagt bzw. zurückweist, oder der Chipsatz200 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 Speichervorrichtung2602 , so dass diese auf Speicher-Schreibzugriffe nicht anspricht; (ii) das Bereitstellen einer Softwareschnittstelle, die eine Benutzerauthentifikation zur Aktualisierung der Inhalte der persistenten Speichervorrichtung2602 erfordert; und (iii) das Implementieren verschiedener Materialien oder Schaltkreisanordnungen beim Versuch des Detektierens physikalischer Verfälschungen der persistenten Speichervorrichtung2602 , welche die lokale Plattform betriebsunfähig machen können. - Wie dies in den Abbildungen der
5A und5B näher dargestellt ist, weist die Verifizierungsfunktion270 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 Verifizierungsfunktion2709 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-Freigabekennzeichen290 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 Autorisierungszertifikat280 . Dies reduziert die Kosten der Aufrechterhaltung bzw. der Pflege verschiedenartiger Konfigurationen der lokalen Plattform. Im Besonderen sieht die Installation des Autorisierungszertifikats280 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 Autorisierungszertifikat280 vorgesehen wird. Es wird in Betracht gezogen, dass mehrere Autorisierungszertifikate in der persistenten Speichervorrichtung2602 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 Manifests150 dargestellt, das dem Boot-Abbild140 entspricht. Das unterschriebene Manifest150 umfasst: (i) einen sicheren Hash-Wert300 für jedes Teilabbild des Boot-Abbilds; (ii) eine digitale Unterschrift310 des Manifests; und (iii) eine Zertifikatkette320 , welche die Identität des Unterzeichners des unterschriebenen Manifests150 vorsieht sowie der Einheiten, welche die Befugnis zur Unterzeichnung an den Unterzeichner vergeben haben. Jeder sichere Hash-Wert300 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 Unterschrift310 des Manifests in dem vorliegenden Ausführungsbeispiel erzeugt, indem anfänglich M-Hash-Werte300 Ende-zu-Ende angehängt werden (wobei „M" eine positive ganze Zahl darstellt mit M ≥ 1), so dass ein Hash-Satz330 vorgesehen wird. Danach wird der Hash-Satz330 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 Zertifikatkette320 eine Reihe von „R" digitalen Zertifikaten auf, wobei „R" eine positive ganze Zahl ist (mit R ≥ 1). Ein erstes digitales Zertifikat3201 (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 Manifests150 . Danach sehen die "R-1" digitalen Zertifikate gemeinsam eine Sequenz dieser Quellen vor, die das erste digitale Zertifikat3201 ausgeben, das zum Unterschreiben des unterschriebenen Manifests150 verwendet wird. Zum Beispiel weist ein zweites digitales Zertifikat3202 (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 Zertifikatkette320 , 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 Autorisierungszertifikat280 übereinstimmt. Für jedes Zertifikat[N] in der Zertifikatkette320 , 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 Zertifikatkette320 . 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 und5B 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 (Block500 ). 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 und580 ). 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öcke515 ,530 ,560 ,590 und600 ). 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 (Block505 ). 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 (Block515 ). Gemäß der Darstellung in den Blöcken520 -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 (Block530 ). - 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 (Block535 ). Ansonsten unterliegt die Verifizierungsfunktion der in der Abbildung aus5B 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 (Block550 ). Wenn dies nicht der Fall ist, wird bestimmt, ob der Benutzer das Abbild autorisiert hat (Block555 ). 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 (Block565 ). Ansonsten gibt die Verifizierungsfunktion einen Signalwert FAILURE zurück (Block560 ). - 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 (Block580 ). 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 (Block585 ). Bei CNT≥R gibt die Verifizierungsfunktion einen Signalwert FAILURE zurück, der verhindert, dass das Boot-Abbild auf der lokalen Plattform ausgeführt wird (Block590 ). 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 (Block595 ). 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 (Block600 ). Bei erfolgreicher Verifizierung des Zertifikats[CNT] unter Verwendung des öffentlichen Schlüssels des Zertifikats[CNT+1] wird CNT hingegen inkrementiert (Block605 ), und die Blöcke575 -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)
- 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. - Verfahren nach Anspruch 1, wobei es sich bei dem ausgesuchten Unterzeichner um eine erste Quelle handelt.
- 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.
- 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. - 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.
- Verfahren nach Anspruch 5, wobei die Integrität der Informationen als aufrechterhalten gilt, wenn der sichere Hash-Wert mit dem resultierenden Hash-Wert übereinstimmt.
- 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.
- 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. - Plattform nach Anspruch 8, wobei die persistente Speichervorrichtung (
2602 ) einen Flash-Speicher aufweist. - Plattform nach Anspruch 8, wobei die persistente Speichervorrichtung einen Direktzugriffsspeicher mit Batterieunterstützung aufweist.
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)
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)
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 |
-
1998
- 1998-10-05 US US09/166,275 patent/US6463535B1/en not_active Expired - Lifetime
-
1999
- 1999-10-04 DE DE69923466T patent/DE69923466T2/de not_active Expired - Lifetime
- 1999-10-04 AU AU62895/99A patent/AU6289599A/en not_active Abandoned
- 1999-10-04 EP EP99950183A patent/EP1119938B1/de not_active Expired - Lifetime
- 1999-10-04 WO PCT/US1999/023163 patent/WO2000021238A1/en active IP Right Grant
-
2001
- 2001-11-06 HK HK01107761A patent/HK1036894A1/xx not_active IP Right Cessation
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 |