EP4433925A1 - Verfahren zur erkennung von auf eine manipulation hindeutenden anomalien während eines sicheren startvorgangs einer softwaregesteuerten vorrichtung - Google Patents
Verfahren zur erkennung von auf eine manipulation hindeutenden anomalien während eines sicheren startvorgangs einer softwaregesteuerten vorrichtungInfo
- Publication number
- EP4433925A1 EP4433925A1 EP22812429.3A EP22812429A EP4433925A1 EP 4433925 A1 EP4433925 A1 EP 4433925A1 EP 22812429 A EP22812429 A EP 22812429A EP 4433925 A1 EP4433925 A1 EP 4433925A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- software
- boot
- attack
- signal
- aborted
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/556—Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/75—Protecting 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 by inhibiting the analysis of circuitry or operation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3234—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3242—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/88—Medical equipments
Definitions
- the present invention relates to a method for detecting or identifying anomalies during a secure starting process of a software-controlled device, such as occur, for example, when manipulation attempts are made.
- the software Since the software is usually not monolithic and can be executed directly in the non-volatile memory, for example flash memory, the individual components for execution must be loaded from the non-volatile memory into the main memory.
- Software components are usually stored in the non-volatile memory within a file system adapted to the memory type, so that they can be found using their file names.
- the microprocessor Immediately after starting a software-controlled device, the microprocessor does not know the structure of the file system and can therefore not access the file system, so that special auxiliary software must first be loaded, which sets up the microprocessor for access to the file system of the non-volatile memory.
- the special auxiliary software is first loaded and executed by the firmware of a computer system from a specified memory area, the boot sector, of a bootable medium. It is also known as a bootloader or launcher.
- the bootloader then loads other parts of the operating software.
- the bootloader can be divided into several levels that build on one another, it is then a multi-level bootloader. This division into stages is z. This is done, for example, if the boot loader's program code does not fit completely in the boot sector of a start medium. Only the first stage is then initially loaded and executed, which then loads and executes the second stage, of which the first stage only knows the length, the block number and the identification of the medium.
- the second stage can now deal with the specific file system of the medium and loads the third stage, for example, using a file name.
- the third stage is now the actual boot loader, which loads, for example, a configuration file containing a selection menu or software components required for the operation of the device, possibly in a predetermined sequence.
- This multi-level structure of the bootloader has several advantages; in the case described above, the file of the actual boot loader to be loaded in the third stage can be changed as desired or even physically moved on the medium, since the second stage can already deal with the medium's file system and the third stage can find it using the file name. In addition, such a boot loader is not subject to the limitations of the length of a boot block or boot sector.
- Certain devices are subject to special requirements for tamper-proof operation, e.g. devices that control complex machines in such a way that regulatory approved and above all safe working points or areas are maintained, or machines that store or process data of high personal, business or social value .
- the devices can be set up to only load signed software components during a starting process.
- the signature of each respective software component is checked before execution, and a security component is set up during the starting process, which is intended to detect manipulation of software modules during operation of the device and, if necessary, to set up countermeasures.
- This procedure is also referred to as secure boot or "secure boot”.
- MAC message authentication code
- MAC algorithms require two input parameters: the data to be protected and a secret key. A checksum is calculated from both, the message authentication code.
- a secret key is stored in a secure memory or memory area of the device, which is otherwise only known to a software manufacturer authorized for the device.
- the software manufacturer calculates a MAC for this key and its software component.
- the software component and the associated MAC are stored in a non-volatile memory of the device, from where it is read into a working memory when required and executed by a microprocessor.
- a security function calculates the MAC for the software component stored in non-volatile memory using the key stored in the secure memory area of the device and compares the calculated MAC with the MAC stored for the software component.
- the security function interprets the agreement of both values as a successful integrity test, ie it assumes that the software component was installed by an authorized software manufacturer that knows the secret key and it has not been modified in non-volatile memory.
- MACs are either based on block ciphers, on hash functions or are specially developed MACs.
- a common method for MAC calculation, the HMAC is based on cryptographic hash functions and is used in SSL and IPsec communication methods, for example.
- a common method based on block ciphers is the Cipher-Based Message Authentication Code (CMAC) specified in NIST Special Publication 800-38B, which is used in conjunction with AES or Triple DES cipher methods.
- CMAC Cipher-Based Message Authentication Code
- a side-channel attack may include, but is not limited to, manipulation of the microprocessor's clock speed, which enables the attacker to more easily manipulate address and data lines between the microprocessor and the non-volatile memory, causing the microprocessor to manipulate code or code from another than the originally intended memory address where attacker-generated unauthorized code resides.
- an attacker In a CMAC-based secure boot process, an attacker usually tries to change the last block of the software or software component immediately after a successfully completed CMAC verification of authentic software or software component and before it is executed, e.g. by directly accessing interfaces of a memory or on the data lines that connect the memory to the processor. If, for example, an AES-based CMAC is used, the attacker will change the last 128-bit block after successful authentication, which usually contains the program instructions to be executed last, in order to carry out an attack on the secure boot process.
- the attacker will try to get the processor to execute program code provided by it in another memory area, which contains, for example, a user created by the attacker and his access data, or via a communication link not provided for in the original software or software component set up an interface.
- the change will result in an error in the majority of attempts, ultimately triggering a restart of the device.
- the attacker will therefore vary the changes to the last block of software after each restart until the device executes the program code in the other memory area and he obtains the desired access. Since the attack is not aimed at access provided by the device in regular operation, but at something else attempts are made to manipulate the device, in the present example by reducing the clock frequency and manipulating address and data lines, this type of attack is also referred to as a side channel attack.
- side-channel attacks on a CMAC-based secure boot process are characterized, among other things, by frequent changes to at least one block of software during the boot process, multiple consecutive failed boots, multiple restart attempts within a short period of time after an operating time that falls below a predetermined minimum operating time, although the restart is on successfully, unusual resource allocations during the boot process, and/or manipulation of the clock speed before the boot process.
- the manipulation of the clock frequency is primarily intended to simplify external access to address and data lines.
- Such attacks usually take place offline, i.e. locally, without the attacked device having a network connection through which the attack could be detected, so that the owner or manufacturer of a device is not aware of the taps and therefore cannot take any countermeasures .
- a method for securely booting a control device is known from DE 102019127856 A1.
- This includes a hardware security module (HSM) and a host.
- HSM hardware security module
- HSM hardware security module
- US 9740863 B2 discloses a device and a method for protecting a secure boot process against side channel attacks.
- the device consists of cryptography-capable hardware for an initial boot process.
- a non-volatile memory is provided for storing manipulated starting processes.
- a comparison unit compares the number of manipulated starts against a maximum value. The comparison can be based on the times read from a first real-time clock and a second clock in the non-volatile memory. Based on this comparison, control logic transfers control from the first to a second start process.
- a bootloader is installed on the device.
- the bootloader is a software program that performs many functions. These functions may include checking the incoming software image checksum for integrity, decrypting the incoming software image using a secret key, erasing data in the FLASH memory, installing the new software image in the FLASH memory and include other functions.
- the bootloader uses various techniques to keep track of the versions of the software image to be installed. The procedure also counts the number of uncompleted attempts made when attempting to update the software image. By monitoring these parameters, the bootloader can detect when a malicious actor is attempting a side-channel attack. In reaction then the bootloader cannot allow loading a new software image or access to the secret key.
- a monitoring module assigned to the microcomputer checks at least one function of the microcontroller and generates a signal if a malfunction of the microcontroller is detected.
- the signal causes the microcontroller to restart, at least indirectly.
- the restart at least one software element running during the operation of the microcontroller is restarted.
- At least one item of status information is stored in a memory, with the status information comprising at least the status of an instruction counter and with the memory not being immediately overwritten or erased during a restart.
- the status information stored in the memory is accessed and the status information for an analysis of a software error is made available.
- the method according to the invention described below for detecting the type of attack on a secure boot process is preferably carried out in a separate monitoring component which executes the method in parallel with the actual boot process.
- the method can also be used as a be implemented separate process of a bootloader, which is stored as part of a firmware preferably unchangeable or changeable only by passing other security functions and is started first.
- the method includes reading out as a first component, which is carried out before a first authentication of a software or software component to be loaded or before a hash value or a checksum is checked for the last block of the software or software component and possibly further blocks at least one operating parameter from at least one system component required for the operation of the microprocessor and comparing the at least one operating parameter read out with corresponding stored reference values.
- the at least one operating parameter can relate, for example, to a supply voltage provided by a power management unit or a clock of the system or of the microprocessor and other components provided by a clock generator.
- Associated reference values are preferably read from a particularly secure memory area and/or can be stored in a cryptographically secure manner. If the comparison shows a difference, a first signal is output, which signals a recognized side channel attack and a failed start process, and the method and the further start process are ended or aborted. Otherwise, other components of the method are executed.
- the method also includes as a second component, which is also carried out before a first authentication of a software or software component to be loaded or before a hash value or a checksum is checked for the last block of the software or software component and, if necessary, further blocks Checking the state of a flag that is set during a boot process that has not yet completed successfully. If the flag is set, a second signal is output, which signals a detected attack and a failed start process, and the method and the further start process are ended or aborted. If the flag was not set during the test, it will be afterwards is set, and other components of the method are executed.
- the flag is preferably set in a non-volatile memory so that it retains its status for a longer period of time even without a power supply.
- This component can be used, among other things, to detect error injection attacks, which often lead to a reset at a certain point before the end of the start process, e.g. due to a signal from a watchdog that detects a start process that has stopped after some time due to an illegal change in software or software components detects, or Due to an attacker-induced so-called "hard” reset, ie, a reset forced by disconnecting the device from the power supply. Because the flag was not cleared as intended when the boot process completed properly, it can be detected during the subsequent boot process.
- the method also includes, as a third component, the calculation of an authentication code for software or software components to be loaded and, as a first test step, the comparison of the calculated authentication code with the authentication code of the previous start-up process read from a memory. If the comparison shows a difference, a third signal is output, which signals a detected error injection attack and a failed start process, and the method and the further start process are terminated or aborted. Otherwise, as a second test step, the previously calculated authentication code is compared with a reference code read from a memory, preferably a secure memory or memory area. If the comparison shows a difference, a fourth signal is output, which signals a detected error injection attack and a failed start process, and the method and the further start process are terminated or aborted.
- the stored authentication code of the previous boot process is replaced by the authentication code calculated for the current boot process, the flag that is set during a boot process that has not yet been successfully completed is deleted, and the process ends. If necessary, a Signal are output, which signals a successfully completed safe boot process.
- a hash value or a checksum can be calculated for the first test step of the third component over the last block of the software or software component and possibly further blocks and with a value stored from the previous boot for the same blocks.
- the effort for the first test step can be kept small, and the more complex calculation of the authentication code only has to be carried out if no attack has been detected in this first test step.
- a general error in the software or software component e.g. due to a memory error, will show identical hash values or checksums over several boot processes, while the hash values or checksums in an attack usually differ from the last block with each boot process due to the change will differ.
- the method can include a fourth component which monitors a corresponding correct multiple execution of the third component.
- the fourth component involves comparing a value associated with a stage currently to be loaded with a reference value associated with that stage.
- the value associated with the stage currently being loaded may be part of a file containing the program code, or may be found in a table by file name or other characteristics.
- the reference value for each stage of the secure boot process or the table can be read out from a secure memory or memory area, for example.
- a counter value can be stored in the software or software component of each stage, which counter value is compared with the current counter value. After the software or software component of a stage has been successfully processed, the counter is incremented before the next stage is loaded, so that a new counter value is available for comparison for the next stage. The counter is initially reset when the fourth component of the procedure is called, and the software or
- the first level software component contains the value 0 accordingly.
- a fifth signal is output, which signals a detected error injection attack and a failed start process, and the method and the further start process are terminated or aborted.
- the counter values which allow the affected software or software component to be identified, can also be provided for evaluating the type of attack and/or stored for later improvement of security.
- the execution of the boot process will continue and the fourth component will check the subsequent stages until the last stage of the boot process indicated by the corresponding reference value has been loaded.
- clear time information is stored at the beginning and/or after the successful completion of the starting process, preferably in a secure memory or memory area and/or encrypted with a secret key stored in the device.
- current time information is compared with the stored time information. If the difference between the two pieces of time information is less than a specified value or is negative, a sixth signal is output, which signals a recognized attack and a failed start process. The procedure is then ended and the further start process is aborted.
- multiple points in time of successive restart processes are stored and the number of restart processes within a predetermined first period of time is compared with an allowable maximum value.
- a sixth signal is issued, indicating an attack detected and a failed boot.
- the procedure is then ended and the further start process is aborted.
- This refinement is particularly suitable when sufficiently precise time information that is independent of the system is not available immediately at the beginning of the starting process, but only after the system has started, for example from an external time signal such as GPS, NTP server, DCF-77 Radio signal or the like provided.
- error injection attacks are also characterized by a number of specific events or characteristics, including manipulation of the clock speed, frequent reboots of the first device after a cold start, i.e. starting after a long period of inactivity, or a so-called "hard" reset, or the Repeated execution of the same software section and interruptions in the entire verification chain during the boot process, with only a certain stage of the boot process being repeatedly executed and verified, and with unsuccessful verification being aborted.
- a hard reset can be detected, for example, using the flag for a boot process that has not yet been successfully completed.
- Another flag can be set by software running after a properly executed boot if this triggers a restart of the device, so that the states of the two flags can be used to distinguish the reason for the restart.
- the flag can be deleted, for example, while it was previously set.
- the beginning and/or the successful completion of the starting process are determined based on a power consumption that is typical for these events, e.g corresponding data provided by a power management IC.
- the power consumption reaches a minimum between successive starts and then increases again rapidly.
- the beginning of the starting process is determined using a reset signal output by a microprocessor.
- Such reset signals are frequently used to start further components of the first device, which also have to be put into an operating state only when the first device is in operation.
- the allocation of at least one system resource of the first device is monitored during the starting process, for example the frequency with which a processor cache is emptied and reassigned to the same process and/or rewritten for this process.
- the number of allocations of the same system resource to the same process within a predetermined second time period is compared to a maximum value specified for that system resource. If the number of allocations of the same system resource to the same process exceeds the predetermined maximum value, a seventh signal is issued, which signals a detected attack and a failed start process. In addition, the procedure is ended and the further start process is aborted.
- the term process can be used for any software or software component, a thread or the like stand. This refinement can be used particularly preferably in multiprocessor systems or systems with multi-core processors, in which the method is executed exclusively and securely on one of the processors or processor cores, but access to processor-internal system resources can be recorded more easily.
- a device comprises one or more processors and volatile and non-volatile memories assigned to them, which are communicatively connected to one another by means of one or more data lines or data buses.
- Computer program instructions are stored in the non-volatile memory which, when executed by the at least one processor, set up the device for executing one or more embodiments of the method according to the invention.
- a computer program product contains instructions which, when executed by a microprocessor of a device, cause the latter to carry out one or more refinements and further developments of the method described above.
- the computer program product can be stored on a computer-readable medium or data carrier.
- the medium or data carrier can be physically embodied, e.g. as a hard disk, CD, DVD, flash memory or the like, but the medium or data carrier can also comprise a modulated electrical, electromagnetic or optical signal which can be transmitted by a computer using of an appropriate receiver and can be stored in the memory of the computer.
- the method according to the invention makes it possible to detect side-channel or error injection attacks on a secure boot process with a lower demand on system resources and system performance compared to classic cryptographic methods.
- time-critical starting processes for software or software components which must be completed within a specific maximum time e.g. in a system context of several at least partially parallel running processes of a system or several communicatively connected devices, the possibility of being able to detect attacks almost simultaneously during the starting process without significantly delaying it is advantageous.
- the method according to the invention can therefore be used advantageously wherever resource-saving detection of side channel or error injection attacks is required for a secure starting process, for example in Internet of Things (loT) devices or a distributed sensor infrastructure.
- LoT Internet of Things
- the software or software component implementing the method is preferably loaded early and before other software or other software components, ideally as part of the boot loader, so that the security functions are available as quickly as possible.
- at least individual parts of the method can be executed by a dedicated security processor, which is permanently programmed.
- FIG. 1 shows a flowchart of an exemplary method for detecting a side-channel attack on an AES-CMAC-based secure boot process
- FIG. 2 shows an exemplary block diagram of a device set up to carry out one or more aspects of the method according to the invention.
- Figure 1 shows a flowchart of an exemplary method 100 for
- Detection of a side channel attack on an AES-CMAC based secure Starting process of a microprocessor-controlled device 200 The aim here is to detect manipulation of the last 128-bit block of the starting process. For the present example, it is assumed that a reset is carried out for each incorrect verification of the software.
- An AES-CMAC procedure is used to check authenticity and integrity, with the same key being used at every stage of the boot process.
- a first component I the presence of a side channel attack is checked.
- step 101 at least one currently set operating parameter of at least the system component 208 necessary for the operation of microprocessor 202, e.g.
- step 102 If the comparison shows that the operating parameter(s) currently set does not match the reference value(s), "IT" branch of step 102, the method branches off to step 130, in which a signal is output which signals that a side-channel attack has been detected and that secure boot failed. Appropriate countermeasures can then be taken in response to the signal.
- step 102 If the comparison shows that the currently set operating parameters match the reference values, "Y" branch from step 102, the method branches off to step 103 of a second component II, in which it is checked whether a flag "Starting process not yet successfully completed “ is deleted. If the flag is set, i.e., not cleared, "N" branch from step 103, the method branches to step 130, in which a signal is output which signals that the previous boot process was not completed correctly, that an attack is present and secure boot failed. Appropriate countermeasures can then in turn be taken in response to the signal.
- step 104 If the flag is cleared, i.e. not set, "Y" branch from step 103, it is set in step 104.
- the software provided for the secure boot process or the corresponding software components can now be loaded, with further security checks being carried out.
- step 105 of a fourth component IV a counter for successfully completed stages of the current starting process is reset, and in step 106 it is checked whether the counter for successfully completed stages of the starting process matches a reference value for the current stage.
- the reference value for each stage of the secure starting process can be stored in a secure memory area, for example.
- the software or software component of the stage can be identified, for example, using its file name or other characteristics, and can be compared with a correspondingly assigned reference value.
- a counter value for example, can be stored in the software or software component of each stage, which is compared with the current counter value.
- the software or software component of the first stage accordingly contains the value 0 since the counter was reset in step 105.
- Each software or software component of a stage increments the counter after successful processing, so that a new counter value is available for comparison for the next stage.
- any value can also be written to a memory after successful processing, which is read out by each stage, with each software or software component then having to be programmed with the corresponding value from the previous stage. This is particularly possible when all stages are provided by a manufacturer who knows the values.
- This security feature can detect when a stage of the secure boot process has been skipped or skipped.
- step 107 of a third component III the software or software component to be loaded is authenticated according to the respective implementation in the device, e.g. a CMAC for the software or software component to be loaded is calculated, stored and in Step 108 compared with the also stored result of the authentication of the previous secure boot process.
- a CMAC for the software or software component to be loaded is calculated, stored and in Step 108 compared with the also stored result of the authentication of the previous secure boot process.
- the correct value for the previous secure boot can be written to memory, or an inaccurate error message and abort of the boot can be suppressed in some other way.
- step 108 If the comparison shows that the results of the two immediately consecutive authentication processes differ from each other, "N" branch of step 108, it can be assumed that an error injection attack is present, which is typically associated with blocks of software or software components that are changed at each start process and therefore a different MAC is calculated on each boot, and that the secure boot failed.
- the method correspondingly branches off to step 130, in which a signal is output which indicates that an error injection attack is present and that the secure boot process has failed.
- step 109 the result of the authentication is compared with a reference value read from a secure memory area for the authentication of this software or software component. If the comparison shows that the authentication result also matches the authentication reference value, "Y" branch of step 109, the authentication result from step 107 is stored in step 110 as the new authentication result of the previous secure boot. The previously saved result will be overwritten.
- An error injection attack can be quickly detected in step 108 by storing the most recent result of the authenticity check. If the values of two consecutive starts are identical, but still do not match the reference value, a memory error can be concluded, for example. A change in the value to be stored between steps 109 and 110 would also be recognized in this way.
- step 111 the counter for the successfully completed stages of the starting process is incremented, and in step 112 it is checked whether the value of the incremented counter agrees with the stored reference value of the final stage of the starting process. In the positive case, "Y" branch of step 112, the flag "boot process not completed successfully” is cleared in step 113 and the safe boot process is successfully completed.
- step 109 If the comparison in step 109 shows that the result of authentication does not match the reference value for authentication, "N" branch of step 109, in step 120 the flag "boot operation not successfully completed” is cleared and a signal is generated issued, to which those skilled in the art known countermeasures for secure boot bypassing attacks (bypassing attacks) can be initiated.
- Figure 2 shows an exemplary block diagram of a device 200 set up to carry out one or more aspects of the method 100 according to the invention.
- the device 200 comprises volatile and non-volatile memories 204, 206 and at least one other system component required for the operation of the microprocessor 202. for example a clock generator and/or a power management IC.
- the elements of device 200 are communicatively coupled to one another via one or more data lines or buses 210 .
- the non-volatile memory 206 contains computer program instructions that, when executed by the microprocessor 202, set up the apparatus to perform one or more aspects of the method of the invention.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Power Engineering (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Abstract
Description
Claims
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE102021212994.3A DE102021212994B3 (de) | 2021-11-18 | 2021-11-18 | Verfahren zur Erkennung von auf eine Manipulation hindeutenden Anomalien während eines sicheren Startvorgangs einer softwaregesteuerten Vorrichtung |
| PCT/DE2022/200269 WO2023088523A1 (de) | 2021-11-18 | 2022-11-15 | Verfahren zur erkennung von auf eine manipulation hindeutenden anomalien während eines sicheren startvorgangs einer softwaregesteuerten vorrichtung |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP4433925A1 true EP4433925A1 (de) | 2024-09-25 |
Family
ID=84362818
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP22812429.3A Withdrawn EP4433925A1 (de) | 2021-11-18 | 2022-11-15 | Verfahren zur erkennung von auf eine manipulation hindeutenden anomalien während eines sicheren startvorgangs einer softwaregesteuerten vorrichtung |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US20250013752A1 (de) |
| EP (1) | EP4433925A1 (de) |
| JP (1) | JP7696063B2 (de) |
| DE (1) | DE102021212994B3 (de) |
| WO (1) | WO2023088523A1 (de) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE102022201901A1 (de) * | 2022-02-23 | 2023-08-24 | Robert Bosch Gesellschaft mit beschränkter Haftung | Mitigation einer manipulation von software eines fahrzeugs |
| TWI830443B (zh) * | 2022-10-18 | 2024-01-21 | 新唐科技股份有限公司 | 針對攻擊進行處置的安全處理裝置、方法與電子設備 |
Family Cites Families (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2004206683A (ja) | 2002-12-11 | 2004-07-22 | Nihon Intelligence Corp | システム管理装置、方法及びプログラム、管理サーバシステム及びその制御方法並びに保険方法、セキュリティプログラム、セキュリティ管理方法、コンピュータ及びサーバコンピュータ |
| DE102009000874A1 (de) | 2009-02-16 | 2010-08-19 | Robert Bosch Gmbh | Verfahren zur Verbesserung der Analysierbarkeit von Softwarefehlern in einem Mikrocontroller |
| KR20120092222A (ko) * | 2011-02-11 | 2012-08-21 | 삼성전자주식회사 | 보안 부팅 방법 및 보안 부트 이미지 생성 방법 |
| US9165143B1 (en) * | 2013-03-15 | 2015-10-20 | Xilinx, Inc. | Image file generation and loading |
| US9740863B2 (en) | 2014-11-25 | 2017-08-22 | Intel Corporation | Protecting a secure boot process against side channel attacks |
| EP3026557A1 (de) | 2014-11-28 | 2016-06-01 | Thomson Licensing | Verfahren und Vorrichtung zur Bereitstellung von Überprüfungsanwendungsintegrität |
| US10057243B1 (en) | 2017-11-30 | 2018-08-21 | Mocana Corporation | System and method for securing data transport between a non-IP endpoint device that is connected to a gateway device and a connected service |
| JP2020091698A (ja) | 2018-12-06 | 2020-06-11 | キヤノン株式会社 | 情報処理装置及びその制御方法 |
| US10769280B2 (en) | 2018-12-13 | 2020-09-08 | Silicon Laboratories, Inc. | Side channel attack countermeasures for secure bootloading |
| NL2022902B1 (en) * | 2019-04-09 | 2020-10-20 | Univ Delft Tech | Integrated circuit device for loT applications |
| US20220179960A1 (en) | 2019-06-10 | 2022-06-09 | Google Llc | Secure Verification of Firmware |
| DE102019127856B4 (de) | 2019-10-16 | 2025-09-18 | Avl Software And Functions Gmbh | Verfahren zum sicheren Booten eines Steuergeräts und Steuergerät |
-
2021
- 2021-11-18 DE DE102021212994.3A patent/DE102021212994B3/de active Active
-
2022
- 2022-11-15 JP JP2024529707A patent/JP7696063B2/ja active Active
- 2022-11-15 EP EP22812429.3A patent/EP4433925A1/de not_active Withdrawn
- 2022-11-15 WO PCT/DE2022/200269 patent/WO2023088523A1/de not_active Ceased
- 2022-11-15 US US18/711,181 patent/US20250013752A1/en active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| WO2023088523A1 (de) | 2023-05-25 |
| JP7696063B2 (ja) | 2025-06-19 |
| JP2024540573A (ja) | 2024-10-31 |
| US20250013752A1 (en) | 2025-01-09 |
| DE102021212994B3 (de) | 2023-04-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE60303753T2 (de) | Selektives Erkennen von böswilligem Rechnercode | |
| DE202011111121U1 (de) | System zum Erfassen komplexer Schadsoftware | |
| DE102022105069A1 (de) | Systeme, verfahren und vorrichtungen für gesicherte nichtflüchtige speicher | |
| EP3752911B1 (de) | Verfahren zum installieren eines programmcodepakets in ein gerät sowie gerät und kraftfahrzeug | |
| EP4396715B1 (de) | Automatische analyse einer ausnutzbarkeit von schwachstellen eines software-images | |
| EP4433925A1 (de) | Verfahren zur erkennung von auf eine manipulation hindeutenden anomalien während eines sicheren startvorgangs einer softwaregesteuerten vorrichtung | |
| EP3811260B1 (de) | Kryptografiemodul und betriebsverfahren hierfür | |
| DE102021104326A1 (de) | Sichere speicherverbesserungen für authentifizierungssysteme | |
| EP4463784B1 (de) | Dynamische integritätsüberwachung einer auf einem gastrechner ausgeführten container-laufzeitumgebung | |
| DE102019127856B4 (de) | Verfahren zum sicheren Booten eines Steuergeräts und Steuergerät | |
| DE102014204417A1 (de) | Vorrichtung und Verfahren zum Detektieren einer Manipulation an einem Programmcode | |
| DE102020207866A1 (de) | Verfahren zum Durchführen einer abgesicherten Startsequenz eines Steuergeräts | |
| DE102020207863A1 (de) | Verfahren zur sicheren Aktualisierung von Steuergeräten | |
| DE102019214678A1 (de) | System und Verfahren zum beschleunigten und sicheren Starten eines Systems | |
| DE102020207861A1 (de) | Verfahren zur Durchführung einer abgesicherten Startsequenz eines Steuergeräts | |
| EP3074862B1 (de) | Verfahren für einen sicheren hochfahrablauf eines elektronischen systems | |
| DE102005046696B4 (de) | Verfahren zum Erzeugen von geschütztem Programmcode und Verfahren zum Ausführen von Programmcode eines geschützten Computerprogramms sowie Computerprogrammprodukt | |
| EP3072080B1 (de) | Verfahren und vorrichtung zum manipulationsschutz einer recheneinrichtung | |
| EP4517570A1 (de) | Verfahren und system zum überprüfen der integrität einer regelwerksdatenbank | |
| WO2024156570A1 (de) | Verfahren zum starten einer datenverarbeitungseinrichtung, datenverarbeitungseinrichtung und kraftfahrzeug | |
| EP4682751A1 (de) | Verfahren und vorrichtung zur integritätsprüfung einer ausführbaren funktion einer geräteinheit | |
| DE102022200544A1 (de) | Verfahren zur abgesicherten Bereitstellung eines zu schützenden Computerpro-gramms in einer Recheneinheit | |
| DE102023136830A1 (de) | Fahrzeugcomputersystem und -verfahren | |
| DE102023115928A1 (de) | Verfahren zum Starten einer Datenverarbeitungseinrichtung, Datenverarbeitungseinrichtung und Kraftfahrzeug | |
| DE102024132407A1 (de) | Mikrocontroller-Einheit, Verfahren und Computerprogramm zur Änderung von Anwendungen |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: UNKNOWN |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
| 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 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
| 17P | Request for examination filed |
Effective date: 20240618 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 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 ME MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION HAS BEEN WITHDRAWN |
|
| 18W | Application withdrawn |
Effective date: 20241203 |