EP2542995A2 - Method for verifying a memory block of a nonvolatile memory - Google Patents

Method for verifying a memory block of a nonvolatile memory

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
German (de)
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/en
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.

Abstract

The invention relates to a method for verifying a memory block of a nonvolatile memory, wherein, at a first point in time, a first authentication code for the memory block (131, 132, 33) is determined (209) by using a secret keyword and is stored (211) in an authentication code memory table (120), at a second point in time, for the purpose of verification, a second authentication code for the memory block (131, 132, 133) is determined (307) by using the secret keyword and is compared (307) to the first authentication code, and the memory block (131, 132, 133) is verified (309) if the first authentication code and the second authentication code agree.

Description

Beschreibung  description
Titel title
Verfahren zum Verifizieren eines Speicherblocks eines nicht-flüchtigen Speichers  Method for verifying a memory block of a non-volatile memory
Die vorliegende Erfindung betrifft ein Verfahren zum Verifizieren eines Speicherblock eines nicht-flüchtigen Speichers. The present invention relates to a method for verifying a memory block of a non-volatile memory.
Stand der Technik State of the art
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. The present invention can be used to detect unauthorized manipulations of particular memory blocks, particularly non-volatile memory (NVM). 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.
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. It is known to use hash functions to verify such memory blocks. In the process, a hash value is initially calculated for each memory block to be verified and stored in a special memory area that is tamper-proof. During the later verification, 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. Such techniques are used for example in TPM (Trusted Platform Module).
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. 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.
Es ist daher wünschenswert, ein Ressourcen schonendes Verfahren zum Verifizieren eines Speicherblocks eines nicht-flüchtigen Speichers anzugeben. It is therefore desirable to provide a resource conserving method for verifying a memory block of a non-volatile memory.
Offenbarung der Erfindung Disclosure of the invention
Erfindungsgemäß wird ein Verfahren mit den Merkmalen des Patentanspruchs 1 vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung. According to the invention, a method with the features of claim 1 is proposed. Advantageous embodiments are the subject of the dependent claims and the following description.
Vorteile der Erfindung Advantages of the invention
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. 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. In the present invention, however, a secret keyword is used so that the calculated authentication codes, which are comparable to hash values, are currently not determinable by anyone. As a result, 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.
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. Expediently, 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.
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. Preferably, 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.
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. In a preferred embodiment, an authentication code for the authentication code memory table is also determined using the secret keyword and stored in the address memory block. Thus, the o.g. Flexibility with utmost tamper resistance achieved because it is always verifiable, if in fact the correct authentication code storage table is used.
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. To further increase security, 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.
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. In an embodiment, an electronic security module is used 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.
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. The implementation of the method in the form of software is also advantageous, since this causes particularly low costs, in particular if an executing control device is still used for further tasks and therefore exists anyway. 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.).
Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung. Further advantages and embodiments of the invention will become apparent from the description and the accompanying drawings.
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. It is understood that the features mentioned above and those yet to be explained below can be used not only in the particular combination indicated, but also in other combinations or in isolation, without departing from the scope of the present invention.
Die Erfindung ist anhand eines Ausführungsbeispiels in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung ausführlich beschrieben. The invention is illustrated schematically with reference to an embodiment in the drawing and will be described in detail below with reference to the drawing.
Kurze Beschreibung der Zeichnungen Brief description of the drawings
Figur 1 zeigt ein Blockschaltbild einer Ausführungsform einer erfindungsgemäßen Recheneinheit. FIG. 1 shows a block diagram of an embodiment of a computing unit according to the invention.
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. 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.
Ausführungsform(en) der Erfindung Embodiment (s) of the invention
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, bevorzugtenIn 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
Ausführungsform beitragen und nachfolgend der Reihe nach erläutert werden. Embodiment contribute and will be explained below in order.
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. 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. In the nonvolatile memory 110, 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. Furthermore, 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. First, in step 201, 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. In a step 202, 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.
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 Subsequently, 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. In a step 209, 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
Schreibmodul 150 übertragen, welches den Authentifizierungscode in einem Schritt 21 1 zusammen mit der Speicheradresse und der Speicherlänge desWrite module 150 which transmits the authentication code in a step 21 1 together with the memory address and the memory length of the
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. Blocks 131 into the authentication code storage table 120, here in the table area 121 writes. In a subsequent method 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.
Eine während des Betriebs durchzuführende Verifizierung der Speicherblöcke 131 usw. wird nachfolgend anhand Figur 3 erläutert. A verification of the memory blocks 131, etc. to be performed during operation will be explained below with reference to FIG.
In einem Schritt 301 fordert das Schreibmodul 150 den Sicherheitsbaustein 160 zur Verifizierung der Authentifizierungscodespeichertabelle 120 auf. In a step 301, the writing module 150 requests the security module 160 to verify the authentication code storage table 120.
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. The security module 160 then 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.
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. However, if the authentication codes match, 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.
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. In a step 306, 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.
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. 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.

Claims

Ansprüche claims
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. A method for verifying a memory block of a non-volatile memory, wherein at a first time a first authentication code for the memory block (131, 132, 133) is determined using a secret keyword (209) and stored in an authentication code memory table (120) ), at a second time for verification, a second authentication code for the memory block (131, 132, 133) is determined using the secret keyword (307) and compared with the first authentication code (307) and the memory block (131, 132, 133) is verified (309) if the first authentication code and the second authentication code match.
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 ). The method of claim 1, wherein in the authentication code storage table (120) additionally a memory address and a memory length of the memory block (131, 132, 133) are stored (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). The method of claim 1 or 2, wherein a memory address and a memory length of the authentication code memory table (120) are stored in an address memory block (162) (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). The method of claim 3, wherein a third authentication code for the authentication code storage table (120) is determined using the secret keyword and stored in the address storage block (162) (214).
Verfahren nach Anspruch 3 oder 4, wobei der Adressspeicherblock in einem sicheren Speicherbereich (162) vorgesehen wird. The method of claim 3 or 4, wherein the address storage block is provided in a secure storage area (162).
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. Method according to one of the preceding claims, wherein the secret keyword is stored in a secure memory area (161) which is not readable by third parties.
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. 7. The method according to any one of the preceding claims, wherein the authentication code storage table (120) is provided in the non-volatile memory (1 10). 8. The method according to any one of the preceding claims, wherein an electronic security module (160) is used which has the secure memory area (161, 162) and which is adapted to determine the authentication code (121, 122, 123). 9. arithmetic unit which is adapted to perform a method according to any one of the preceding claims.
EP11702454A 2010-03-01 2011-02-07 Method for verifying a memory block of a nonvolatile memory Withdrawn EP2542995A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102010002472A DE102010002472A1 (en) 2010-03-01 2010-03-01 Method for verifying a memory block of a non-volatile memory
PCT/EP2011/051714 WO2011107319A2 (en) 2010-03-01 2011-02-07 Method for verifying a memory block of a nonvolatile memory

Publications (1)

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

Family

ID=44009846

Family Applications (1)

Application Number Title Priority Date Filing Date
EP11702454A Withdrawn EP2542995A2 (en) 2010-03-01 2011-02-07 Method for verifying a memory block of a nonvolatile memory

Country Status (7)

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

Cited By (1)

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

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130336475A1 (en) * 2012-06-14 2013-12-19 Kabushiki Kaisha Toshiba Device
US8949621B2 (en) * 2012-06-14 2015-02-03 Kabushiki Kaisha Toshiba Memory device authentication
DE102014208855A1 (en) * 2014-05-12 2015-11-12 Robert Bosch Gmbh Method for carrying out communication between control units
US9830603B2 (en) * 2015-03-20 2017-11-28 Microsoft Technology Licensing, Llc Digital identity and authorization for machines with replaceable parts
FR3044786B1 (en) * 2015-12-07 2018-07-13 Ingenico Group METHOD FOR LOADING A COMPUTER RESOURCE WITHIN AN ELECTRONIC DEVICE, ELECTRONIC MODULE AND CORRESPONDING COMPUTER PROGRAM
CN108039190B (en) * 2017-12-15 2020-09-08 北京京存技术有限公司 Test method and device
DE102018213615A1 (en) * 2018-06-20 2019-12-24 Robert Bosch Gmbh Cryptography module and operating method therefor

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 (en) * 2000-02-15 2006-05-31 Silverbrook Research Pty. Limited Consumable authentication protocol and system
DE10131575A1 (en) * 2001-07-02 2003-01-16 Bosch Gmbh Robert Method for protecting a microcomputer system against manipulation of data stored in a memory arrangement of the microcomputer system
JP2003242030A (en) * 2001-12-14 2003-08-29 Matsushita Electric Ind Co Ltd Memory control device and memory control method
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 (en) * 2004-06-30 2010-04-07 富士通マイクロエレクトロニクス株式会社 Secure processor and program for secure processor.
BRPI0618897A2 (en) * 2005-11-29 2011-09-13 Thomson Licensing method and apparatus for protecting digital content
JP5002205B2 (en) * 2006-07-10 2012-08-15 任天堂株式会社 Data authentication method and data authentication system
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 (en) * 2007-02-16 2010-02-25 Continental Automotive Gmbh Method and device for secure storage and secure reading of user data

Non-Patent Citations (1)

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

Cited By (1)

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

Also Published As

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

Similar Documents

Publication Publication Date Title
EP2542995A2 (en) Method for verifying a memory block of a nonvolatile memory
DE102012110499B4 (en) Safety access procedure for electronic automotive control units
DE69534757T2 (en) System and method for secure storage and distribution of data using digital signatures
EP2689553B1 (en) Motor vehicle control unit having a cryptographic device
EP2940620B1 (en) Derivation of a device-specific value employing an unclonable function
EP2235598B1 (en) Field device and method of operation thereof
DE112012003795T5 (en) Vehicle network system and vehicle information processing method
DE10318031A1 (en) Method to ensure the integrity and authenticity of Flashware for ECUs
DE102016221108A1 (en) A method for updating software of a control device of a vehicle
EP1999521B1 (en) Field device
EP3811260B1 (en) Cryptography module and method for operating same
WO2015180867A1 (en) Production of a cryptographic key
DE112018007132T5 (en) In-vehicle function access control system, in-vehicle device and in-vehicle function access control method
EP3387636B1 (en) Cryptographic algorithm having a key-dependent masked computing step (sbox call)
WO2016206872A1 (en) Provision of at least one password
DE102014213454A1 (en) Method and system for detecting a manipulation of data records
DE102011109426A1 (en) Method for identifying data changes in controller for controlling functional component of vehicle, involves saving data from controls of functional component in storage device of controller
DE102010026392A1 (en) Procedure for the safe parameterization of a safety device
AT522276A1 (en) Device and method for checking the integrity of sensor data streams
EP3703333B1 (en) Method, apparatus and system for processing at least one information item in a safety system
DE102019003673B3 (en) Side channel safe implementation
DE102008039121A1 (en) Method for encoding character string of digital signature of manufacturer of vehicle, involves determining digital signature such that preset area of character string is changed so that another digital signature is same as former signature
DE10215626B4 (en) Procedure for changing encryption algorithms for protected software or protected data
DE102020200102A1 (en) Encryption and decryption of a secure memory area in a vehicle
WO2020234443A1 (en) Method for encrypting files for secure storage, and computing device

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