EP2542995A2 - Verfahren zum verifizieren eines speicherblocks eines nicht-flüchtigen speichers - Google Patents

Verfahren zum verifizieren eines speicherblocks eines nicht-flüchtigen speichers

Info

Publication number
EP2542995A2
EP2542995A2 EP11702454A EP11702454A EP2542995A2 EP 2542995 A2 EP2542995 A2 EP 2542995A2 EP 11702454 A EP11702454 A EP 11702454A EP 11702454 A EP11702454 A EP 11702454A EP 2542995 A2 EP2542995 A2 EP 2542995A2
Authority
EP
European Patent Office
Prior art keywords
memory
authentication code
block
stored
memory block
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.)
Withdrawn
Application number
EP11702454A
Other languages
English (en)
French (fr)
Inventor
Markus Ihle
Oliver Bubeck
Jan Hayek
Jamshid Shokrollahi
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of EP2542995A2 publication Critical patent/EP2542995A2/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory

Definitions

  • the present invention relates to a method for verifying a memory block of a non-volatile memory.
  • the present invention can be used to detect unauthorized manipulations of particular memory blocks, particularly non-volatile memory (NVM).
  • NVM non-volatile memory
  • the invention is particularly suitable for the verification of memory blocks of computing units, such as e.g. embedded systems, controllers and the like that are used for secure applications.
  • Such memory blocks contain, for example, program codes for carrying out security-relevant or safety-critical functionalities or public keys which are used in asymmetric cryptography methods, so that the authenticity of these memory blocks must be ensured before their evaluation or use.
  • hash functions it is known to use hash functions to verify such memory blocks.
  • a hash value is initially calculated for each memory block to be verified and stored in a special memory area that is tamper-proof.
  • a hash value of the memory block is again determined and compared with the stored value. If the two values match, it can be determined that the memory block is intact.
  • TPM Trusted Platform Module
  • a disadvantage of the known method is that a tamper-proof memory area must be provided for each hash value of a memory block to be verified. As a result, a relatively large secure storage area must exist be provided, which is relatively expensive.
  • "Secure memory area” is a memory area that is not writable by third parties.
  • the invention uses the measure to determine authentication codes, in particular MAC (Message Authentication Code), for the memory blocks to be verified.
  • the invention uses a secret keyword or a secret key, so that the size of the secure memory area to be provided is essentially limited to being able to record the secret keyword.
  • the secret keyword is stored in the secure memory area so that it is not accessible from the outside and in particular can not be read.
  • the verification takes place completely and automatically within the computing unit.
  • Known hash functions are used in the prior art, so that the hash value for a memory block can in principle be determined by anyone. As a result, the hash values must be stored so securely that manipulation is ruled out.
  • a secret keyword is used so that the calculated authentication codes, which are comparable to hash values, are currently not determinable by anyone.
  • the specific authentication codes can be stored at any location, especially in non-secure memory areas. Only the keyword used must be stored in a secure memory area. As a result, the need for secure storage space is reduced considerable, which leads to a simplification of the arithmetic unit and to a cost saving.
  • a memory address and a memory length of the memory block to be verified are additionally stored in the authentication code memory table. Thus, it can be easily checked to which memory block the stored authentication code belongs.
  • a memory address and a memory length of the authentication code memory table are stored in an address memory block, so that the authentication code memory table is always adaptable to the current circumstances and does not have any flexibility restrictions, for example by a fixed memory address and a memory length.
  • the authentication code memory table can therefore also be provided in particular in the non-volatile memory.
  • an authentication code for the authentication code memory table is also determined using the secret keyword and stored in the address memory block.
  • the address memory block is expediently provided in a secure memory area.
  • "Secure memory area” here is to be understood as a memory area that is not writable by third parties.
  • an electronic security module which has the secure memory area and which is set up to determine the authentication code. This makes it easy to retrofit existing systems.
  • An arithmetic unit according to the invention for example a control unit of a motor vehicle, is, in particular programmatically, adapted to carry out a method according to the invention. In particular, it has the electronic security module just described.
  • Suitable data carriers for providing the computer program are, in particular, floppy disks, hard disks, flash memories, EEPROMs, CD-ROMs, DVDs and the like. It is also possible to download a program via computer networks (Internet, intranet, etc.).
  • FIG. 1 shows a block diagram of an embodiment of a computing unit according to the invention.
  • FIG. 2 shows a flow chart of a part of an embodiment of a method according to the invention that occurs at a first time.
  • FIG. 3 shows a flow chart of a part of an embodiment of a method according to the invention taking place at a second time.
  • FIG. 1 a preferred embodiment of a computing unit according to the invention is shown schematically in a block diagram and denoted overall by 100.
  • the arithmetic unit 100 includes - in addition to other, not shown components such. As CPU, RAM, etc. - three components 1 10, 150 and 160, for the realization of the invention in the illustrated, preferred
  • Embodiment contribute and will be explained below in order.
  • the arithmetic unit 100 has a non-volatile memory (NVM) 110, in which memory blocks 131, 132 to be verified are stored. It may, for example, components of a firmware to key ü. ⁇ . Act so that the authenticity of the memory blocks should be ensured.
  • NVM non-volatile memory
  • an authentication code storage table 120 with individual table areas 121, 122, etc. is stored.
  • the arithmetic unit 100 further comprises a writing module 150 capable of describing the nonvolatile memory 110.
  • the writing module 150 may be part of the CPU or an external part.
  • the computing unit 100 comprises an electronic security module 160, which is responsible for carrying out the encryption operations and provides a secure memory area.
  • the security module 160 includes a secure, non-readable third storage area 161, in which a secret keyword for the generation of authentication codes is stored. Furthermore, the security module 160 comprises a secure memory area 162 for receiving an address memory block, in which an authentication code for the authentication code memory table 120, a memory address and a memory length are stored. The security module 160 further comprises a processing module 163 and optionally a coprocessor 164 for accelerating symmetric encryptions.
  • FIG. 2 describes a part of an embodiment of the method according to the invention that is to be performed at a first time and that serves to generate authentication codes.
  • the writing module 150 confirms to the security module 160, using any authentication method, that the writing module 150 is authorized to write to the non-volatile memory 110.
  • the security module 160 checks whether the authentication is successful. If the authentication is unsuccessful, the security module 160 sends a corresponding message to the write module 150 in a step 203 and aborts the method in a step 204. If, on the other hand, the authentication is successful, the security module 160 sends a corresponding success message to the writing module 150 in a step 205.
  • the writing module 150 starts in a step 206 with the first block to be secured, i. H. 131 according to FIG. 1, and checks in a step 207 whether the last block to be secured has already been reached. If this is not the case, the write module 150 transmits the memory address and the memory length of the relevant block in a step 208 to the security module 160.
  • the security block 160 reads the relevant memory block from the non-volatile memory 1 10 and calculated using the in the secure memory area 161 stored keyword the associated authentication code. This is in a step 210 to the
  • Blocks 131 into the authentication code storage table 120 here in the table area 121 writes.
  • step 212 the next block is selected and returned to step 207. If, after a correspondingly frequent implementation of the method, it is determined in step 207 that the last block n has been processed, the memory address and the memory length of the authentication code memory table 120 are transmitted to the security module 160 in a step 213, which then transmits the authentication in a step 214 is calculated for the authentication code storage table 120 and stores this together with the memory address and the memory length in the secure memory area 162.
  • the writing module 150 requests the security module 160 to verify the authentication code storage table 120.
  • the security module 160 calculates in a step 302 the authentication code for the authentication code memory table 120, whose position and length it can read from the memory area 162, and compares the calculated value with the value also stored in the memory area 162.
  • the comparison result is supplied by the security module 160 in a method step 303 to the writing module 150, which evaluates the result in a step 304. If the authentication codes do not agree, this result is transmitted to an entity 309, which makes a decision based on the comparison result.
  • the write module 150 reads the memory address, memory length, and authentication code of the memory block to be verified from the authentication store table 120 in a step 305. For example, it reads the table area 122 when the block 132 is to be verified.
  • the writing module 150 transmits this data to the security module 160 which, in a step 307, uses the data to determine the relevant data. reads out the memory block, for example 132, in the non-volatile memory 110 and calculates its authentication code. Subsequently, the security module 160 compares the newly calculated authentication code with the authentication code transmitted by the writing module 150 and transmits the comparison result in a step 308 to the writing module 150.
  • the writing module 150 then makes a corresponding decision in step 309 based on the result of the comparison. With the invention it is possible to verify memory blocks and to minimize the need for secure memory necessary for this.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

Die vorliegende Erfindung betrifft ein Verfahren zum Verifizieren eines Speicherblocks eines nichtflüchtigen Speichers, wobei zu einem ersten Zeitpunkt ein erster Authentifizierungscode für den Speicherblock (131, 132, 133) unter Verwendüng eines geheimen Schlüsselworts bestimmt (209) und in einer Authentifizierungscodespeichertabelle (120) abgespeichert wird (211), zu einem zweiten Zeitpunkt zur Verifizierung ein zweiter Authentifizierungscode für den Speicherblock (131, 132, 133) unter Verwendung des geheimen Schlüsselworts bestimmt (307) und mit dem ersten Authentifizierungscode verglichen wird (307) und der Speicherblock (131, 132, 133) verifiziert wird (309), wenn der erste Authentifizierungscode und der zweite Authentifizierungscode übereinstimmen.

Description

Beschreibung
Titel
Verfahren zum Verifizieren eines Speicherblocks eines nicht-flüchtigen Speichers
Die vorliegende Erfindung betrifft ein Verfahren zum Verifizieren eines Speicherblock eines nicht-flüchtigen Speichers.
Stand der Technik
Die vorliegende Erfindung kann verwendet werden, um nicht autorisierte Manipulationen von bestimmten Speicherblöcken, insbesondere eines nicht-flüchtigen Speichers (NVM, non volatile memory), zu erkennen. Die Erfindung eignet sich besonders zur Verifizierung von Speicherblöcken von Recheneinheiten, wie z.B. eingebetteten Systemen, Steuergeräten und dergleichen, die für sichere Anwendungen verwendet werden. Derartige Speicherblöcke enthalten beispielsweise Programmcodes zum Ausführen sicherheitsrelevanter bzw. sicherheitskritischer Funktionalitäten oder öffentliche Schlüssel, welche in asymmetrischen Kryptographieverfahren verwendet werden, so dass die Authentizität dieser Speicherblöcke vor deren Auswertung bzw. Verwendung sichergestellt sein muss.
Es ist bekannt, Hash-Funktionen zu Verwenden, um derartige Speicherblöcke zu verifizieren. Dabei wird anfangs ein Hash-Wert für jeden zu verifizierenden Speicherblock berechnet und in einem speziellen Speicherbereich abgelegt, der manipulationssicher ist. Bei der späteren Verifizierung wird erneut ein Hash-Wert des Speicherblocks bestimmt und mit dem abgespeichertem Wert verglichen. Stimmen die beiden Werte überein, kann festgestellt werden, dass der Speicherblock unversehrt ist. Derartige Techniken werden beispielsweise bei TPM (Trusted Platform Module) eingesetzt.
Nachteilig an dem bekannten Verfahren ist, dass für jeden Hash-Wert eines zu verifizierenden Speicherblocks ein manipulationssicherer Speicherbereich bereitgestellt sein muss. In der Folge muss ein relativ großer sicherer Speicherbereich bereitgestellt werden, was verhältnismäßig teuer ist. Unter "sicherer Speicherbereich" ist ein Speicherbereich zu verstehen, der für Dritte nicht beschreibbar ist.
Es ist daher wünschenswert, ein Ressourcen schonendes Verfahren zum Verifizieren eines Speicherblocks eines nicht-flüchtigen Speichers anzugeben.
Offenbarung der Erfindung
Erfindungsgemäß wird ein Verfahren mit den Merkmalen des Patentanspruchs 1 vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.
Vorteile der Erfindung
Die Erfindung bedient sich der Maßnahme, Authentifizierungscodes, insbesondere MAC (Message Authentication Code), für die zu verifizierenden Speicherblöcken zu bestimmen. Die Erfindung verwendet dabei ein geheimes Schlüsselworts bzw. einen geheimen Schlüssel, so dass sich die Größe des bereitzustellenden sicheren Speicherbereichs im Wesentlichen darauf beschränkt, das geheime Schlüsselwort aufnehmen zu können. Das geheime Schlüsselwort wird in dem sicheren Speicherbereich so abgespeichert, dass es von außen nicht zugänglich ist und insbesondere nicht ausgelesen werden kann. Die Verifizierung findet vollständig und automatisch innerhalb der Recheneinheit statt. Im Stand der Technik werden bekannte Hash-Funktionen eingesetzt, so dass der Hash-Wert für einen Speicherblock prinzipiell von jedermann bestimmbar ist. In der Folge müssen die Hash-Werte so sicher abgespeichert werden, dass Manipulationen ausgeschlossen sind. Bei der vorliegenden Erfindung wird jedoch ein geheimes Schlüsselwort verwendet, so dass die berechneten Authentifizierungscodes, welche mit Hash- werten vergleichbar sind, gerade nicht von jedermann bestimmbar sind. In der Folge können die bestimmten Authentifizierungscodes an beliebiger Stelle abgespeichert werden, insbesondere auch in nicht sicheren Speicherbereichen. Lediglich das verwendete Schlüsselwort ist in einem sicheren Speicherbereich abzulegen. In der Folge verringert sich der Bedarf an sicherem Speicherplatz er- heblich, was zu einer Vereinfachung der Recheneinheit und zu einer Kostenersparnis führt.
Zweckmäßigerweise werden in der Authentifizierungscodespeichertabelle zusätzlich eine Speicheradresse und eine Speicherlänge des zu verifizierenden Speicherblocks abgespeichert. Somit kann leicht überprüft werden, zu welchem Speicherblock der abgespeicherte Authentifizierungscode gehört.
Vorzugsweise werden eine Speicheradresse und eine Speicherlänge der Authen- tifizierungscodespeichertabelle in einem Adressspeicherblock abgespeichert, so dass die Authentifizierungscodespeichertabelle immer den momentanen Gegebenheiten anpassbar ist und keine Flexibilitätseinschränkungen, bspw. durch eine fest vorgegebene Speicheradresse und eine Speicherlänge bestehen. Die Au- thentifizierungscodespeichertabelle kann daher insbesondere auch in dem nichtflüchtigen Speicher vorgesehen sein.
In bevorzugter Ausgestaltung wird auch ein Authentifizierungscode für die Au- thentifizierungscodespeichertabelle unter Verwendung des geheimen Schlüsselworts bestimmt und in dem Adressspeicherblock abgespeichert. Damit wird die o.g. Flexibilität bei größter Manipulationssicherheit erreicht, da immer überprüfbar ist, ob tatsächlich die richtige Authentifizierungscodespeichertabelle verwendet wird.
Zur weiteren Erhöhung der Sicherheit wird der Adressspeicherblock zweckmäßigerweise in einem sicheren Speicherbereich vorgesehen. Unter "sicherer Speicherbereich" ist hier ein Speicherbereich zu verstehen, der für Dritte nicht beschreibbar ist.
In Ausgestaltung wird ein elektronischer Sicherheitsbaustein verwendet, der den sicheren Speicherbereich aufweist und der dazu eingerichtet ist, den Authentifizierungscode zu bestimmen. So können auf einfache Weise auch bestehende Systeme nachgerüstet werden. Eine erfindungsgemäße Recheneinheit, z.B. ein Steuergerät eines Kraftfahrzeugs, ist, insbesondere programmtechnisch, dazu eingerichtet, ein erfindungsgemäßes Verfahren durchzuführen. Sie weist insbesondere den soeben beschriebenen, elektronischen Sicherheitsbaustein auf.
Auch die Implementierung des Verfahrens in Form von Software ist vorteilhaft, da dies besonders geringe Kosten verursacht, insbesondere wenn ein ausführendes Steuergerät noch für weitere Aufgaben genutzt wird und daher ohnehin vorhanden ist. Geeignete Datenträger zur Bereitstellung des Computerprogramms sind insbesondere Disketten, Festplatten, Flash-Speicher, EEPROMs, CD-ROMs, DVDs u.a.m. Auch ein Download eines Programms über Computernetze (Internet, Intranet usw.) ist möglich.
Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.
Es versteht sich, dass die vorstehend genannten und die nachfolgend noch zu erläuternden Merkmale nicht nur in der jeweils angegebenen Kombination, sondern auch in anderen Kombinationen oder in Alleinstellung verwendbar sind, ohne den Rahmen der vorliegenden Erfindung zu verlassen.
Die Erfindung ist anhand eines Ausführungsbeispiels in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung ausführlich beschrieben.
Kurze Beschreibung der Zeichnungen
Figur 1 zeigt ein Blockschaltbild einer Ausführungsform einer erfindungsgemäßen Recheneinheit.
Figur 2 zeigt einen Ablaufplan eines zu einem ersten Zeitpunkt stattfindenden Teils einer Ausführungsform eines erfindungsgemäßen Verfahrens. Figur 3 zeigt einen Ablaufplan eines zu einem zweiten Zeitpunkt stattfindenden Teils einer Ausführungsform eines erfindungsgemäßen Verfahrens.
Ausführungsform(en) der Erfindung
In Figur 1 ist eine bevorzugte Ausführungsform einer erfindungsgemäßen Recheneinheit in einem Blockschaltbild schematisch dargestellt und insgesamt mit 100 bezeichnet. Die Recheneinheit 100 umfasst - neben weiteren, nicht dargestellten Komponenten wie z. B. CPU, RAM usw. - drei Komponenten 1 10, 150 und 160, die zur Verwirklichung der Erfindung in der dargestellten, bevorzugten
Ausführungsform beitragen und nachfolgend der Reihe nach erläutert werden.
Die Recheneinheit 100 verfügt über einen nicht-flüchtigen Speicher (NVM) 1 10, in dem zu verifizierende Speicherblöcke 131 , 132 usw. abgespeichert sind. Es kann sich dabei beispielsweise um Bestandteile einer Firmware, um Schlüssel ü. ä. handeln, so dass die Authentizität der Speicherblöcke sichergestellt sein soll. In dem nicht flüchtigen Speicher 1 10 wird eine Authentifizierungscodespeicherta- belle 120 mit einzelnen Tabellenbereichen 121 , 122 usw. abgelegt. Die Recheneinheit 100 umfasst weiterhin ein Schreibmodul 150, das in der Lage ist, den nicht-flüchtigen Speicher 1 10 zu beschreiben. Das Schreibmodul 150 kann Teil der CPU oder ein externes Teil sein. Weiterhin umfasst die Recheneinheit 100 einen elektronischen Sicherheitsbaustein 160, der für die Durchführung der Verschlüsselungsoperationen verantwortlich ist und einen sicheren Spei- cherbereich zur Verfügung stellt. Der Sicherheitsbaustein 160 umfasst einen sicheren, für Dritte nicht auslesbaren Speicherbereich 161 , in dem ein geheimes Schlüsselwort für die Erzeugung von Authentifizierungscodes abgespeichert ist. Weiterhin umfasst der Sicherheitsbaustein 160 einen sicheren Speicherbereich 162 zur Aufnahme eines Adressspeicherblocks, in dem ein Authentifizierungsco- de für die Authentifizierungscodespeichertabelle 120, eine Speicheradresse und eine Speicherlänge abgelegt werden. Der Sicherheitsbaustein 160 umfasst weiterhin ein Verarbeitungsmodul 163 sowie optional einen Koprozessor 164 zum Beschleunigen von symmetrischen Verschlüsselungen. In Figur 2 wird ein zu einem ersten Zeitpunkt durchzuführender Teil einer Ausführungsform des erfindungsgemäßen Verfahren beschrieben, der zur Erzeugung von Authentifizierungscodes dient. Zunächst bestätigt das Schreibmodul 150 in einem Schritt 201 dem Sicherheitsbaustein 160 unter Verwendung eines beliebigen Authentifizierungsverfahrens, dass das Schreibmodul 150 für das Beschreiben des nicht-flüchtigen Speichers 1 10 autorisiert ist. In einem Schritt 202 überprüft der Sicherheitsbaustein 160, ob die Authentifizierung erfolgreich ist. Ist die Authentifizierung nicht erfolgreich, sendet der Sicherheitsbaustein 160 in einem Schritt 203 eine entsprechende Mitteilung an das Schreibmodul 150 und bricht das Verfahren in einem Schritt 204 ab. Ist hingegen die Authentifizierung erfolgreich, sendet der Sicherheitsbaustein 160 eine entsprechende Erfolgsmitteilung in einem Schritt 205 an das Schreibmodul 150.
Anschließend beginnt das Schreibmodul 150 in einem Schritt 206 mit dem ersten zu sichernden Block, d. h. 131 gemäß Figur 1 , und überprüft in einem Schritt 207, ob bereits der letzte zu sichernde Block erreicht ist. Ist dies nicht der Fall, übermittelt das Schreibmodul 150 die Speicheradresse und die Speicherlänge des betreffenden Blocks in einem Schritt 208 an den Sicherheitsbaustein 160. In einem Schritt 209 liest der Sicherheitsbaustein 160 den betreffenden Speicherblock aus dem nicht-flüchtigen Speicher 1 10 und berechnet anhand des in dem sicherem Speicherbereich 161 abgespeicherten Schlüsselworts den zugehörigen Authentifizierungscode. Dieser wird in einem Schritt 210 an das
Schreibmodul 150 übertragen, welches den Authentifizierungscode in einem Schritt 21 1 zusammen mit der Speicheradresse und der Speicherlänge des
Blocks 131 in die Authentifizierungscodespeichertabelle 120, hier in den Tabellenbereich 121 schreibt. In einem darauf folgenden Verfahrensschritt 212 wird der nächste Block ausgewählt und zu Schritt 207 zurückgekehrt. Wird nach entsprechend häufiger Durchführung des Verfahrens in Schritt 207 festgestellt, dass der letzte Block n verarbeitet worden ist, werden in einem Schritt 213 die Speicheradresse und die Spei- cherlänge der Authentifizierungscodespeichertabelle 120 an den Sicherheitsbaustein 160 übermittelt, welcher anschließend in einem Schritt 214 den Authentifi- zierungscode für die Authentifizierungscodespeichertabelle 120 berechnet und diesen zusammen mit der Speicheradresse und der Speicherlänge in dem sicheren Speicherbereich 162 abspeichert.
Eine während des Betriebs durchzuführende Verifizierung der Speicherblöcke 131 usw. wird nachfolgend anhand Figur 3 erläutert.
In einem Schritt 301 fordert das Schreibmodul 150 den Sicherheitsbaustein 160 zur Verifizierung der Authentifizierungscodespeichertabelle 120 auf.
Daraufhin berechnet der Sicherheitsbaustein 160 in einem Schritt 302 den Au- thentifizierungscode für die Authentifizierungscodespeichertabelle 120, deren Position und Länge er aus dem Speicherbereich 162 lesen kann, und vergleicht den berechneten Wert mit dem ebenfalls im Speicherbereich 162 abgespeicherten Wert. Das Vergleichsergebnis liefert der Sicherheitsbaustein 160 in einem Verfahrensschritt 303 an das Schreibmodul 150, welches in einem Schritt 304 das Ergebnis bewertet. Stimmen die Authentifizierungscodes nicht überein, wird dieses Ergebnis an eine Instanz 309 übermittelt, die basierend auf dem Ver- gleichsergebnis eine Entscheidung trifft.
Stimmen die Authentifizierungscode jedoch überein, liest das Schreibmodul 150 in einem Schritt 305 die Speicheradresse, Speicherlänge und den Authentifizierungscode des zu verifizierenden Speicherblocks aus der Authentifizierungsco- despeichertabelle 120. Beispielsweise liest es den Tabellenbereich 122, wenn der Block 132 zu verifizieren ist.
In einem Schritt 306 übermittelt das Schreibmodul 150 diese Daten an den Sicherheitsbaustein 160, der in einem Schritt 307 anhand der Daten den betreffen- den Speicherblock, beispielsweise 132, im nicht-flüchtigen Speicher 1 10 ausliest und dessen Authentifizierungscode berechnet. Anschließend vergleicht der Sicherheitsbaustein 160 den neu berechneten Authentifizierungscode mit dem vom Schreibmodul 150 übermittelten Authentifizierungscode und übermittelt das Ver- gleichsergebnis in einem Schritt 308 an das Schreibmodul 150.
Das Schreibmodul 150 führt dann in Schritt 309 eine entsprechende Entscheidung basierend auf dem Vergleichsergebnis herbei. Mit der Erfindung ist es möglich, Speicherblöcke zu verifizieren und den dafür notwendigen Bedarf an sicherem Speicher gering zu halten.

Claims

Ansprüche
Verfahren zum Verifizieren eines Speicherblocks eines nichtflüchtigen Speichers, wobei zu einem ersten Zeitpunkt ein erster Authentifizierungscode für den Speicherblock (131 , 132, 133) unter Verwendung eines geheimen Schlüsselworts bestimmt (209) und in einer Authentifizierungscodespeicher- tabelle (120) abgespeichert wird (21 1 ), zu einem zweiten Zeitpunkt zur Verifizierung ein zweiter Authentifizierungscode für den Speicherblock (131 , 132, 133) unter Verwendung des geheimen Schlüsselworts bestimmt (307) und mit dem ersten Authentifizierungscode verglichen wird (307) und der Speicherblock (131 , 132, 133) verifiziert wird (309), wenn der erste Authentifizierungscode und der zweite Authentifizierungscode übereinstimmen.
Verfahren nach Anspruch 1 , wobei in der Authentifizierungscodespeicherta- belle (120) zusätzlich eine Speicheradresse und eine Speicherlänge des Speicherblocks (131 , 132, 133) abgespeichert werden (21 1 ).
Verfahren nach Anspruch 1 oder 2, wobei eine Speicheradresse und eine Speicherlänge der Authentifizierungscodespeichertabelle (120) in einem Adressspeicherblock (162) abgespeichert werden (214).
Verfahren nach Anspruch 3, wobei ein dritter Authentifizierungscode für die Authentifizierungscodespeichertabelle (120) unter Verwendung des geheimen Schlüsselworts bestimmt und in dem Adressspeicherblock (162) abgespeichert wird (214).
Verfahren nach Anspruch 3 oder 4, wobei der Adressspeicherblock in einem sicheren Speicherbereich (162) vorgesehen wird.
Verfahren nach einem der vorstehenden Ansprüche, wobei das geheime Schlüsselwort in einem sicheren und für Dritte nicht auslesbaren Speicherbereich (161 ) abgespeichert wird.
7. Verfahren nach einem der vorstehenden Ansprüche, wobei die Authentifizie- rungscodespeichertabelle (120) in dem nichtflüchtigen Speicher (1 10) vorgesehen wird. 8. Verfahren nach einem der vorstehenden Ansprüche, wobei ein elektronischer Sicherheitsbaustein (160) verwendet wird, der den sicheren Speicherbereich (161 , 162) aufweist und der dazu eingerichtet ist, den Authentifizie- rungscode (121 , 122, 123) zu bestimmen. 9. Recheneinheit, die dazu eingerichtet ist, ein Verfahren nach einem der vorstehenden Ansprüche durchzuführen.
EP11702454A 2010-03-01 2011-02-07 Verfahren zum verifizieren eines speicherblocks eines nicht-flüchtigen speichers Withdrawn EP2542995A2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102010002472A DE102010002472A1 (de) 2010-03-01 2010-03-01 Verfahren zum Verifizieren eines Speicherblocks eines nicht-flüchtigen Speichers
PCT/EP2011/051714 WO2011107319A2 (de) 2010-03-01 2011-02-07 Verfahren zum verifizieren eines speicherblocks eines nicht-flüchtigen speichers

Publications (1)

Publication Number Publication Date
EP2542995A2 true EP2542995A2 (de) 2013-01-09

Family

ID=44009846

Family Applications (1)

Application Number Title Priority Date Filing Date
EP11702454A Withdrawn EP2542995A2 (de) 2010-03-01 2011-02-07 Verfahren zum verifizieren eines speicherblocks eines nicht-flüchtigen speichers

Country Status (7)

Country Link
US (1) US20130117578A1 (de)
EP (1) EP2542995A2 (de)
JP (1) JP5718373B2 (de)
KR (1) KR20130015007A (de)
CN (1) CN103109280A (de)
DE (1) DE102010002472A1 (de)
WO (1) WO2011107319A2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114637706A (zh) * 2020-12-16 2022-06-17 铠侠股份有限公司 存储系统

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8949621B2 (en) * 2012-06-14 2015-02-03 Kabushiki Kaisha Toshiba Memory device authentication
US20130336475A1 (en) * 2012-06-14 2013-12-19 Kabushiki Kaisha Toshiba Device
DE102014208855A1 (de) * 2014-05-12 2015-11-12 Robert Bosch Gmbh Verfahren zum Durchführen einer Kommunikation zwischen Steuergeräten
US9830603B2 (en) * 2015-03-20 2017-11-28 Microsoft Technology Licensing, Llc Digital identity and authorization for machines with replaceable parts
FR3044786B1 (fr) * 2015-12-07 2018-07-13 Ingenico Group Procede de chargement d'une ressource informatique au sein d'un dispositif electronique, module electronique et programme d'ordinateur correspondant
CN108039190B (zh) * 2017-12-15 2020-09-08 北京京存技术有限公司 一种测试方法及装置
DE102018213616A1 (de) * 2018-06-20 2019-12-24 Robert Bosch Gmbh Kryptografiemodul und Betriebsverfahren hierfür

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8704883D0 (en) * 1987-03-03 1987-04-08 Hewlett Packard Co Secure information storage
US6026293A (en) * 1996-09-05 2000-02-15 Ericsson Inc. System for preventing electronic memory tampering
EP1260053B1 (de) * 2000-02-15 2006-05-31 Silverbrook Research Pty. Limited Vorrichtung und protokoll zum authentifizieren eines verbrauchsgegenstandes
DE10131575A1 (de) * 2001-07-02 2003-01-16 Bosch Gmbh Robert Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation von in einer Speicheranordnung des Mikrorechner-Systems gespeicherten Daten
JP2003242030A (ja) * 2001-12-14 2003-08-29 Matsushita Electric Ind Co Ltd メモリ管理装置及びメモリ管理方法
US8226473B2 (en) * 2002-04-10 2012-07-24 Wms Gaming Inc. Gaming software authentication
US20050050342A1 (en) * 2003-08-13 2005-03-03 International Business Machines Corporation Secure storage utility
JP4447977B2 (ja) * 2004-06-30 2010-04-07 富士通マイクロエレクトロニクス株式会社 セキュアプロセッサ、およびセキュアプロセッサ用プログラム。
US20090285280A1 (en) * 2005-11-29 2009-11-19 Thomas Patrick Newberry Method and Apparatus for Securing Digital Content
JP5002205B2 (ja) * 2006-07-10 2012-08-15 任天堂株式会社 データ認証方法およびデータ認証システム
US7519830B2 (en) * 2006-08-03 2009-04-14 Motorola, Inc. Secure storage of data
US8356178B2 (en) * 2006-11-13 2013-01-15 Seagate Technology Llc Method and apparatus for authenticated data storage
US8261091B2 (en) * 2006-12-21 2012-09-04 Spansion Llc Solid-state memory-based generation and handling of security authentication tokens
DE102007008293B4 (de) * 2007-02-16 2010-02-25 Continental Automotive Gmbh Verfahren und Vorrichtung zum gesicherten Speichern und zum gesicherten Lesen von Nutzdaten

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO2011107319A2 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114637706A (zh) * 2020-12-16 2022-06-17 铠侠股份有限公司 存储系统
CN114637706B (zh) * 2020-12-16 2024-05-24 铠侠股份有限公司 存储系统

Also Published As

Publication number Publication date
JP2013533521A (ja) 2013-08-22
DE102010002472A1 (de) 2011-09-01
KR20130015007A (ko) 2013-02-12
JP5718373B2 (ja) 2015-05-13
WO2011107319A3 (de) 2015-07-09
WO2011107319A2 (de) 2011-09-09
US20130117578A1 (en) 2013-05-09
CN103109280A (zh) 2013-05-15

Similar Documents

Publication Publication Date Title
WO2011107319A2 (de) Verfahren zum verifizieren eines speicherblocks eines nicht-flüchtigen speichers
DE102012110499B4 (de) Sicherheitszugangsverfahren für elektronische Automobil-Steuergeräte
DE69534757T2 (de) System und Verfahren zur sicheren Speicherung und Verteilung von Daten unter Verwendung digitaler Unterschriften
EP2689553B1 (de) Kraftwagen-steuergerät mit kryptographischer einrichtung
EP2940620B1 (de) Ableiten eines gerätespezifischen wertes mit hilfe einer unklonbaren funktion
EP2235598B1 (de) Feldgerät und verfahren zu dessen betrieb
DE112012003795T5 (de) Fahrzeugnetwerksystem und Fahrzeug-Informationsverarbeitungsverfahren
DE10318031A1 (de) Verfahren zur Sicherstellung der Integrität und Authentizität von Flashware für Steuergeräte
EP1999521B1 (de) Feldgerät
DE102016221108A1 (de) Verfahren zum Aktualisieren einer Software eines Steuergeräts eines Fahrzeugs
DE112018007132T5 (de) Fahrzeuginternes Funktionszugriffkontrollsystem, fahrzeuginterne Vorrichtung und fahrzeuginternes Funktionszugriffkontrollverfahren
EP3811260B1 (de) Kryptografiemodul und betriebsverfahren hierfür
EP3387636B1 (de) Kryptoalgorithmus mit schlüsselabhängigem maskiertem rechenschritt (sbox-aufruf)
WO2015180867A1 (de) Erzeugen eines kryptographischen schlüssels
EP3300522A1 (de) Bereitstellung zumindest eines passworts
DE102014213454A1 (de) Verfahren und System zur Erkennung einer Manipulation von Datensätzen
DE102010026392A1 (de) Verfahren zur sicheren Parametrierung eines Sicherheitsgeräts
DE102011109426A1 (de) Verfahren zur Erkennung von Datenänderungen in einem Steuergerät
AT522276A1 (de) Vorrichtung und Verfahren zur Integritätsprüfung von Sensordatenströmen
EP3703333B1 (de) Verfahren, vorrichtung und anlage zur verarbeitung wenigstens einer information in einer sicherheitstechnischen anlage
DE102018203143A1 (de) Verfahren zum Versenden und Verfahren zum Überprüfen von wenigstens zwei unter Verwendung eines Schlüssels authentifizierten Datenblöcken
DE102019003673B3 (de) Seitenkanalsichere Implementierung
DE102008039121A1 (de) Verfahren zur Codierung einer Zeichenkette für ein Fahrzeug sowie entsprechend ausgestaltetes Steuergerät und Fahrzeug
DE10215626B4 (de) Verfahren zur Änderung von Verschlüsselungsalgorithmen bei geschützter Software oder geschützten Daten
DE102020200102A1 (de) Ver- und Entschlüsselung eines sicheren Speicherbereichs in einem Fahrzeug

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

AX Request for extension of the european patent

Extension state: BA ME

DAX Request for extension of the european patent (deleted)
R17D Deferred search report published (corrected)

Effective date: 20150709

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20150901