DE112013007574T5 - Softwareaktualisierungsvorrichtung und Software-Aktualisierungsprogramm - Google Patents

Softwareaktualisierungsvorrichtung und Software-Aktualisierungsprogramm Download PDF

Info

Publication number
DE112013007574T5
DE112013007574T5 DE112013007574.1T DE112013007574T DE112013007574T5 DE 112013007574 T5 DE112013007574 T5 DE 112013007574T5 DE 112013007574 T DE112013007574 T DE 112013007574T DE 112013007574 T5 DE112013007574 T5 DE 112013007574T5
Authority
DE
Germany
Prior art keywords
verification
data
unit
intermediate value
update
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112013007574.1T
Other languages
English (en)
Inventor
Takeshi Sugawara
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 DE112013007574T5 publication Critical patent/DE112013007574T5/de
Pending legal-status Critical Current

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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Abstract

Eine Aufgabe der vorliegenden Erfindung besteht darin, Software zu ermöglichen, sicher aktualisiert zu werden, wenn ein flüchtiger Speicher, der ein Arbeitsbereich wird, nicht ausreichend groß ist. Eine eingebettete Vorrichtung führt aufeinanderfolgend einen Verifizierungsprozess bei jedem von mehreren Abschnitten durch, die durch Teilung von Aktualisierungsdaten für die Aktualisierung der Software erhalten wurden. Die eingebettete Vorrichtung speichert einen Zwischenwert, der während des Verifizierungsprozesses erhalten wurde. Wenn der Verifizierungsprozess für jeden der Abschnitte beendet ist, vergleicht die eingebettete Vorrichtung einen in den Verifizierungsprozessen erhaltenen Wert mit Verifizierungsdaten, um zu prüfen, dass keine Manipulation vorliegt. Wenn bestätigt werden kann, dass keine Manipulation vorliegt, führt die eingebettete Vorrichtung wieder den Verifizierungsprozess aufeinanderfolgend bei jedem Abschnitt durch. Die eingebettete Vorrichtung vergleicht einen während des Verifizierungsprozesses erhaltenen Zwischenwert mit dem gespeicherten Zwischenwert und aktualisiert die Software unter Verwendung des Abschnitts, wenn der erhaltene Zwischenwert und der gespeicherte Zwischenwert einander gleich sind.

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung bezieht sich auf eine Technologie zum sicheren Aktualisieren von Software wie Firmware unter Verwendung von Aktualisierungsdaten.
  • Stand der Technik
  • Software, die eine Operation einer eingebetteten Vorrichtung definiert, wird als Firmware bezeichnet.
  • Das Aktualisieren der Firmware ermöglicht, dass eine Fehlerkorrektur und eine Funktionsergänzung nach dem Produktversand implementiert wird. Wenn die Aktualisierung bei dieser Gelegenheit durch einen Endverbraucher implementiert werden kann, ist ein Produktrückruf nicht erforderlich. Somit ist im Allgemeinen eine Firmwareaktualisierungsfunktion durch den Endverbraucher für die eingebettete Vorrichtung vorgesehen.
  • Ein allgemeiner Vorgang des Aktualisierens der Firmware durch den Endverbraucher wird die folgenden Maßnahmen (1) bis (3) gebildet:
    • (1) der Endverbraucher erwirbt Aktualisierungsdaten von einer Webseite eines Herstellers;
    • (2) die Aktualisierungsdaten werden durch Leitungskommunikation oder ein Aufzeichnungsmedium in eine eingebettete Zielvorrichtung eingegeben; und
    • (3) die eingebettete Vorrichtung schreibt die Firmware neu auf der Grundlage der Aktualisierungsdaten.
  • Wenn die Firmwareaktualisierungsfunktion in der eingebetteten Vorrichtung implementiert wird, kann ein böswilliger Endverbraucher geänderte Aktualisierungsdaten in die eingebettete Zielvorrichtung eingeben, um beispielsweise die eingebettete Vorrichtung zu modifizieren. Wenn eine derartige Modifikation implementiert wurde, kann eine in der eingebetteten Vorrichtung enthaltene Sicherheitsfunktion umgangen werden. Als eine Folge kann der Hersteller der eingebetteten Vorrichtung einen Schaden aufgrund eines illegalen Kopierens oder gefälschter Produktherstellung erleiden.
  • Somit wird eine Technologie benötigt, die eine willkürliche Firmwareänderung in einer eingebetteten Vorrichtung verhindert, wenn die Firmware aktualisiert wird.
  • Das Nichtpatent-Dokument 1 beschreibt die Technologie, die eine willkürliche Firmwareänderung unter Verwendung einer Verschlüsselungstechnologie verhindert. Das Nichtpatent-Dokument 1 wendet die Erfassung einer Verfälschung einer Nachricht unter Verwendung einer digitalen Signatur oder eines Nachrichtenberechtigungscodes auf den Firmwareschutz an. Zitatliste Nichtpatentliteratur
    Nichtpatent-Dokument 1: RFC4108, ”Using Cryptographic Message Syntax (CMS) to Protect Firmware Packages, http://tools.ietf.org/html/rfc4108
    Nichtpatent-Dokument 2: E. Fleischmann, C. Forler, S. Lucks und J. Wenzel, ”McOE: A Family of Almost Foolproof On-Line Authenticated Encryption Schemes”, Cryptology ePrint Archive: Report 2011/644
    Nichtpatent-Dokument 3: A. J. Menezes, P. C. van Oorschot und S. A. Vanstone, ”Handbook of Applied Cryptography”, 2001.
    Nichtpatent-Dokument 4: G. Bertoni, J. Damen, M. Peters und G. Van Assche, ”On the Indifferentiability oft he Sponge Construction”, Eurocrypt 2008.
    Nichtpatent-Dokument 5: NIST, ”Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) for Confidentiality and Authentication”, Draft Special Publication 800-38D, April 2006.
  • Kurzfassung der Erfindung
  • Technisches Problem
  • Wenn die Manipulationserfassungtechnologie auf den Firmwareschutz angewendet wird, wie im Nichtpatent-Dokument 1 beschrieben ist, muss ein Verifizierungsprozess zum Durchführen der Manipulationserfassung in einer eingebetteten Vorrichtung, in der die Firmware zu aktualisieren ist, durchgeführt werden.
  • Ein flüchtiger Speicher, der ein Arbeitsbereich wird, muss ausreichend groß sein, um diesen Verifizierungsprozess sicher zu implementieren. Wenn eine Vorrichtung eine CPU hoher Leistung hat, wird diesem Erfordernis im Allgemeinen genügt. Jedoch kann es in dem Fall der eingebetteten Vorrichtung, die eine vergleichsweise geringe Leistung hat, möglich sein, dass diesem Erfordernis nicht genügt wird. Insbesondere in dem Fall einer CPU, die einen Flash-ROM (Einchip-Mikrocomputer) enthält, hat der flüchtige Speicher im Allgemeinen eine kleinere Kapazität als ein nichtflüchtiger Speicher. Somit kann diesem Erfordernis häufig nicht genügt werden.
  • Es ist eine Aufgabe der vorliegenden Erfindung, zu ermöglichen, dass Software wie Firmware sicher aktualisiert wird, wenn ein flüchtiger Speicher, der ein Arbeitsbereich wird, nicht ausreichend groß ist.
  • Lösung des Problems
  • Eine Softwareaktualisierungsvorrichtung gemäß der vorliegenden Erfindung kann enthalten:
    eine Datenerwerbseinheit zum aufeinanderfolgenden Erwerben jedes von mehreren geteilten Aktualisierungsdatenblöcken, die durch Teilung von Aktualisierungsdaten zum Aktualisieren von Software erhalten wurden;
    eine Verifizierungseinheit zum Durchführen eines Verifizierungsprozesses bei den von der Datenerwerbseinheit erworbenen geteilten Aktualisierungsdatenblöcken;
    eine Zwischenwert-Speichereinheit zum Speichern eines während des durch die Verifizierungseinheit durchgeführten Verifizierungsprozesses erhaltenen Zwischenwerts;
    eine Datenwiedererwerbseinheit zum aufeinanderfolgenden Wiedererwerben jedes der geteilten Aktualisierungsdatenblöcke, wenn der Verifizierungsprozess für jeden der geteilten Aktualisierungsblöcke beendet ist und die Verifizierung der Aktualisierungsdatenblöcke erfolgreich ist;
    eine Wiederverifizierungseinheit zum Durchführen des Verifizierungsprozesses bei den von der Datenwiedererwerbseinheit erworbenen geteilten Aktualisierungsdatenblöcken; und
    eine Aktualisierungseinheit zum Aktualisieren der Software unter Verwendung der geteilten Aktualisierungsdatenblöcke, die von der Datenwiedererwerbseinheit erworben wurden, wenn ein während des durch die Wiederverifizierungseinheit durchgeführten Verifizierungsprozesses erhaltener Zwischenwert und der von der Zwischenwert-Speichereinheit gespeicherte Zwischenwert dieselben sind.
  • Vorteilhafte Wirkungen der Erfindung
  • In der Softwareaktualisierungsvorrichtung nach der vorliegenden Erfindung wird der Verifizierungsprozess nicht für alle Aktualisierungsdaten gleichzeitig durchgeführt. Der Verifizierungsprozess wird für jeden der mehreren geteilten Aktualisierungsdatenblöcke, die durch die Teilung der Aktualisierungsdaten erhalten wurden, durchgeführt. Somit kann, selbst wenn ein flüchtiger Speicher, der ein Arbeitsbereich wird, klein ist, der Verifizierungsprozess durchgeführt werden.
  • Weiterhin wird in der Softwareaktualisierungsvorrichtung nach der vorliegenden Erfindung der Verifizierungsprozess aufeinanderfolgend bei jedem geteilten Aktualisierungsdatenblock durchgeführt, um zu prüfen, dass jeder geteilte Aktualisierungsdatenblock nicht manipuliert ist, und der während des Verifizierungsprozesses erhaltene Zwischenwert wird gespeichert. Dann wird, wenn bestätigt wird, dass jeder geteilte Aktualisierungsdatenblock nicht manipuliert ist, der Verifizierungsprozess wieder aufeinanderfolgend für jeden geteilten Aktualisierungsdatenblock durchgeführt. Dann wird geprüft, ob der erhaltene Zwischenwert und der vorher gespeicherte Zwischenwert einander gleich sind. Wenn bestätigt wird, dass der erhaltene Zwischenwert und der vorher gespeicherte Zwischenwert einander gleich sind, wird die Software aktualisiert. Folglich kann auch ein betrügerisches Verhalten verhindert werden, durch das, nachdem der Verifizierungsprozess einmal beendet wurde, die Software unter Verwendung der geteilten Aktualisierungsdatenblöcke, die manipuliert oder gefälscht wurden, aktualisiert wird.
  • Kurzbeschreibung der Zeichnungen
  • [1] ist ein Hardware-Konfigurationsdiagramm einer eingebetteten Vorrichtung 100.
  • [2] ist ein Flussdiagramm, das den Ablauf eines alternativen Verfahrens 1 illustriert.
  • [3] ist ein Diagramm, das einen Überblick über das alternative Verfahren 2 illustriert.
  • [4] ist ein Flussdiagramm, das einen Ablauf eines alternativen Verfahrens 3 illustriert.
  • [5] ist ein Diagramm, das einen Überblick über ein Verfahren gemäß dem Ausführungsbeispiel 1 illustriert.
  • [6] ist ein funktionelles Konfigurationsdiagramm der eingebetteten Vorrichtung 100 nach dem Ausführungsbeispiel 1.
  • [7] ist ein Flussdiagramm, das einen Firmwareaktualisierungsvorgang der eingebetteten Vorrichtung 100 nach dem Ausführungsbeispiel 1 illustriert.
  • [8] ist ein Diagramm, das ein anderes Beispiel für eine Hardwarekonfiguration der eingebetteten Vorrichtung 100 illustriert.
  • [9] ist ein Diagramm, das ein anderes Beispiel für die Hardwarekonfiguration der eingebetteten Vorrichtung 100 illustriert.
  • [10] ist ein Diagramm, das ein anderes Beispiel für die Hardwarekonfiguration der eingebetteten Vorrichtung 100 illustriert.
  • [11] ist ein Diagramm, das ein anderes Beispiel für die Hardwarekonfiguration der eingebetteten Vorrichtung 100 illustriert.
  • [12] ist ein Diagramm, das Beispiele für Zwischenwerte illustriert.
  • [13] ist ein Diagramm, das Beispiele für die Zwischenwerte illustriert.
  • [14] ist ein Diagramm, das Beispiele für die Zwischenwerte illustriert.
  • Beschreibung von Ausführungsbeispielen
  • Ausführungsbeispiel 1
  • 1 ist ein Hardware-Konfigurationsdiagramm einer eingebetteten Vorrichtung 100 (Softwareaktualisierungsvorrichtung).
  • Die eingebettete Vorrichtung 100 enthält eine CPU 101, ein Speichermedium 102, einen flüchtigen Speicher 103 und einen nichtflüchtigen Speicher 104.
  • Ein Endbenutzer liefert eine Aktualisierungsdatei 105 (Aktualisierungsdaten) durch das Speichermedium 102 zu der eingebetteten Vorrichtung 100. Die eingebettete Vorrichtung 100 aktualisiert Firmware 109 in dem nichtflüchtigen Speicher 104 unter Verwendung der in dem Speichermedium 102 gespeicherten Aktualisierungsdatei 105.
  • Wenn die Manipulationserfassungstechnologie auf den Schutz der Firmware angewendet wird, liefert der Endbenutzer Verifizierungsdaten 106 zum Erfassen einer Manipulation der Aktualisierungsdatei 105 zusammen mit der Aktualisierungsdatei 105 zu der eingebetteten Vorrichtung 100.
  • Die CPU 101 führt Prozesse wie folgt durch, wenn die Firmware 109 aktualisiert wird.
  • Zuerst führt die CPU 101 einen Prozess A durch, um die Aktualisierungsdatei 105 und die Verifizierungsdaten 106, die in dem Speichermedium 102 vorhanden sind, in den flüchtigen Speicher 103 zu kopieren. Die kopierten Daten werden als eine Aktualisierungsdatei 107 und als Verifizierungsdaten 108 bezeichnet.
  • Nachfolgend führt die CPU 101 einen Prozess B durch, um zu verifizieren, ob ein Wert für die Verifizierung, der durch Durchführen eines Verifizierungsprozesses bei der Aktualisierungsdatei 107 erhalten wurde, der gleiche ist wie die Verifizierungsdaten 108. Der Verifizierungsprozess ist ein Prozess, durch den der Wert für die Verifizierung unter Verwendung eines Verschlüsselungsprozesses berechnet wird.
  • Wenn ein Ergebnis, das durch Durchführen des Verifizierungsprozesses erhalten wird, nicht das gleiche wie die Verifizierungsdaten 108 ist, wird erkannt, dass eine Manipulation erfasst wurde. Dann wird der Aktualisierungsprozess unterbrochen und an diesem Punkt beendet. Wenn andererseits das Ergebnis der Verifizierung das gleiche wie die Verifizierungsdaten 108 ist, führt die CPU 101 einen Prozess C durch, im die Aktualisierungsdatei 107 in dem flüchtigen Speicher 103 in den nichtflüchtigen Speicher 104 zu schreiben, wodurch die Firmware 109 aktualisiert wird.
  • Indem die vorbeschriebenen Prozesse zu einer Zeit der Aktualisierung durchgeführt werden, kann verhindert werden, dass die in dem nichtflüchtigen Speicher 104 gespeicherte Firmware 109 unter Verwendung der Aktualisierungsdatei 107, die manipuliert wurde, aktualisiert wird.
  • Es ist erforderlich, dass der flüchtige Speicher 103 eine Kapazität zum Speichern der Aktualisierungsdatei 107 und der Verifizierungsdaten 108 und weiterhin zum Durchführen des Verifizierungsprozesses hat, um das vorbeschriebene Verfahren zu implementieren.
  • Es werden nun drei alternative Verfahren, wenn der flüchtige Speicher 103 keine ausreichende Kapazität hat, beschrieben. Dann wird, nachdem mit den drei Verfahren assoziierte Probleme erörtert wurden, ein Verfahren nach dem Ausführungsbeispiel 1 beschrieben.
  • (Alternatives Verfahren 1)
  • Das alternative Verfahren 1 ist ein Verfahren, durch das die in dem nichtflüchtigen Speicher 104 gespeicherte Firmware 109 unter Verwendung der Aktualisierungsdatei 107 aktualisiert wird, ohne dass eine Beendigung eines Verifizierungsprozesses abgewartet wird, und die eingebettete Vorrichtung außer Betrieb gesetzt wird, wenn eine Manipulation in dem Verifizierungsprozess entdeckt wird. Wenn die eingebettete Vorrichtung 100 außer Betrieb gesetzt wird, wird es erforderlich, dass die Firmware 109 wieder aktualisiert wird.
  • 2 ist ein Flussdiagramm, das den Ablauf des alternativen Verfahrens 1 illustriert.
  • In dem alternativen Verfahren 1 wird die Aktualisierungsdatei 107 vorher in m Abschnitte der Abschnittseinheit (geteilte Aktualisierungsdatenblöcke) geteilt.
  • Dann initialisiert die CPU 101 ein Flag auf 1 (ungültig) (S11).
  • Nachfolgend lädt die CPU 101 jeden Abschnitt der Aktualisierungsdatei 107 in den flüchtigen Speicher 103 (S12), führt den Verifizierungsprozess bei den Daten des in S12 geladenen Abschnitts durch (S13) und überträgt die Daten des in S12 geladenen Abschnitts zu dem nichtflüchtigen Speicher 104 (S14) in einer Schleife von S12 bis S14. Hierdurch wird die Firmware 109 allmählich aktualisiert.
  • Dann liest, wenn die Prozesse von S12 bis S14 für jeden von sämtlichen Abschnitten beendet sind und ein Wert für die Verifizierung berechnet ist, die CPU 101 die Verifizierungsdaten 108. Die CPU 101 vergleicht den in den Verifizierungsprozessen erhaltenen Wert für die Verifizierung mit den Verifizierungsdaten 108, um zu bestimmen, ob die Verifizierung erfolgreich war oder nicht (S15). Wenn bestimmt wird, dass die Verifizierung erfolgreich war (Erfolg in S15), setzt die CPU 101 das Flag auf 0 (Erfolg) (S16) und beendet dann den Vorgang. Wenn andererseits bestimmt wird, dass die Verifizierung fehlgeschlagen ist (Fehler in S15), beendet die CPU 101 den Vorgang, so wie er ist.
  • Die eingebettete Vorrichtung 100 prüft, ob das Flag gleich 0 ist (Erfolg) oder nicht, wenn die eingebettete Vorrichtung 100 aktiviert wird oder dergleichen. Wenn das Flag nicht 0 (Erfolg) ist, wird die Aktivierung gestoppt, und die eingebettete Vorrichtung 100 antwortet derart, dass eine erneute Aktualisierung der Firmware 109 angefordert wird.
  • Bei dem alternativen Verfahren 1 wird die eingebettete Vorrichtung 100 jedoch außer Betrieb gesetzt, wenn die Verifizierung fehlgeschlagen ist. Aus diesem Grund kann das alternative Verfahren 1 nur dann angewendet werden, wenn die eingebettete Vorrichtung 100 vorübergehend außer Betrieb gesetzt werden kann.
  • Weiterhin kann in Abhängigkeit von einem Implementierungsverfahren der Firmware 109 die gesamte Flagprüffunktion zu einer Zeit der Aktivierung überschrieben werden, so dass die Flagprüfung umgangen werden kann. In diesem Fall arbeitet die eingebettete Vorrichtung 100 in einem Zustand, in welchem die Firmware 109 in betrügerischer Weise aktualisiert wurde.
  • Weiterhin kann in Abhängigkeit von einem Implementierungsverfahren des Verifizierungsprozesses ein Klartext für jeden verschlüsselten Satz der Aktualisierungsdatei 107, der geändert wurde, in den nichtflüchtigen Speicher 104 geschrieben werden. Informationen über den Klartext können daher zu einer Entschlüsselung der für den Verifizierungsprozess verwendeten Verschlüsselung führen (siehe Missbrauch der Online-Entschlüsselung im Nichtpatent-Dokument 2).
  • (Alternatives Verfahren 2)
  • Das alternative Verfahren 2 ist ein Verfahren, bei dem die Verifizierungsdaten 108 für jeden Abschnitt der Aktualisierungsdatei 107 vorgesehen sind, und eine Verifizierung wird für jeden Abschnitt durchgeführt.
  • 3 ist ein Diagramm, das eine Übersicht über das alternative Verfahren 2 illustriert.
  • Wie in (a) von 3 illustriert ist, wird das Format der Aktualisierungsdatei 107 geändert, um für jeden Abschnitt die Verifizierungsdaten 108 zum Verifizieren des Abschnitts zu erhalten. Dies ermöglicht, dass die CPU 101 einen Verifizierungsprozess für jeden Abschnitt unabhängig durchführt. Demgemäß kann die CPU 101 aufeinanderfolgend den Verifizierungsprozess für jeden Abschnitt durchführen und kann das Schreiben in den nichtflüchtigen Speicher 104 durchführen, beginnend mit dem Abschnitt, für den der Verifizierungsprozess beendet wurde. Als eine Folge kann verhindert werden, dass Daten, für die der Verifizierungsprozess nicht beendet wurde, in den nichtflüchtigen Speicher 104 geschrieben werden, um die Firmware 109 zu aktualisieren.
  • Bei dem alternativen Verfahren 2 kann jedoch ein Angriff, bei dem die Abschnitte in der Datei umgeordnet werden, wie in (b) von 3 illustriert ist, durchgeführt werden. Weiterhin kann ein Angriff, bei dem ein Teil der Abschnitte durch eine alte Version ersetzt wird, wie in (c) von 3 illustriert ist, durchgeführt werden.
  • (Alternatives Verfahren 3)
  • Das alternative Verfahren 3 ist ein Verfahren, bei dem jeder Abschnitt der Aktualisierungsdatei 107 aufeinanderfolgend für einen Verifizierungsprozess wie bei dem alternativen Verfahren 1 eingegeben wird, und wenn die Verifizierung der gesamten Aktualisierungsdatei 107 erfolgreich ist, wird jeder Abschnitt der Aktualisierungsdatei 107 wieder erworben, um die Firmware 109 zu aktualisieren.
  • 4 ist ein Flussdiagramm, das einen Ablauf des alternativen Verfahrens 3 illustriert.
  • Bei dem alternativen Verfahren 3 wird die Aktualisierungsdatei 107 vorher in m Abschnitte durch Abschnittseinheit geteilt, wie bei dem alternativen Verfahren 1.
  • Dann lädt die CPU 101 jeden Abschnitt der Aktualisierungsdatei 107 in den flüchtigen Speicher 103 (S21) und führt den Verifizierungsprozess bei den Daten des in S21 geladenen Abschnitts durch (S22), in einer Schleife von S21 bis S22.
  • Dann liest, wenn die Prozesse von S21 bis S22 für jeden von sämtlichen Abschnitten beendet sind und ein Wert für die Verifizierung berechnet ist, die CPU 101 die Verifizierungsdaten 108. Die CPU 101 vergleicht den in den Verifizierungsprozessen erhaltenen Wert für die Verifizierung mit den Verifizierungsdaten 108, um zu bestimmen, ob die Verifizierung erfolgreich war oder nicht (S23). Wenn bestimmt wird, dass die Verifizierung erfolgreich war (Erfolg in S23), geht die CPU 101 im Ablauf zu S24 weiter. Wenn andererseits bestimmt wird, dass die Verifizierung fehlgeschlagen ist (Fehler in S23), beendet die CPU 101 den Vorgang ohne Aktualisierung der Firmware 109.
  • Wenn bestimmt wird, dass die Verifizierung erfolgreich war, lädt die CPU 101 jeden Abschnitt der Aktualisierungsdatei 107 wieder in den flüchtigen Speicher 103 (S24) und überträgt die Daten des in S24 geladenen Abschnitts zu dem nichtflüchtigen Speicher 104 (S25), in einer Schleife von S24 bis S25. Hierdurch wird die Firmware 109 allmählich aktualisiert.
  • Bei dem alternativen Verfahren 3 kann die Firmware 109 aktualisiert werden, nachdem die Verifizierung der gesamten Aktualisierungsdatei 107 beendet wurde.
  • Bei dem alternativen Verfahren 3 ist jedoch nicht sichergestellt, dass die Aktualisierungsdatei 107, die zum ersten Mal in der Schleife von S21 und S22 geladen wurde, denselben Inhalt wie die zum zweiten Mal in der Schleife von S24 bis S25 geladene Aktualisierungsdatei 107 hat. Das heißt, um ein Beispiel zu nehmen, dass ein Angriff möglich wird, bei welchem unter Verwendung des Speichermediums 102, das manipuliert wurde, die Aktualisierungsdatei 107, die geändert wurde, nur zu der Zeit des zweiten Ladens geladen wird.
  • (Verfahren gemäß Ausführungsbeispiel 1)
  • Ein Verfahren nach dem Ausführungsbeispiel 1 ist ein Verfahren, bei dem jeder Abschnitt der Aktualisierungsdatei 107 aufeinanderfolgend für einen Verifizierungsprozess eingegeben wird und, wenn die Verifizierung der Aktualisierungsdatei 107 erfolgreich ist, jeder Abschnitt der Aktualisierungsdatei 107 wieder von dem Speichermedium 102 erworben wird, um die Firmware 109 zu aktualisieren, wie bei dem alternativen Verfahren 3. Bei dem Verfahren nach dem Ausführungsbeispiel 1 wird jedoch ein Zwischenwert, der erhalten wird, wenn der Verifizierungsprozess für die zum ersten Mal geladene Aktualisierungsdatei 107 durchgeführt wurde, gespeichert. Dann wird der Verifizierungsprozess auch für die zum zweiten Mal geladene Aktualisierungsdatei 107 durchgeführt. Der erhaltene Zwischenwert wird mit dem gespeicherten Zwischenwert verglichen, um zu prüfen, ob die zum ersten Mal geladene Aktualisierungsdatei 107 und die zum zweiten Mal geladene Aktualisierungsdatei 107 denselben Inhalt haben.
  • 5 ist ein Diagramm, das eine Übersicht über das Verfahren nach dem Ausführungsbeispiel 1 illustriert.
  • Gemäß 5 ist die Aktualisierungsdatei 107 in vier Abschnitte 1 bis 4 unterteilt. Jeder der Abschnitte 1 bis 4 hat eine Größe, bei der unter Berücksichtigung der Kapazität des flüchtigen Speichers 103 der Verifizierungsprozess durchgeführt werden kann, während die Daten eines Abschnitts gespeichert werden.
  • Zuerst liest die CPU 101 den Abschnitt 1, um den Verifizierungsprozess durchzuführen. An diesem Punkt speichert die CPU 101 einen Zwischenwert 1, der während des Verifizierungsprozesses erhalten wurde. Nachfolgend liest die CPU 101 den Abschnitt 2, um den Verifizierungsprozess durchzuführen. An diesem Punkt speichert die CPU 101 einen Zwischenwert 2, der während des Verifizierungsprozesses erhalten wurde. In gleicher Weise liest die CPU 101 aufeinanderfolgend jeden der Abschnitte 3 und 4, um den Verifizierungsprozess durchzuführen. Die CPU 101 speichert dann Zwischenwerte 3 und 4, die während der Verifizierungsprozesse erhalten wurde.
  • Dann vergleicht die CPU 101 einen Wert für die Verifizierung, der in den Verifizierungsprozessen erhalten wurde, mit den Verifizierungsdaten 108, um zu bestimmen, ob die Verifizierung erfolgreich war oder nicht.
  • Wenn bestimmt wird, dass die Verifizierung erfolgreich war, liest die CPU 101 wieder den Abschnitt 1, um den Verifizierungsprozess durchzuführen, wodurch ein Zwischenwert 1' erhalten wird. Die CPU 101 vergleicht den erhaltenen Wert 1' mit dem gespeicherten Zwischenwert 1, um zu prüfen, ob der Zwischenwert 1' derselbe wie der Zwischenwert 1 ist. Dann aktualisiert, wenn bestätigt werden kann, dass der Zwischenwert 1' derselbe wie der Zwischenwert 1 ist, die CPU 101 die Firmware 109 unter Verwendung des Abschnitts 1. Nachfolgend liest die CPU 101 wieder den Abschnitt 2, um den Verifizierungsprozess durchzuführen, wodurch ein Zwischenwert 2' erhalten wird. Die CPU 101 vergleicht den erhaltenen Zwischenwert 2' mit dem gespeicherten Zwischenwert 2, um zu prüfen, ob der Zwischenwert 2' derselbe wie der Zwischenwert 2 ist. Dann aktualisiert, wenn bestätigt werden kann, dass der Zwischenwert 2' derselbe wie der Zwischenwert 2 ist, die CPU 101 die Firmware 109 unter Verwendung des Abschnitts 2. In gleicher Weise liest die CPU 101 aufeinanderfolgend auch jeden der Abschnitte 3 und 4, führt Vergleiche der Zwischenwerte durch und aktualisiert dann die Firmware 109.
  • 6 ist ein funktionelles Konfigurationsdiagramm der eingebetteten Vorrichtung 100 nach dem Ausführungsbeispiel 1.
  • Die eingebettete Vorrichtung 100 enthält eine Datenerwerbseinheit 10, eine Verifizierungseinheit 20, eine Zwischenwert-Speichereinheit 30, eine Datenwiedererwerbseinheit 40, eine Wiederverifizierungseinheit 50, eine Vergleichseinheit 60 und eine Aktualisierungseinheit 70. Hier sind die Datenerwerbseinheit 10, die Verifizierungseinheit 20, die Zwischenwert-Speichereinheit 30, die Datenwiedererwerbseinheit 40, die Wiederverifizierungseinheit 50, die Vergleichseinheit 60 und die Aktualisierungseinheit 70 jeweils beispielsweise ein Programm oder Software, sind in dem nichtflüchtigen Speicher 104 gespeichert und werden jeweils durch die CPU 101 gelesen und ausgeführt. Diese Einheiten können jeweils eine Funktion sein, die einen Teil der Firmware 109 bildet. Alternativ können diese Einheiten jeweils durch Hardware, wie eine Schaltung oder eine Vorrichtung, implementiert sein.
  • 7 ist ein Flussdiagramm, das einen Firmwareaktualisierungsvorgang der eingebetteten Vorrichtung 100 nach dem Ausführungsbeispiel 1 illustriert.
  • Die Aktualisierungsdatei 107 wird vorher in m Abschnitte der Abschnittseinheit unterteilt.
  • Dann werden zuerst Prozesse für jeden Abschnitt der Aktualisierungsdatei 107 aufeinanderfolgend in einer Schleife von S31 bis S33 durchgeführt. Insbesondere lädt die Datenerwerbseinheit 10 einen der Abschnitte der in dem Speichermedium 102 gespeicherten Aktualisierungsdatei 107 in den flüchtigen Speicher 103 (S31). Nachfolgend führt die Verifizierungseinheit 20 einen Verifizierungsprozess in dem flüchtigen Speicher 103 bei Daten des in S31 in den flüchtigen Speicher 103 geladenen Abschnitts durch (S32). Dann speichert die Zwischenwert-Speichereinheit 30 in dem flüchtigen Speicher 103 einen Zwischenwert, der während des in S32 durchgeführten Verifizierungsprozesses erhalten wurde (S33).
  • Wenn die Prozesse von S31 bis S33 für jeden von sämtlichen Abschnitten beendet sind und ein Wert für die Verifizierung berechnet ist, liest die Datenerwerbseinheit 10 die in dem Speichermedium 102 gespeicherten Verifizierungsdaten 108. Die Verifizierungseinheit 20 vergleicht den in den in S32 durchgeführten Verifizierungsprozessen erhaltenen Wert für die Verifizierung mit den Verifizierungsdaten 108, um zu bestimmen, ob die Verifizierung erfolgreich war oder nicht (S34). Wenn bestimmt wird, dass die Verifizierung erfolgreich war (Erfolg in S34), überträgt die Verifizierungseinheit 20 den Vorgang zu S35. Wenn andererseits bestimmt wird, dass die Verifizierung fehlgeschlagen ist (Fehler in S34), beendet die Verifizierungseinheit 20 den Vorgang ohne Aktualisierung der Firmware 109.
  • Wenn bestimmt wird, dass die Verifizierung erfolgreich war, werden die Prozesse für jede Abschnitt der Aktualisierungsdatei 107 aufeinanderfolgend in einer Schleife von S35 bis S38 durchgeführt. Genauer gesagt, die Datenwiedererwerbseinheit 40 lädt den einen der Abschnitte der Aktualisierungsdatei 107, die in dem Speichermedium 102 gespeichert ist, in den flüchtigen Speicher 103 (S35). Nachfolgend führt die Wiederverifizierungseinheit 50 den Verifizierungsprozess in dem flüchtigen Speicher 103 bei Daten des in S35 geladenen Abschnitts durch (S36). Dann vergleicht die Vergleichseinheit 60 einen Zwischenwert, der während des in S36 durchgeführten Verifizierungsprozesses erhalten wurde, mit dem in S33 in dem flüchtigen Speicher 103 gespeicherten Zwischenwert, um zu bestimmen, ob die Zwischenwerte dieselben sind oder nicht (S37). Wenn bestimmt wird, dass die Zwischenwerte dieselben sind (dieselben in S37), aktualisiert die Aktualisierungseinheit 70 die Firmware 109 unter Verwendung der Daten des in S35 gelesenen Abschnitts der Aktualisierungsdatei 10 (S38). Wenn andererseits bestimmt wird, dass die Zwischenwerte nicht dieselben sind (nicht dieselben in S37), wird der Vorgang ohne Aktualisierung der Firmware 109 beendet.
  • Wie vorstehend beschrieben ist, wird bei dem Verfahren nach dem Ausführungsbeispiel 1 die Firmware 109 unter Verwendung des Abschnitts aktualisiert, für den bestätigt wurde, dass er denselben Inhalt hat wie der Abschnitt, der verifiziert wurde. Folglich empfängt, anders als in dem Fall des alternativen Verfahrens 3, die eingebettete Vorrichtung nicht einen Angriff, in welchem unter Verwendung des Speichermediums 102, das manipuliert wurde, die Aktualisierungsdatei 107, die geändert wurde, nur zu der Zeit des zweiten Ladens geladen wird.
  • Bei dem Verfahren nach dem Ausführungsbeispiel 1 wird jeder Zwischenwert nicht in dem nichtflüchtigen Speicher 104 gespeichert und wird nicht außerhalb des flüchtigen Speichers 103 dargelegt. Somit wird der Zwischenwert nicht von einem Angreifer gelesen. Folglich kann ein Angriff unter Verwendung des Zwischenwerts nicht erfolgen.
  • Bei dem Verfahren nach dem Ausführungsbeispiel 1 wird die Aktualisierungsdatei 107 für jeden Abschnitt geteilt, jeder Abschnitt wird in den flüchtigen Speicher 103 geladen, und der Verifizierungsprozess wird durchgeführt, wie bei den alternativen Verfahren 1 bis 3. Somit kann, selbst wenn die Kapazität des flüchtigen Speichers 103 klein ist, der Verifizierungsprozess durchgeführt werden.
  • In der vorstehenden Beschreibung wird angenommen, dass die eingebettete Vorrichtung 100 eine in 1 illustrierte Hardwarekonfiguration hat.
  • Wie in 8 illustriert ist, kann jedoch die eingebettete Vorrichtung 100 eine Konfiguration haben, die einen Chip 110 enthält, in welchem die CPU 101, der flüchtige Speicher 103 und der nichtflüchtige Speicher 104 zusammen angeordnet sind.
  • Alternativ kann, wie in 9 illustriert ist, die eingebettete Vorrichtung 100 eine Konfiguration haben, die einen Sicherheitschip 111 zusätzlich zu der in 1 illustrierten Konfiguration enthält. Dann kann die Anordnung so ausgebildet sein, dass der Verifizierungsprozess unter Verwendung des Sicherheitschips 111 durchgeführt wird.
  • Alternativ kann, wie in 10 illustriert ist, die eingebettete Vorrichtung 100 eine Konfiguration haben, die eine Kommunikationsschnittstelle 112 anstelle des Speichermediums 102 enthält. Dann kann die CPU 101 die Aktualisierungsdatei 105 und die Verifizierungsdaten 106 von einem externen PC 113 oder dergleichen über die Kommunikationsschnittstelle 112 erwerben, um die Aktualisierungsdatei 105 und die Verifizierungsdaten 106 in dem flüchtigen Speicher 103 zu speichern. Alternativ kann, wie in 11 illustriert ist, die CPU 101 die Aktualisierungsdatei 105 und die Verifizierungsdaten 106 von einem externen Server 114 oder dergleichen, der über das Internet oder dergleichen verbunden ist, über die Kommunikationsschnittstelle 112 erwerben, um die Aktualisierungsdatei 105 und die Verifizierungsdaten 106 in dem flüchtigen Speicher 103 zu speichern.
  • In der vorstehenden Beschreibung wird jeder Zwischenwert auf gerade einen Wert gesetzt, der während des Verifizierungsprozesses erhalten wird.
  • Hier kann eine Hash-Funktion vom Merkle-Damgard-Typ (siehe Nichtpatent-Dokument 3) als ein Verschlüsselungsalgorithmus für den Verifizierungsprozess verwendet werden. Wie in 12 illustriert ist, enthält die Hash-Funktion vom Merkle-Damgard-Typ einen Prozess des wiederholten Berechnens einer Komprimierungsfunktion. Wenn die Hash-Funktion vom Merkle-Damgard-Typ als der Verschlüsselungsalgorithmus für den Verifizierungsprozess verwendet wird, kann beispielsweise ein Ausgangswert der Komprimierungsfunktion einer geeigneten Stufennummer als der Zwischenwert gesetzt werden.
  • Alternativ kann eine Hash-Funktion vom Schwammtyp (siehe Nichtpatent-Dokument 4) als der Verschlüsselungsalgorithmus für den Verifizierungsprozess verwendet werden. Wie in 13 illustriert ist, enthält die Hash-Funktion vom Schwammtyp einen Prozess des wiederholten Berechnens einer Substitutionsfunktion. Wenn die Hash-Funktion vom Schwammtyp als der Verschlüsselungsalgorithmus für den Verifizierungsprozess verwendet wird, kann beispielsweise ein Ausgangswert der Substitutionsfunktion einer geeigneten Stufennummer als der Zwischenwert gesetzt werden.
  • Alternativ können ein Nachrichtenberechtigungscode (siehe Nichtpatent-Dokument 3) und ein Blockverschlüsselungsmodus der Operation mit Nachrichtenauthentifizierung (siehe Nichtpatent-Dokument 3) als der Verschlüsselungsalgorithmus für den Verifizierungsprozess verwendet werden. 14 illustriert einen Galois-Counter-Modus (siehe Nichtpatent-Dokument 5). Wie in 14 illustriert ist, enthalten der Nachrichtenberechtigungscode und der Blockverschlüsselungsmodus der Operation mit Nachrichtenauthentifizierung einen Prozess des wiederholten Berechnens derselben Operation. Wenn der Nachrichtenauthentifizierung und der Blockverschlüsselungsmodus der Operation mit Nachrichtenauthentifizierung als der Verschlüsselungsalgorithmus für den Verifizierungsprozess verwendet werden, kann beispielsweise ein Ausgangswert der Operation einer geeigneten Stufennummer als der Zwischenwert gesetzt werden.
  • BEZUGSZEICHENLISTE
    • 100: eingebettete Vorrichtung, 101: CPU, 102: Speichermedium, 103: flüchtiger Speicher, 104: nichtflüchtiger Speicher, 105, 107: Aktualisierungsdatei, 106, 108: Verifizierungsdaten, 109: Firmware, 10: Datenerwerbseinheit, 20: Verifizierungseinheit, 30: Zwischenwert-Speichereinheit, 40: Datenwiedererwerbseinheit, 50: Wiederverifizierungseinheit, 60: Vergleichseinheit, 70: Aktualisierungseinheit

Claims (5)

  1. Softwareaktualisierungsvorrichtung, welche aufweist: eine Datenerwerbseinheit zum aufeinanderfolgenden Erwerben jedes von mehreren geteilten Aktualisierungsdaten, die durch Teilung von Aktualisierungsdaten für die Aktualisierung von Software erhalten wurden; eine Verifizierungseinheit zum Durchführen eines Verifizierungsprozesses bei den von der Datenerwerbseinheit erworbenen geteilten Aktualisierungsdaten; eine Zwischenwert-Speichereinheit zum Speichern eines Zwischenwerts, der während des von der Verifizierungseinheit durchgeführten Verifizierungsprozesses erhalten wurde; eine Datenwiedererwerbseinheit zum aufeinanderfolgenden Wiedererwerben jeder der geteilten Aktualisierungsdaten, wenn der Verifizierungsprozess für jede der geteilten Aktualisierungsdaten beendet ist und die Verifizierung der Aktualisierungsdaten erfolgreich ist; eine Wiederverifizierungseinheit zum Durchführen des Verifizierungsprozesses auf die geteilten Aktualisierungsdaten, die von der Datenwiedererwerbseinheit erworben wurden; und eine Aktualisierungseinheit zum Aktualisieren der Software unter Verwendung der von der Datenwiedererwerbseinheit erworbenen geteilten Aktualisierungsdaten, wenn ein Zwischenwert, der während des von der Wiederverifizierungseinheit durchgeführten Verifizierungsprozesses erhalten wurde, und der von der Zwischenwert-Speichereinheit gespeicherte Zwischenwert einander gleich sind.
  2. Softwareaktualisierungsvorrichtung nach Anspruch 1, bei der die Verifizierungseinheit einen durch Durchführung der Verifizierungsprozesse auf alle geteilten Aktualisierungsdaten berechneten Wert mit Verifizierungsdaten vergleicht, um zu bestimmen, ob der berechnete Wert und die Verifizierungsdaten einander gleich sind, wodurch bestimmt wird, ob die Verifizierung der Aktualisierungsdaten erfolgreich war oder nicht; und bei der die Datenwiedererwerbseinheit aufeinanderfolgend jeden der geteilten Aktualisierungsdaten wiedererwirbt, wenn die Verifizierungseinheit bestimmt, dass die Verifizierung der Aktualisierungsdaten erfolgreich war.
  3. Softwareaktualisierungsvorrichtung nach Anspruch 1 oder 2, bei der die Software in einer ersten Speichervorrichtung gespeichert wird; bei der jeweils die Datenerwerbseinheit und die Datenwiedererwerbseinheit in einer zweiten Speichervorrichtung die erworbenen geteilten Aktualisierungsdaten speichern; und bei der jeweils die Verifizierungseinheit und die Wiederverifizierungseinheit den Verifizierungsprozess bei den in der zweiten Speichervorrichtung gespeicherten geteilten Aktualisierungsdaten durchführen.
  4. Softwareaktualisierungsvorrichtung nach Anspruch 3, bei der die Zwischenwert-Speichereinheit den Zwischenwert in der zweiten Speichervorrichtung speichert.
  5. Softwareaktualisierungsprogramm zum Bewirken, dass ein Computer durchführt: einen Datenerwerbsprozess zum aufeinanderfolgenden Erwerben jedes von mehreren geteilten Aktualisierungsdaten, die durch Teilen von Aktualisierungsdaten für die Aktualisierung von Software erhalten wurden; einen Verifizierungsprozess zum Durchführen des Verifizierungsprozesses bei den in dem Datenerwerbsprozess erworbenen geteilten Aktualisierungsdaten; einen Zwischenwert-Speicherprozess zum Speichern eines Zwischenwerts, der während des in dem Verifizierungsprozess durchgeführten Verifizierungsprozesses erhalten wurde; einen Datenwiedererwerbsprozess zum aufeinanderfolgenden Wiedererwerben jedes der geteilten Aktualisierungsdaten, wenn der Verifizierungsprozess für jeden der geteilten Aktualisierungsdaten beendet ist und die Verifizierung der Aktualisierungsdaten erfolgreich ist, einen Wiederverifizierungsprozess zum Durchführen des Verifizierungsprozesses auf die in dem Datenwiedererwerbsprozess erworbenen geteilten Aktualisierungsdaten; und einen Aktualisierungsprozess zum Aktualisieren der Software unter Verwendung der in dem Datenwiedererwerbsprozess erworbenen geteilten Aktualisierungsdaten, wenn ein Zwischenwert, der während des in dem Wiederverifizierungsprozess durchgeführten Verifizierungsprozesses erhalten wurde, und der in dem Zwischenwert-Speicherprozess gespeicherte Zwischenwert einander gleich sind.
DE112013007574.1T 2013-11-06 2013-11-06 Softwareaktualisierungsvorrichtung und Software-Aktualisierungsprogramm Pending DE112013007574T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/079986 WO2015068220A1 (ja) 2013-11-06 2013-11-06 ソフトウェア更新装置及びソフトウェア更新プログラム

Publications (1)

Publication Number Publication Date
DE112013007574T5 true DE112013007574T5 (de) 2016-08-18

Family

ID=53041027

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112013007574.1T Pending DE112013007574T5 (de) 2013-11-06 2013-11-06 Softwareaktualisierungsvorrichtung und Software-Aktualisierungsprogramm

Country Status (7)

Country Link
US (1) US20160267273A1 (de)
JP (1) JP6053950B2 (de)
KR (1) KR101780909B1 (de)
CN (1) CN105706099B (de)
DE (1) DE112013007574T5 (de)
TW (1) TWI503747B (de)
WO (1) WO2015068220A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018217432A1 (de) * 2018-10-11 2020-04-16 Siemens Schweiz Ag Prüfung der Integrität von eingebetteten Geräten

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10095501B2 (en) * 2013-03-15 2018-10-09 Oracle International Corporation Deployment and activation of updates on target hosts
US10860310B2 (en) 2015-09-30 2020-12-08 Apple Inc. Software updating
CN105468964B (zh) * 2015-12-04 2018-09-14 上海兆芯集成电路有限公司 计算机系统以及计算机系统操作方法
TWI649671B (zh) * 2017-04-14 2019-02-01 精品科技股份有限公司 用於固定環境的資安防護系統及其資安防護方法
TWI649672B (zh) * 2017-04-14 2019-02-01 精品科技股份有限公司 用於固定環境的更新防護系統及其更新防護方法
TWI678658B (zh) * 2017-05-23 2019-12-01 慧榮科技股份有限公司 資料儲存裝置之韌體更新之方法
TWI700627B (zh) 2017-05-23 2020-08-01 慧榮科技股份有限公司 認證韌體資料之資料儲存裝置與資料儲存方法
EP3742665A4 (de) 2018-01-19 2021-08-18 Renesas Electronics Corporation Halbleiterbauelement, aktualisierungsdatenbereitstellungsverfahren, aktualisierungsdatenempfangsverfahren und programm
CN110083381B (zh) 2018-01-26 2023-04-28 启碁科技股份有限公司 增量升级的方法及装置
CN110874225B (zh) * 2018-08-29 2023-05-02 杭州海康威视数字技术股份有限公司 一种数据校验方法、装置、嵌入式设备及存储介质
US10868709B2 (en) 2018-09-10 2020-12-15 Oracle International Corporation Determining the health of other nodes in a same cluster based on physical link information
JP6694204B1 (ja) * 2019-01-23 2020-05-13 株式会社Scalar 改ざん検知性を有するシステム
JP7282616B2 (ja) * 2019-06-27 2023-05-29 キヤノン株式会社 情報処理装置、情報処理方法およびプログラム
CN113221149B (zh) * 2021-05-27 2024-02-09 深圳市共进电子股份有限公司 固件加密方法、装置、固件解密方法和计算机设备

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7774596B2 (en) * 2005-02-02 2010-08-10 Insyde Software Corporation System and method for updating firmware in a secure manner
KR100729525B1 (ko) * 2005-10-06 2007-06-15 삼성에스디에스 주식회사 펌웨어 업데이트 방법 및 시스템
JP2009054064A (ja) * 2007-08-29 2009-03-12 Hitachi Ltd ディジタル信号再生装置およびディジタル信号再生方法
JP5049862B2 (ja) * 2008-04-23 2012-10-17 日本放送協会 送信装置及び限定受信装置
US20100082963A1 (en) * 2008-10-01 2010-04-01 Chun Hui Li Embedded system that automatically updates its software and the method thereof
CN101930387A (zh) * 2009-06-19 2010-12-29 上海惠普有限公司 用于更新压缩只读文件系统的改进的容错方法及装置
JP5346253B2 (ja) * 2009-08-24 2013-11-20 株式会社日立ソリューションズ ファームウェア更新システム、及び情報機器、並びにプログラム
WO2011033773A1 (ja) * 2009-09-17 2011-03-24 パナソニック株式会社 情報処理装置、管理装置、不正モジュール検知システム、不正モジュール検知方法、不正モジュール検知プログラムを記録している記録媒体、管理方法、管理プログラムを記録している記録媒体および集積回路
WO2012056656A1 (ja) * 2010-10-28 2012-05-03 パナソニック株式会社 改ざん監視システム、保護制御モジュール及び検知モジュール
TWI445323B (zh) * 2010-12-21 2014-07-11 Ind Tech Res Inst 資料傳送的混合式編解碼裝置與方法
JP5286380B2 (ja) * 2011-03-07 2013-09-11 株式会社東芝 データ送信装置および送信方法
US20120331303A1 (en) * 2011-06-23 2012-12-27 Andersson Jonathan E Method and system for preventing execution of malware
JP2013138409A (ja) * 2011-11-30 2013-07-11 Canon Inc 情報処理装置およびその方法
CN103366125B (zh) * 2012-03-28 2017-07-21 富泰华工业(深圳)有限公司 文件加密系统和方法
CN102868765B (zh) * 2012-10-09 2015-06-03 乐视网信息技术(北京)股份有限公司 文件上传方法和系统
US8868796B1 (en) * 2013-04-18 2014-10-21 Otter Products, Llc Device and method for updating firmware of a peripheral device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018217432A1 (de) * 2018-10-11 2020-04-16 Siemens Schweiz Ag Prüfung der Integrität von eingebetteten Geräten

Also Published As

Publication number Publication date
CN105706099A (zh) 2016-06-22
KR20160065201A (ko) 2016-06-08
TWI503747B (zh) 2015-10-11
KR101780909B1 (ko) 2017-09-21
US20160267273A1 (en) 2016-09-15
WO2015068220A1 (ja) 2015-05-14
JPWO2015068220A1 (ja) 2017-03-09
CN105706099B (zh) 2018-11-30
JP6053950B2 (ja) 2016-12-27
TW201519096A (zh) 2015-05-16

Similar Documents

Publication Publication Date Title
DE112013007574T5 (de) Softwareaktualisierungsvorrichtung und Software-Aktualisierungsprogramm
EP2515499B1 (de) Verfahren zum Erzeugen eines kryptographischen Schlüssels für ein geschütztes digitales Datenobjekt auf Basis von aktuellen Komponenten eines Rechners
EP3259698B1 (de) Autonom bootendes system mit einem sicherheitsmodul
DE10392528T5 (de) Microcode-Patch-Authentifizierung
DE102012220990B3 (de) Verfahren und Anordnung zur sicheren Kommunikation zwischen Netzwerkeinrichtungen in einem Kommunikationsnetzwerk
EP2899714A1 (de) Gesichertes Bereitstellen eines Schlüssels
DE112011105688T5 (de) Ent- und Verschlüsselung von Anwendungsdaten
DE102016205289A1 (de) Verfahren, Prozessor und Gerät zur Integritätsprüfung von Nutzerdaten
EP3337085B1 (de) Nachladen kryptographischer programminstruktionen
EP3552344B1 (de) Bidirektional verkettete blockchainstruktur
WO2016165930A1 (de) Vorrichtung und verfahren zum erzeugen eines schlüssels in einem programmierbaren hardwaremodul
EP2442251B9 (de) Individuelle Aktualisierung von Computerprogrammen
DE112020001061T5 (de) Verschlüsselte gang-programmierung
DE112019003096T5 (de) Abgesicherte kommunikation aus einer nichtflüchtigen speichervorrichtung heraus
DE102017211912A1 (de) Verfahren und Vorrichtung zum Übertragen persönlicher Daten
WO2004090695A1 (de) Verfahren zur überprüfung der datenintegrität von software in steuergeräten
DE102005046696B4 (de) Verfahren zum Erzeugen von geschütztem Programmcode und Verfahren zum Ausführen von Programmcode eines geschützten Computerprogramms sowie Computerprogrammprodukt
WO2016005075A1 (de) Verfahren und system zur erkennung einer manipulation von datensätzen
DE102018005284A1 (de) Chip-Personalisierung eines eingebetteten Systems durch einen Dritten
DE102014018892A1 (de) Verfahren zum Betreiben einer Computereinheit sowie eine solche Computereinheit
DE102020216030A1 (de) Verfahren zum abgesicherten Start einer Recheneinheit
DE10017932A1 (de) Vorrichtung und Verfahren zur Steuerung und/oder Regelung einer Anlage
DE102021126509B4 (de) Tragbare Chipvorrichtung und Verfahren zum Ausführen eines Softwaremodul-Updates in einer tragbaren Chipvorrichtung
EP3627755A1 (de) Verfahren für eine sichere kommunikation in einem kommunikationsnetzwerk mit einer vielzahl von einheiten mit unterschiedlichen sicherheitsniveaus
EP3105899A1 (de) Verfahren zum hochfahren eines produktions-computersystems

Legal Events

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