DE112018007934B4 - Softwareprüfvorrichtung, softwareprüfverfahren und softwareprüfprogramm - Google Patents

Softwareprüfvorrichtung, softwareprüfverfahren und softwareprüfprogramm Download PDF

Info

Publication number
DE112018007934B4
DE112018007934B4 DE112018007934.1T DE112018007934T DE112018007934B4 DE 112018007934 B4 DE112018007934 B4 DE 112018007934B4 DE 112018007934 T DE112018007934 T DE 112018007934T DE 112018007934 B4 DE112018007934 B4 DE 112018007934B4
Authority
DE
Germany
Prior art keywords
software
hash
activation
computing unit
activation software
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE112018007934.1T
Other languages
English (en)
Other versions
DE112018007934T5 (de
Inventor
Teruyoshi Yamaguchi
Nobuhiro Kobayashi
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of DE112018007934T5 publication Critical patent/DE112018007934T5/de
Application granted granted Critical
Publication of DE112018007934B4 publication Critical patent/DE112018007934B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/105Arrangements for software license management or administration, e.g. for managing licenses at corporate level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Abstract

Softwareprüfvorrichtung (100), die eine Aktivierungssoftware aktiviert, die aktiviert werden soll, wobei die Softwareprüfvorrichtung umfasst:eine Sicherheitsrecheneinheit (110), die eine Speichereinheit (111) umfasst, und, wenn ein Hash „erwarteter Wert“, bei dem es sich um einen erwarteten Wert eines Hash-Wertes der Aktivierungssoftware handelt, in der Speichereinheit gespeichert ist, zum Abgleich des Hash-Wertes der Aktivierungssoftware mit dem Hash „erwarteter Wert“ dient; undeine Hauptrecheneinheit (109) zur Aktivierung der Aktivierungssoftware, wenn der Hash-Wert und der Hash „erwarteter Wert“ übereinstimmen, und um einen Prozess zu stoppen, wenn beide nicht übereinstimmen, undwobei die Hauptrecheneinheit eine Signaturprüfung für die Aktivierungssoftware durchführt, wenn der Hash „erwarteter Wert“ nicht in der Speichereinheit gespeichert ist, den Hash-Wert der Aktivierungssoftware in der Speichereinheit als Hash „erwarteter Wert“ speichert sowie die Aktivierungssoftware aktiviert, wenn die Signaturprüfung erfolgreich ist, und einen Prozess stoppt, wenn die Signaturprüfung nicht erfolgreich ist,wobei die Softwareprüfvorrichtung (100) N (N ist eine Ganzzahl von zwei oder mehr) Aktivierungssoftware-Teile in einer Reihenfolge aktiviert, wobei sich die Softwareprüfvorrichtung entweder im Aktivierungsmodus Hash-Ketten-Modus, bei dem eine Hash-Kette aus den N Aktivierungssoftware-Teilen generiert wird, oder in einem Signaturprüfmodus, bei dem die Signaturprüfung für jeden der N Aktivierungssoftware-Teile durchgeführt wird, aktiviert, wobei die Softwareprüfvorrichtung umfasst:die Sicherheitsrecheneinheit (110) zum Erhalt eines Hash-Wertes einer vorhergehenden Aktivierungssoftware, die von den N Aktivierungssoftware-Teilen als Erste aktiviert werden soll, und zum Generieren einer zufälligen Zeichenfolge bei Aktivierung im Hash-Ketten-Modus und zum Generieren, als erste Hash-Kette, eines Hash-Wertes der vorhergehenden Aktivierungssoftware und eines Hash-Wertes der Zeichenfolge; unddie Hauptrecheneinheit zum Aktivieren der vorhergehenden Aktivierungssoftware, wenn die erste Hash-Kette generiert wird; undwobei die Hauptrecheneinheit einen Hash-Wert einer nächsten Aktivierungssoftware erhält, die aktiviert werden soll, beim k-ten (k ist eine Ganzzahl von zwei oder mehr und N oder weniger) von den N Teilen der Aktivierungssoftware, als die k-te Hash-Kette einen Hash-Wert aus: der (k-1)-ten Hash-Kette; und dem Hash-Wert der nächsten Aktivierungssoftware generiert, und die nächste Aktivierungssoftware aktiviert und die k-te Hash-Kette an die Sicherheitsrecheneinheit ausgibt, wenn die nächste Aktivierungssoftware die Aktivierungssoftware ist, die als letzte der N Aktivierungssoftware-Teile aktiviert werden soll; undwobei die Sicherheitsrecheneinheit (110), wenn ein Hash-Wert jedes der N Teile der Aktivierungssoftware in der Speichereinheit gespeichert ist, einen erwarteten Wert der k-ten Hash-Kette als eine Hash-Kette „erwarteter Wert“ berechnet, unter Verwendung: des Hash-Wertes jedes der N Teile der Aktivierungssoftware; und der Zeichenfolge, und die k-te Hash-Kette mit der Hash-Kette „erwarteter Wert“ abgleicht, undwobei die Hauptrecheneinheit einen Prozess normal beendet, wenn die k-te Hash-Kette und die Hash-Kette „erwarteter Wert“ übereinstimmen, einen Prozess stoppt, wenn beide nicht übereinstimmen, und sich reaktiviert, indem der Aktivierungsmodus auf Signaturprüfmodus gesetzt wird, wenn der Hash-Wert jedes der N Teile der Aktivierungssoftware nicht in der Speichereinheit gespeichert ist.

Description

  • Gebiet der Technik
  • Die vorliegende Erfindung betrifft eine Softwareprüfvorrichtung, ein Softwareprüfverfahren und ein Softwareprüfprogramm. Insbesondere betrifft die vorliegende Erfindung eine Softwareprüfvorrichtung, ein Softwareprüfverfahren und ein Softwareprüfprogramm, die Secure Boot durchführen.
  • Stand der Technik
  • In den letzten Jahren kommt zunehmend Secure Boot zum Einsatz, selbst in eingebetteten Steuergeräten, um ein Ausführen unautorisierter Programme zu verhindern. Secure Boot bedeutet, dass Software ausgeführt wird, nachdem durch ein Verfahren wie etwa einer digitalen Signatur zum Zeitpunkt der Aktivierung eines Geräts bestätigt worden ist, dass die Software nicht manipuliert worden ist. Insbesondere bedeutet Secure Boot, dass die Ausführung unautorisierter Programme wie Rootkits verhindert wird. Konventionelles Secure Boot wird mittels UEFI (Unified Extensible Firmware Interface) und TPM (Trusted Platform Module) realisiert.
  • In Nicht-Patentliteratur 1 wird, während die Signaturprüfung des Programms durchgeführt wird, das Hash im TPM gespeichert. Zuletzt wird durch Signieren des Hash durch das TPM und Abfrage bei einem externen Server die Integrität der Software geprüft.
  • Weiterhin offenbart Patentliteratur 1 ein Verfahren zur Generierung einer Hash-Liste der Software mit einer Signatur zum Zeitpunkt der Entwicklung und zur Überprüfung der Liste zum Zeitpunkt, zu dem gebootet wird.
  • Liste der Anführungen
  • Patentliteratur
  • Patentliteratur 1: Internationale Veröffentlichung WO2011/142095
  • Nicht-Patentliteratur
  • Nicht-Patentliteratur 1: Microsoft, „Security protection of boot process in Windows 10“ https://docs.microsoft.com/ja-jp/windows/security/hardware-protection/secure-the-windows-10-boot-process
  • US 9 965 268 B2 offenbart eine Lösung zur Vermeidung von Rollback von Firmware eines Informationsverarbeitungsgerätes. Das Gerät weist einen Sicherheitschip auf, der einen Zähler enthält, der einen monoton ansteigenden Wert hält. Dieser Wert wird nur unter definiert Bedingungen zum Vermeiden von Rollback verändert.
  • US 9 087 199 B2 lehrt ein System zum Starten einer Sicherheitsarchitektur, das ein elektronisches Gerät mit einem Prozessor und einem oder mehreren Betriebssystemen, einen Sicherheitsagenten und ein Startmodul umfasst. Das Startmodul umfasst einen Bootmanager und einen gesicherten Startagenten. Der Bootmanager ist so konfiguriert, dass er den gesicherten Startagenten vor dem Booten der Betriebssysteme startet, und der gesicherte Startagent ist so konfiguriert, dass er einen Sicherheitsagenten lädt. Der Sicherheitsagent ist so konfiguriert, dass er auf einer Ebene unterhalb aller Betriebssysteme des elektronischen Geräts ausgeführt wird, eine Anforderung zum Zugriff auf eine Ressource des elektronischen Geräts abfängt, wobei die Anforderung von der Betriebsebene eines von einem oder mehreren Betriebssystemen des elektronischen Geräts ausgeht, und feststellt, ob eine Anforderung auf Malware hinweist.
  • EP 1 369 764 B1 offenbart ein Verfahren zum Bestimmen, ob ein Code zur Ausführen während eines Bootens einer elektronischen Vorrichtung autorisiert ist.
  • Abriss
  • Technische Aufgabe
  • In einer Technik der Nicht-Patentliteratur 1 geht die Aktivierung nur langsam vonstatten, da die Signaturprüfung für jede Software durchgeführt wird. Darüber hinaus kann ein Downgrade-Angriff, der die Software selbst und die Signatur auf alte Versionen zurücksetzt, nicht erkannt werden. Des Weiteren kann die Integrität einer Software-Konfiguration nur festgestellt werden, wenn eine Kommunikation mit einem externen Server möglich ist.
  • Die Technik der Patentliteratur 1 kann einen Downgrade-Angriff nicht erkennen, der eine gesamte Hash-Liste auf eine alte Version zurücksetzt.
  • Die vorliegende Erfindung zielt darauf ab, die Überprüfung der Integrität mehrerer Software-Teile zu beschleunigen und die Integrität einer Software-Konfiguration durch nur eine Vorrichtung zu überprüfen.
  • Technische Lösung
  • Die Erfindung ist in den unabhängigen Ansprüchen definiert. Eine Softwareprüfvorrichtung nach der vorliegenden Erfindung, die eine Aktivierungssoftware aktiviert, die aktiviert werden soll, wobei die Softwareprüfvorrichtung umfasst insbesondere:
    • eine Sicherheitsrecheneinheit, die eine Speichereinheit umfasst und, wenn ein Hash „erwarteter Wert“, bei dem es sich um einen erwarteten Wert eines Hash-Wertes der Aktivierungssoftware handelt, in der Speichereinheit gespeichert ist, zum Abgleich des Hash-Wertes der Aktivierungssoftware mit dem Hash „erwarteter Wert“ dient; und
    • eine Hauptrecheneinheit zur Aktivierung der Aktivierungssoftware, wenn der Hash-Wert und der Hash „erwarteter Wert“ übereinstimmen, und um einen Prozess zu stoppen, wenn beide nicht übereinstimmen, und
    • wobei die Hauptrecheneinheit eine Signaturprüfung für die Aktivierungssoftware durchführt, wenn der Hash „erwarteter Wert“ nicht in der Speichereinheit gespeichert ist, den Hash-Wert der Aktivierungssoftware in der Speichereinheit als Hash „erwarteter Wert“ speichert sowie die Aktivierungssoftware aktiviert, wenn die Signaturprüfung erfolgreich ist, und einen Prozess stoppt, wenn die Signaturprüfung nicht erfolgreich ist.
  • Vorteilhafte Wirkungen der Erfindung
  • In einer Softwareprüfvorrichtung nach der vorliegenden Erfindung speichert eine Sicherheitsrecheneinheit einen Hash-Wert einer aktivierten Software in einer Speichereinheit als Hash „erwarteter Wert“. Dann stellt die Sicherheitsrecheneinheit die Gültigkeit einer Aktivierungssoftware fest, indem ein Abgleich des Hash „erwarteter Wert“ mit dem Hash-Wert der Aktivierungssoftware erfolgt, die aktuell aktiviert werden soll. So lässt sich, mit der Softwareprüfvorrichtung nach der vorliegenden Erfindung, ein Prozess der Signaturprüfung reduzieren und die Aktivierung beschleunigen.
  • Kurze Beschreibung der Zeichnungen
    • 1 ist ein Konfigurationsdiagramm einer Softwareprüfvorrichtung nach einer ersten Ausführungsform;
    • 2 ist ein Flussdiagramm eines Boot-Vorgangs der Softwareprüfvorrichtung nach der ersten Ausführungsform;
    • 3 ist ein Flussdiagramm eines Boot-Vorgangs der Softwareprüfvorrichtung nach der ersten Ausführungsform;
    • 4 ist ein Flussdiagramm eines Software-Update-Vorgangs der Softwareprüfvorrichtung nach der ersten Ausführungsform;
    • 5 ist ein Konfigurationsdiagramm einer Softwareprüfvorrichtung nach einem modifiziertem Beispiel der ersten Ausführungsform;
    • 6 ist ein Flussdiagramm eines Boot-Vorgangs in einem Hash-Ketten-Modus nach einer zweiten Ausführungsform;
    • 7 ist ein Flussdiagramm eines Boot-Vorgangs in einem Signaturprüfmodus nach der zweiten Ausführungsform;
    • 8 ist ein Flussdiagramm eines Boot-Vorgangs einer Softwareprüfvorrichtung nach einer dritten Ausführungsform;
    • 9 ist ein Flussdiagramm eines Boot-Vorgangs einer Softwareprüfvorrichtung nach der dritten Ausführungsform;
    • 10 ist ein Flussdiagramm eines Boot-Vorgangs einer Softwareprüfvorrichtung nach der dritten Ausführungsform;
    • 11 ist ein Flussdiagramm eines Software-Update-Vorgangs der Softwareprüfvorrichtung nach der dritten Ausführungsform;
    • 12 ist ein Flussdiagramm eines Boot-Vorgangs einer Softwareprüfvorrichtung nach einer vierten Ausführungsform;
    • 13 ist ein Flussdiagramm eines Software-Update-Vorgangs der Softwareprüfvorrichtung nach der vierten Ausführungsform;
    • 14 ist ein Flussdiagramm eines Boot-Vorgangs einer Softwareprüfvorrichtung nach einer fünften Ausführungsform;
    • 15 ist ein Flussdiagramm eines Boot-Vorgangs einer Softwareprüfvorrichtung nach der fünften Ausführungsform; und
    • 16 ist ein Flussdiagramm eines Software-Update-Vorgangs der Softwareprüfvorrichtung nach der fünften Ausführungsform.
  • Beschreibung der Ausführungsformen
  • Im Folgenden werden Ausführungsformen der vorliegenden Erfindung unter Bezugnahme auf die Zeichnungen beschrieben. Darüber hinaus sind in den nachstehend aufgeführten Zeichnungen die gleichen Bezugszeichen den gleichen oder korrespondierenden Teilen zugeordnet. Gleiche oder korrespondierende Teile werden nicht mehrfach beschrieben oder die Beschreibung wird in angemessener Weise abgekürzt.
  • Erste Ausführungsform.
  • *** Beschreibung der Konfiguration ***
  • Eine Konfiguration einer Softwareprüfvorrichtung 100 nach der vorliegenden Ausführungsform wird unter Bezugnahme auf 1 beschrieben.
  • Die Softwareprüfvorrichtung 100 ist ein Computer. Die Softwareprüfvorrichtung 100 umfasst einen Prozessor 102 sowie andere Hardware-Teile wie einen Speicher 103, einen Arbeitsspeicher 104, eine Kommunikationsvorrichtung 105, eine Eingabevorrichtung 106, eine Anzeigevorrichtung 107 und ein Boot-ROM (Read Only Memory) 108. Der Prozessor 102 ist über Signalleitungen mit anderen Hardware-Teilen verbunden und steuert diese anderen Hardware-Teile.
  • Der Prozessor 102 ist eine CPU (Central Processing Unit), die einen Prozess durchführt, etwa die Prüfung der Signatur einer Aktivierungssoftware, die zum Boot-Zeitpunkt aktiviert werden soll. Der Prozessor 102 umfasst eine Hauptrecheneinheit 109 und eine Sicherheitsrecheneinheit 110 als funktionale Elemente. Die Hauptrecheneinheit 109 führt einen Prozess wie einen Boot-Prozess oder einen Anwendungsprozess durch. Die Sicherheitsrechenvorrichtung 110 speichert Informationen wie einen hochvertraulichen Schlüssel sicher oder führt einen Verschlüsselungsprozess wie AES (Advanced Encryption Standard) aus. Daneben wird in der vorliegenden Ausführungsform die Signaturprüfung durch die Hauptrecheneinheit 109 durchgeführt, da keine hochvertrauliche Information verwendet wird. Weiterhin erfolgt der Abgleich von Hash-Werten oder die Generierung und Prüfung der MAC durch die Sicherheitsrecheneinheit 110, da hochvertrauliche Information verwendet wird.
  • Weiterhin umfasst der Prozessor 102 einen nicht-flüchtigen Arbeitsspeicher. In 1 sind die Hauptrecheneinheit 109 und die Sicherheitsrecheneinheit 110 in ein und demselben Prozessor angeordnet, aber auch eine andere Konfiguration ist möglich, solange die Datenübertragung beider sicher durchgeführt werden kann.
  • Der Speicher 103 ist ein nicht-flüchtiges Speicherelement, in dem Software, die zu überprüfen ist, und deren Signatur gespeichert sind. Der Arbeitsspeicher 104 ist ein flüchtiges Speicherelement, in das der Prozessor 102 temporär ein Rechenergebnis auslagert.
  • Ein Boot-ROM 108 enthält ein Boot-Programm, das erst beim Einschalten ausgeführt wird. Das Boot-ROM 108 ist ein Nur-Lese-Speicher, ein Schreiben ist nicht möglich.
  • Die einzelnen Hardware-Teile werden noch im Einzelnen beschrieben.
  • Die Softwareprüfvorrichtung 100 umfasst die Hauptrecheneinheit 109 und die Sicherheitsrecheneinheit 110 als funktionale Elemente. Die Sicherheitsrecheneinheit 110 umfasst eine Speichereinheit 111. Die Funktionen der Hauptrecheneinheit 109 und der Sicherheitsrecheneinheit 110 sind durch Software realisiert. Die Speichereinheit 111 wird in dem nicht-flüchtigen Speicher bereitgestellt, der im Prozessor 102 angeordnet ist.
  • Der Prozessor 102 ist eine Vorrichtung, die ein Softwareprüfprogramm ausführt. Das Softwareprüfprogramm ist ein Programm, das Funktionen der Hauptrecheneinheit 109 und der Sicherheitsrecheneinheit 110 realisiert.
  • Der Prozessor 102 ist eine IC (Integrated Circuit, integrierte Schaltung), die einen Rechenprozess ausführt. Neben der CPU kann ein konkretes Beispiel des Prozessors 102 ein DSP (Digital Signal Processor) oder eine GPU (Graphics Processing Unit) sein.
  • Der Arbeitsspeicher 104 ist eine Speichervorrichtung, die Daten vorübergehend speichert. Ein konkretes Beispiel des Arbeitsspeichers 104 ist ein SRAM (Static Random Access Memory, statischer Speicher mit wahlfreiem Zugriff) oder ein DRAM (Dynamic Random Access Memory, dynamischer Speicher mit wahlfreiem Zugriff).
  • Der Speicher 103 ist eine Speichervorrichtung, die Daten speichert. Ein konkretes Beispiel des Speichers 103 ist ein HDD. Der Speicher 103 kann weiterhin ein tragbares Speichermedium sein, wie etwa eine SD (eingetragene Marke) Speicherkarte, ein CF, ein NAND-Flash, eine Diskette, eine optische Platte, eine Compact Disc, eine Blu-ray-Disc (eingetragene Marke) oder eine DVD. HDD ist die Abkürzung für Hard Disk Drive (Festplattenlaufwerk). SD (eingetragene Marke) ist eine Abkürzung für Secure Digital. CF ist eine Abkürzung für CompactFlash (eingetragene Marke). DVD ist eine Kurzbezeichnung für Digital Versatile Disc.
  • Die Eingabevorrichtung 106 ist ein Eingabegerät wie etwa eine Maus, eine Tastatur oder ein Berührungsfeld. Die Eingabevorrichtung 106 kann auch ein Port sein, der mit einem LAN (Local Area Network) verbunden ist.
  • Die Anzeigevorrichtung 107 ist ein Ausgabegerät wie ein Display. Insbesondere ist die Anzeigevorrichtung 107 mit einer Schnittstelle wie einem USB-Anschluss oder einem HDMI-Anschluss (eingetragene Marke) (High Definition Multimedia Interface) verbunden. Das Display ist insbesondere eine LCD (Flüssigkristallanzeige).
  • Die Kommunikationsvorrichtung 105 weist einen Empfänger und einen Sender auf. Die Kommunikationsvorrichtung 105 ist mit einem Kommunikationsnetzwerk wie etwa einem LAN, dem Internet oder einer Telefonleitung verbunden. Insbesondere ist die Kommunikationsvorrichtung 105 ein Kommunikationschip oder eine NIC (Netzwerkschnittstellenkarte).
  • In der vorliegenden Ausführungsform sind die Kommunikationsvorrichtung 105, die Eingabevorrichtung 106 oder die Anzeigevorrichtung 107 verzichtbar.
  • Das Softwareprüfprogramm wird in den Prozessor 102 eingelesen und vom Prozessor 102 ausgeführt. Im Arbeitsspeicher 104 ist neben dem Softwareprüfprogramm auch das OS (Betriebssystem, Operating System) gespeichert. Der Prozessor 102 führt das Softwareprüfprogramm aus, während er das OS ausführt. Das Softwareprüfprogramm und das OS können im Speicher 103 gespeichert sein. Das Softwareprüfprogramm und OS, die im Speicher 103 gespeichert sind, werden in den Arbeitsspeicher 104 geladen und vom Prozessor 102 ausgeführt. Ein Teil oder das gesamte Softwareprüfprogramm kann auch in das OS integriert sein.
  • Die Softwareprüfprogramm 100 kann mehrere Prozessoren einschließen, die den Prozessor 102 ersetzen. Diese mehreren Prozessoren teilen sich die Ausführung des Softwareprüfprogramms. Jeder Prozessor ist, in derselben Weise wie der Prozessor 102, eine Vorrichtung, die das Softwareprüfprogramm ausführt.
  • Daten, Informationen, Signalwerte und Variablenwerte, die vom Softwareprüfprogramm verwendet, verarbeitet oder ausgegeben werden, sind im Arbeitsspeicher 104, im Speicher 103, oder im nicht-flüchtigen Speicher, dem Register oder dem Cache-Speicher im Prozessor 102 gespeichert.
  • Die „Einheit“ jeder Einheit der Hauptrecheneinheit 109 und der Sicherheitsrecheneinheit 110 kann als „Prozess“, „Verfahren“ oder „Schritt“ gelesen werden. Weiterhin kann der „Prozess“ des Hauptrechenprozesses und des Sicherheitsrechenprozesses als „Programm“, „Programmprodukt“ oder „computerlesbares Speichermedium, in dem ein Programm gespeichert ist“ gelesen werden.
  • Das Softwareprüfprogramm veranlasst einen Computer, jeden Prozess, jedes Verfahren oder jeden Schritt auszuführen, wo „Einheit“ jeder der vorstehenden Einheiten als „Prozess“, „Verfahren“ oder „Schritt“ gelesen wird. Ferner ist ein Softwareprüfverfahren ein Verfahren, das von der Softwareprüfvorrichtung 100 durchgeführt wird, die das Softwareprüfprogramm ausführt.
  • Das Softwareprüfprogramm kann bereitgestellt werden, indem es in einem computerlesbaren Erfassungsmedium gespeichert ist. Weiterhin kann das Softwareprüfprogramm auch als Programmprodukt bereitgestellt werden.
  • *** Beschreibung des Ablaufs ***
  • Als Nächstes wird ein Ablauf der Softwareprüfvorrichtung 100 nach der vorliegenden Ausführungsform unter Bezugnahme auf 2 bis 4 beschrieben. Die Softwareprüfvorrichtung 100 aktiviert die Aktivierungssoftware, die aktiviert werden soll. Insbesondere aktiviert die Softwareprüfvorrichtung 100 mehrere Aktivierungssoftware-Teile in einer Reihenfolge. In den nachstehend beschriebenen ersten bis fünftes Ausführungsformen aktiviert die Softwareprüfvorrichtung 100 nacheinander ein Boot-Programm, einen Boot-Loader, ein OS, eine Anwendung. Der Boot-Loader, das OS und die Anwendung sind ein Beispiel der mehreren Aktivierungssoftware-Teile.
  • Zunächst wird ein Boot-Vorgang der Softwareprüfvorrichtung 100 nach der vorliegenden Ausführungsform unter Bezugnahme auf 2 und 3 beschrieben.
  • In Schritt S201 führt die Hauptrecheneinheit 109 nach dem Einschalten das Boot-Programm aus, das im Boot-ROM 108 gespeichert ist.
  • In Schritt S202 generiert das Boot-Programm einen Hash-Wert der Software des Boot-Loader und gibt den Hash-Wert an die Sicherheitsrecheneinheit 110 aus.
  • In Schritt S203 gleicht die Sicherheitsrecheneinheit 110 den vom Boot-Programm ausgegebenen Hash-Wert mit einem Hash „erwarteter Wert“ des Boot-Loader ab, der in der Speichereinheit 111 gespeichert ist. Stimmen beide nicht überein, stoppt die Hauptrecheneinheit 109 den Prozess. Ist der Hash „erwarteter Wert“ nicht in der Speichereinheit 111 vorhanden, geht der Prozess in Schritt S204 weiter. Weiterhin aktiviert, wenn beide übereinstimmen, die Hauptrecheneinheit 109 in Schritt S206 die Aktivierungssoftware. Das heißt die Hauptrecheneinheit 109 aktiviert den Boot-Loader.
  • Auf diese Weise gleicht die Sicherheitsrecheneinheit 110 den Hash-Wert der Aktivierungssoftware mit dem Hash „erwarteter Wert“ ab, wenn der Hash „erwarteter Wert“, bei dem es sich um einen erwarteten Wert des Hash-Wertes der Aktivierungssoftware handelt, in der Speichereinheit 111 gespeichert ist.
  • Ist der Hash „erwarteter Wert“ nicht in der Speichereinheit 111 gespeichert, führt die Hauptrecheneinheit 109 die Signaturprüfung für die Aktivierungssoftware durch. Ist die Signaturprüfung erfolgreich, speichert die Hauptrecheneinheit 109 den Hash-Wert der Aktivierungssoftware als den Hash „erwarteter Wert“ in der Speichereinheit 111 und aktiviert auch die Aktivierungssoftware. Konkret ist der Ablauf wie folgt.
  • In Schritt S204 führt die Hauptrecheneinheit 109 die Signaturprüfung für die Software des Boot-Loader durch. Ist die Signaturprüfung erfolgreich, speichert die Hauptrecheneinheit 109 in Schritt S205 den Hash-Wert der Software des Boot-Loader als den Hash „erwarteter Wert“ in der Speichereinheit 111. Insbesondere gibt die Hauptrecheneinheit 109 den Erfolg der Signaturprüfung an die Sicherheitsrecheneinheit 110 aus. Wenn die Sicherheitsrecheneinheit 110 den Erfolg der Signaturprüfung von der Hauptrecheneinheit 109 erhält, speichert die Sicherheitsrecheneinheit 110 den Hash-Wert der Software des Boot-Loader in der Speichereinheit 111 als den Hash „erwarteter Wert“. Im Folgenden ist die Tatsache, dass die Hauptrecheneinheit 109 den Hash „erwarteter Wert“ in der Speichereinheit 111 der Sicherheitsrecheneinheit 110 speichert, in einigen Fällen in der Art beschrieben, dass die Hauptrecheneinheit 109 den Hash „erwarteter Wert“ in der Sicherheitsrecheneinheit 110 speichert.
  • Ist die Signaturprüfung nicht erfolgreich, stoppt die Hauptrecheneinheit 109 den Prozess.
  • In Schritt S206 aktiviert die Hauptrecheneinheit 109 den Boot-Loader. Das heißt, die Hauptrecheneinheit 109 aktiviert die Aktivierungssoftware, wenn der Hash-Wert und der Hash „erwarteter Wert“ übereinstimmen. Weiterhin aktiviert die Hauptrecheneinheit 109 die Aktivierungssoftware, wenn die Signaturprüfung erfolgreich ist.
  • In Schritt S207 generiert der Boot-Loader einen Hash-Wert der OS-Software und gibt den Hash-Wert an die Sicherheitsrecheneinheit 110 aus.
  • In Schritt S208 gleicht die Sicherheitsrecheneinheit 110 den vom Boot-Loader ausgegebenen Hash-Wert mit dem Hash „erwarteter Wert“ des OS, der in der Sicherheitsrecheneinheit 110, d. h. in der Speichereinheit 111, gespeichert ist, ab. Stimmen beide nicht überein, stoppt die Hauptrecheneinheit 109 den Prozess. Ist der Hash-Wert nicht in der Speichereinheit 111 vorhanden, geht der Prozess in Schritt S209 weiter. Stimmen beide überein, aktiviert die Hauptrecheneinheit 109 in Schritt S211 das OS.
  • In Schritt S209 führt die Hauptrecheneinheit 109 die Signaturprüfung für die OS-Software durch. Ist die Signaturprüfung erfolgreich, speichert in Schritt S210 die Hauptrecheneinheit 109 in den Hash-Wert der OS-Software als den Hash „erwarteter Wert“ in der Sicherheitsrecheneinheit 110, d. h. der Speichereinheit 111. Ist die Signaturprüfung nicht erfolgreich, stoppt die Hauptrecheneinheit 109 den Prozess.
  • In Schritt S211 aktiviert die Hauptrecheneinheit 109 das OS.
  • In Schritt S212 generiert das OS einen Hash-Wert der Software der Anwendung und gibt den Hash-Wert an die Sicherheitsrecheneinheit 110 aus.
  • In Schritt S213 gleicht die Sicherheitsrecheneinheit 110 den vom OS ausgegebenen Hash-Wert mit dem Hash „erwarteter Wert“ der Anwendung, der in der Sicherheitsrecheneinheit 110, d. h. in der Speichereinheit 111 gespeichert ist, ab. Stimmen beide nicht überein, stoppt die Hauptrecheneinheit 109 den Prozess. Ist der Hash-Wert nicht in der Speichereinheit 111 vorhanden, geht der Prozess in Schritt S214 weiter. Stimmen beide überein, aktiviert die Hauptrecheneinheit 109 in Schritt S216 die Anwendung.
  • In Schritt S214 führt die Hauptrecheneinheit 109 die Signaturprüfung für die Software der Anwendung durch. Ist die Signaturprüfung erfolgreich, speichert die Hauptrecheneinheit 109 in Schritt S215 den Hash-Wert der Software der Anwendung als den Hash „erwarteter Wert“ in der Sicherheitsrecheneinheit 110, d. h. der Speichereinheit 111. Ist die Signaturprüfung nicht erfolgreich, stoppt die Hauptrecheneinheit 109 den Prozess.
  • In Schritt S216 aktiviert die Hauptrecheneinheit 109 die Anwendung.
  • Der Vorgang des Software-Updates der Softwareprüfvorrichtung 100 nach der vorliegenden Ausführungsform wird unter Bezugnahme auf 4 beschrieben.
  • In Schritt S301 werden die Update-Software für das Update und dessen Signatur heruntergeladen.
  • In Schritt S302 prüft die Hauptrecheneinheit 109 die Signatur und die Version der Update-Software. Insbesondere erfolgt die Versionsprüfung mit einem Verfahren wie Kollation durch eine Liste. Schlägt die Prüfung fehl, bricht die Hauptrecheneinheit 109 den Prozess mit „fehlerhaftem Ende“ ab. Ist die Prüfung erfolgreich, fährt der Prozess mit Schritt S303 fort.
  • In Schritt S303 schreibt die Hauptrecheneinheit 109 die Update-Software und die Signatur in den Speicher 103 oder den Arbeitsspeicher 104.
  • In Schritt S304 generiert die Hauptrecheneinheit 109 den Hash-Wert der Update-Software. Die Hauptrecheneinheit 109 überschreibt und speichert den Hash-Wert der Update-Software als Hash „erwarteter Wert“ der Update-Software in die Speichereinheit 111 in der Sicherheitsrecheneinheit 110.
  • *** Andere Konfigurationen ***
  • < Modifiziertes Beispiel 1 >
  • Nach der vorliegenden Ausführungsform sind Funktionen der Hauptrecheneinheit 109 und der Sicherheitsrecheneinheit 110 durch Software realisiert. Als modifiziertes Beispiel können die Funktionen der Hauptrecheneinheit 109 und der Sicherheitsrecheneinheit 110 durch Hardware realisiert sein.
  • 5 ist ein Schaubild, das eine Konfiguration einer Softwareprüfvorrichtung 100 gemäß einem modifizierten Beispiel der vorliegenden Ausführungsform veranschaulicht.
  • Die Softwareprüfvorrichtung 100 umfasst einen elektronischen Schaltkreis 112 anstatt eines Prozessors 102.
  • Der elektronische Schaltkreis 112 ist ein spezieller elektronischer Schaltkreis, der Funktionen der Hauptrecheneinheit 109 und der Sicherheitsrecheneinheit 110 realisiert.
  • Bei dem elektronischen Schaltkreis 112 handelt es sich insbesondere um einen einzelnen Schaltkreis, einen zusammengesetzten Schaltkreis, einen programmierten Prozessor, einen parallel programmierten Prozessor, einen LogiklC, ein GA, einen ASIC oder ein FPGA. GA ist eine Abkürzung für Gate Array. ASIC ist eine Abkürzung für Application Specific Integrated Circuit (Anwendungsspezifische Integrierte Schaltung). FPGA die Abkürzung für Field-Programmable Gate Array.
  • Die Funktionen der Hauptrecheneinheit 109 und der Sicherheitsrecheneinheit 110 können durch einen elektronischen Schaltkreis realisiert sein oder können durch Verteilung auf mehrere elektronische Schaltkreise realisiert sein.
  • Als weiteres modifiziertes Beispiel kann ein Teil der Funktionen der Hauptrecheneinheit 109 und der Sicherheitsrecheneinheit 110 durch einen elektronischen Schaltkreis realisiert sein und die übrigen Funktionen können durch Software realisiert sein. Weiterhin kann mindestens ein Teil der Funktionen der Hauptrecheneinheit 109 und der Sicherheitsrecheneinheit 110 durch die Firmware realisiert sein.
  • Sowohl der Prozessor als auch der elektronische Schaltkreis werden auch als Verarbeitungsschaltkreis bezeichnet. Das heißt, in der Softwareprüfvorrichtung 100 ist die Funktion des Teils der Funktionen der Hauptrecheneinheit 109 und der Sicherheitsrecheneinheit 110 durch den elektronischen Schaltkreis realisiert.
  • *** Beschreibung der Wirkung der vorliegenden Ausführungsform ***
  • Mit der Softwareprüfvorrichtung 100 nach der vorliegenden Ausführungsform kann die Überprüfung der Integrität mehrerer Software-Teile beschleunigt werden. Weiterhin ist es mit der Softwareprüfvorrichtung 100 nach der vorliegenden Ausführungsform möglich, die Überprüfung der Integrität der Software allein mit der Vorrichtung durchzuführen.
  • Bei der Softwareprüfvorrichtung 100 nach der vorliegenden Ausführungsform wird der Hash-Wert der Aktivierungssoftware mit dem Hash-Wert der Software, wie sie letztmalig aktiviert wurde, abgeglichen. Daher ist es nicht nötig, jedes Mal bei Aktivierung die Signaturprüfung durchzuführen, die Kapazitäten beansprucht, und die Aktivierung lässt sich beschleunigen. Weiterhin ist, indem der Hash-Wert der Aktivierungssoftware wie letztmalig aktiviert belassen wird, selbst wenn nach dem Booten ein Downgrade stattfindet, eine Überprüfung beim nächsten Booten möglich. Weiterhin findet bei der Softwareprüfvorrichtung 100 nach der vorliegenden Ausführungsform die Überprüfung der Aktivierungssoftware abgeschlossen im Gerät statt. Daher ist es möglich, die Integrität allein mit der Vorrichtung zu überprüfen.
  • Zweite Ausführungsform.
  • In der vorliegenden Ausführungsform werden hauptsächlich die Unterschiede zur ersten Ausführungsform beschrieben. Dieselben Konfigurationen wie in der ersten Ausführungsform können mit denselben Bezugszeichen bezeichnet sein und auf ihre Beschreibung wird unter Umständen verzichtet.
  • *** Beschreibung der Konfiguration ***
  • In der ersten Ausführungsform speichert die Softwareprüfvorrichtung 100 in der Speichereinheit 111 der Sicherheitsrecheneinheit 110 den Hash-Wert jedes Teils der Aktivierungssoftware der mehreren Aktivierungssoftware-Teile und prüft den Hash-Wert nacheinander, wenn gebootet wird. In der vorliegenden Ausführungsform ist ein Verfahren zur kollektiven Überprüfung der Integrität der mehreren Aktivierungssoftware-Teile angegeben. Eine Konfiguration der Softwareprüfvorrichtung 100 ist dieselbe wie in 1. Weiterhin ist ein Software-Update-Vorgang nach der vorliegenden Ausführungsform derselbe wie bei der ersten Ausführungsform.
  • Die Softwareprüfvorrichtung 100 nach der vorliegenden Ausführungsform aktiviert mehrere Aktivierungssoftware-Teile in einer Reihenfolge. Die Softwareprüfvorrichtung 100 nach der vorliegenden Ausführungsform wird entweder in einem Hash-Ketten-Modus, bei dem eine Hash-Kette aus den mehreren Aktivierungssoftware-Teilen generiert wird, oder in einem Signaturprüfmodus, bei dem die Signaturprüfung für jeden der mehreren Aktivierungssoftware-Teile durchgeführt wird, aktiviert.
  • *** Beschreibung des Ablaufs ***
  • Ein Boot-Vorgang der Softwareprüfvorrichtung 100 nach der vorliegenden Ausführungsform wird unter Bezugnahme auf 6 und 7 beschrieben. 6 ist der Boot-Vorgang im Fall des Hash-Ketten-Modus.
  • In der vorliegenden Ausführungsform gilt die Annahme, dass die Softwareprüfvorrichtung 100 N (N ist eine Ganzzahl von zwei oder mehr) Aktivierungssoftware-Teile in einer Reihenfolge aktiviert. Die Softwareprüfvorrichtung 100 wird entweder im Hash-Ketten-Modus, bei dem die Hash-Kette aus N Aktivierungssoftware-Teilen generiert wird, oder im Signaturprüfmodus, bei dem die Signaturprüfung für jeden der N Aktivierungssoftware-Teile durchgeführt wird, aktiviert.
  • Bei Aktivierung im Hash-Ketten-Modus erhält die Sicherheitsrecheneinheit 110 den Hash-Wert der vorhergehenden Aktivierungssoftware, die von den N Aktivierungssoftware-Teilen als Erste aktiviert werden soll, und generiert eine zufällige Nonce-Zeichenfolge. Die Sicherheitsrecheneinheit 110 generiert den Hash-Wert der vorhergehenden Aktivierungssoftware und den Hash-Wert der Nonce als erste Hash-Kette.
  • Wenn die erste Hash-Kette generiert ist, aktiviert die Hauptrecheneinheit 109 die vorhergehende Aktivierungssoftware.
  • Nachfolgend wird ein spezifisches Beispiel beschrieben. Hier gilt die Annahme, dass der Boot-Loader, das OS und die Anwendung, bei denen es sich um drei Teile der Aktivierungssoftware handelt, als N Aktivierungssoftware-Teile aktiviert werden.
  • In Schritt S401 aktiviert beim Einschalten die Sicherheitsrecheneinheit 110 den Wächter. Der Wächter überwacht, ob das System ordnungsgemäß funktioniert oder nicht.
  • In Schritt S402 generiert die Sicherheitsrecheneinheit 110 die Nonce. Die Nonce ist eine zufällige Zeichenfolge, die nicht reproduzierbar ist.
  • In Schritt S403 führt die Hauptrecheneinheit 109 das Boot-Programm aus, das im Boot-ROM 108 gespeichert ist. Die Hauptrecheneinheit 109 bestätigt den Aktivierungsmodus durch das Boot-Programm. Ist der Aktivierungsmodus der Hash-Ketten-Modus, geht der Prozess mit Schritt S404 weiter. Ist der Aktivierungsmodus der Signaturprüfmodus, geht der Prozess mit Schritt S415 weiter.
  • In Schritt S404 generiert die Hauptrecheneinheit 109 einen Hash-Wert der Software des Boot-Loader und gibt den Hash-Wert an die Sicherheitsrecheneinheit 110 aus. Der Boot-Loader ist ein Beispiel der vorhergehenden Aktivierungssoftware, die als Erste aktiviert werden soll.
  • In Schritt S405 generiert die Sicherheitsrecheneinheit 110 als erste Hash-Kette einen Hash-Wert aus: dem Hash-Wert, der von der Hauptrecheneinheit 109 erhalten wird; und der Nonce. Die Sicherheitsrecheneinheit 110 gibt die erste Hash-Kette an die Hauptrecheneinheit 109 aus.
  • In Schritt S406 aktiviert die Hauptrecheneinheit 109, wenn die erste Hash-Kette generiert ist, den Boot-Loader, bei dem es sich um die vorhergehende Aktivierungssoftware handelt.
  • Die Hauptrecheneinheit 109 erhält den Hash-Wert der nächsten Aktivierungssoftware, die aktiviert werden soll, beim k-ten (k ist eine Ganzzahl von zwei oder mehr und N oder weniger) von den N Teilen der Aktivierungssoftware. Die Sicherheitsrecheneinheit 110 generiert als die k-te Hash-Kette einen Hash-Wert aus: der (k-1)-ten Hash-Kette; und dem Hash-Wert der nächsten Aktivierungssoftware, und aktiviert die nächste Aktivierungssoftware.
  • Hier gilt die Annahme, dass die nächste Aktivierungssoftware, die als Zweites als die k-te aktiviert werden soll, ein OS ist.
  • In Schritt S407 generiert der Boot-Loader einen Hash-Wert der OS-Software. Dann generiert der Boot-Loader als zweite Hash-Kette einen Hash-Wert aus: der ersten Hash-Kette; und dem Hash-Wert der OS-Software.
  • In Schritt S408 aktiviert die Hauptrecheneinheit 109 das OS, bei dem es sich um die nächste Aktivierungssoftware handelt.
  • Als Nächstes gilt die Annahme, dass die nächste Aktivierungssoftware, die als Drittes als die k-te aktiviert werden soll, eine Anwendung ist.
  • In Schritt S409 generiert das OS einen Hash-Wert der Software der Anwendung. Dann generiert das OS als dritte Hash-Kette einen Hash-Wert aus: der zweiten Hash-Kette; und dem Hash-Wert der Software der Anwendung.
  • In Schritt S410 aktiviert die Hauptrecheneinheit 109 die Anwendung, bei der es sich um die nächste Aktivierungssoftware handelt.
  • Die Hauptrecheneinheit 109 gibt die k-te Hash-Kette an die Sicherheitsrecheneinheit 110 aus, wenn die nächste Aktivierungssoftware die Aktivierungssoftware ist, die als letzte der N Aktivierungssoftware-Teile aktiviert werden soll.
  • Wenn der Hash-Wert jeder der N Teile der Aktivierungssoftware in der Sicherheitsrecheneinheit 110, d. h. in der Speichereinheit 111, gespeichert ist, berechnet die Sicherheitsrecheneinheit 110 den erwarteten Wert der k-ten Hash-Kette als die Hash-Kette „erwarteter Wert“. Die Sicherheitsrecheneinheit 110 berechnet die Hash-Kette „erwarteter Wert“ anhand des Hash-Wertes jedes der N Teile der Aktivierungssoftware und der Nonce. Dann gleicht die Sicherheitsrecheneinheit 110 die k-te Hash-Kette mit der Hash-Kette „erwarteter Wert“ ab.
  • Die Hauptrecheneinheit 109 beendet den Prozess normal, wenn die k-te Hash-Kette und die Hash-Kette „erwarteter Wert“ übereinstimmen, und stoppt den Prozess, wenn sie nicht übereinstimmen. Weiterhin reaktiviert sich, wenn der Hash-Wert jedes der N Teile der Aktivierungssoftware nicht in der Speichereinheit 111 gespeichert ist, die Hauptrecheneinheit 109, indem sie den Aktivierungsmodus auf den Signaturprüfmodus setzt.
  • Konkret ist der Ablauf wie folgt.
  • In Schritt S411 gibt die Hauptrecheneinheit 109 die dritte Hash-Kette an die Sicherheitsrecheneinheit 110 aus.
  • In Schritt S412 überprüft der Wächter in der Sicherheitsrecheneinheit 110, ob der Hash-Wert vor dem Eintreten eines vorbestimmten Ereignisses erhalten worden ist. Das vorbestimmte Ereignis kann zum Beispiel eine seit der Aktivierung verstrichene Zeit sein, oder ein Ereignis wie die Nutzung eines Kommunikationsgeräts. Ist der Erhalt überprüft, fährt der Prozess mit Schritt S413 fort. Ist der Erhalt nicht überprüft, stoppt die Hauptrecheneinheit 109 den Prozess.
  • In Schritt S413 berechnet die Sicherheitsrecheneinheit 110 den erwarteten Wert der dritten Hash-Kette als die Hash-Kette „erwarteter Wert“ auf Grundlage der intern generierten Nonce und des Hash-Wertes, der in der Speichereinheit 111 gespeichert ist. Die Sicherheitsrecheneinheit 110 gleicht die Hash-Kette „erwarteter Wert“ mit der erhaltenen dritten Hash-Kette ab. Stimmen beide überein, endet der Prozess normal. Stimmen beide nicht überein, stoppt die Hauptrecheneinheit 109 den Prozess. Ist der Hash-Wert nicht in der Speichereinheit 111 in der Sicherheitsrecheneinheit 110 vorhanden, setzt die Hauptrecheneinheit 109 in Schritt S414 den Aktivierungsmodus auf Signaturprüfmodus und reaktiviert sich.
  • 7 veranschaulicht den Boot-Vorgang im Signaturprüfmodus.
  • Wenn die Hauptrecheneinheit 109 im Signaturprüfmodus aktiviert ist, führt die Hauptrecheneinheit 109 die Signaturprüfung für jeden Teil der Aktivierungssoftware von den N Aktivierungssoftware-Teilen durch. Dann speichert, wenn die Signaturprüfung erfolgreich ist, die Hauptrecheneinheit 109 in der Speichereinheit 111 in der Sicherheitsrecheneinheit 110 den Hash-Wert jedes Teils der Aktivierungssoftware und aktiviert jeden Teil der Aktivierungssoftware. Schlägt die Signaturprüfung fehl, stoppt die Hauptrecheneinheit 109 den Prozess. Weiterhin setzt die Hauptrecheneinheit 109, wenn die Hauptrecheneinheit 109 die Signaturprüfung für alle der N Teile der Aktivierungssoftware erfolgreich durchgeführt hat, den Aktivierungsmodus auf den Hash-Ketten-Modus.
  • Nachfolgend wird ein spezifisches Beispiel beschrieben.
  • In Schritt S415 führt die Hauptrecheneinheit 109 die Signaturprüfung für die Software des Boot-Loader durch.
  • Ist die Signaturprüfung erfolgreich, speichert die Hauptrecheneinheit 109 in Schritt S416 den Hash-Wert der Software des Boot-Loader in der Speichereinheit 111 in der Sicherheitsrecheneinheit 110.
  • In Schritt S417 aktiviert die Hauptrecheneinheit 109 den Boot-Loader. Schlägt die Signaturprüfung fehl, stoppt die Hauptrecheneinheit 109 den Prozess.
  • In Schritt S418 führt der Boot-Loader die Signaturprüfung für die Software des OS durch.
  • Ist die Signaturprüfung erfolgreich, speichert der Boot-Loader in Schritt S419 den Hash-Wert der OS-Software in der Speichereinheit 111 in der Sicherheitsrecheneinheit 110.
  • In Schritt S420 aktiviert die Hauptrecheneinheit 109 das OS. Schlägt die Signaturprüfung fehl, stoppt die Hauptrecheneinheit 109 den Prozess.
  • In Schritt S421 führt das OS die Signaturprüfung für die Software der Anwendung durch. Ist die Signaturprüfung erfolgreich, fährt der Prozess mit Schritt S422 fort. Schlägt die Signaturprüfung fehl, stoppt die Hauptrecheneinheit 109 den Prozess.
  • In Schritt S422 speichert die Hauptrecheneinheit 109 den Hash-Wert der Software der Anwendung in der Speichereinheit 111 in der Sicherheitsrecheneinheit 110.
  • In Schritt S423 aktiviert die Hauptrecheneinheit 109 die Anwendung.
  • In Schritt S424 setzt das OS den Aktivierungsmodus auf die Hash-Kette.
  • In Schritt S425 überprüft der Wächter in der Sicherheitsrecheneinheit 110, ob der Hash-Wert vor dem Eintreten eines vorbestimmten Ereignisses erhalten worden ist. Das vorbestimmte Ereignis kann zum Beispiel eine seit der Aktivierung verstrichene Zeit sein, oder ein Ereignis wie die Nutzung eines Kommunikationsgeräts. Wurde der Hash-Wert nicht erhalten, wird der Prozess gestoppt.
  • *** Beschreibung der Wirkung der vorliegenden Ausführungsform ***
  • Mit der Softwareprüfvorrichtung 100 nach der vorliegenden Ausführungsform ist es möglich, die Aktivierung zu beschleunigen, die Integrität allein durch die Vorrichtung zu überprüfen und den Downgrade in derselben Weise wie in der ersten Ausführungsform zu erkennen. Weiterhin ist es mit der Softwareprüfvorrichtung 100 nach der vorliegenden Ausführungsform möglich, da die Überprüfung der Softwareintegrität zuletzt durchgeführt wird, die Anzahl der Zugriffe auf die Sicherheitsrecheneinheit zu reduzieren, die normalerweise einen Overhead für Zugriffe benötigt.
  • Dritte Ausführungsform.
  • In der vorliegenden Ausführungsform werden hauptsächlich Unterschiede zur ersten und zur zweiten Ausführungsform beschrieben. Darüber hinaus können dieselben Konfigurationen wie in der ersten und der zweiten Ausführungsform mit denselben Bezugszeichen bezeichnet sein und auf eine Beschreibung wird unter Umständen verzichtet.
  • *** Beschreibung der Konfiguration ***
  • In der ersten und der zweiten Ausführungsform wird der Hash-Wert der Software zum Zeitpunkt der vorherigen Aktivierung in der Speichereinheit 111 gespeichert, bei der es sich um einen nicht-flüchtigen Arbeitsspeicher in der Sicherheitsrecheneinheit 110 handelt. In der vorliegenden Ausführungsform ist ein Verfahren angegeben, das es ermöglicht, den Hash-Wert der Software zum Zeitpunkt der vorherigen Aktivierung im externen Speicher 103 zu speichern, wobei die Sicherheit weiterhin gewährleistet ist. Die Hardware-Konfiguration ist wie in 1 angegeben.
  • *** Beschreibung des Ablaufs ***
  • Als Nächstes wird ein Ablauf der Softwareprüfvorrichtung 100 nach der vorliegenden Ausführungsform unter Bezugnahme auf 8 bis 11 beschrieben.
  • In 8 bis 10 ist der Boot-Vorgang nach der vorliegenden Ausführungsform veranschaulicht. Der Boot-Vorgang nach der vorliegenden Ausführungsform wird nachfolgend umrissen.
  • Die Hauptrecheneinheit 109 stellt fest, ob die MAC (Media Access Control) der Aktivierungssoftware vorliegt / nicht vorliegt. Liegt die MAC vor, gibt die Hauptrecheneinheit 109 den Hash-Wert der Aktivierungssoftware und die MAC der Aktivierungssoftware aus.
  • Die Sicherheitsrecheneinheit 110 berechnet die MAC „erwarteter Wert“, bei der es sich um den erwarteten Wert der MAC handelt, auf Grundlage des Konfigurationsprüfschlüssels, der in der Speichereinheit 111 gespeichert ist, und des Hash-Wertes der Aktivierungssoftware und gleicht die MAC „erwarteter Wert“ und die von der Hauptrecheneinheit 109 ausgegebene MAC ab. Der Konfigurationsprüfschlüssel ist ein privater Schlüssel zum Berechnung der MAC.
  • Wenn die MAC der Aktivierungssoftware und die MAC „erwarteter Wert“ übereinstimmen, aktiviert die Hauptrecheneinheit 109 die Aktivierungssoftware. Stimmen die MAC der Aktivierungssoftware und die MAC „erwarteter Wert“ nicht überein, stoppt die Hauptrecheneinheit 109 den Prozess.
  • Konkret ist der Ablauf wie folgt.
  • Bei Einschalten in Schritt S501 führt die Hauptrecheneinheit 109 das Boot-Programm aus, das im Boot-ROM 108 gespeichert ist.
  • In Schritt S502 stellt das Boot-Programm fest, ob die MAC des Boot-Loader vorliegt bzw. nicht vorliegt. Liegt die MAC vor, fährt der Prozess mit Schritt S503 fort. Liegt die MAC nicht vor, fährt der Prozess mit Schritt S505 fort.
  • In Schritt S503 gibt das Boot-Programm den Hash-Wert und die MAC der Software des Boot-Loader an die Sicherheitsrecheneinheit 110 aus.
  • In Schritt S504 berechnet die Sicherheitsrecheneinheit 110 die MAC „erwarteter Wert“, bei der es sich um den erwarteten Wert der MAC handelt, auf Grundlage des Konfigurationsprüfschlüssels und des Hash-Wertes. Die Sicherheitsrecheneinheit 110 gleicht die MAC „erwarteter Wert“ mit der MAC ab, die das Boot-Programm ausgibt. Stimmen die beiden nicht überein, stoppt die Sicherheitsrecheneinheit 110 den Prozess. Stimmen beide überein, wird der Prozess in Schritt S508 fortgesetzt.
  • Als Nächstes führt die Hauptrecheneinheit 109 die Signaturprüfung für die Aktivierungssoftware durch, wenn die MAC nicht in der Aktivierungssoftware vorliegt. Ist die Signaturprüfung erfolgreich, gibt die Hauptrecheneinheit 109 den Hash-Wert der Aktivierungssoftware an die Sicherheitsrecheneinheit 110 aus. Ist die Signaturprüfung nicht erfolgreich, stoppt die Hauptrecheneinheit 109 den Prozess.
  • Wenn die Sicherheitsrecheneinheit 110 den Hash-Wert der Aktivierungssoftware von der Hauptrecheneinheit 109 erhält, stellt die Sicherheitsrecheneinheit 110 fest, ob der Konfigurationsprüfschlüssel vorliegt / nicht vorliegt. Liegt der Konfigurationsprüfschlüssel vor, stoppt die Sicherheitsrecheneinheit 110 den Prozess. Liegt der Konfigurationsprüfschlüssel nicht vor, speichert die Sicherheitsrecheneinheit 110 den Hash-Wert der Aktivierungssoftware temporär in der Speichereinheit 111.
  • Konkret ist der Ablauf wie folgt.
  • In Schritt S505 prüft das Boot-Programm die Signatur der Software des Boot-Loader. Schlägt die Prüfung fehl, stoppt das Boot-Programm den Prozess. Ist die Prüfung erfolgreich, gibt das Boot-Programm in Schritt S506 den Hash-Wert der Software des Boot-Loader an die Sicherheitsrecheneinheit 110 aus. Die Sicherheitsrecheneinheit 110 stellt fest, ob der Konfigurationsprüfschlüssel vorliegt / nicht vorliegt, und stoppt den Prozess, wenn der Konfigurationsprüfschlüssel vorliegt. Liegt der Konfigurationsprüfschlüssel nicht vor, speichert die Sicherheitsrecheneinheit 110 in Schritt S507 den Hash-Wert temporär in der Speichereinheit 111.
  • Dann aktiviert in Schritt S508 die Hauptrecheneinheit 109 den Boot-Loader.
  • Als Nächstes wird auch das OS in derselben Weise wie der Boot-Loader aktiviert.
  • In Schritt S509 stellt der Boot-Loader fest, ob die MAC des OS vorliegt bzw. nicht vorliegt. Liegt die MAC vor, fährt der Prozess mit Schritt S510 fort. Liegt die MAC nicht vor, fährt der Prozess mit Schritt S512 fort.
  • In Schritt S510 gibt der Boot-Loader den Hash-Wert und die MAC der OS-Software an die Sicherheitsrecheneinheit 110 aus.
  • In Schritt S511 wird die MAC auf Grundlage des Konfigurationsprüfschlüssels und des Hash-Wertes in der Sicherheitsrecheneinheit 110 berechnet und mit der vom Boot-Loader ausgegebenen MAC abgeglichen. Stimmen beide nicht überein, wird der Prozess gestoppt. Stimmen beide überein, aktiviert die Hauptrecheneinheit 109 in Schritt S515 das OS.
  • Liegt die MAC OS in Schritt S509 nicht vor, prüft der Boot-Loader die Signatur der Software des OS in Schritt S512. Schlägt die Signaturprüfung fehl, wird der Prozess gestoppt. Ist die Signaturprüfung erfolgreich, fährt der Prozess mit Schritt S513 fort.
  • In Schritt S513 gibt der Boot-Loader den Hash-Wert der OS-Software an die Sicherheitsrecheneinheit 110 aus. Die Sicherheitsrecheneinheit 110 stellt fest, ob der Konfigurationsprüfschlüssel vorliegt / nicht vorliegt, und stoppt den Prozess, wenn der Konfigurationsprüfschlüssel vorliegt. Liegt der Konfigurationsprüfschlüssel nicht vor, speichert die Sicherheitsrecheneinheit 110 in Schritt S514 den Hash-Wert des OS temporär in der Speichereinheit 111.
  • Dann aktiviert die Hauptrecheneinheit 109 in Schritt S515 das OS.
  • Als Nächstes wird auch die Anwendung in derselben Weise wie der Boot-Loader und das OS aktiviert.
  • In Schritt S516 stellt das OS fest, ob die MAC der Anwendung vorliegt bzw. nicht vorliegt. Liegt die MAC vor, fährt der Prozess mit Schritt S517 fort. Liegt die MAC nicht vor, fährt der Prozess mit Schritt S519 fort.
  • In Schritt S517 gibt das OS den Hash-Wert und die MAC der Software der Anwendung an die Sicherheitsrecheneinheit 110 aus.
  • In Schritt S518 wird die MAC auf Grundlage des Konfigurationsprüfschlüssels und des Hash-Wertes in der Sicherheitsrecheneinheit 110 berechnet und mit der vom OS ausgegebenen MAC abgeglichen. Stimmen beide nicht überein, wird der Prozess gestoppt. Stimmen beide überein, wird in Schritt S522 die Anwendung durch die Hauptrecheneinheit 109 aktiviert.
  • Liegt die MAC in der Anwendung in Schritt S516 nicht vor, wird die Signatur der Software der Anwendung in Schritt S519 geprüft. Schlägt die Signaturprüfung fehl, wird der Prozess gestoppt. Ist die Signaturprüfung erfolgreich, gibt das OS in Schritt S520 den Hash-Wert der Software der Anwendung an die Sicherheitsrecheneinheit 110 aus. Die Sicherheitsrecheneinheit 110 stellt fest, ob der Konfigurationsprüfschlüssel vorliegt / nicht vorliegt, und stoppt den Prozess, wenn der Konfigurationsprüfschlüssel vorliegt. Liegt der Konfigurationsprüfschlüssel nicht vor, speichert die Sicherheitsrecheneinheit 110 in Schritt S521 den Hash-Wert der Anwendung temporär in der Speichereinheit 111.
  • Dann aktiviert in Schritt S522 die Hauptrecheneinheit 109 die Anwendung.
  • Als Nächstes generiert die Sicherheitsrecheneinheit 110 den Konfigurationsprüfschlüssel, wenn die Aktivierung für alle Teile der Aktivierungssoftware abgeschlossen ist. Den Konfigurationsprüfschlüssel zu generieren, bedeutet, dass eine Zufallsnummer generiert und die Zufallsnummer als Konfigurationsprüfschlüssel behandelt wird. Dann berechnet die Sicherheitsrecheneinheit 110 die MAC jedes Teils der Aktivierungssoftware der mehreren Aktivierungssoftware-Teile auf Grundlage des Konfigurationsprüfschlüssels und des Hash-Wertes, der temporär in der Speichereinheit 111 gespeichert ist.
  • Die Hauptrecheneinheit 109 speichert im nicht-flüchtigen Speicher 103 die MAC jedes Teils der Aktivierungssoftware der mehreren Aktivierungssoftware-Teile.
  • Konkret ist der Ablauf wie folgt.
  • In Schritt S523 überträgt, wenn die Hauptrecheneinheit 109 alle Teile der Aktivierungssoftware aktiviert, die aktiviert werden sollen, die Hauptrecheneinheit 109 ein Aktivierungsende an die Sicherheitsrecheneinheit 110.
  • In Schritt S524 stellt die Sicherheitsrecheneinheit 110 fest, ob der temporär in der Speichereinheit 111 gespeicherte Hash-Wert vorliegt / nicht vorliegt, und wenn der Hash-Wert nicht vorliegt, endet der Prozess normal. Liegt der temporär in der Speichereinheit 111 gespeicherte Hash-Wert vor, generiert die Sicherheitsrecheneinheit 110 den Konfigurationsprüfschlüssel in Schritt S525.
  • In Schritt S526 berechnet die Sicherheitsrecheneinheit 110 die MAC jedes Teils der Aktivierungssoftware auf Grundlage des Konfigurationsprüfschlüssels und des Hash-Wertes jedes Teils der Aktivierungssoftware, der temporär in der Speichereinheit 111 gespeichert ist, und gibt die MAC an die Hauptrecheneinheit 109 aus.
  • In Schritt S527 speichert die Hauptrecheneinheit 109 im Speicher 103 die MAC jedes Teils der Aktivierungssoftware, die von der Sicherheitsrecheneinheit 110 erhalten wird.
  • 11 veranschaulicht den Vorgang des Software-Updates nach der vorliegenden Ausführungsform. Das Software-Update nach der vorliegenden Ausführungsform wird nachfolgend umrissen.
  • Die Hauptrecheneinheit 109 erhält die Update-Software und die Signatur der Update-Software und führt die Signaturprüfung und die Versionsprüfung für die Update-Software durch. Sind die Signaturprüfung und die Versionsprüfung für die Update-Software erfolgreich, berechnet die Hauptrecheneinheit 109 den Hash-Wert der Aktivierungssoftware vor dem Update und gibt an die Sicherheitsrecheneinheit 110 den Hash-Wert der Aktivierungssoftware vor dem Update und die MAC der Aktivierungssoftware vor dem Update aus, die im Speicher 103 gespeichert ist.
  • Die Sicherheitsrecheneinheit 110 berechnet die MAC der Aktivierungssoftware vor dem Update auf Grundlage des Hash-Wertes, der von der Hauptrecheneinheit 109 ausgegeben wird, und des Update-Prüfschlüssels, der in der Speichereinheit 111 gespeichert ist. Die Sicherheitsrecheneinheit 110 gleicht die berechnete MAC mit der von der Hauptrecheneinheit 109 ausgegebenen MAC ab.
  • Stimmen die von der Sicherheitsrecheneinheit 110 berechnete MAC und die von der Hauptrecheneinheit 109 ausgegebene MAC sämtlich überein, schreibt die Hauptrecheneinheit 109 die Update-Software und die Signatur und berechnet den Hash-Wert der Update-Software. Die Hauptrecheneinheit 109 gibt den Hash-Wert der Update-Software an die Sicherheitsrecheneinheit 110 aus.
  • Die Sicherheitsrecheneinheit 110 regeneriert den Konfigurationsprüfschlüssel und berechnet die MAC der Update-Software mithilfe des regenerierten Konfigurationsprüfschlüssels und des Hash-Wertes der Update-Software. Den Konfigurationsprüfschlüssel zu regenerieren, bedeutet, dass eine Zufallsnummer generiert und die Zufallsnummer als Konfigurationsprüfschlüssel behandelt wird.
  • Die Hauptrecheneinheit 109 speichert die MAC der Update-Software im Speicher 103.
  • Konkret ist der Ablauf wie folgt.
  • In Schritt S601 werden die Update-Software für das Update und dessen Signatur heruntergeladen.
  • In Schritt S602 prüft die Hauptrecheneinheit 109 die Signatur und die Version der Update-Software. Insbesondere erfolgt die Versionsprüfung mit einem Verfahren wie Kollation durch eine Liste. Schlägt die Prüfung fehl, bricht die Hauptrecheneinheit 109 den Prozess mit „fehlerhaftem Ende“ ab. Ist die Prüfung erfolgreich, fährt der Prozess mit Schritt S603 fort.
  • In Schritt S603 berechnet die Hauptberechnungseinheit 109 den Hash-Wert jedes Teils der Aktivierungssoftware vor dem Update und gibt an die Sicherheitsrecheneinheit 110 den Hash-Wert jedes Teils der Aktivierungssoftware und die MAC jedes Teils der Aktivierungssoftware aus. Die MAC jedes Teils der Aktivierungssoftware vor dem Update ist im Speicher 103 gespeichert.
  • In Schritt S604 berechnet die Sicherheitsrecheneinheit 110 die MAC auf Grundlage des Konfigurationsprüfschlüssels und des Hash-Wertes. Die Sicherheitsrecheneinheit 110 gleicht die berechnete MAC mit der MAC ab, die von der Hauptrecheneinheit 109 ausgegeben wird, und gibt das Ergebnis des Abgleichs an die Hauptrecheneinheit 109 zurück. Die Hauptrecheneinheit 109 beendet den Prozess, auch wenn eins der Ergebnisse keine Übereinstimmung zeigt. Stimmen alle überein, schreibt in Schritt S605 die Hauptrecheneinheit 109 die Update-Software und die Signatur in den Speicher 103 oder den Arbeitsspeicher 104.
  • In Schritt S606 gibt die Hauptrecheneinheit 109 nach dem Schreiben den Hash-Wert von jedem Teil der Update-Software an die Sicherheitsrecheneinheit 110 aus.
  • In Schritt S607 regeneriert die Sicherheitsrecheneinheit 110 den Konfigurationsprüfschlüssel.
  • In Schritt S608 berechnet die Sicherheitsrecheneinheit 110 die MAC jedes Teils der Update-Software auf Grundlage des regenerierten Konfigurationsprüfschlüssels und des von der Hauptrecheneinheit 109 ausgegebenen Hash-Wertes und gibt die MAC an die Hauptrecheneinheit 109 aus.
  • In Schritt S609 speichert die Hauptrecheneinheit 109 im Speicher 103 die von der Sicherheitsrecheneinheit 110 erhaltene MAC jedes Teils der Update-Software.
  • *** Beschreibung der Wirkung der vorliegenden Ausführungsform ***
  • Mit der Softwareprüfvorrichtung 100 nach der vorliegenden Ausführungsform ist es möglich, die Aktivierung zu beschleunigen, die Integrität allein durch die Vorrichtung zu überprüfen und den Downgrade in derselben Weise wie in der ersten Ausführungsform zu erkennen. Weiterhin ist es mit der Softwareprüfvorrichtung 100 nach der vorliegenden Ausführungsform, auch wenn der erwartete Wert in einem nicht sicheren Bereich gespeichert ist, d. h. im Speicher, möglich, Angriffe wie Manipulation, Löschung und Downgrade zu erkennen. Darüber hinaus stellt sich die Wirkung, da die MAC in den Speicher ausgelagert werden kann, auch dann ein, wenn der Speicherbereich der Sicherheitsrecheneinheit begrenzt ist.
  • Mit der Softwareprüfvorrichtung 100 nach der vorliegenden Ausführungsform ist es möglich, selbst wenn die MAC unautorisiert manipuliert oder gelöscht wird, indem die MAC durch den Konfigurationsprüfschlüssel überprüft wird oder festgestellt wird, ob der Konfigurationsprüfschlüssel vorliegt / nicht vorliegt, die Aktivierung und das Downgrade unautorisierter Programme aufgrund unautorisierter Manipulation oder Löschung der MAC zu überprüfen.
  • Vierte Ausführungsform.
  • In der vorliegenden Ausführungsform werden hauptsächlich Unterschiede zur ersten bis dritten Ausführungsform beschrieben. Darüber hinaus können dieselben Konfigurationen wie in der ersten bis dritten Ausführungsform mit denselben Bezugszeichen bezeichnet sein und auf eine Beschreibung wird unter Umständen verzichtet.
  • *** Beschreibung der Konfiguration ***
  • In der ersten bis dritten Ausführungsform wird die Wirkung einer Beschleunigung des Prozesses dadurch erreicht, dass die Berechnung des öffentlichen Schlüssels verringert wird, d. h. die Signaturprüfung verringert wird. Nach der vorliegenden Ausführungsform ist ein Weg angegeben, um das Downgrade in einem Prozessor zu verhindern, der in der Lage ist, einen öffentlichen Schlüssel in Hochgeschwindigkeit zu berechnen. Eine Hardware-Konfiguration ist wie in 1 angegeben.
  • *** Beschreibung des Ablaufs ***
  • Als Nächstes wird ein Ablauf der Softwareprüfvorrichtung 100 nach der vorliegenden Ausführungsform unter Bezugnahme auf 12 bis 13 beschrieben.
  • In 12 ist der Boot-Vorgang nach der vorliegenden Ausführungsform veranschaulicht. Der Boot-Vorgang nach der vorliegenden Ausführungsform wird nachfolgend umrissen.
  • Die Sicherheitsrecheneinheit 110 führt die Signaturprüfung für die Aktivierungssoftware aus, die von den mehreren Teilen der Aktivierungssoftware aktiviert werden soll, berechnet den Hash-Wert der Aktivierungssoftware, wenn die Signaturprüfung erfolgreich ist, und speichert den Hash-Wert temporär in der Speichereinheit 111.
  • Ist die Signaturprüfung nicht erfolgreich, stoppt die Hauptrecheneinheit 109 den Prozess. Andererseits aktiviert, wenn die Signaturprüfung erfolgreich ist, die Hauptrecheneinheit 109 die Aktivierungssoftware.
  • Wenn ein letzter Teil der Aktivierungssoftware von den mehreren Aktivierungssoftware-Teilen aktiviert wird, addiert die Hauptrecheneinheit 109 alle temporär gespeicherten Hash-Werte und gibt ein Additionsergebnis aus.
  • Die Sicherheitsrecheneinheit 110 stellt fest, ob ein Additionsergebnis „erwarteter Wert“, bei dem es sich um einen erwarteten Wert eines Additionsergebnisses handelt, in der Speichereinheit 111 gespeichert ist, und wenn kein Additionsergebnis „erwarteter Wert“ vorliegt, speichert die Sicherheitsrecheneinheit 110 das Additionsergebnis in der Speichereinheit 111 als das Additionsergebnis „erwarteter Wert“. Ist hingegen das Additionsergebnis „erwarteter Wert“ vorhanden, gleicht die Sicherheitsrecheneinheit 110 ein von der Hauptrecheneinheit 109 ausgegebenes Additionsergebnis mit dem Additionsergebnis „erwarteter Wert“ ab.
  • Stimmen das Additionsergebnis und das Additionsergebnis „erwarteter Wert“ nicht überein, stoppt die Hauptrecheneinheit 109 den Prozess. Stimmen das Additionsergebnis und das Additionsergebnis „erwarteter Wert“ überein, endet der Prozess normal.
  • Konkret ist der Ablauf wie folgt.
  • In Schritt S701 führt die Hauptrecheneinheit 109 nach dem Einschalten das Boot-Programm aus, das im Boot-ROM gespeichert ist.
  • In Schritt S702 prüft das Boot-Programm die Signatur der Software des Boot-Loader. Ist die Signaturprüfung erfolgreich, generiert das Boot-Programm in Schritt S703 einen Hash-Wert der Software des Boot-Loader. Dann aktiviert in Schritt S704 die Hauptrecheneinheit 109 den Boot-Loader. Ist die Signaturprüfung nicht erfolgreich, stoppt die Hauptrecheneinheit 109 den Prozess.
  • In Schritt S705 prüft der Boot-Loader die Signatur der Software des OS. Ist die Signaturprüfung erfolgreich, generiert der Boot-Loader in Schritt S706 den Hash-Wert der OS-Software. Dann aktiviert die Hauptrecheneinheit 109 in Schritt S707 das OS. Ist die Signaturprüfung nicht erfolgreich, stoppt die Hauptrecheneinheit 109 den Prozess.
  • In Schritt S708 prüft das OS die Signatur der Software der Anwendung. Ist die Signaturprüfung erfolgreich, generiert das OS in Schritt S709 einen Hash-Wert der Software der Anwendung. Dann aktiviert in Schritt S710 die Hauptrecheneinheit 109 die Anwendung. Ist die Signaturprüfung nicht erfolgreich, stoppt die Hauptrecheneinheit 109 den Prozess.
  • Hier ist die Anwendung ein Programm, das von den mehreren Aktivierungsprogrammen als Letztes aktiviert wird.
  • In Schritt S711 addiert die Anwendung die bis dahin generierten Hash-Werte und gibt das Additionsergebnis an die Sicherheitsrecheneinheit 110 aus. Für die Addition wird Exklusiv-Oder verwendet. In Schritt S712 stellt die Sicherheitsrecheneinheit 110 fest, ob das Additionsergebnis „erwarteter Wert“, bei dem es sich um den erwarteten Wert des Additionsergebnisses handelt, in der Speichereinheit 111 gespeichert ist. Liegt das Additionsergebnis „erwarteter Wert“ nicht in der Speichereinheit 111 vor, wird in Schritt S713 das von der Anwendung ausgegebene Additionsergebnis in der Speichereinheit 111 als Additionsergebnis „erwarteter Wert“ gespeichert und der Prozess endet. In Schritt S714 gleicht, wenn das Additionsergebnis „erwarteter Wert“ in der Speichereinheit 111 vorliegt, die Sicherheitsrecheneinheit 110 das Additionsergebnis „erwarteter Wert“ mit dem von der Hauptrecheneinheit 109 ausgegebenen Additionsergebnis ab. Stimmen beide überein, endet der Prozess normal. Stimmen beide nicht überein, wird der Prozess gestoppt.
  • In 13 ist der Vorgang des Software-Updates nach der vorliegenden Ausführungsform veranschaulicht. Das Software-Update nach der vorliegenden Ausführungsform wird nachfolgend umrissen.
  • Die Sicherheitsrecheneinheit 110 erhält jeden der mehreren Teile der Update-Software und die Signatur jedes der mehreren Teile der Update-Software und berechnet das Additionsergebnis durch Addieren der Hash-Werte jedes Teils der Aktivierungssoftware vor dem Update. Dann gleicht die Sicherheitsrecheneinheit 110 das berechnete Additionsergebnis mit dem Additionsergebnis „erwarteter Wert“ ab.
  • Stimmen das Additionsergebnis und das Additionsergebnis „erwarteter Wert“ nicht überein, stoppt die Hauptrecheneinheit 109 den Prozess mit „fehlerhaftem Ende“. Stimmen das Additionsergebnis und das Additionsergebnis „erwarteter Wert“ hingegen überein, schreibt die Hauptrecheneinheit 109 jeden der mehreren Teile der Update-Software und die Signatur jedes der mehreren Teile der Update-Software in den Speicher 103 oder in den Arbeitsspeicher 104.
  • Die Sicherheitsrecheneinheit 110 berechnet den Hash-Wert jedes Teils der Update-Software nach dem Update. Die Sicherheitsrecheneinheit 110 speichert in der Speichereinheit 111 das Additionsergebnis als Additionsergebnis „erwarteter Wert“, das durch Addieren des Hash-Wertes jedes Teils der Update-Software erhalten wird, und speichert in der Speichereinheit 111 den Hash-Wert jedes der mehreren Teile der Aktivierungssoftware.
  • Konkret ist der Ablauf wie folgt.
  • In Schritt S801 werden die Update-Software für das Update und die Signatur heruntergeladen. In Schritt S802 prüft die Hauptrecheneinheit 109 die Signatur und die Version der Update-Software. Die Versionsprüfung kann ein Verfahren wie Kollation durch eine Liste sein. Schlägt die Prüfung fehl, stoppt die Hauptrecheneinheit 109 den Prozess mit „fehlerhaftem Ende“. Ist die Prüfung erfolgreich, berechnet die Hauptrecheneinheit 109 in Schritt S803 den Hash-Wert jedes Teils der Aktivierungssoftware vor dem Update. In Schritt S804 addiert die Hauptrecheneinheit 109 den berechneten Hash und gibt den Hash an die Sicherheitsrecheneinheit 110 aus. Für die Addition wird Exklusiv-Oder verwendet. In Schritt S805 gleicht die Sicherheitsrecheneinheit 110 das ausgegebene Additionsergebnis mit dem Additionsergebnis „erwarteter Wert“ ab, das in der Speichereinheit 111 gespeichert ist, und gibt das Ergebnis an die Hauptrecheneinheit 109 zurück.
  • Stimmen die Ergebnisse nicht überein, stoppt die Hauptrecheneinheit 109 den Prozess mit „fehlerhaftem Ende“. Stimmen die Ergebnisse überein, schreibt in Schritt S806 die Hauptrecheneinheit 109 die Update-Software und die Signatur in den Speicher 103 oder den Arbeitsspeicher 104. In Schritt S807 berechnet die Hauptrecheneinheit 109 den Hash-Wert der Update-Software nach dem Update. In Schritt S808 werden der Hash-Wert der Aktivierungssoftware vor dem Update, der in Schritt S803 berechnet wird, das Additionsergebnis, das in Schritt S804 berechnet wird, und der Hash-Wert des Update-Software nach dem Update, der in Schritt S807 berechnet wird, addiert. In Schritt S809 gibt die Hauptrecheneinheit 109 das in Schritt S808 berechnete Additionsergebnis an die Sicherheitsrecheneinheit 110 aus. In Schritt S810 speichert die Sicherheitsrecheneinheit 110 in der Speichereinheit 111 das in Schritt S808 berechnete Additionsergebnis.
  • In der vorliegenden Ausführungsform ist ein Beispiel unter Verwendung von Exklusiv-Oder für die Addition gegeben. Es kann jedoch jedes arithmetische Verfahren, zum Beispiel arithmetische Addition, verwendet werden. Darüber hinaus ist es erforderlich, auf das verwendete Berechnungsverfahren das Berechnungsverfahren des ersten Additionsergebnisses in der Update-Software nach dem Update abzustimmen.
  • *** Beschreibung der Wirkung der vorliegenden Ausführungsform ***
  • Mit der Softwareprüfvorrichtung 100 nach der vorliegenden Ausführungsform ist es möglich, indem das Additionsergebnis jedes Teils der Software, das im vorherigen Ausführungsschritt erhalten worden ist, stehen bleibt, auch wenn der Downgrade nach dem Boot-Vorgang erfolgt, eine Prüfung zum Zeitpunkt eines nächsten Boot-Vorgangs durchzuführen. Weiterhin ist es mit der Softwareprüfvorrichtung 100 nach der vorliegenden Ausführungsform möglich zu erwarten, dass der Prozess sich beschleunigt, indem die Anzahl der Zugriffe auf die Sicherheitsrecheneinheit, im Vergleich zu einem Weg der Speicherung des Hash-Wertes jedes Software-Teils in der Sicherheitsrecheneinheit, reduziert wird. Weiterhin ist es mit der Softwareprüfvorrichtung 100 nach der vorliegenden Ausführungsform möglich, die Überprüfung der Integrität der Software allein mit der Vorrichtung durchzuführen, da die Prüfung geschlossen im Gerät stattfindet. Weiterhin ist es möglich, indem Exklusiv-Oder für die Addition des Hash-Wertes verwendet wird, das Additionsergebnis nach dem Update zum Zeitpunkt des Software-Updates einfach zu berechnen.
  • Fünftes Ausführungsbeispiel.
  • In der vorliegenden Ausführungsform werden hauptsächlich Unterschiede zur ersten bis vierten Ausführungsform beschrieben. Darüber hinaus können dieselben Konfigurationen wie in der ersten bis vierten Ausführungsform mit denselben Bezugszeichen bezeichnet sein und auf eine Beschreibung wird unter Umständen verzichtet.
  • *** Beschreibung der Konfiguration ***
  • In der vierten Ausführungsform ist ein Verfahren beschrieben, um das Downgrade in einem Prozessor zu verhindern, der in der Lage ist, den öffentlichen Schlüssel in Hochgeschwindigkeit zu berechnen. In der vorliegenden Ausführungsform wird ein Verfahren angegeben, bei dem der Hash weiterhin im externen Speicher 103 gespeichert werden kann, wobei die Sicherheit weiterhin gewährleistet ist. Eine Hardware-Konfiguration ist wie in 1 angegeben.
  • *** Beschreibung des Ablaufs ***
  • Als Nächstes wird ein Ablauf der Softwareprüfvorrichtung 100 nach der vorliegenden Ausführungsform unter Bezugnahme auf 14 bis 16 beschrieben.
  • In 14 bis 15 ist der Boot-Vorgang nach der vorliegenden Ausführungsform veranschaulicht. Der Boot-Vorgang nach der vorliegenden Ausführungsform wird nachfolgend umrissen.
  • Die Hauptrecheneinheit 109 führt die Signaturprüfung für die Aktivierungssoftware durch, die von den mehreren Aktivierungssoftware-Teilen aktiviert werden soll. Ist die Signaturprüfung erfolgreich, berechnet die Hauptrecheneinheit 109 den Hash-Wert der Aktivierungssoftware, speichert den Hash-Wert temporär in der Speichereinheit 111 in der Sicherheitsrecheneinheit 110 und aktiviert die Aktivierungssoftware.
  • Ist die Signaturprüfung nicht erfolgreich, stoppt die Hauptrecheneinheit 109 den Prozess.
  • Wenn der letzte Teil der Aktivierungssoftware von den mehreren Aktivierungssoftware-Teilen aktiviert wird, addiert die Hauptrecheneinheit 109 alle temporär in der Speichereinheit 111 gespeicherten Hash-Werte und gibt das Additionsergebnis aus. Weiterhin stellt die Hauptrecheneinheit 109 fest, ob die MAC des Additionsergebnisses vorliegt / nicht vorliegt, und wenn die MAC im Additionsergebnis vorliegt, gibt sie das Additionsergebnis und die MAC des Additionsergebnisses aus.
  • Die Sicherheitsrecheneinheit 110 berechnet die MAC „erwarteter Wert“, bei der es sich um den erwarteten Wert der MAC handelt, auf Grundlage des Konfigurationsprüfschlüssels, der vorab in der Speichereinheit 111 gespeichert wird, und des Additionsergebnisses, das von der Hauptrecheneinheit 109 ausgegeben wird. Dann gleicht die Sicherheitsrecheneinheit 110 die MAC „erwarteter Wert“ mit der MAC ab, die von der Hauptrecheneinheit 109 ausgegeben wird.
  • Die Hauptrecheneinheit 109 stoppt den Prozess, wenn die MAC „erwarteter Wert“ und die von der Hauptrecheneinheit 109 ausgegebene MAC nicht übereinstimmen, und stoppt den Prozess normal, wenn die MAC „erwarteter Wert“ und die von der Hauptrecheneinheit 109 ausgegebene MAC übereinstimmen.
  • Liegt die MAC nicht im Additionsergebnis vor, stellt die Sicherheitsrecheneinheit 110 fest, ob der Konfigurationsprüfschlüssel in der Speichereinheit 111 vorliegt oder nicht. Ist der Konfigurationsprüfschlüssel dort nicht gespeichert, generiert die Sicherheitsrecheneinheit 110 den Konfigurationsprüfschlüssel. Dann generiert die Sicherheitsrecheneinheit 110 die MAC des Additionsergebnisses auf Grundlage des Konfigurationsprüfschlüssels und des Additionsergebnisses.
  • Ist der Konfigurationsprüfschlüssel gespeichert, stoppt die Hauptrecheneinheit 109 den Prozess. Wenn hingegen die MAC des Additionsergebnisses generiert ist, speichert die Hauptrecheneinheit 109 die MAC des Additionsergebnisses im Speicher 103.
  • Konkret ist der Ablauf wie folgt.
  • In Schritt S901 führt die Hauptrecheneinheit 109 nach dem Einschalten das Boot-Programm aus, das im Boot-ROM gespeichert ist.
  • In Schritt S902 prüft das Boot-Programm die Signatur der Software des Boot-Loader. Ist die Signaturprüfung erfolgreich, generiert das Boot-Programm den Hash-Wert der Software des Boot-Loader (Schritt S903) und aktiviert den Boot-Loader (Schritt S904). Schlägt die Signaturprüfung fehl, stoppt das Boot-Programm den Prozess.
  • In Schritt S905 prüft der Boot-Loader die Signatur der Software des OS. Ist die Signaturprüfung erfolgreich, generiert der Boot-Loader den Hash-Wert der OS-Software (Schritt S906) und aktiviert das OS (Schritt S907). Schlägt die Signaturprüfung fehl, stoppt der Boot-Loader den Prozess.
  • In Schritt S908 prüft das OS die Signatur der Software der Anwendung. Ist die Signaturprüfung erfolgreich, generiert das OS den Hash-Wert der Software der Anwendung (Schritt S909) und aktiviert die Anwendung (Schritt S910). Schlägt die Signaturprüfung fehl, stoppt das OS den Prozess.
  • In Schritt S911 addiert die Anwendung die bis dahin generierten Hash-Werte. Für die Addition wird Exklusiv-Oder verwendet. In Schritt S912 stellt die Anwendung fest, ob die gespeicherte MAC vorliegt bzw. nicht vorliegt. Ist die gespeicherte MAC vorhanden, gibt in Schritt S913 die Anwendung das Additionsergebnis
    und die MAC an die Sicherheitsrecheneinheit 110 aus. Ist die gespeicherte MAC nicht vorhanden, gibt in Schritt S915 die Anwendung das Additionsergebnis an die Sicherheitsrecheneinheit 110 aus.
  • In Schritt S914 berechnet die Sicherheitsrecheneinheit 110, die das Additionsergebnis und die MAC erhalten hat, die MAC als MAC „erwarteter Wert“ auf Grundlage des Konfigurationsprüfschlüssels und des Additionsergebnisses und gleicht die berechnete MAC mit der von der Anwendung ausgegebenen MAC ab. Stimmen beide überein, endet der Prozess normal. Stimmen beide nicht überein, wird der Prozess gestoppt.
  • Hingegen prüft die Sicherheitsrecheneinheit 110, die das Additionsergebnis erhalten hat, ob der Konfigurationsprüfschlüssel vorliegt / nicht vorliegt, und ist der Konfigurationsprüfschlüssel vorhanden, stoppt die Sicherheitsrecheneinheit 110 den Prozess. Ist der Konfigurationsprüfschlüssel nicht vorhanden, generiert die Sicherheitsrecheneinheit 110 in Schritt S916 den Konfigurationsprüfschlüssel. In Schritt S917 berechnet die Sicherheitsrecheneinheit 110 die MAC auf Grundlage des Konfigurationsprüfschlüssels und des Additionsergebnisses und gibt die berechnete MAC an die Hauptrecheneinheit 109 aus. In Schritt S918 speichert die Hauptrecheneinheit 109 die MAC im nicht-flüchtigen Speicher 103 und beendet den Prozess normal. Um die MAC vor unautorisierter Löschung zu schützen, kann die MAC in der Speichereinheit 111 der Sicherheitsrecheneinheit 110 anstatt im Speicher 103 gespeichert werden.
  • 16 veranschaulicht einen Vorgang des Software-Updates nach der vorliegenden Ausführungsform. Das Software-Update nach der vorliegenden Ausführungsform wird nachfolgend umrissen.
  • Die Hauptrecheneinheit 109 erhält jeden der mehreren Teile der Update-Software und die Signatur jedes der mehreren Teile der Update-Software. Dann berechnet die Hauptrecheneinheit 109 das Additionsergebnis, das erhalten wird, indem der Hash-Wert jedes Teils der Aktivierungssoftware vor dem Update addiert wird, und berechnet die MAC des Additionsergebnisses. Die Hauptrecheneinheit 109 gibt das Additionsergebnis, das erhalten wird, indem der Hash-Wert jedes Teils der Aktivierungssoftware vor dem Update addiert wird, und die MAC des Additionsergebnisses aus.
  • Die Sicherheitsrecheneinheit 110 berechnet die MAC als die MAC „erwarteter Wert“ auf Grundlage des Konfigurationsprüfschlüssels und des Additionsergebnisses und gleicht die MAC des Additionsergebnisses mit der MAC „erwarteter Wert“ ab.
  • Stimmen die MAC des Additionsergebnisses und die MAC „erwarteter Wert“ nicht überein, stoppt die Hauptrecheneinheit 109 den Prozess. Stimmen die MAC des Additionsergebnisses und die MAC „erwarteter Wert“ hingegen überein, schreibt die Hauptrecheneinheit 109 jeden der mehreren Teile der Update-Software und die Signatur jedes der mehreren Teile der Update-Software in den Speicher 103 oder den Arbeitsspeicher 104.
  • Die Hauptrecheneinheit 109 berechnet den Hash-Wert jedes Teils der Aktivierungssoftware nach dem Update und addiert als das erste Additionsergebnis: den Hash-Wert jedes Teils der Aktivierungssoftware vor dem Update; das Additionsergebnis, das erhalten wird, indem der Hash-Wert jedes Teils der Aktivierungssoftware vor dem Update addiert wird; und den Hash-Wert jedes Teils der Update-Software nach dem Update. Die Hauptrecheneinheit 109 gibt das erste Additionsergebnis an die Sicherheitsrecheneinheit 110 aus.
  • Die Sicherheitsrecheneinheit 110 regeneriert den Konfigurationsprüfschlüssel und berechnet die MAC des ersten Additionsergebnisses auf Grundlage des Konfigurationsprüfschlüssels und des ersten Additionsergebnisses.
  • Die Hauptrecheneinheit 109 speichert die MAC des ersten Additionsergebnisses im Speicher 103.
  • Konkret ist der Ablauf wie folgt.
  • Die Prozesse von Schritt S1001 bis Schritt S1003 sind die gleichen wie die Prozesse von Schritt S801 bis Schritt S803.
  • In Schritt S1004 addiert die Hauptrecheneinheit 109 den Hash-Wert jedes Teils der Aktivierungssoftware vor dem Update und gibt den Hash-Wert an die Sicherheitsrecheneinheit 110 aus, zusammen mit der MAC. Für die Addition wird Exklusiv-Oder verwendet. In Schritt S1005 berechnet die Sicherheitsrecheneinheit 110 die MAC auf Grundlage: des Additionsergebnisses, das von der Hauptrecheneinheit 109 ausgegeben werden; und des Konfigurationsprüfschlüssels, und gleicht die berechnete MAC mit der MAC, die von der Hauptrecheneinheit 109 ausgegeben wird, ab. Die Sicherheitsrecheneinheit 110 gibt das Ergebnis des Abgleichs an die Hauptrecheneinheit 109 zurück.
  • Stimmen die Ergebnisse des Abgleichs nicht überein, stoppt die Hauptrecheneinheit 109 den Prozess. Stimmen die Ergebnisse des Abgleichs überein, schreibt in Schritt S1006 die Hauptrecheneinheit 109 die Update-Software und die Signatur in den Speicher 103 oder den Arbeitsspeicher 104. In Schritt S1007 berechnet die Hauptrecheneinheit 109 den Hash-Wert jedes Teils der Update-Software nach dem Update. Im Schritt S1008 werden der Hash-Wert jedes Teils der Aktivierungssoftware vor dem Update, der in Schritt S1003 berechnet wird, das Additionsergebnis, das in Schritt S1004 berechnet wird, und der Hash-Wert jedes Teils der Update-Software nach dem Update, der in Schritt S1007 berechnet wird, addiert. In Schritt S1009 gibt die Hauptrecheneinheit 109 das erste Additionsergebnis an die Sicherheitsrecheneinheit 110 aus. In Schritt S1010 regeneriert die Sicherheitsrecheneinheit 110 den Konfigurationsprüfschlüssel. In Schritt S1011 berechnet die Sicherheitsrecheneinheit 110 die MAC auf Grundlage des Konfigurationsprüfschlüssels und des ersten Additionsergebnisses und gibt die MAC an die Hauptrecheneinheit 109 aus. In Schritt S1012 speichert die Hauptrecheneinheit 109 in der Speichereinheit 103 die MAC des ersten Additionsergebnisses. Um die MAC vor unautorisierter Löschung zu schützen, kann die MAC in der Speichereinheit 111 der Sicherheitsrecheneinheit 110 anstatt im Speicher 103 gespeichert werden.
  • In der vorliegenden Ausführungsform ist ein Beispiel unter Verwendung von Exklusiv-Oder für die Addition gegeben. Es kann jedoch jedes arithmetische Verfahren, zum Beispiel arithmetische Addition, verwendet werden. Darüber hinaus ist es erforderlich, auf das verwendete Berechnungsverfahren das Berechnungsverfahren des Additionsergebnisses in der Update-Software nach dem Software-Update abzustimmen.
  • *** Beschreibung der Wirkung der vorliegenden Ausführungsform ***
  • Bei der Softwareprüfvorrichtung 100 nach der vorliegenden Ausführungsform stellt sich, zusätzlich zur Wirkung der vierten Ausführungsform, da die MAC in den Speicher ausgelagert werden kann, die Wirkung ein, selbst wenn der Speicherbereich der Sicherheitsrecheneinheit begrenzt ist.
  • Bei der Softwareprüfvorrichtung 100 nach der vorliegenden Ausführungsform erfolgt die MAC-Prüfung mittels Konfigurationsprüfschlüssel oder Feststellung, ob der Konfigurationsprüfschlüssel vorliegt / nicht vorliegt. Daher ist es mit der Softwareprüfvorrichtung 100 nach der vorliegenden Ausführungsform, selbst wenn die MAC auf unautorisierte Weise manipuliert oder gelöscht wird, möglich, die Aktivierung und das Downgrade unautorisierter Programme aufgrund unautorisierter Manipulation oder Löschung der MAC zu überprüfen.
  • In der vorstehend beschriebenen ersten bis fünftes Ausführungsform ist jede Einheit der Softwareprüfvorrichtung als unabhängiger Funktionsblock beschrieben worden. Jedoch muss eine Konfiguration der Softwareprüfvorrichtung nicht eine Konfiguration sein, die den vorstehend beschriebenen Ausführungsformen ähnlich ist. Der Funktionsblock der Softwareprüfvorrichtung kann jede beliebige Konfiguration aufweisen, solange sie die in den vorstehenden Ausführungsformen beschriebenen Funktionen realisieren kann. Weiterhin kann die Softwareprüfvorrichtung ein System sein, das durch mehrere Vorrichtungen anstelle von einer einzigen Vorrichtung gebildet ist.
  • Weiterhin können mehrere Teile der ersten bis fünften Ausführungsform kombiniert und umgesetzt werden. Alternativ kann ein Teil dieser Ausführungsformen umgesetzt sein. Zusätzlich können diese Ausführungsformen in jeder Kombination als Ganzes oder zum Teil umgesetzt werden.
  • Das heißt, es ist in der ersten bis fünften Ausführungsform möglich, jede Ausführungsform frei zu kombinieren, jede Komponente jeder Ausführungsform zu modifizieren oder jede Komponente jeder Ausführungsform wegzulassen.
  • Liste der Bezugszeichen
  • 100: Softwareprüfvorrichtung, 102: Prozessor, 103: Speicher, 104: Arbeitsspeicher, 104: Arbeitsspeicher, 105: Kommunikationsvorrichtung, 106: Eingabevorrichtung, 107: Anzeigevorrichtung, 108: Boot-ROM, 109: Hauptrecheneinheit, 110: Sicherheitsrecheneinheit, 111: Speichereinheit, 112: elektronischer Schaltkreis.

Claims (8)

  1. Softwareprüfvorrichtung (100), die eine Aktivierungssoftware aktiviert, die aktiviert werden soll, wobei die Softwareprüfvorrichtung umfasst: eine Sicherheitsrecheneinheit (110), die eine Speichereinheit (111) umfasst, und, wenn ein Hash „erwarteter Wert“, bei dem es sich um einen erwarteten Wert eines Hash-Wertes der Aktivierungssoftware handelt, in der Speichereinheit gespeichert ist, zum Abgleich des Hash-Wertes der Aktivierungssoftware mit dem Hash „erwarteter Wert“ dient; und eine Hauptrecheneinheit (109) zur Aktivierung der Aktivierungssoftware, wenn der Hash-Wert und der Hash „erwarteter Wert“ übereinstimmen, und um einen Prozess zu stoppen, wenn beide nicht übereinstimmen, und wobei die Hauptrecheneinheit eine Signaturprüfung für die Aktivierungssoftware durchführt, wenn der Hash „erwarteter Wert“ nicht in der Speichereinheit gespeichert ist, den Hash-Wert der Aktivierungssoftware in der Speichereinheit als Hash „erwarteter Wert“ speichert sowie die Aktivierungssoftware aktiviert, wenn die Signaturprüfung erfolgreich ist, und einen Prozess stoppt, wenn die Signaturprüfung nicht erfolgreich ist, wobei die Softwareprüfvorrichtung (100) N (N ist eine Ganzzahl von zwei oder mehr) Aktivierungssoftware-Teile in einer Reihenfolge aktiviert, wobei sich die Softwareprüfvorrichtung entweder im Aktivierungsmodus Hash-Ketten-Modus, bei dem eine Hash-Kette aus den N Aktivierungssoftware-Teilen generiert wird, oder in einem Signaturprüfmodus, bei dem die Signaturprüfung für jeden der N Aktivierungssoftware-Teile durchgeführt wird, aktiviert, wobei die Softwareprüfvorrichtung umfasst: die Sicherheitsrecheneinheit (110) zum Erhalt eines Hash-Wertes einer vorhergehenden Aktivierungssoftware, die von den N Aktivierungssoftware-Teilen als Erste aktiviert werden soll, und zum Generieren einer zufälligen Zeichenfolge bei Aktivierung im Hash-Ketten-Modus und zum Generieren, als erste Hash-Kette, eines Hash-Wertes der vorhergehenden Aktivierungssoftware und eines Hash-Wertes der Zeichenfolge; und die Hauptrecheneinheit zum Aktivieren der vorhergehenden Aktivierungssoftware, wenn die erste Hash-Kette generiert wird; und wobei die Hauptrecheneinheit einen Hash-Wert einer nächsten Aktivierungssoftware erhält, die aktiviert werden soll, beim k-ten (k ist eine Ganzzahl von zwei oder mehr und N oder weniger) von den N Teilen der Aktivierungssoftware, als die k-te Hash-Kette einen Hash-Wert aus: der (k-1)-ten Hash-Kette; und dem Hash-Wert der nächsten Aktivierungssoftware generiert, und die nächste Aktivierungssoftware aktiviert und die k-te Hash-Kette an die Sicherheitsrecheneinheit ausgibt, wenn die nächste Aktivierungssoftware die Aktivierungssoftware ist, die als letzte der N Aktivierungssoftware-Teile aktiviert werden soll; und wobei die Sicherheitsrecheneinheit (110), wenn ein Hash-Wert jedes der N Teile der Aktivierungssoftware in der Speichereinheit gespeichert ist, einen erwarteten Wert der k-ten Hash-Kette als eine Hash-Kette „erwarteter Wert“ berechnet, unter Verwendung: des Hash-Wertes jedes der N Teile der Aktivierungssoftware; und der Zeichenfolge, und die k-te Hash-Kette mit der Hash-Kette „erwarteter Wert“ abgleicht, und wobei die Hauptrecheneinheit einen Prozess normal beendet, wenn die k-te Hash-Kette und die Hash-Kette „erwarteter Wert“ übereinstimmen, einen Prozess stoppt, wenn beide nicht übereinstimmen, und sich reaktiviert, indem der Aktivierungsmodus auf Signaturprüfmodus gesetzt wird, wenn der Hash-Wert jedes der N Teile der Aktivierungssoftware nicht in der Speichereinheit gespeichert ist.
  2. Softwareprüfvorrichtung nach Anspruch 1, wobei die Hauptrecheneinheit eine Signaturprüfung für jeden Teil der Aktivierungssoftware von den N Aktivierungssoftware-Teilen durchführt, wenn sie im Signaturprüfmodus aktiviert ist, und, wenn die Signaturprüfung erfolgreich ist, in der Speichereinheit den Hash-Wert für jeden Teil der Aktivierungssoftware speichert und jeden Teil der Aktivierungssoftware aktiviert, und den Aktivierungsmodus auf den Hash-Ketten-Modus setzt, wenn die gesamte Signaturprüfung für die N Teile der Aktivierungssoftware erfolgreich ist, und einen Prozess stoppt, wenn die Signaturprüfung fehlschlägt.
  3. Softwareprüfvorrichtung (100), wobei die Softwareprüfvorrichtung mehrere Aktivierungssoftware-Teile in einer Reihenfolge aktiviert, und wobei die Softwareprüfvorrichtung umfasst: eine Sicherheitsrecheneinheit (110), die eine Speichereinheit (111) umfasst, eine Signaturprüfung für die Aktivierungssoftware durchführt, die von den mehreren Teilen der Aktivierungssoftware aktiviert werden soll, einen Hash-Wert der Aktivierungssoftware berechnet, wenn die Signaturprüfung erfolgreich ist, und den Hash-Wert in der Speichereinheit speichert, und eine Hauptrecheneinheit (109), die einen Prozess stoppt, wenn die Signaturprüfung für die Aktivierungssoftware nicht erfolgreich ist, und die Aktivierungssoftware aktiviert, wenn die Signaturprüfung für die Aktivierungssoftware erfolgreich ist, und wobei, wenn ein letzter Teil der Aktivierungssoftware von den mehreren Aktivierungssoftware-Teilen aktiviert wird, die Hauptrecheneinheit alle temporär gespeicherten Hash-Werte addiert und ein Additionsergebnis ausgibt, und wobei die Sicherheitsrecheneinheit feststellt, ob ein Additionsergebnis „erwarteter Wert“, bei dem es sich um einen erwarteten Wert des Additionsergebnisses handelt, in der Speichereinheit gespeichert ist, und das Additionsergebnis in der Speichereinheit als das Additionsergebnis „erwarteter Wert“ speichert, wenn kein Additionsergebnis „erwarteter Wert“ vorliegt, und das Additionsergebnis „erwarteter Wert“ mit dem von der Hauptrecheneinheit ausgegebenen Additionsergebnis abgleicht, wenn das Additionsergebnis „erwarteter Wert“ vorliegt, und wobei die Hauptrecheneinheit einen Prozess stoppt, wenn das Additionsergebnis und das Additionsergebnis „erwarteter Wert“ nicht übereinstimmen, und einen Prozess normal beendet, wenn das Additionsergebnis und das Additionsergebnis „erwarteter Wert“ übereinstimmen.
  4. Softwareprüfvorrichtung nach Anspruch 3, wobei die Sicherheitsrecheneinheit jeden Teil von mehreren Teilen einer Update-Software und die Signatur jedes der mehreren Teile der Update-Software erhält, ein Additionsergebnis durch Addieren eines Hash-Wertes für jeden Teil der Aktivierungssoftware vor dem Update berechnet und das berechnete Additionsergebnis mit dem Additionsergebnis „erwarteter Wert“ abgleicht, und wobei die Hauptrecheneinheit einen Prozess stoppt, wenn das Additionsergebnis und das Additionsergebnis „erwarteter Wert“ nicht übereinstimmen, und jeden Teil der mehreren Teile der Update-Software und die Signatur jedes Teils der mehreren Teile der Update-Software schreibt, wenn das Additionsergebnis und das Additionsergebnis „erwarteter Wert“ übereinstimmen, und wobei die Sicherheitsrecheneinheit einen Hash-Wert für jeden Teil der Update-Software nach dem Update berechnet, in der Speichereinheit ein Additionsergebnis, als Additionsergebnis „erwarteter Wert“, speichert, das durch Addieren des Hash-Wertes für jeden Teil der Update-Software erhalten wird, und in der Speichereinheit den Hash-Wert für jeden Teil der mehreren Teile der Update-Software speichert.
  5. Softwareprüfvorrichtung (100), die mehrere Aktivierungssoftware-Teile in einer Reihenfolge aktiviert, wobei die Softwareprüfvorrichtung umfasst: eine Sicherheitsrecheneinheit (110), die eine Speichereinheit (111) umfasst, und eine Hauptrecheneinheit (109), die eine Signaturprüfung für die Aktivierungssoftware durchführt, die von den mehreren Teilen der Aktivierungssoftware aktiviert werden soll, einen Hash-Wert der Aktivierungssoftware berechnet, wenn die Signaturprüfung erfolgreich ist, und den Hash-Wert temporär in der Speichereinheit speichert sowie die Aktivierungssoftware aktiviert, und einen Prozess stoppt, wenn die Signaturprüfung nicht erfolgreich ist, und wobei, wenn die Hauptrecheneinheit einen letzten Aktivierungssoftware-Teil der mehreren Teile der Aktivierungssoftware aktiviert, die Hauptrecheneinheit alle temporär gespeicherten Hash-Werte addiert, ein Additionsergebnis ausgibt, feststellt, ob die MAC des Additionsergebnisses vorliegt / nicht vorliegt, und das Additionsergebnis und die MAC des Additionsergebnisses ausgibt, wenn die MAC im Additionsergebnis vorhanden ist, und wobei die Sicherheitsrecheneinheit eine MAC „erwarteter Wert“, bei der es sich um den erwarteten Wert der MAC handelt, auf Grundlage eines Konfigurationsprüfschlüssels, der in der Speichereinheit gespeichert ist, und des Additionsergebnisses berechnet, und die MAC „erwarteter Wert“ mit der von der Hauptrecheneinheit ausgegebenen MAC abgleicht, und wobei die Hauptrecheneinheit einen Prozess stoppt, wenn die MAC „erwarteter Wert“ und die ausgegebene MAC nicht übereinstimmen, und einen Prozess normal beendet, wenn die MAC „erwarteter Wert“ und die ausgegebene MAC übereinstimmen, und wobei die Sicherheitsrecheneinheit feststellt, ob ein Konfigurationsprüfschlüssel in einer Speichereinheit (111) vorliegt, wenn die MAC nicht im Additionsergebnis vorhanden ist, den Konfigurationsprüfschlüssel generiert, wenn der Konfigurationsprüfschlüssel nicht gespeichert ist, und die MAC des Additionsergebnisses auf Grundlage des Konfigurationsprüfschlüssels und des Additionsergebnisses generiert, und wobei die Hauptrecheneinheit einen Prozess stoppt, wenn der Konfigurationsprüfschlüssel gespeichert ist, und die MAC des Additionsergebnisses in einem Speicher speichert, wenn die MAC des Additionsergebnisses generiert wird.
  6. Softwareprüfvorrichtung nach Anspruch 5, wobei die Hauptrecheneinheit jeden von mehreren Teilen einer Update-Software und eine Signatur jedes der mehreren Teile der Update-Software erhält, ein Additionsergebnis durch Addieren eines Hash-Wertes für jeden Teil der Aktivierungssoftware vor dem Update und die MAC des Additionsergebnisses berechnet und das Additionsergebnis und die MAC des Additionsergebnisses ausgibt, und wobei die Sicherheitsrecheneinheit die MAC auf Grundlage des Konfigurationsprüfschlüssels und des Additionsergebnisses berechnet und die MAC des Additionsergebnisses mit der berechneten MAC abgleicht, und wobei die Hauptrecheneinheit einen Prozess stoppt, wenn die MAC des Additionsergebnisses und die berechnete MAC nicht übereinstimmen, und jeden der mehreren Teile der Update-Software und die Signatur jedes der mehreren Teile der Update-Software schreibt, wenn die MAC des Additionsergebnisses und die berechnete MAC übereinstimmen, und wobei die Hauptrecheneinheit einen Hash-Wert für jeden Teil der Aktivierungssoftware nach dem Update berechnet, als das erste Additionsergebnis den Hash-Wert für jeden Teil der Aktivierungssoftware vor dem Update; das Additionsergebnis und den Hash-Wert für jeden Teil der Aktivierungssoftware nach dem Update addiert und das erste Additionsergebnis ausgibt, und wobei die Sicherheitsrecheneinheit einen Konfigurationsprüfschlüssel regeneriert und eine MAC des ersten Additionsergebnisses auf Grundlage des Konfigurationsprüfschlüssels und des ersten Additionsergebnisses berechnet, und wobei die Hauptrecheneinheit die MAC des ersten Additionsergebnisses im Speicher speichert.
  7. Softwareprüfverfahren, wobei das Softwareprüfverfahren für eine Softwareprüfvorrichtung (100) bestimmt ist, die eine Aktivierungssoftware aktiviert, die aktiviert werden soll, umfassend: wenn ein Hash „erwarteter Wert“, bei dem es sich um einen erwarteten Wert eines Hash-Wertes der Aktivierungssoftware handelt, in einer Speichereinheit (111) gespeichert ist, Abgleich des Hash-Wertes der Aktivierungssoftware mit dem Hash „erwarteter Wert“ durch eine Sicherheitsrecheneinheit (110), Aktivierung, durch eine Hauptrecheneinheit (109), der Aktivierungssoftware, wenn der Hash-Wert und der Hash „erwarteter Wert“ übereinstimmen, und um einen Prozess zu stoppen, wenn beide nicht übereinstimmen, Durchführung, durch die Hauptrecheneinheit, einer Signaturprüfung für die Aktivierungssoftware, wenn der Hash „erwarteter Wert“ nicht in der Speichereinheit gespeichert ist, Speicherung des Hash-Wertes der Aktivierungssoftware in der Speichereinheit als Hash „erwarteter Wert“ sowie Aktivierung der Aktivierungssoftware, wenn die Signaturprüfung erfolgreich ist, und Stoppen eines Prozesses, wenn die Signaturprüfung nicht erfolgreich ist, sowie Aktivieren von N (N ist eine Ganzzahl von zwei oder mehr) Aktivierungssoftware-Teilen durch die Softwareprüfvorrichtung in einer Reihenfolge, wobei die Softwareprüfvorrichtung entweder im Aktivierungsmodus Hash-Ketten-Modus, bei dem eine Hash-Kette aus den N Aktivierungssoftware-Teilen generiert wird, oder in einem Signaturprüfmodus, bei dem die Signaturprüfung für jeden der N Aktivierungssoftware-Teile durchgeführt wird, aktiviert, Erhalten, durch eine Sicherheitsrecheneinheit (110) der Softwareprüfvorrichtung (100), eines Hash-Wertes einer vorhergehenden Aktivierungssoftware die von den N Aktivierungssoftware-Teilen als Erste aktiviert werden soll, und Generieren einer zufälligen Zeichenfolge bei Aktivierung im Hash-Ketten-Modus und Generieren, als erste Hash-Kette, eines Hash-Wertes der vorhergehenden Aktivierungssoftware und eines Hash-Wertes der Zeichenfolge; und Aktivieren, durch die Hauptrecheneinheit (109), der vorhergehenden Aktivierungssoftware, wenn die erste Hash-Kette generiert wird; wobei die Hauptrecheneinheit (109) einen Hash-Wert einer nächsten Aktivierungssoftware erhält, die aktiviert werden soll, beim k-ten (k ist eine Ganzzahl von zwei oder mehr und N oder weniger) von den N Teilen der Aktivierungssoftware, als die k-te Hash-Kette einen Hash-Wert aus: der (k-1)-ten Hash-Kette; und dem Hash-Wert der nächsten Aktivierungssoftware generiert, und die nächste Aktivierungssoftware aktiviert und die k-te Hash-Kette an die Sicherheitsrecheneinheit ausgibt, wenn die nächste Aktivierungssoftware die Aktivierungssoftware ist, die als letzte der N Aktivierungssoftware-Teile aktiviert werden soll; wobei die Sicherheitsrecheneinheit (110) eine Speichereinheit umfasst und, wenn ein Hash-Wert jedes der N Teile der Aktivierungssoftware in der Speichereinheit gespeichert ist, einen erwarteten Wert der k-ten Hash-Kette als eine Hash-Kette „erwarteter Wert“ berechnet, unter Verwendung: des Hash-Wertes jedes der N Teile der Aktivierungssoftware; und der Zeichenfolge, und die k-te Hash-Kette mit der Hash-Kette „erwarteter Wert“ abgleicht, und wobei die Hauptrecheneinheit (109) einen Prozess normal beendet, wenn die k-te Hash-Kette und die Hash-Kette „erwarteter Wert“ übereinstimmen, einen Prozess stoppt, wenn beide nicht übereinstimmen, und sich reaktiviert, indem der Aktivierungsmodus auf Signaturprüfmodus gesetzt wird, wenn der Hash-Wert jedes der N Teile der Aktivierungssoftware nicht in der Speichereinheit gespeichert ist.
  8. Softwareprüfprogramm für eine Softwareprüfvorrichtung (100), die eine Aktivierungssoftware aktiviert, die aktiviert werden soll, wobei das Softwareprüfprogramm dazu führt, dass die Softwareprüfvorrichtung, bei der es sich um einen Computer handelt, Folgendes ausführt: wenn ein Hash „erwarteter Wert“, bei dem es sich um einen erwarteten Wert eines Hash-Wertes der Aktivierungssoftware handelt, in einer Speichereinheit (111) gespeichert ist, einen Sicherheitsrechenprozess zum Abgleich des Hash-Wertes der Aktivierungssoftware mit dem Hash „erwarteter Wert“, und einen Hauptrechenprozess zur Aktivierung der Aktivierungssoftware, wenn der Hash-Wert und der Hash „erwarteter Wert“ übereinstimmen, und zum Stoppen eines Prozesses, wenn beide nicht übereinstimmen, und wobei der Hauptrechenprozess eine Signaturprüfung für die Aktivierungssoftware durchführt, wenn der Hash „erwarteter Wert“ nicht in der Speichereinheit gespeichert ist, den Hash-Wert der Aktivierungssoftware in der Speichereinheit als Hash „erwarteter Wert“ speichert sowie die Aktivierungssoftware aktiviert, wenn die Signaturprüfung erfolgreich ist, und einen Prozess stoppt, wenn die Signaturprüfung nicht erfolgreich ist; Aktivieren von N (N ist eine Ganzzahl von zwei oder mehr) Aktivierungssoftware-Teilen in einer Reihenfolge, wobei die Softwareprüfvorrichtung entweder im Aktivierungsmodus Hash-Ketten-Modus, bei dem eine Hash-Kette aus den N Aktivierungssoftware-Teilen generiert wird, oder in einem Signaturprüfmodus, bei dem die Signaturprüfung für jeden der N Aktivierungssoftware-Teile durchgeführt wird, aktiviert, wobei die Softwareprüfvorrichtung umfasst: eine Sicherheitsrecheneinheit (110) zum Erhalt eines Hash-Wertes einer vorhergehenden Aktivierungssoftware, die von den N Aktivierungssoftware-Teilen als Erste aktiviert werden soll, und zum Generieren einer zufälligen Zeichenfolge bei Aktivierung im Hash-Ketten-Modus und zum Generieren, als erste Hash-Kette, eines Hash-Wertes der vorhergehenden Aktivierungssoftware und eines Hash-Wertes der Zeichenfolge; und der Hauptrechenprozess die vorhergehenden Aktivierungssoftware aktiviert, wenn die erste Hash-Kette generiert wird; und wobei der Hauptrechenprozess einen Hash-Wert einer nächsten Aktivierungssoftware erhält, die aktiviert werden soll, beim k-ten (k ist eine Ganzzahl von zwei oder mehr und N oder weniger) von den N Teilen der Aktivierungssoftware, als die k-te Hash-Kette einen Hash-Wert aus: der (k-1)-ten Hash-Kette; und dem Hash-Wert der nächsten Aktivierungssoftware generiert, und die nächste Aktivierungssoftware aktiviert und die k-te Hash-Kette an die Sicherheitsrecheneinheit ausgibt, wenn die nächste Aktivierungssoftware die Aktivierungssoftware ist, die als letzte der N Aktivierungssoftware-Teile aktiviert werden soll; und wobei die Sicherheitsrecheneinheit (110) eine Speichereinheit umfasst und, wenn ein Hash-Wert jedes der N Teile der Aktivierungssoftware in der Speichereinheit gespeichert ist, einen erwarteten Wert der k-ten Hash-Kette als eine Hash-Kette „erwarteter Wert“ berechnet, unter Verwendung: des Hash-Wertes jedes der N Teile der Aktivierungssoftware; und der Zeichenfolge, und die k-te Hash-Kette mit der Hash-Kette „erwarteter Wert“ abgleicht, und wobei der Hauptrechenprozess einen Prozess normal beendet, wenn die k-te Hash-Kette und die Hash-Kette „erwarteter Wert“ übereinstimmen, einen Prozess stoppt, wenn beide nicht übereinstimmen, und sich reaktiviert, indem der Aktivierungsmodus auf Signaturprüfmodus gesetzt wird, wenn der Hash-Wert jedes der N Teile der Aktivierungssoftware nicht in der Speichereinheit gespeichert ist.
DE112018007934.1T 2018-10-12 2018-10-12 Softwareprüfvorrichtung, softwareprüfverfahren und softwareprüfprogramm Active DE112018007934B4 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/038210 WO2020075303A1 (ja) 2018-10-12 2018-10-12 ソフトウェア検証装置、ソフトウェア検証方法およびソフトウェア検証プログラム

Publications (2)

Publication Number Publication Date
DE112018007934T5 DE112018007934T5 (de) 2021-05-20
DE112018007934B4 true DE112018007934B4 (de) 2024-03-07

Family

ID=70164668

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112018007934.1T Active DE112018007934B4 (de) 2018-10-12 2018-10-12 Softwareprüfvorrichtung, softwareprüfverfahren und softwareprüfprogramm

Country Status (5)

Country Link
US (1) US11914682B2 (de)
JP (1) JP6925542B2 (de)
CN (1) CN112805703A (de)
DE (1) DE112018007934B4 (de)
WO (1) WO2020075303A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112805703A (zh) * 2018-10-12 2021-05-14 三菱电机株式会社 软件验证装置、软件验证方法以及软件验证程序
JP2021099693A (ja) * 2019-12-23 2021-07-01 グローリー株式会社 有価媒体処理装置
WO2022145085A1 (ja) * 2020-12-28 2022-07-07 株式会社日立産機システム 情報処理装置、情報処理システムおよび情報処理装置のファイル処理方法
WO2022147469A1 (en) * 2020-12-30 2022-07-07 Virsec Systems, Inc. Zero dwell time process library and script monitoring
DE112021007690T5 (de) 2021-07-21 2024-03-07 Mitsubishi Electric Corporation Informationsverarbeitungsvorrichtung, Informationsverarbeitungsverfahren und Informationsverarbeitungsprogramm
WO2023145666A1 (ja) * 2022-01-25 2023-08-03 株式会社Jvcケンウッド 組み込みシステムの起動方法、及び、起動プログラム、並びに、組み込みシステム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7350204B2 (en) 2000-07-24 2008-03-25 Microsoft Corporation Policies for secure software execution
EP1369764B1 (de) 2002-06-07 2009-12-23 Microsoft Corporation Verwendung eines Hash beim Starten eines sicheren Betriebssystems
US9087199B2 (en) 2011-03-31 2015-07-21 Mcafee, Inc. System and method for providing a secured operating system execution environment
US9965268B2 (en) 2015-07-07 2018-05-08 Canon Kabushiki Kaisha Method and apparatus for preventing software version rollback

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8375458B2 (en) * 2007-01-05 2013-02-12 Apple Inc. System and method for authenticating code executing on computer system
US9629928B1 (en) * 2008-03-31 2017-04-25 Symantec Corporation Hash-based inventory identification
CN101582880B (zh) * 2008-05-14 2012-06-06 北京启明星辰信息技术股份有限公司 一种基于被审计对象的报文过滤方法及系统
WO2011082322A2 (en) * 2009-12-30 2011-07-07 Intergraph Technologies Company A system and method for transmission of files within a secured network
JP5459845B2 (ja) * 2010-02-17 2014-04-02 株式会社東芝 携帯可能電子装置、携帯可能電子装置の制御方法及びicカード
CN102473223B (zh) 2010-05-13 2015-01-28 松下电器产业株式会社 信息处理装置以及信息处理方法
JP5582909B2 (ja) 2010-07-29 2014-09-03 キヤノン株式会社 プラットフォーム完全性検証システム
US9419804B2 (en) 2011-10-14 2016-08-16 Hitachi, Ltd. Data authenticity assurance method, management computer, and storage medium
CN103209225A (zh) * 2013-04-03 2013-07-17 北京邮电大学 一种基于周期触发代理的sdn广播处理方法
JP2015022521A (ja) 2013-07-19 2015-02-02 スパンション エルエルシー セキュアブート方法、組み込み機器、セキュアブート装置およびセキュアブートプログラム
JP6260066B2 (ja) 2016-01-18 2018-01-17 Kddi株式会社 車載コンピュータシステム及び車両
JP6373888B2 (ja) * 2016-03-01 2018-08-15 株式会社東芝 情報処理装置及び制御方法
JP2018006782A (ja) 2016-06-06 2018-01-11 Kddi株式会社 データ提供システム、データ提供装置、車載コンピュータ、データ提供方法、及びコンピュータプログラム
JP6440334B2 (ja) 2017-08-18 2018-12-19 Kddi株式会社 システム、車両及びソフトウェア配布処理方法
CN112805703A (zh) * 2018-10-12 2021-05-14 三菱电机株式会社 软件验证装置、软件验证方法以及软件验证程序

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7350204B2 (en) 2000-07-24 2008-03-25 Microsoft Corporation Policies for secure software execution
EP1369764B1 (de) 2002-06-07 2009-12-23 Microsoft Corporation Verwendung eines Hash beim Starten eines sicheren Betriebssystems
US9087199B2 (en) 2011-03-31 2015-07-21 Mcafee, Inc. System and method for providing a secured operating system execution environment
US9965268B2 (en) 2015-07-07 2018-05-08 Canon Kabushiki Kaisha Method and apparatus for preventing software version rollback

Also Published As

Publication number Publication date
WO2020075303A1 (ja) 2020-04-16
US20210192014A1 (en) 2021-06-24
CN112805703A (zh) 2021-05-14
DE112018007934T5 (de) 2021-05-20
US11914682B2 (en) 2024-02-27
JP6925542B2 (ja) 2021-08-25
JPWO2020075303A1 (ja) 2021-02-15

Similar Documents

Publication Publication Date Title
DE112018007934B4 (de) Softwareprüfvorrichtung, softwareprüfverfahren und softwareprüfprogramm
DE102020122712A1 (de) Integritätsmanifest-zertifikat
US10256981B2 (en) Secure logging for host security module
DE69815599T2 (de) Verfahren und Vorrichtung zum Schutz von Anwendungsdaten in sicheren Speicherbereichen
US7788730B2 (en) Secure bytecode instrumentation facility
DE19781829C2 (de) Verfahren und Vorrichtung zum Schützen eines Flash-Speichers
US10956575B2 (en) Determine malware using firmware
DE112011104496T5 (de) Validieren von virtuellen Maschinen
DE102018125530A1 (de) Verfahren und Anordnungen für impliziete Integrität
DE112008003931T5 (de) Systeme und Verfahren für Datensicherheit
CN109598122B (zh) 用于检测侧信道攻击的方法和装置
CN110109710B (zh) 一种无物理可信根的os信任链构建方法与系统
US10803176B2 (en) Bios security
CN107111717A (zh) 升级虚拟机上的安全引导策略
CN114651232A (zh) 数据管理
US20110145919A1 (en) Method and apparatus for ensuring consistent system configuration in secure applications
EP2541455B1 (de) Methode und Verfahren für PIN-Eingaben bei konsistentem Software-Stack auf Geldautomaten
KR20130093775A (ko) 시스템 파일 보호 및 복구를 위한 장치, 방법, 사용자 단말기 및 시스템
CN111160879A (zh) 一种硬件钱包及其安全性提升方法和装置
CN109684878A (zh) 一种基于区块链技术隐私信息防篡改方法及系统
EP2911080A1 (de) Verfahren und Vorrichtung zum sicheren Initialisieren eines Computers
DE102014204417A1 (de) Vorrichtung und Verfahren zum Detektieren einer Manipulation an einem Programmcode
DE102020119389A1 (de) Vorrichtung und Verfahren zum sicheren Verwalten von Schlüsseln
EP3286872B1 (de) Bereitstellen eines gerätespezifischen kryptographischen schlüssels aus einem systemübergreifenden schlüssel für ein gerät
EP3248136B1 (de) Verfahren zum betreiben einer computereinheit mit einer sicheren laufzeitumgebung sowie eine solche computereinheit

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R084 Declaration of willingness to licence
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division