WO2024056443A1 - Verfahren zum überprüfen von daten in einer recheneinheit - Google Patents

Verfahren zum überprüfen von daten in einer recheneinheit Download PDF

Info

Publication number
WO2024056443A1
WO2024056443A1 PCT/EP2023/074234 EP2023074234W WO2024056443A1 WO 2024056443 A1 WO2024056443 A1 WO 2024056443A1 EP 2023074234 W EP2023074234 W EP 2023074234W WO 2024056443 A1 WO2024056443 A1 WO 2024056443A1
Authority
WO
WIPO (PCT)
Prior art keywords
unit
memory
data
security
predetermined
Prior art date
Application number
PCT/EP2023/074234
Other languages
English (en)
French (fr)
Inventor
Hakan Aktas
Jens Schmuelling
Martin Assel
Peter Poinstingl
Daniel Hoettges
Frederic Stumpf
Aparna VIJAYA KRISHNAN
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 WO2024056443A1 publication Critical patent/WO2024056443A1/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • 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/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • 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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • 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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement

Definitions

  • the present invention relates to a method for checking data in a computing unit as well as a computing unit and a computer program for carrying it out.
  • TOCTOU problem time-of-check-to-time-of-use problem
  • time-of-Check data can be read in from a storage unit by a security unit that is intended to check data and checked using cryptographic methods.
  • an attacker e.g. malicious software that has corrupted the computing unit, makes unauthorized changes to the data in the storage unit during or after checking the data, these changes can usually no longer be recognized by the security unit.
  • the security unit may then incorrectly verify the authenticity and integrity of the data, even though this data was subsequently compromised by the attacker. This can result in the manipulated data being further processed in the computing unit.
  • Such a security unit usually has no way of detecting whether the validated data is being processed or further processed correctly and has not been manipulated without authorization after verification.
  • the computing unit has a memory unit, for example a RAM, ROM or flash memory, a security unit or a security module and a memory protection unit.
  • the security unit is intended in particular as a secured or protected unit for carrying out cryptographic operations.
  • the memory protection unit (MPU) is intended in particular to receive and manage access requests to a memory unit. It is understood that the computing unit can have additional hardware and software units such as a processor unit, input and output interfaces, etc.
  • data to be checked is stored in a predetermined memory area or in a predetermined address area in the storage unit.
  • this data can be stored in the specified memory area by a processor unit or by processes or applications executed by the processor unit.
  • the security unit configures or instructs the memory protection unit to protect the predetermined memory area according to a predetermined access restriction.
  • This access restriction specifies in particular which units of the computing unit are allowed to access the specified memory area and the data stored there and which units are prohibited from accessing it.
  • the memory protection unit specifies this access restriction itself.
  • the memory protection unit carries out memory protection of the specified memory area in accordance with the specified access restriction or the memory protection unit sets up the memory protection accordingly. If the memory protection unit from now on receives an access request to this memory area, the memory protection unit can expediently allow or block the respective requested access in accordance with the specified access restriction in the course of this memory protection.
  • the data stored in the specified storage area is checked by the security unit, in particular with the help of cryptographic operations, for example with the help of keys and/or other cryptographic methods, which can be stored in a special storage unit of the security unit.
  • the security unit can calculate a cryptographic signature for this purpose. This check allows the data to be checked in particular for authenticity, accuracy and integrity. However, the specific type of verification is not important.
  • a result of this check can be stored by the security unit in the computing unit, in particular in the storage unit itself in a further predetermined storage area. If the stored data was validated during the review or if its authenticity was verified, the data can be used or released in particular for further processing in the computing unit. However, if the authenticity cannot be verified, the data can, for example, be discarded and not released for further processing.
  • the present invention addresses the so-called TOCTOU problem (time-of-check-to-time-of-use problem) particularly expediently.
  • the invention provides a cost-effective, efficient and secure way to prevent undetected, unauthorized manipulation of data during or after verification.
  • the access restriction by setting and implementing the access restriction, only trustworthy, secure entities can be allowed to access the data.
  • it can expediently be prevented that the data is manipulated while or after the data is or has been checked by the security unit. Due to the specified access restriction and the memory protection implemented, the memory area in which the data to be checked can be stored stored stored, are protected from unauthorized access, for example at least until the data has been further processed after verification.
  • the security unit can dynamically configure the memory protection unit in order to individually protect individual memory or address areas in the memory unit.
  • a dynamic memory protection unit can be provided in particular, which can be dynamically configured by the security unit online and on-demand during operation of the computing unit.
  • the present method provides a cost-effective way to dynamically protect individual memory areas before data checking.
  • the remaining memory areas of the storage unit can continue to be used regularly during operation of the computing unit. For example, costs and resources can be saved in this way compared to a dedicated storage unit or a dedicated storage area, which is exclusively assigned to the security unit and which only the security unit may access during the running time of the computing unit.
  • the method makes it possible to efficiently dynamically increase a trust boundary and/or security zone of the security unit by additional memory areas.
  • the security unit is enabled to access the storage unit directly to check the data, which is also possible in the course of the regular Operation of the computing unit is used, which makes it possible, for example, to check large amounts of data in a simple manner.
  • a conventional manner it is often not easily possible to copy large memory areas or large amounts of data to a security unit, for example to check longer certificate chains or in the context of software updates. Since longer certificate chains take up a larger storage area, they are usually not stored in a secured storage area. To transfer such certificate chains, parsing or splitting is often carried out, which may require the execution of untrustworthy applications.
  • large memory areas can also be transferred to the security unit completely, securely and protected against manipulation. This also enables secure verification of long cryptographic certificate chains, for example X.509 certificates.
  • the method can enable a secured memory or a secure storage of data in a memory (English “Secure Flash” or “Secure Flashing") by data or software being transferred by a host, for example by a processor unit of the computing unit or be programmed into the storage unit by applications running in the computing unit and by a signature check of this programmed software being carried out by the security unit. Since the integrity of the software can be maintained by the present method, it can in particular be prevented that a manipulated host manipulates the programmed software after its validation but before its execution.
  • the present method is suitable for computing units in which a secure boot is not possible, and also for systems in which larger amounts of data are to be verified. Even if the computing unit uses and implements a secure boot procedure, data verification according to the present method can, for example, limit and reduce the effects of runtime attacks.
  • the security unit can, for example, be a hardware-based or a unit implemented in hardware, for example a so-called hardware security module (HSM), in particular an internal or external peripheral device for executing cryptographic operations.
  • HSM hardware security module
  • the security unit can, for example, also be implemented in software or be software-based, for example as a secure or trustworthy runtime environment (Trusted Execution Environment, TEE), which represents a secured area of a processor unit in which only applications specifically released for this purpose are executed may be.
  • TEE Trusted Execution Environment
  • such a TEE environment can be provided as a so-called "trust zone", with virtual processors being provided as a secure runtime environment.
  • the memory protection unit can be stored in a table, for example, which address or memory areas of the memory unit may be accessed by which units of the computing unit, in particular by which processor units and/or by which processes or applications. If the memory protection unit receives an access request to a specific memory area, the memory protection unit uses this table to check whether the respective requesting unit is allowed to access this memory area or not. Accordingly, the memory protection unit allows or blocks the requested access. For example, to configure the memory protection unit, the security unit can create or change entries in this table regarding the respective memory area. The memory protection unit then implements these entries and only allows permitted access, whereby the corresponding memory protection is carried out or set up by the memory protection unit.
  • the computing unit is configured in such a way that only the security unit can or may configure the memory protection unit.
  • only the security unit is therefore allowed to determine which memory areas should be dynamically protected.
  • Other hardware and software units of the computing unit which can be viewed as untrustworthy and potentially corrupted for security reasons, are therefore expediently not allowed to configure the memory protection unit in order to do so Set, change or remove memory protection. In this way, it can in particular be prevented that an attacker, who has, for example, taken over the computing unit excluding the security unit, changes the memory protection and manipulates the data unnoticed.
  • the specified access restriction includes that only the security unit can or may read and write access to the specified memory area.
  • Other units in the computing unit e.g. processes, applications, processor units, processor cores, etc., may only access the specified memory area or not at all. Changes to the memory area can therefore be made exclusively and exclusively by the security unit; the remaining hardware and software units of the computing unit are at least prohibited from writing access. This makes it particularly useful to prevent unauthorized changes to the data during or after the check by the security unit.
  • the computing unit is particularly expediently configured in such a way that the security unit can individually determine in the access restriction for individual units of the computing unit, e.g. for individual processor cores, whether the respective unit is granted read and write access or only read access or no access to the specified memory area.
  • a special processor core that is supposed to process the data as scheduled can be granted read access to the memory area, whereas the remaining processor cores are not granted access.
  • reading and writing access to the memory area can be prohibited if special data to be protected should only become readable after checking and release by the security unit, e.g. algorithms that require protection.
  • a decision or evaluation is made or Evaluate whether the security unit initiates a cancellation or change of the memory protection of the specified memory area and/or whether the access is redirected to another memory area in accordance with the access request, for example to another memory area in the memory unit or in another memory unit of the computing unit.
  • a notification in particular an interrupt message, and in particular an exception message can be sent, for example to the security unit and/or to a processor unit of the computing unit.
  • the decision as to how the access request should be handled can then be carried out by the security unit or the processor unit upon receipt of this notification, in particular by a special unit for processing such notifications (“Exception Handler”).
  • the memory protection unit is reconfigured by the security unit in order to cancel the memory protection of the specified memory area.
  • the security unit can change or delete the corresponding entries in the respective table of the memory protection unit, which define permitted or prohibited access to the memory area by different units of the computing unit.
  • the memory protection of the specified memory area is canceled or no longer carried out by the memory protection unit upon this configuration.
  • the memory protection can be removed after the data has been successfully validated, so that other units can access the data and process it further.
  • this removal of storage protection can take place promptly or immediately before planned, authorized access to the data in order to minimize the possibility of unauthorized manipulation of the data as much as possible.
  • the memory protection unit is preferably reconfigured by the security unit in order to use the predetermined memory area according to a second predetermined one Protect access restriction.
  • This second memory protection of the predetermined memory area is then carried out by the memory protection unit in accordance with the predetermined second access restriction. For example, according to this second access restriction, corresponding reading and/or writing access can be permitted to certain units that are scheduled to access the validated data.
  • the memory protection unit is reconfigured to cancel the memory protection or to execute the second memory protection after a start cycle.
  • the memory protection is expediently still active.
  • the corresponding data can therefore still be protected even after a reset, for example.
  • the security unit first releases the host to release memory protection.
  • this can be realized by a reset value of the memory protection unit or by a non-volatile configuration of the memory protection unit that is set by the system after the reset, either by the security unit when it is started before the host, or by hardware features in the controller during the reset. In this way, it can be ensured in particular that the data cannot be manipulated by a restart.
  • the security unit After checking the stored data, the security unit advantageously stores a result of the check in a further storage area of the storage unit or in a further storage unit of the computing unit. Furthermore, the security unit removes or changes the memory protection so that a processing unit is allowed to at least read access to the memory area, whereby this processing unit can be a host, for example a process, an application, a processor unit, a processor core, etc. If the stored data has been validated according to the stored result or if its authenticity has been confirmed, the processing unit reads the stored and checked data and processes it.
  • the security unit is instructed to check the data stored in the predetermined storage area.
  • this instruction can be done by the processing unit that is supposed to access the data and process it further.
  • the processing unit can issue or transmit a corresponding instruction, message or request to the security unit for this purpose.
  • the security unit expediently configures the memory protection unit in response to a corresponding request from a software application of the computing unit.
  • a corresponding instruction is preferably stored in a further memory area of the memory unit or in a further memory unit of the computing unit.
  • this instruction can store the specific memory address at which the data to be checked is stored.
  • a notification is sent to the security unit, in particular an interrupt.
  • the memory address at which the instruction is stored can be stored in this notification.
  • the security unit Upon receipt of this notification, the security unit reads the stored instruction and checks the data.
  • the data to be checked is part of an update and can, for example, have new firmware for the computing unit or a new part of a firmware or new data for a firmware.
  • the update can be an OTA update (“over-the-air”), in particular a so-called FOTA (“Flashing over the air”) or SOTA (“Software over the air”) update , during which the update data is transmitted via a radio connection, for example via the Internet.
  • the data is first received via an interface of the computing unit, for example via a radio and/or diagnostic interface. After receiving the data, the memory area is protected with the help of access restriction and memory protection by the security unit and the memory protection unit.
  • the security unit then checks the data, in particular as to whether the data was received completely and correctly and whether no malicious software was transmitted. After checking and validating the stored data, the data is activated in the specified memory area or the data is installed in another memory area, for example in another memory area of the storage unit or in another memory unit of the computing unit. After such activation or installation, the update data can be used in future program runs.
  • the present procedure can ensure that no unauthorized manipulation of the update data is carried out between its checking and its activation or installation. This is a particularly useful way to address the TOCTOU problem with OTA updates.
  • an explicitly reserved memory can be used, for example, which can only be changed by a hardware security module (HSM), which then checks the data.
  • HSM hardware security module
  • explicit memory can be associated with high costs, especially since this memory remains unused in normal applications.
  • a buffer outside the HSM is often used, which can then usually be accessed and therefore manipulated by (unsafe) host CPUs.
  • unsafe host CPUs For example, when installing the update data or firmware in the HSM, it can be checked again whether manipulation has taken place.
  • an availability problem can arise here because the old data or the old firmware has already been at least partially overwritten and may no longer be available for a roll-back.
  • the present method makes it possible to use any memory within the system for updates, so that no explicitly reserved memory is necessary and the system is available at all times. Since the transmission of the data can be disrupted or interrupted, for example by an attack or a radio interference, a memory area can be specified for storing the update data, particularly for reasons of denial of service and availability, which can completely accommodate the new memory contents. This means that the complete functionality of the system can be guaranteed during the download. At the same time, this reserved, predetermined memory area is filled with the loaded data. The predetermined memory area can in particular be any memory area in the system. After the transfer to the memory area has been completed, the system expediently triggers the security unit.
  • the security unit then starts checking the new memory contents.
  • exclusive access can be relinquished after the verification and the cache can be released to other devices again.
  • the present method is particularly suitable for use in the (motor) vehicle sector.
  • the computing unit can be, for example, a microcontroller or a control device of a (motor) vehicle, for example an engine, domain, airbag, brake control device, etc.
  • the data to be checked can be, for example, vehicle data, which is obtained, for example, from sensors of the vehicle be recorded.
  • this data can be processed as part of safety-critical functions that are carried out for safe operation and control of the vehicle, for example as part of engine, domain, airbag and/or brake control, as part of driving assistance functions, as part of the supported vehicle autonomous driving (IAD) or generally automated or partially automated driving, etc.
  • the data to be checked may also be an update of a control unit or vehicle software.
  • the present method makes it possible, in particular, to achieve a high level of operational reliability or functional safety (“safety”), as well as, in particular, a high level of information technology security or information security (“security”).
  • safety operational reliability or functional safety
  • security information technology security or information security
  • the safety or reliability and integrity of the control device can be increased.
  • the method can particularly expediently meet safety requirements in the (motor) vehicle sector, such as those in the ISO 26262 standard or in particular by the so-called "Automotive Safety Integrity Level” (ASIL), a safety requirement level specified by ISO 26262 for safety-relevant Systems in motor vehicles are specified.
  • ASIL Automotive Safety Integrity Level
  • a computing unit e.g. a control device of a (motor) vehicle, is set up, in particular in terms of programming, to carry out a method according to the invention.
  • a machine-readable storage medium is provided with a computer program stored thereon as described above.
  • Suitable storage media or data carriers for providing the computer program are, in particular, magnetic, optical and electrical memories, such as hard drives, flash memories, EEPROMs, DVDs, etc.
  • Figure 1 shows schematically an embodiment of a computing unit according to the invention, which is set up to carry out an embodiment of a method according to the invention.
  • Figure 2 shows schematically an embodiment of a method according to the invention as a block diagram.
  • a computing unit in the form of a system on a chip is shown schematically and designated 100, which is used, for example, in a microcontroller of a control unit in a (motor) vehicle.
  • SoC system on a chip
  • the SoC 100 has a host 110, which in turn has a processor unit 111, for example a multi-core processor with a large number of processor cores, and a local, internal storage unit 112, for example a RAM memory.
  • the SoC 100 also has global, shareable memory units, e.g. a flash memory 140 and a global RAM memory 150.
  • OCI on-chip interconnect
  • the SoC 100 has a security unit 120, for example a hardware security module (HSM), which is intended to check data stored in the storage units 140, 150 for authenticity, correctness or integrity, for example using cryptographic encryption drive.
  • HSM 120 has, for example, a debugger control 121 and a secured processor core 122, a random number generator 123 having a physical random number generator (true random number generator, TRNG) and a pseudo random number generator (PRNG).
  • TRNG physical random number generator
  • PRNG pseudo random number generator
  • a secured local RAM memory 124 a unit 125 for hash functions, an interface 126 for the on-chip connection, a unit 127 for elliptic curve cryptography (ECC), a unit 128 for encryption and signing according to the cryptographic RSA (Rivest-Shamir-Adleman) method and a unit 129 for an advanced encryption standard (AES).
  • ECC elliptic curve cryptography
  • AES advanced encryption standard
  • the HSM 120 communicates with a memory protection unit (MPU) 130 via a secure bus connection 102.
  • the MPU 130 is provided to monitor access requests to the storage units 140 and 150 and to allow or block corresponding requested accesses.
  • the MPU 130 can be configured using a configuration file 131, which includes a table in which it is stored which units of the SoC 100 are allowed to access which memory or address areas of the memory units 140, 150 and which units are denied access .
  • only the HSM 120 may be allowed to change this configuration of the MPU 130.
  • a debugger 170 for detecting errors in the SoC 100 can be connected as an external peripheral device not implemented on the SoC 100 via a connection 103 (e.g. a so-called debug access port, DAP) to a debug interface 160 of the SoC 100, which can have a register 161, for example.
  • a connection 103 e.g. a so-called debug access port, DAP
  • DAP debug access port
  • the host 110 for example the processor unit 111 or applications running in the processor unit 111, is to access data stored in the storage units 140, 150 and process this data, it may be important to first check the data for accuracy and integrity through the HSM 120 to check, for example if the data is to be processed as part of safety-critical functions of the vehicle.
  • TOCTOU problem time-of-check-to-time-of-use problem
  • the so-called TOCTOU problem can often occur, for example if an attacker who attacks the SoC 100 has corrupted, makes unauthorized changes to the data during or after the data is verified by the HSM 120, so that the HSM 120 can no longer detect these changes.
  • the SoC 100 is set up, in particular in terms of programming, to carry out an embodiment of a method according to the invention, which is shown schematically as a block diagram in FIG Figures 1 and 2 should be explained.
  • a step 201 data to be processed is stored in a predetermined address or memory area, for example of the flash memory 140.
  • this data can be sensor values of the vehicle, which are to be further processed by the host 110 to execute a vehicle function, for example an engine control.
  • the host 110 instructs the HSM 130 to check the data stored in the specified memory area.
  • the host 110 stores a corresponding instruction in a further, second memory area of the flash memory 140, in which, for example, the memory address of the data to be checked is stored.
  • the host 110 sends a notification, in particular an interrupt, to the HSM 120, which then reads the stored instruction.
  • the HSM 120 configures the MPU 130 to store the predetermined memory area in the flash memory 140 according to a predetermined configuration. to protect limited grip. For example, according to this access restriction, only the HSM 120 can read and write access to the specified memory area. For example, other units of the SoC 100 may not be allowed read or write access.
  • the HSM 120 may create or modify an entry in the table of the configuration file 131.
  • the MPU 130 performs memory protection of the flash memory 140 according to the predetermined access restriction. Now, if a device other than the HSM 120 wants to access the specified memory area, the MPU 130 blocks this access.
  • the HSM 120 reads the data stored in the specified memory area and checks the read data.
  • the HSM 120 uses cryptographic procedures to check the accuracy and integrity of the data read.
  • a step 206 the result of the check is stored in a further, third memory area in the flash memory 140.
  • the HSM 120 cancels the memory protection of the specified memory area or at least changes the memory protection in such a way that the host 110 is allowed at least read access to the specified memory area.
  • the HSM 120 reconfigures the MPU 130 and changes the corresponding entry in the table in the configuration file 131, for example, such that the memory protection is removed and all units of the SoC 100 are allowed to access the specified memory area, or, for example, such that a second memory protection is set up, according to which, in addition to the HSM 120, the host 110 is also allowed to at least read access to the specified memory area.
  • the MPU 130 executes the corresponding new configuration. If the memory protection is to be removed according to the new configuration, the MPU 130 from now on allows all accesses to the specified one Storage area. If the second memory protection is to be implemented, the M PU 130 only allows the HSM 110 read and write access and the host read access.
  • a step 209 the host 110 reads the result of the check from the third memory area. If, according to the result, the data has been validated, the host 110 reads and processes the data in step 210.
  • HSM 120 and MPU 130 can dynamically protect the address areas of the memory units 140, 150.
  • This dynamic memory protection unit 130 can be configured on-demand by the hardware security module 120 at the request of a SW application of the host 110 and protect the address areas accordingly. After the specified memory area has been appropriately protected by the MPU 130, only the hardware security module 120 can make changes to this memory area.
  • the data to be checked can also be update data, which was received, for example, in the course of OTA updates via the Internet and stored in the specified storage area. After checking and validating the stored data, the data can then be activated in the specified memory area or the data can be installed in another memory area so that the update data can be used in future program processes.
  • the present method can therefore ensure that no unauthorized manipulation is carried out between checking and activating or installing the update data.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zum Überprüfen von Daten in einer Recheneinheit (100), wobei die Recheneinheit (100) eine Speichereinheit (140, 150), eine Sicherheitseinheit (120) und eine Speicherschutzeinheit (130) aufweist, umfassend die Schritte: Hinterlegen von zu überprüfenden Daten in einem vorgegebenen Speicherbereich in der Speichereinheit (140, 150); Konfigurieren der Speicherschutzeinheit (130) durch die Sicherheitseinheit (120), um den vorgegebenen Speicherbereich gemäß einer vorgegebenen Zugriffsbeschränkung zu schützen; Ausführen eines Speicherschutzes des vorgegebenen Speicherbereichs durch die Speicherschutzeinheit (130) gemäß der vorgegebenen Zugriffsbeschränkung; Überprüfen der in dem vorgegebenen Speicherbereich hinterlegten Daten durch die Sicherheitseinheit (120).

Description

Beschreibung
Verfahren zum Überprüfen von Daten in einer Recheneinheit
Die vorliegende Erfindung betrifft ein Verfahren zum Überprüfen von Daten in einer Recheneinheit sowie eine Recheneinheit und ein Computerprogramm zu dessen Durchführung.
Hintergrund der Erfindung
Bei der Überprüfung und anschließenden Verwendung von Daten in Recheneinheiten kann das sog. TOCTOU-Problem (engl.: "Time-of-Check-to-Time-of-Use- Problem") auftreten, gemäß welchem sich Daten zum Zeitpunkt ihrer Überprüfung ("Time-of-Check") von den Daten zum Zeitpunkt ihrer Verwendung ("Time- of-llse") unterscheiden können. Beispielsweise können Daten aus einer Speichereinheit durch eine Sicherheitseinheit, welche zum Überprüfen von Daten vorgesehen ist, eingelesen und mittels kryptographischer Verfahren überprüft werden. Wenn jedoch ein Angreifer, z.B. eine bösartige Software, welcher die Recheneinheit korrumpiert hat, während oder nach der Überprüfung der Daten unautorisierte Änderungen an den Daten in der Speichereinheit vornimmt, können diese Änderungen von der Sicherheitseinheit zumeist nicht mehr erkannt werden. Die Sicherheitseinheit verifiziert dann unter Umständen fälschlicherweise Echtheit und Integrität der Daten, obwohl diese Daten nachträglich von dem Angreifer beeinträchtigt wurden. Dies kann dazu führen, dass die manipulierten Daten in der Recheneinheit weiterverarbeitet werden. Eine derartige Sicherheitseinheit hat zumeist keine Möglichkeit zur Erkennung, ob die validierten Daten auch korrekt prozessiert bzw. weiterverarbeitet werden und nicht unautorisiert nach der Überprüfung manipuliert wurden.
Offenbarung der Erfindung Erfindungsgemäß werden ein Verfahren zum Überprüfen von Daten in einer Recheneinheit sowie eine Recheneinheit und ein Computerprogramm zu dessen Durchführung mit den Merkmalen der unabhängigen Patentansprüche vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.
Die Recheneinheit weist eine Speichereinheit, z.B. einem RAM-, ROM- oder Flash-Speicher, eine Sicherheitseinheit bzw. ein Sicherheitsmodul und eine Speicherschutzeinheit auf. Die Sicherheitseinheit ist insbesondere als eine gesicherte bzw. geschützte Einheit zum Ausführen kryptographischer Operationen vorgesehen. Die Speicherschutzeinheit (engl. "Memory Protection Unit", MPU) ist insbesondere vorgesehen, um Zugriffsanfragen auf eine Speichereinheit zu empfangen und zu verwalten. Es versteht sich, dass die Recheneinheit noch weitere Hardware- und Softwareeinheiten aufweisen kann wie eine Prozessoreinheit, Eingabe- und Ausgabeschnittstellen usw.
Im Rahmen des vorliegenden Verfahrens werden zu überprüfenden Daten in einem vorgegebenen Speicherbereich bzw. in einem vorgegebenen Adressbereich in der Speichereinheit hinterlegt. Beispielsweise können diese Daten durch eine Prozessoreinheit bzw. durch von der Prozessoreinheit ausgeführte Prozesse oder Anwendungen in dem vorgegebenen Speicherbereich hinterlegt werden.
Die Sicherheitseinheit konfiguriert die Speicherschutzeinheit bzw. weist die Speicherschutzeinheit an, um den vorgegebenen Speicherbereich gemäß einer vorgegebenen Zugriffsbeschränkung zu schützen. Durch diese Zugriffsbeschränkung wird insbesondere vorgegeben, welche Einheiten der Recheneinheit auf den vorgegebenen Speicherbereich und die dort hinterlegten Daten zugreifen dürfen und welchen Einheiten der Zugriff verboten ist. Insbesondere gibt die Speicherschutzeinheit diese Zugriffsbeschränkung selbst vor.
Auf dieses Konfigurieren hin führt die Speicherschutzeinheit einen Speicherschutz des vorgegebenen Speicherbereichs gemäß der vorgegebenen Zugriffsbeschränkung aus bzw. die Speicherschutzeinheit richtet den Speicherschutz entsprechend ein. Wenn die Speicherschutzeinheit fortan eine Zugriffsanfrage auf diesen Speicherbereich empfängt, kann die Speicherschutzeinheit im Zuge dieses Speicherschutzes den jeweilig angefragten Zugriff gemäß der vorgegebenen Zugriffsbeschränkung zweckmäßigerweise erlauben oder blockieren.
Die in dem vorgegebenen Speicherbereich hinterlegten Daten werden durch die Sicherheitseinheit überprüft, insbesondere mit Hilfe von kryptographischen Operationen, z.B. mit Hilfe von Schlüsseln und/oder weiterer kryptographischer Methoden, welche in einer speziellen Speichereinheit der Sicherheitseinheit hinterlegt sein können. Beispielsweise kann die Sicherheitseinheit zu diesem Zweck eine kryptographische Signatur berechnen. Durch diese Überprüfung können die Daten insbesondere auf Echtheit, Richtigkeit bzw. Integrität überprüft werden. Auf die konkrete Art der Überprüfung kommt es jedoch nicht an.
Ein Ergebnis dieser Überprüfung kann durch die Sicherheitseinheit in der Recheneinheit hinterlegt werden, insbesondere in der Speichereinheit selbst in einem weiteren vorgegebenen Speicherbereich. Wenn im Zuge der Überprüfung die hinterlegten Daten validiert wurden bzw. wenn deren Echtheit verifiziert wurde, können die Daten insbesondere für eine weitere Verarbeitung in der Recheneinheit verwendet bzw. freigegeben werden. Wenn die Echtheit hingegen nicht verifiziert werden kann, können die Daten beispielsweise verworfen werden und nicht für eine weitere Verarbeitung freigegeben werden.
Durch die vorliegende Erfindung wird besonders zweckmäßig das sog. TOCTOU-Problem (engl.: "Time-of-Check-to-Time-of-Use-Problem") adressiert. Die Erfindung stellt eine kostengünstige, effiziente und sichere Möglichkeit bereit, um eine unerkannte, nicht-autorisierte Manipulation der Daten während oder nach ihrer Überprüfung zu verhindern. Durch Festlegen und Umsetzen der Zugriffsbeschränkung kann es insbesondere nur vertrauenswürdigen, sicheren Einheiten erlaubt werden, auf die Daten zuzugreifen. Auf diese Weise kann zweckmäßigerweise verhindert werden, dass die Daten manipuliert werden, während oder nachdem die Daten von der Sicherheitseinheit überprüft werden bzw. wurden. Durch die vorgegebene Zugriffsbeschränkung und den ausgeführten Speicherschutz kann der Speicherbereich, an welchem die zu überprüfenden Daten hinterlegt sind, vor unautorisierten Zugriffen geschützt werden, beispielsweise zumindest so lange, bis die Daten nach deren Verifikation weiterverarbeitet wurden. Wenn ein Angreifer versuchen möchte, auf die von der Sicherheitseinheit zu überprüfenden bzw. bereits überprüften Daten zuzugreifen und diese zu verändern, wird dieser versuchte Zugriff durch den eingerichteten Speicherschutz von der Speicherschutzeinheit zweckmäßigerweise blockiert. Auf diese Weise kann verhindert werden, dass ein potentieller Angreifer, der die Recheneinheit bzw. das Softwaresystem, exklusive der Sicherheitseinheit, übernommen hat, manipulierte Informationen an die Sicherheitseinheit übergibt und/oder während der Überprüfung durch die Sicherheitseinheit unerlaubte Änderungen an den Inhalten in dem Speicherbereich vornimmt. Insbesondere kann die Sicherheitseinheit die Speicherschutzeinheit dynamisch konfigurieren, um einzelne Speicher- bzw. Adressbereiche in der Speichereinheit individuell zu schützen. Durch dieses Zusammenwirken zwischen Sicherheitseinheit und Speicherschutzeinheit kann insbesondere eine dynamische Speicherschutzeinheit bereitgestellt werden, welche online und on-demand während des Betriebs der Recheneinheit dynamisch durch die Sicherheitseinheit konfiguriertet werden kann.
Das vorliegende Verfahren stellt insbesondere eine kosteneffiziente Möglichkeit bereit, um einzelne Speicherbereiche vor der Datenüberprüfung dynamisch zu schützen. Die übrigen Speicherbereiche der Speichereinheit können während des Betriebs der Recheneinheit weiterhin regulär verwendet werden. Beispielsweise können auf diese Weise Kosten und Ressourcen eingespart werden gegenüber einer dedizierten Speichereinheit bzw. einem dedizierten Speicherbereich, welche bzw. welcher exklusiv der Sicherheitseinheit zugewiesen ist und auf welche bzw. auf welchen während der Laufzeit der Recheneinheit ausschließlich die Sicherheitseinheit zugreifen darf. Ferner erlaubt es das Verfahren, effizient eine Vertrauensgrenze (engl. "Trust Boundary") und/oder Sicherheitszone (engl. "Secure Zone") der Sicherheitseinheit um weitere Speicherbereiche dynamisch zu erhöhen.
Ferner wird es der Sicherheitseinheit ermöglicht, für die Überprüfung der Daten direkt auf die Speichereinheit zuzugreifen, welche auch im Zuge des regulären Betriebs der Recheneinheit verwendet wird, wodurch beispielsweise ein Überprüfen von großen Datenmengen auf einfache Weise ermöglicht wird. Auf herkömmliche Weise kann es oftmals nicht ohne weiteres möglich sein, große Speicherbereiche bzw. große Datenmengen an eine Sicherheitseinheit zu kopieren, z.B. zur Überprüfung längerer Zertifikatsketten oder im Umfeld von Software-Updates. Da längere Zertifikatsketten einen größeren Speicherbereich einnehmen, erfolgt deren Speicherung zumeist nicht in einem gesicherten Speicherbereich. Zum Übertragen derartiger Zertifikatsketten wird dann oftmals ein Parsen bzw. Zerteilen durchgeführt, wofür die Ausführung von nicht-vertrauenswürdige Anwendungen notwendig sein kann. Im Gegensatz dazu können im Rahmen des vorliegenden Verfahrens auch große Speicherbereiche komplett, sicher und manipulationsgeschützt an die Sicherheitseinheit übergeben werden. Somit wird beispielsweise auch eine sichere Überprüfung von langen kryptographischen Zertifikatsketten ermöglicht, z.B. von X.509-Zertifikaten.
Ferner können durch das Verfahren ein gesicherter Speicher bzw. ein gesichertes Hinterlegen von Daten in einem Speicher ermöglicht werden (engl. "Secure Flash" bzw. "Secure Flashing"), indem Daten bzw. Software durch einen Host, z.B. durch eine Prozessoreinheit der Recheneinheit oder durch in der Recheneinheit ausgeführte Applikationen, in die Speichereinheit programmiert werden und indem eine Signaturprüfung dieser programmierten Software durch die Sicherheitseinheit erfolgt. Da die Integrität der Software durch das vorliegende Verfahren erhalten werden kann, kann es insbesondere verhindert werden, dass ein manipulierter Host die programmierte Software nach deren Validierung aber vor deren Ausführung manipuliert.
Beispielsweise eignet sich das vorliegende Verfahren für Recheneinheiten, in welchen kein sicheres Hochfahren (engl. "Secure Boot") möglich ist, und ferner für Systeme, in welchen größere Datenmengen verifiziert werden sollen. Auch wenn die Recheneinheit ein Secure-Boot-Verfahren nutzt und implementiert, können durch die Datenüberprüfung gemäß dem vorliegenden Verfahren beispielsweise Auswirkungen von Laufzeitangriffen begrenzt und reduziert werden. Die Sicherheitseinheit kann beispielsweise eine hardwarebasierte bzw. eine in Hardware implementierte Einheit sein, z.B. ein sog. Hardware-Sicherheitsmodul (engl. "Hardware Security Module", HSM), insbesondere ein internes oder externes Peripheriegerät für die Ausführung kryptographischer Operationen. Ferner kann die Sicherheitseinheit beispielsweise auch in Software implementiert bzw. softwarebasiert sein, z.B. als eine sichere bzw. vertrauenswürdige Laufzeitumgebung (engl. "Trusted Execution Environment", TEE), welche einen gesicherten Bereich einer Prozessoreinheit darstellt, in welchem nur speziell dafür freigegebene Applikationen ausgeführt werden dürfen. Beispielsweise kann eine derartige TEE-Umgebung als eine sog "Trustzone" vorgesehen sein, wobei virtuelle Prozessoren als sichere Laufzeitumgebung bereitstellt werden.
Zum Verwalten von Zugriffen auf die Speichereinheit durch die Speicherschutzeinheit kann beispielsweise in einer Tabelle hinterlegt sein, auf welche Adress- bzw. Speicherbereiche der Speichereinheit durch welche Einheiten der Recheneinheit zugegriffen werden darf, insbesondere durch welche Prozessoreinheiten und/oder durch welche Prozesse bzw. Applikationen. Empfängt die Speicherschutzeinheit eine Zugriffsanfrage auf einen speziellen Speicherbereich, überprüft die Speicherschutzeinheit anhand dieser Tabelle, ob die jeweilige anfragende Einheit auf diesen Speicherbereich zugreifen darf oder nicht. Demgemäß erlaubt oder blockiert die Speicherschutzeinheit den angefragten Zugriff. Beispielsweise kann die Sicherheitseinheit zum Konfigurieren der Speicherschutzeinheit Einträge in dieser Tabelle bezüglich des jeweiligen Speicherbereichs erstellen oder verändern. Die Speicherschutzeinheit setzt diese Einträge dann um und lässt nur die erlaubten Zugriffe zu, wodurch der entsprechende Speicherschutz durch die Speicherschutzeinheit ausgeführt bzw. eingerichtet wird.
Vorteilhafterweise ist die Recheneinheit so konfiguriert, dass nur die Sicherheitseinheit die Speicherschutzeinheit konfigurieren kann bzw. darf. Somit ist es insbesondere nur der Sicherheitseinheit erlaubt festzulegen, welche Speicherbereiche dynamisch geschützt werden sollen. Weiteren Hardware- und Softwareeinheiten der Recheneinheit, welche aus Sicherheitsgründen als nicht-vertrauenswürdig und potentiell korrumpiert angesehen werden können, ist es daher zweckmäßigerweise nicht erlaubt, die Speicherschutzeinheit zu konfigurieren, um einen Speicherschutz festzulegen, zu ändern oder aufzuheben. Auf diese Weise kann es insbesondere verhindert werden, dass ein Angreifer, welcher z.B. die Recheneinheit exklusive der Sicherheitseinheit übernommen hat, den Speicherschutz ändert und die Daten unbemerkt manipuliert.
Besonders vorteilhaft umfasst die vorgegebene Zugriffsbeschränkung, dass nur die Sicherheitseinheit lesend und schreibend auf den vorgegebenen Speicherbereich zugreifen kann bzw. darf. Weitere Einheiten in der Recheneinheit, z.B. Prozesse, Anwendungen, Prozessoreinheiten, Prozessorkerne usw., dürfen insbesondere nur lesend oder überhaupt nicht auf den vorgegebenen Speicherbereich zugreifen. Veränderungen an dem Speicherbereich können somit exklusiv und ausschließlich durch die Sicherheitseinheit vorgenommen werden, den restlichen Hardware- und Softwareeinheiten der Recheneinheit ist zumindest ein schreibender Zugriff untersagt. Somit kann besonders zweckmäßig unterbunden werden, dass unautorisierte Änderungen an den Daten während oder nach der Überprüfung durch die Sicherheitseinheit vorgenommen werden.
Besonders zweckmäßig ist die Recheneinheit so konfiguriert, dass die Sicherheitseinheit in der Zugriffsbeschränkung für einzelne Einheiten der Recheneinheit, z.B. für einzelne Prozessorkerne, individuell festlegen kann, ob der jeweiligen Einheit lesender und schreibender Zugriff oder nur lesender oder kein Zugriff auf den vorgegebenen Speicherbereich gewährt wird. Beispielsweise kann einem speziellen Prozessorkern, welcher die Daten planmäßig verarbeiten soll, lesender Zugriff auf den Speicherbereich gewährt werden, wohingegen den restlichen Prozessorkernen kein Zugriff gewährt wird. Beispielsweise kann gemäß der Zugriffsbeschränkung lesender und schreibender Zugriff auf den Speicherbereich untersagt werden, wenn spezielle zu schützende Daten erst nach Überprüfen und Freigabe durch die Sicherheitseinheit lesbar werden sollen, z.B. schützenswerte Algorithmen.
Vorzugsweise erfolgt bei Empfang einer Zugriffsanfrage auf den vorgegebenen Speicherbereich für einen, insbesondere schreibenden, Zugriff, welcher gemäß der vorgegebenen Zugriffsbeschränkung nicht erlaubt ist bzw. welcher gegen die vorgegebene Zugriffsbeschränkung verstößt, ein Entscheiden bzw. Bewerten oder Evaluieren, ob die Sicherheitseinheit eine Aufhebung oder Änderung des Speicherschutzes des vorgegebenen Speicherbereichs veranlasst und/oder ob der Zugriff gemäß der Zugriffsanfrage auf einen anderen Speicherbereich umgeleitet wird, z.B. auf einen anderen Speicherbereich in der Speichereinheit oder in einer weiteren Speichereinheit der Recheneinheit. Beispielsweise kann bei Empfang einer derartigen Zugriffsanfrage eine Benachrichtigung, insbesondere eine Interrupt-Nachricht, ferner insbesondere eine Exception-Nachricht ausgesendet werden, beispielsweise an die Sicherheitseinheit und/oder an eine Prozessoreinheit der Recheneinheit. Das Entscheiden, wie mit der Zugriffsanfrage verfahren werden soll, kann dann von der Sicherheitseinheit bzw. der Prozessoreinheit auf Empfang dieser Benachrichtigung durchgeführt werden, insbesondere durch eine spezielle Einheit zum Verarbeiten derartiger Benachrichtigungen (engl. "Exception Handler").
Vorzugsweise erfolgt nach dem Überprüfen der hinterlegten Daten durch die Sicherheitseinheit, insbesondere, wenn im Zuge des Überprüfens die hinterlegten Daten validiert wurden bzw. wenn deren Echtheit verifiziert wurde, ein erneutes Konfigurieren der Speicherschutzeinheit durch die Sicherheitseinheit, um den Speicherschutz des vorgegebenen Speicherbereichs aufzuheben. Beispielsweise kann die Sicherheitseinheit zu diesem Zweck die entsprechenden Einträge in der jeweiligen Tabelle der Speicherschutzeinheit verändern oder löschen, welche erlaubte bzw. verbotene Zugriffe auf den Speicherbereich durch verschiedene Einheiten der Recheneinheit definieren. Der Speicherschutz des vorgegebenen Speicherbereichs wird auf dieses Konfigurieren hin durch die Speicherschutzeinheit aufgehoben bzw. nicht mehr ausgeführt. Beispielsweise kann der Speicherschutz nach erfolgreichem Validieren der Daten aufgehoben werden, so dass weitere Einheiten auf die Daten zugreifen und diese weiterverarbeiten können. Insbesondere kann dieses Aufheben des Speicherschutzes zeitnah oder unmittelbar vor einem geplanten, autorisierten Zugriff auf die Daten erfolgen, um die Möglichkeit für ein unautorisiertes Manipulieren der Daten möglichst zu minimieren. Alternativ erfolgt nach dem Überprüfen der hinterlegten Daten durch die Sicherheitseinheit, insbesondere, wenn im Zuge des Überprüfens die hinterlegten Daten validiert wurden bzw. wenn deren Echtheit verifiziert wurde, vorzugsweise ein erneutes Konfigurieren der Speicherschutzeinheit durch die Sicherheitseinheit, um den vorgegebenen Speicherbereich gemäß einer zweiten vorgegebenen Zugriffsbeschränkung zu schützen. Dieser zweite Speicherschutz des vorgegebenen Speicherbereichs wird daraufhin durch die Speicherschutzeinheit gemäß der vorgegebenen zweiten Zugriffsbeschränkung ausgeführt. Beispielsweise kann gemäß dieser zweiten Zugriffsbeschränkung bestimmten Einheiten, welche planmäßig auf die validierten Daten zugreifen sollen, ein entsprechender lesender und/oder schreibender Zugriff erlaubt werden.
Vorzugsweise erfolgt das erneute Konfigurieren der Speicherschutzeinheit zum Aufheben des Speicherschutzes oder zum Ausführen des zweiten Speicherschutzes nach einem Startzyklus. Bei einem derartigen Startzyklus, insbesondere initial beim Hochfahren der Recheneinheit bzw. des Systems, ist der Speicherschutz zweckmäßigerweise noch aktiv. Die entsprechenden Daten können somit beispielsweise auch nach einem Reset noch geschützt sein. Beispielsweise gibt die Sicherheitseinheit nach dem Startzyklus zunächst eine Freigabe für den Host, um den Speicherschutz aufzuheben. Beispielsweise kann dies durch einen Resetwert der Speicherschutzeinheit realisiert werden oder durch eine nichtflüchtige Konfiguration der Speicherschutzeinheit, die nach dem Reset vom System gesetzt wird, entweder durch die Sicherheitseinheit, wenn diese vor dem Host gestartet wird, oder durch Hardware-Features im Controller beim Reset. Auf diese Weise kann insbesondere sichergestellt werden, dass die Daten nicht durch einen Neustart manipulierbar werden.
Vorteilhafterweise hinterlegt die Sicherheitseinheit nach dem Überprüfen der hinterlegten Daten ein Ergebnis der Überprüfung in einem weiteren Speicherbereich der Speichereinheit oder in einer weiteren Speichereinheit der Recheneinheit. Ferner hebt die Sicherheitseinheit den Speicherschutz auf oder ändert diesen, so dass eine Verarbeitungseinheit zumindest lesend auf den Speicherbereich zugreifen darf, wobei diese Verarbeitungseinheit ein Host sein kann, beispielsweise ein Prozess, eine Anwendung, eine Prozessoreinheit, ein Prozessorkern, usw. Wenn gemäß dem hinterlegten Ergebnis die hinterlegten Daten validiert wurden bzw. wenn deren Echtheit bestätigt wurde, liest die Verarbeitungseinheit die hinterlegten und überprüften Daten ein und verarbeitet diese.
Vorteilhafterweise erfolgt nach dem Hinterlegen der zu überprüfenden Daten in dem vorgegebenen Speicherbereich ein Anweisen der Sicherheitseinheit, um die in dem vorgegebenen Speicherbereich hinterlegten Daten zu überprüfen. Beispielsweise kann dieses Anweisen durch die Verarbeitungseinheit erfolgen, welche auf die Daten zugreifen und diese weiterverarbeiten soll. Beispielsweise kann die Verarbeitungseinheit zu diesem Zweck eine entsprechende Anweisung, Nachricht oder Anfrage an die Sicherheitseinheit ausgeben bzw. übermitteln. Zweckmäßigerweise konfiguriert die Sicherheitseinheit die Speicherschutzeinheit somit auf eine entsprechende Anfrage einer Softwareanwendung der Recheneinheit hin.
Vorzugsweise wird für ein derartiges Anweisen der Sicherheitseinheit eine entsprechende Anweisung in einem weiteren Speicherbereich der Speichereinheit oder in einer weiteren Speichereinheit der Recheneinheit hinterlegt. Insbesondere kann in dieser Anweisung hinterlegt sein, an welcher konkreten Speicheradresse die zu überprüfenden Daten hinterlegt sind. Eine Benachrichtigung wird an die Sicherheitseinheit ausgesendet, insbesondere ein Interrupt. Insbesondere kann in dieser Benachrichtigung die Speicheradresse hinterlegt sein, an welcher die Anweisung hinterlegt ist. Auf Empfang dieser Benachrichtigung hin liest die Sicherheitseinheit die hinterlegte Anweisung ein und führt die Überprüfung der Daten durch.
Gemäß einer vorteilhaften Ausführungsform sind die zu überprüfenden Daten Teil eines Updates und können beispielsweise neue Firmware für die Recheneinheit aufweisen oder einen neuen Teil einer Firmware oder neue Daten für eine Firmware. Beispielsweise kann es sich bei dem Update um ein OTA-Update (engl. "over-the-air") handeln, insbesondere um ein sog. FOTA ("Flashen over the air") oder SOTA ("Software over the air") Update, im Zuge dessen die Updatedaten über eine Funkverbindung übertragen werden, z.B. über das Internet. Vor dem Hinterlegen der Daten bzw. Updatedaten in dem vorgegebenen Speicherbereich werden die Daten zunächst über eine Schnittstelle der Recheneinheit empfangen, z.B. über eine Funk- und/oder Diagnoseschnittstelle. Nach Empfang der Daten wird der Speicherbereich mit Hilfe der Zugriffsbeschränkung und des Speicherschutzes durch die Sicherheitseinheit und die Speicherschutzeinheit geschützt. Anschließend überprüft die Sicherheitseinheit die Daten, insbesondere dahingehend, ob die Daten vollständig und korrekt empfangen wurden und ob keine schädliche Software übertragen wurde. Nach dem Überprüfen und Validieren der hinterlegten Daten erfolgt ein Aktivieren der Daten in dem vorgegebenen Speicherbereich oder ein Installieren der Daten in einem anderen Speicherbereich, z.B. in einem weiteren Speicherbereich der Speichereinheit oder in einer weiteren Speichereinheit der Recheneinheit. Nach einem derartigen Aktivieren bzw. Installieren können die Updatedaten bei zukünftigen Programmabläufen Anwendung finden.
Durch das vorliegende Verfahren kann sichergestellt werden, dass keine unautorisierte Manipulation an den Updatedaten zwischen deren Überprüfung und deren Aktivierung bzw. Installation vorgenommen wird. Auf diese Weise kann besonders zweckmäßig das TOCTOU-Problem bei OTA-Updates adressiert werden.
Um auf herkömmliche Weise Updatedaten herunterzuladen und zu überprüfen, kann beispielsweise ein explizit vorgehaltener Speicher verwendet werden, der nur durch ein Hardware-Sicherheitsmoduls (HSM) verändert werden kann, welches die Daten dann überprüft. Ein derartiger expliziter Speicher kann jedoch mit hohen Kosten verbunden sein, zumal dieser Speicher im Falle der normalen Applikation ungenutzt bleibt. Alternativ wird oftmals auch ein Zwischenspeicher außerhalb des HSMs verwendet, welcher dann aber meist durch (unsichere) HostCPUs zugreifbar und folglich manipulierbar ist. Zwar kann beispielsweise bei der Installation der Updatedaten bzw. Firmware im HSM nochmals überprüft werden, ob eine Manipulation stattgefunden hat. Jedoch kann es hier zu einem Verfügbarkeitsproblem kommen, da die alten Daten bzw. die alte Firmware zumindest teilweise bereits überschrieben und für ein Roll-Back nicht mehr verfügbar sein können. Im Gegensatz dazu ermöglicht es das vorliegende Verfahren, einen beliebigen Speicher innerhalb des Systems für Updates zu verwenden, so dass kein explizit vorgehaltener Speicher notwendig ist und die Verfügbarkeit des Systems zu jeder Zeit gegeben ist. Da die Übertragung der Daten gestört bzw. unterbrochen werden kann, z.B. durch einen Angriff oder eine Funkstörung, kann insbesondere aus Denial-of-Service- und Verfügbarkeitsgründen ein Speicherbereich zum Hinterlegen der Updatedaten vorgegeben werden, der den neuen Speicherinhalt komplett aufnehmen kann. Damit kann während des Downloads die komplette Funktionalität des Systems gewährleistet werden. Parallel dazu wird dieser reservierte, vorgegebene Speicherbereich mit den geladenen Daten gefüllt. Der vorgegebene Speicherbereich kann insbesondere ein beliebiger Speicherbereich in dem System sein. Nach Vollendung der Übertragung in den Speicherbereich, triggert das System zweckmäßigerweise die Sicherheitseinheit. Diese legt daraufhin gemäß der vorgegebenen Zugriffsbeschränkung besonders zweckmäßig einen exklusiven Zugriff auf den Speicherbereich für sich selbst fest, so dass zumindest ein schreibender Zugriff anderen Einheiten untersagt ist. Danach startet die Sicherheitseinheit die Überprüfung des neuen Speicherinhalts. Bei Verwendung des Speicherbereichs als temporärer Zwischenspeicher, wobei die Updatedaten nach ihrer Überprüfung an einen anderen Zielort kopiert werden, kann der exklusive Zugriff nach der Überprüfung wieder aufgeben werden und der Zwischenspeicher kann wieder für andere Einheiten freigeben werden.
Das vorliegende Verfahren eignet sich besonders zweckmäßig zum Einsatz im (Kraft-) Fahrzeugbereich. Die Recheneinheit kann beispielsweise ein Mikrocontroller oder ein Steuergerät eines (Kraft-) Fahrzeugs sein, z.B. ein Motor-, Domänen-, Airbag-, Bremssteuergerät usw. Bei den zu überprüfenden Daten kann es sich beispielsweise um Fahrzeugdaten handeln, die beispielsweise von Sensoren des Fahrzeugs erfasst werden. Beispielsweise kann eine Verarbeitung dieser Daten im Zuge sicherheitskritischer Funktionen erfolgen, welche zum sicheren Betrieb und zur Steuerung des Fahrzeugs ausgeführt werden, beispielsweise im Zuge einer Motor-, Domänen-, Airbag- und/oder Bremssteuerung, im Zuge von Fahrassistenzfunktionen, im Zug des unterstützten autonomen Fahrens (IAD) oder allgemein des automatisierten oder teilautomatisierten Fahrens usw. Ferner kann es sich bei den zu überprüfenden Daten auch um ein Update einer Steuergeräte- bzw. Fahrzeugsoftware handeln. Durch das vorliegende Verfahren können insbesondere eine hohe Betriebssicherheit bzw. funktionale Sicherheit ("safety") sowie ferner insbesondere eine hohe informationstechnische Sicherheit bzw. Informationssicherheit ("security") ermöglicht werden. Insbesondere können eine Sicherheit bzw. Ausfallsicherheit und Integrität des Steuergeräts erhöht werden. Ferner können durch das Verfahren besonders zweckmäßig Sicherheitsanforderungen im (Kraft-) Fahrzeugbereich erfüllt werden, wie sie beispielsweise in der Norm ISO 26262 oder insbesondere von dem sog. "Automotive Safety Integrity Level" (ASIL), eine von der ISO 26262 spezifizierte Sicherheitsanforderungsstufe für sicherheitsrelevante Systeme in Kraftfahrzeugen, vorgegeben werden.
Eine erfindungsgemäße Recheneinheit, z.B. ein Steuergerät eines (Kraft-) Fahrzeugs, ist, insbesondere programmtechnisch, dazu eingerichtet, ein erfindungsgemäßes Verfahren durchzuführen.
Auch die Implementierung eines erfindungsgemäßen Verfahrens in Form eines Computerprogramms oder Computerprogrammprodukts mit Programmcode zur Durchführung aller Verfahrensschritte 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. Schließlich ist ein maschinenlesbares Speichermedium vorgesehen mit einem darauf gespeicherten Computerprogramm wie oben beschrieben. Geeignete Speichermedien bzw. Datenträger zur Bereitstellung des Computerprogramms sind insbesondere magnetische, optische und elektrische Speicher, wie z.B. Festplatten, Flash- Speicher, EEPROMs, DVDs u.a.m. Auch ein Download eines Programms über Computernetze (Internet, Intranet usw.) ist möglich. Ein solcher Download kann dabei drahtgebunden bzw. kabelgebunden oder drahtlos (z.B. über ein WLAN- Netz, eine 3G-, 4G-, 5G- oder 6G-Verbindung, etc.) erfolgen.
Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung. Die Erfindung ist anhand von Ausführungsbeispielen in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung beschrieben.
Kurze Beschreibung der Zeichnungen
Figur 1 zeigt schematisch eine Ausgestaltung einer erfindungsgemäßen Recheneinheit, die dazu eingerichtet ist, eine Ausführungsform eines erfindungsgemäßen Verfahrens durchzuführen.
Figur 2 zeigt schematisch eine Ausführungsform eines erfindungsgemäßen Verfahrens als ein Blockdiagramm.
Ausführungsform(en) der Erfindung
In Figur 1 ist eine Recheneinheit in Form eines Ein-Chip-Systems (engl. "System on a Chip", SoC) schematisch dargestellt und mit 100 bezeichnet, welches beispielsweise in einem Mikrocontroller eines Steuergeräts in einem (Kraft-) Fahrzeug verwendet wird.
Das SoC 100 weist einen Host 110 auf, welcher wiederum eine Prozessoreinheit 111 aufweist, z.B. einen Multikernprozessor mit einer Vielzahl von Prozessorkernen, sowie eine lokale, interne Speichereinheit 112, z.B. einen RAM-Speicher. Das SoC 100 weist ferner globale, gemeinsam nutzbare Speichereinheiten auf, z.B. einen Flash-Speicher 140 und einen globalen RAM-Speicher 150. Der Host 110 und die Speichereinheiten 140 150 sowie weitere Komponenten des SoC
100 stehen über eine On-Chip-Verbindung (engl. "On-Chip Interconnect, OCI)
101 miteinander in Kommunikationsverbindung.
Ferner weist das SoC 100 eine Sicherheitseinheit 120 auf, z.B. ein Hardware-Sicherheitsmodul ("Hardware Security Module", HSM), welches dazu vorgesehen ist, um in den Speichereinheiten 140, 150 hinterlegte Daten auf Echtheit, Richtigkeit bzw. Integrität zu überprüfen, beispielsweise mittels kryptographischer Ver- fahren. Das HSM 120 weist beispielsweise eine Debugger Steuerung 121 auf sowie einen gesicherten Prozessorkern 122, einen Zufallszahlengenerator 123 aufweisend einen physikalischen Zufallszahlengenerator (engl. "true random number generator, TRNG) und einen Pseudo Pseudozufallszahlengeneratoren (engl. "pseudo random number generator", PRNG), einen gesicherten lokalen RAM- Speicher 124, eine Einheit 125 für Hashfunktionen, eine Schnittstelle 126 für die On-Chip-Verbindung, eine Einheit 127 für elliptische Kurven-Kryptografieverfah- ren (engl. "Elliptic Curve Cryptography", ECC), eine Einheit 128 zum Verschlüsseln und Signieren gemäß dem kryptographischen RSA (Rivest-Shamir-Ad- leman) Verfahren und eine Einheit 129 für einen fortschrittlicher Verschlüsselungsstandard (engl. "Advanced Encryption Standard", AES).
Das HSM 120 steht über eine gesicherte Bus-Verbindung 102 mit einer Speicherschutzeinheit ("Memory Protection Unit", MPU) 130 in Verbindung. Die MPU 130 ist vorgesehen, um Zugriffsanfragen auf die Speichereinheiten 140 und 150 zu überwachen und um entsprechende angefragte Zugriffe zuzulassen oder zu blockieren. Zu diesem Zweck kann die MPU 130 mit Hilfe einer Konfigurationsdatei 131 konfiguriert werden, welche eine Tabelle umfasst, in welcher hinterlegt ist, welche Einheiten des SoC 100 auf welche Speicher- bzw. Adressbereiche der Speichereinheiten 140, 150 zugreifen dürfen und welchen Einheiten Zugriff verwehrt ist. Insbesondere kann es nur dem HSM 120 erlaubt sein, diese Konfiguration der MPU 130 zu verändern.
Ein Debugger 170 zum Erkennen von Fehlern in dem SoC 100 kann als ein externes, nicht auf dem SoC 100 implementiertes Peripheriegerät über eine Verbindung 103 (z.B. eine sog. Debug Access Port, DAP) an eine Debug-Schnittstelle 160 des SoC 100 angebunden sein, welche beispielsweise ein Register 161 aufweisen kann.
Wenn der Host 110, z.B. die Prozessoreinheit 111 oder in der Prozessoreinheit 111 ausgeführte Anwendungen, auf in den Speichereinheiten 140, 150 hinterlegte Daten zugreifen und diese Daten verarbeiten soll, kann es von Bedeutung sein, die Daten durch das HSM 120 zunächst auf Richtigkeit und Integrität zu überprüfen, beispielsweise wenn die Daten im Zuge von sicherheitskritischen Funktionen des Fahrzeugs verarbeitet werden sollen.
Bei einer derartigen Überprüfung und anschließenden Verwendung von Daten kann herkömmlicherweise oftmals das sog. TOCTOU-Problem (engl.: "Time-of- Check-to-Time-of-Use-Problem") auftreten, beispielsweise wenn ein Angreifer, welcher das SoC 100 korrumpiert hat, während oder nach der Überprüfung der Daten durch das HSM 120 unautorisierte Änderungen an den Daten vornimmt, so dass das HSM 120 diese Änderungen nicht mehr erkennen kann.
Um ein derartiges unerkanntes, unautorisiertes Manipulieren von Daten gemäß dem TOCTOU-Problem zu verhindern, ist das SoC 100, insbesondere programmtechnisch, dazu eingerichtet, eine Ausführungsform eines erfindungsgemäßen Verfahrens durchzuführen, welches in Figur 2 schematisch als eine Blockdiagramm dargestellt ist und nachfolgend in Bezug auf die Figuren 1 und 2 erläutert werden soll.
In einem Schritt 201 werden zu verarbeitende Daten in einem vorgegebenen Adress- bzw. Speicherbereich beispielsweise des Flash-Speichers 140 hinterlegt. Beispielsweise kann es sich bei diesen Daten um Sensorwerte des Fahrzeugs handeln, welche durch den Host 110 zum Ausführen einer Fahrzeugfunktion, z.B. einer Motorsteuerung, weiter verarbeitetet werden sollen.
In einem Schritt 202 weist der Host 110 das HSM 130 an, die in dem vorgegebenen Speicherbereich hinterlegten Daten zu überprüfen. Zu diesem Zweck hinterlegt der Host 110 eine entsprechende Anweisung in einem weiteren, zweiten Speicherbereich des Flash-Speichers 140, in welcher z.B. die Speicheradresse der zu überprüfenden Daten interlegt ist. Ferner sendet der Host 110 eine Benachrichtigung, insbesondere ein Interrupt, an das HSM 120 aus, welches daraufhin hin die hinterlegte Anweisung einliest.
In einem Schritt 203 konfiguriert das HSM 120 die MPU 130, um den vorgegebenen Speicherbereich in dem Flash-Speicher 140 gemäß einer vorgegebenen Zu- griffsbeschränkung zu schützen. Beispielsweise kann gemäß dieser Zugriffsbeschränkung nur das HSM 120 lesend und schreibend auf den vorgegebenen Speicherbereich zugreifen. Anderen Einheiten des SoC 100 kann beispielsweise weder lesender noch schreibender Zugriff erlaubt sein. Zum Konfigurieren der MPU 130 kann das HSM 120 beispielsweise einen Eintrag in der Tabelle der Konfigurationsdatei 131 erstellen oder verändern.
In einem Schritt 203 führt die MPU 130 einen Speicherschutz des Flash-Speichers 140 gemäß der vorgegebenen Zugriffsbeschränkung aus. Wenn nun eine Einheit außer dem HSM 120 auf den vorgegebenen Speicherbereich zugreifen möchte, blockiert die MPU 130 diesen Zugriff.
In einem Schritt 205 liest das HSM 120 die in dem vorgegebenen Speicherbereich hinterlegten Daten ein und überprüft die eingelesenen Daten. Zu diesem Zweck überprüft das HSM 120 mit Hilfe von kryptographischen Verfahren die Richtigkeit und Integrität der eingelesenen Daten.
In einem Schritt 206 hinterlegt das Ergebnis der Überprüfung in einem weiteren, dritten Speicherbereich in dem Flash-Speicher 140.
In einem Schritt 207 hebt das HSM 120 den Speicherschutz des vorgegebenen Speicherbereichs auf oder ändern den Speicherschutz zumindest derart, dass der Host 110 zumindest lesend auf den vorgegebenen Speicherbereich zugreifen darf. Zu diesem Zweck konfiguriert das HSM 120 die MPU 130 erneut und ändert den entsprechenden Eintrag in der Tabelle in der Konfigurationsdatei 131 beispielsweise derart, dass der Speicherschutz aufgehoben wird und alle Einheiten des SoC 100 auf den vorgegebenen Speicherbereich zugreifen dürfen, oder beispielsweise derart, dass ein zweiten Speicherschutz eingerichtet wird, gemäß welchem neben dem HSM 120 auch der Host 110 zumindest lesend auf den vorgegebenen Speicherbereich zugreifen darf.
In einem Schritt 208 führt die MPU 130 die entsprechende neue Konfiguration aus. Wenn der Speicherschutz gemäß der neuen Konfiguration aufgehoben werden soll, erlaubt die MPU 130 fortan sämtliche Zugriffe auf den vorgegebenen Speicherbereich. Wenn der zweite Speicherschutz umgesetzt werden soll, erlaubt die M PU 130 nur dem HSM 110 lesenden und schreibenden Zugriff und dem Host lesenden Zugriff.
In einem Schritt 209 liest der Host 110 das Ergebnis der Überprüfung aus dem dritten Speicherbereich ein. Wenn gemäß dem Ergebnis die Daten validiert wurden, liest der Host 110 die Daten in Schritt 210 ein und verarbeitet diese.
Durch Festlegen und Umsetzen der Zugriffsbeschränkung und des Speicherschutzes kann verhindert werden, zwischen ihrer Überprüfung durch das HSM 120 und der Verarbeitung durch den Host 110 manipuliert werden. Durch das Zusammenwirken von HSM 120 und MPU 130 im Rahmen des vorliegenden Verfahrens wird eine dynamische Speicherschutzeinheit definiert, welche die Adressbereiche der Speichereinheiten 140, 150 dynamisch schützen kann. Diese dynamische Speicherschutzeinheit 130 kann on-demand durch das Hardware Security Modul 120 auf Anfrage einer SW-Anwendung des Hosts 110 konfiguriert werden und die Adressbereiche entsprechend schützen. Nachdem der vorgegebene Speicherbereich durch die MPU 130 entsprechend geschützt wurde, kann nur noch das Hardware Security Modul 120 Änderungen an diesem Speicherbereich vornehmen.
Es kann sich bei den zu überprüfenden Daten ferner auch um Updatedaten handeln, welche beispielsweise im Zuge OTA-Updates über das Internet empfangen und in der vorgegebenen Speicherbereich hinterlegt wurden. Nach dem Überprüfen und Validieren der hinterlegten Daten kann dann ein Aktivieren der Daten in dem vorgegebenen Speicherbereich oder ein Installieren der Daten in einem anderen Speicherbereich erfolgen, so dass die Updatedaten bei zukünftigen Programmabläufen Anwendung finden können. Durch das vorliegende Verfahren kann somit sichergestellt werden, dass keine unautorisierte Manipulation zwischen Überprüfung und Aktivierung bzw. Installation der Updatedaten vorgenommen werden.

Claims

Ansprüche
1. Verfahren zum Überprüfen von Daten in einer Recheneinheit (100), wobei die Recheneinheit (100) eine Speichereinheit (140, 150), eine Sicherheitseinheit (120) und eine Speicherschutzeinheit (130) aufweist, umfassend die Schritte:
Hinterlegen (201) von zu überprüfenden Daten in einem vorgegebenen Speicherbereich in der Speichereinheit (140, 150);
Konfigurieren (203) der Speicherschutzeinheit (130) durch die Sicherheitseinheit (120), um den vorgegebenen Speicherbereich gemäß einer vorgegebenen Zugriffsbeschränkung zu schützen;
Ausführen (204) eines Speicherschutzes des vorgegebenen Speicherbereichs durch die Speicherschutzeinheit (130) gemäß der vorgegebenen Zugriffsbeschränkung;
Überprüfen (205) der in dem vorgegebenen Speicherbereich hinterlegten Daten durch die Sicherheitseinheit (120).
2. Verfahren nach Anspruch 1 , wobei die Recheneinheit so konfiguriert, dass nur die Sicherheitseinheit (120) die Speicherschutzeinheit (130) konfigurieren kann.
3. Verfahren nach Anspruch 1 oder 2, wobei die vorgegebene Zugriffsbeschränkung umfasst, dass nur die Sicherheitseinheit (120) lesend und schreibend auf den vorgegebenen Speicherbereich zugreifen kann.
4. Verfahren nach einem der vorstehenden Ansprüche, ferner umfassend, bei Empfang einer Zugriffsanfrage auf den vorgegebenen Speicherbereich für einen Zugriff, welcher gemäß der vorgegebene Zugriffsbeschränkung nicht erlaubt ist:
Entscheiden, ob die Sicherheitseinheit (120) eine Aufhebung oder Änderung des Speicherschutzes des vorgegebenen Speicherbereichs veranlasst und/oder ob der Zugriff gemäß der Zugriffsanfrage auf einen anderen Speicherbereich umgeleitet wird. Verfahren nach einem der vorstehenden Ansprüche, ferner umfassend, nach dem Überprüfen (205) der hinterlegten Daten durch die Sicherheitseinheit (120):
Konfigurieren (207) der Speicherschutzeinheit (130) durch die Sicherheitseinheit (120), um den Speicherschutz des vorgegebenen Speicherbereichs aufzuheben, und Aufheben (208) des Speicherschutzes des vorgegebenen Speicherbereichs durch die Speicherschutzeinheit (130); oder Konfigurieren (207) der Speicherschutzeinheit (130) durch die Sicherheitseinheit (120), um den vorgegebenen Speicherbereich gemäß einer zweiten vorgegebenen Zugriffsbeschränkung zu schützen, und Ausführen (208) eines zweiten Speicherschutzes des vorgegebenen Speicherbereichs durch die Speicherschutzeinheit (130) gemäß der vorgegebenen zweiten Zugriffsbeschränkung. Verfahren nach Anspruch 5, wobei das Konfigurieren (207) der Speicherschutzeinheit (130) zum Aufheben des Speicherschutzes oder zum Ausführen des zweiten Speicherschutzes nach einem Startzyklus erfolgt. Verfahren nach einem der vorstehenden Ansprüche, ferner umfassend, nach dem Überprüfen (205) der hinterlegten Daten durch die Sicherheitseinheit (130):
Hinterlegen (206) eines Ergebnisses der Überprüfung durch die Sicherheitseinheit (120) in einem weiteren Speicherbereich der Speichereinheit (140, 150) oder in einer weiteren Speichereinheit (140, 150) der Recheneinheit (100);
Aufheben (207) des Speicherschutzes oder Ändern (207) des Speicherschutzes durch die Sicherheitseinheit (120), so dass eine Verarbeitungseinheit (110) zumindest lesend auf den vorgegebenen Speicherbereich zugreifen darf;
Einlesen (209) des hinterlegten Ergebnisses der Überprüfung durch die Verarbeitungseinheit (110); Verarbeiten (210) der Daten durch die Verarbeitungseinheit (110).
8. Verfahren nach einem der vorstehenden Ansprüche, ferner umfassend, nach dem Hinterlegen (201) der zu überprüfenden Daten in dem vorgegebenen Speicherbereich:
Anweisen (202) der Sicherheitseinheit (120), um die in dem vorgegebenen Speicherbereich hinterlegten Daten zu überprüfen.
9. Verfahren nach Anspruch 8, wobei das Anweisen (202) der Sicherheitseinheit (120) umfasst:
Hinterlegen einer entsprechenden Anweisung in einem weiteren Speicherbereich der Speichereinheit (140, 150) oder in einer weiteren Speichereinheit (140, 150) der Recheneinheit (100);
Aussenden einer Benachrichtigung, insbesondere eines Interrupts, an die Sicherheitseinheit (120);
Einlesen der hinterlegten Anweisung durch die Sicherheitseinheit (120) auf die Benachrichtigung hin.
10. Verfahren nach einem der vorstehenden Ansprüche, wobei die zu überprüfenden Daten Teil eines Updates sind, ferner umfassend: vor dem Hinterlegen (201) der Daten in dem vorgegebenen Speicherbereich, Empfangen der Daten über eine Schnittstelle der Recheneinheit (100); nach dem Überprüfen (205) der hinterlegten Daten durch die Sicherheitseinheit (120), Aktivieren der Daten in dem vorgegebenen Speicherbereich oder Installieren der Daten in einem anderen Speicherbereich.
11. Recheneinheit (100), die dazu eingerichtet ist, alle Verfahrensschritte eines Verfahrens nach einem der vorstehenden Ansprüche durchzuführen.
12. Computerprogramm, das eine Recheneinheit (100) dazu veranlasst, alle Verfahrensschritte eines Verfahrens nach einem der Ansprüche 1 bis 10 durchzuführen, wenn es auf der Recheneinheit (100) ausgeführt wird.
13. Maschinenlesbares Speichermedium mit einem darauf gespeicherten Computerprogramm nach Anspruch 12.
PCT/EP2023/074234 2022-09-14 2023-09-05 Verfahren zum überprüfen von daten in einer recheneinheit WO2024056443A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102022209628.2A DE102022209628A1 (de) 2022-09-14 2022-09-14 Verfahren zum Überprüfen von Daten in einer Recheneinheit
DE102022209628.2 2022-09-14

Publications (1)

Publication Number Publication Date
WO2024056443A1 true WO2024056443A1 (de) 2024-03-21

Family

ID=87934072

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2023/074234 WO2024056443A1 (de) 2022-09-14 2023-09-05 Verfahren zum überprüfen von daten in einer recheneinheit

Country Status (2)

Country Link
DE (1) DE102022209628A1 (de)
WO (1) WO2024056443A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024175625A1 (de) * 2023-02-22 2024-08-29 Robert Bosch Gmbh Vorrichtung und verfahren zum bereitstellen geschützter daten, mikrocontrollersystem und sensorsystem

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150220455A1 (en) * 2014-02-03 2015-08-06 Samsung Electronics Co., Ltd. Methods and apparatus for protecting operating system data
US20160344705A1 (en) * 2015-05-19 2016-11-24 Robert Bosch Gmbh Method and update gateway for updating an embedded control unit
US20180157603A1 (en) * 2015-03-23 2018-06-07 Intel Corporation Dynamic configuration and peripheral access in a processor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150220455A1 (en) * 2014-02-03 2015-08-06 Samsung Electronics Co., Ltd. Methods and apparatus for protecting operating system data
US20180157603A1 (en) * 2015-03-23 2018-06-07 Intel Corporation Dynamic configuration and peripheral access in a processor
US20160344705A1 (en) * 2015-05-19 2016-11-24 Robert Bosch Gmbh Method and update gateway for updating an embedded control unit

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BARTOCK MICHAEL ET AL: "NIST IR 8320 - Hardware-Enabled Security: Enabling a Layered Approach to Platform Security for Cloud and Edge Computing Use Cases", 1 May 2022 (2022-05-01), pages 1 - 94, XP093063084, Retrieved from the Internet <URL:https://nvlpubs.nist.gov/nistpubs/ir/2022/Nist.IR.8320.pdf> [retrieved on 20230711] *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024175625A1 (de) * 2023-02-22 2024-08-29 Robert Bosch Gmbh Vorrichtung und verfahren zum bereitstellen geschützter daten, mikrocontrollersystem und sensorsystem

Also Published As

Publication number Publication date
DE102022209628A1 (de) 2024-03-14

Similar Documents

Publication Publication Date Title
EP3437012B1 (de) Verfahren, prozessor und gerät zur integritätsprüfung von nutzerdaten
DE102008006759B4 (de) Prozessor-Anordnung und Verfahren zum Betreiben der Prozessor-Anordnung ohne Verringerung der Gesamtsicherheit
DE112017004786T5 (de) Verfahren und vorrichtung zur verwendung eines sicherheits-coprozessors für firmwareschutz
DE112019005701T5 (de) Sichere boot-unterstützung für vorrichtungen und zugehörige systeme, verfahren und vorrichtungen
DE102015209108A1 (de) Verfahren und Entscheidungsgateway zum Autorisieren einer Funktion eines eingebetteten Steuergerätes
DE112016002785T5 (de) Elektronische Steuereinheiten für Fahrzeuge
DE102009013384A1 (de) System und Verfahren zur Bereitstellung einer sicheren Anwendungsfragmentierungsumgebung
DE102016210788B4 (de) Komponente zur Verarbeitung eines schützenswerten Datums und Verfahren zur Umsetzung einer Sicherheitsfunktion zum Schutz eines schützenswerten Datums in einer solchen Komponente
DE102016106871A1 (de) Steuervorrichtung und Verfahren zum Sichern von Daten
WO2024056443A1 (de) Verfahren zum überprüfen von daten in einer recheneinheit
DE112018006401T5 (de) Transparent zugeordnete flash-memory-sicherheit
EP3369027A1 (de) Verfahren und sicherheitsmodul zum bereitstellen einer sicherheitsfunktion für ein gerät
KR20190003222A (ko) 전자식 제어기 보안 기능 설정 방법 및 시스템
EP4078415A1 (de) Verfahren und vorrichtung zum betreiben einer recheneinrichtung
DE102018213616A1 (de) Kryptografiemodul und Betriebsverfahren hierfür
DE102019100546A1 (de) Aktivieren oder Deaktivieren eines Merkmals eines Fahrzeugs
WO2018059964A1 (de) Verfahren zum gesicherten zugriff auf daten eines fahrzeugs
DE102020117552A1 (de) Sichere hybrid-boot-systeme und sichere boot-verfahren für hybridsysteme
DE102014204417A1 (de) Vorrichtung und Verfahren zum Detektieren einer Manipulation an einem Programmcode
EP3819804A1 (de) Integritätsüberprüfung eines registerinhalts
DE102020216030A1 (de) Verfahren zum abgesicherten Start einer Recheneinheit
CN114091008A (zh) 用于对控制设备进行安全更新的方法
DE102020216048A1 (de) Vorrichtung mit einer Schnittstelle und Verfahren zum Betreiben einer Vorrichtung mit einer Schnittstelle
EP3812938A1 (de) Rekonfiguration einer hardwarekomponente eines technischen geräts
EP3690690B1 (de) Verfahren zum prüfen einer validität von daten und computerimplementierte vorrichtung zum verarbeiten von daten

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23765237

Country of ref document: EP

Kind code of ref document: A1