WO2021148123A1 - Method and devices for operating an electrical or electronic apparatus - Google Patents
Method and devices for operating an electrical or electronic apparatus Download PDFInfo
- Publication number
- WO2021148123A1 WO2021148123A1 PCT/EP2020/051637 EP2020051637W WO2021148123A1 WO 2021148123 A1 WO2021148123 A1 WO 2021148123A1 EP 2020051637 W EP2020051637 W EP 2020051637W WO 2021148123 A1 WO2021148123 A1 WO 2021148123A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- test
- component
- accessory component
- value
- program
- 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.)
- Ceased
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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- 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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
- G06F21/445—Program or device authentication by mutual authentication, e.g. between devices or programs
-
- 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
Definitions
- the present invention relates to a method for operating an electrical or electronic device comprising a main component and an accessory component.
- Electrical and electronic devices that have a main component and an accessory component are generally known. For example, who sells drills with rechargeable batteries, printers with printer cartridges, e-cigarettes with liquid cartridges, coffee machines with capsules and smartphones with rechargeable batteries. The consumer often wants or needs to replace the accessory component because, for example, the performance of a rechargeable battery has deteriorated after a certain period of time or because the accessory component (such as coffee capsules, for example) only needs to be used once.
- the accessory component such as coffee capsules, for example
- US 2011/0093714 A1 describes a method for authenticating accessory components in which a cryptographic method is used to check the authenticity of the accessory component.
- a key pair consisting of a private key and a public key is used.
- the accessory component sends a message signed with the private key to the main component, which can use the public key to verify whether the accessory component is actually in possession of the private key belonging to the public key. If so, the main component classifies the accessory component as "authentic" and the device is allowed to operate.
- the present invention provides a method for operating an electrical or electronic device comprising a main component and an accessory component, the method comprising the following steps:
- Evaluation of the response message received from the accessory component by the main component the response message having a test value determined by the first test program and the test value being compared with a reference value during the evaluation of the response message; wherein the test value compared with the reference value is dependent on a processing speed of the first test program by the accessory component;
- the method according to the invention advantageously allows individual or all functions of a device to be activated only if it is proven that the accessory component used is in the original. As a result, the safety when operating the device can be significantly increased.
- a unique authentication method is provided in which the accessory component is authenticated by the main component without having to rely on a cryptographic method and the use of a private key. Rather, the present invention is based on the fact that different hardware modules process a given test program at different speeds.
- the main component and the accessory component have a microcontroller.
- a microcontroller has several hardware modules, of which the processing speed of the corresponding component for a specific program or a specific software routine depends.
- the present invention is also based on the fact that different types of microcontrollers have different hardware modules, so that each type of microcontroller can be uniquely identified by its specific hardware configuration. If a manufacturer wants to imitate an accessory component, there is generally no microcontroller available to him that is identical to the specific microcontroller type used by the original manufacturer of the accessory component. Even if the imitator copies the software stored on the accessory component, it can still be recognized during the authentication process that the imitation is not the original. In other words, each type of microcontroller has an individual rhythm with which it processes the first test program. This rhythm is dependent on the individual hardware modules of a microcontroller type and in this respect is practically unique for a specific microcontroller type.
- the electrical or electronic device can in particular be a drill with a rechargeable battery, a printer with a printer or toner cartridge, a smartphone with a rechargeable battery, etc.
- the test program can be implemented as a program that has a predetermined number of instructions.
- the test program can have 100 or 1000 individual instructions.
- the instructions are processed by a microcontroller of type A at a different processing speed than by a microcontroller of type B.
- the microcontrollers of type A and B can be distinguished from one another.
- a test value is determined which is sent to the main component.
- the main component compares the test value obtained with a reference value.
- the main component can classify the accessory component as "authentic” and then activate a previously deactivated function of the device.
- a method is provided that can be implemented very safely on the one hand and efficiently on the other.
- no method for securely storing private keys are required according to the present invention.
- An imitator can do that too Do not bypass authentication procedures by manipulating the accessory component using software.
- the method can be implemented efficiently, since no complex arithmetic operations have to be carried out on the main component and the accessory component.
- the transmitted test value can have a single numerical value which is compared with the reference value.
- the reference value can be stored in the memory of the main component. According to one embodiment, it can also be provided that the reference value is stored in an external database. It can also be provided that the test value has a sequence of numerical values, as will be explained in detail below.
- the first test program has a number n of CPU instructions and that the first test program provides that after execution of nl instructions on the accessory component, a counter reading is read out, where nl is less than or equal to n is, and wherein the read out count is contained in the check value sent to the main component.
- the counter reading can in particular be the counter reading of a CPU clock.
- a response message is then transmitted to the main component, which has a check value in which the counter reading is contained.
- the test value can be identical to the counter reading read out.
- the test value corresponds to a value that was determined from the counter reading that has been read out.
- a particularly easy-to-implement method can be provided in which a counter reading is read out and transmitted to the main component only after a predetermined number of instructions and the main component can decide whether it should be by simply comparing the counter reading with a reference value whether the accessory component used is an original or not.
- n2 is greater than nl and less than or equal to n
- the two counter readings or the difference between the two counter readings in the check value sent to the main component are included.
- the processing speed of the accessory component can be "measured" at two different points in time. In this way it can be achieved in an advantageous manner that the reliability of the authentication is increased, since it is very unlikely that two different microcontrollers happen to have the same processing time for both n1 and n2 instructions.
- the counter reading is read out at more than two places in the test program. This can further improve the reliability of the authentication. If the counter reading is read out at a particularly large number of points in the test program, it can be achieved that the accessory component is analyzed in great detail. This increases the reliability of the authentication. Otherwise, the associated computing effort and the amount of data transmitted from the accessory component to the main component increase if the corresponding counter reading is to be read out at a particularly large number of points in the test program and all counter readings are to be transmitted to the main component. As will be explained in detail below, according to further embodiments of the invention it can therefore be advantageous if not all the counter readings are transmitted to the main component, but only a test value determined from the individual counter readings.
- the check value can have a hash value that was previously determined from the product of the individual counter readings. Then only the hash value has to be transmitted to the main component, so that the main component only has to compare the hash value with a reference value.
- the execution of the first test program on the accessory component requires a number m of clock cycles and that the first test program provides that program status data stored on a memory element of the accessory component are read out after ml clock cycles, with ml being smaller or is equal to m, and wherein the read program status data are contained in the check value sent to the main component.
- the two program status data is contained in the test value sent to the main component.
- the reliability of the authentication can be further increased in that the program status data is read out at more than two different clock cycles and transmitted to the main component.
- the program status data can also be transmitted either directly or in the form of a test value that was calculated from the program status data.
- the transmitted check value can be implemented as a hash value that was calculated from the sum or the product of the individual program status data.
- the first test program provides for the execution of an interrupt service routine and that after an interrupt is triggered on the accessory component, program status data is read out and then contained in the test value sent to the main component.
- the program status data can contain the return address, i.e. the program address to be called immediately after termination of the interrupt service routine.
- the first test program contains at least one write instruction and / or one read instruction.
- the test program can have numerous instructions. It can be provided that the test program has several write instructions, one or more values being written into one or more registers a number of times. For example, a single value can be written to a register, a value to different registers or several different values to several different registers.
- the write instruction includes the writing of a value in a peripheral register and / or the read instruction includes the reading of a value from a peripheral register.
- the reliability of the authentication process can be increased by increasing the diversity of the test program is increased.
- a differentiated picture of the accessory component can be obtained if not only is writing to a single register or reading from a single register, but if different peripheral registers are involved in the execution of the test program.
- a person skilled in the art will recognize that the probability that different accessory components will execute a test program with the same processing speed is extremely low, especially when several different hardware modules of a microcontroller are used to execute the test program. This is because each individual hardware component has its own individual performance that can be used to clearly differentiate the microcontrollers.
- Test values that are determined by means of a test program in which a peripheral register is written to or read from a peripheral register are also referred to as microcontroller authentication data in the context of the present invention. According to one embodiment of the invention, it can therefore be provided that a response message contains microcontroller authentication data.
- the response message has a device ID of the accessory component and that when the main component evaluates the response message, the device ID received from the accessory component or a part of this device ID with a specified device ID reference value is compared.
- the device ID is stored in a read-only memory (also referred to as ROM or read-only memory) of the accessory component. In this way, the security of the method according to the invention can be further increased. Even if an imitator should come into possession of hardware modules that should be identical to the original manufacturer hardware, the additional check of the device ID can still reliably check whether the accessory component being examined is a component Original or a fake.
- the device ID has a total of 20 digits, from which the first five digits specify the group to which a microcontroller belongs, while the other 15 digits identify the specific microcontroller. In this way, by checking the device ID, the main component can determine whether or not the accessory component belongs to a group of “authentic accessory components”.
- the response message is not transmitted to the main component as plain text, but rather as a hash value calculated from the response message.
- a hash value calculated from the response message.
- the response message to be hashed comprises microcontroller authentication data and / or processor authentication data and / or program authentication data and / or a device ID.
- the processor authentication data can in particular have one or more counter readings and / or program status data.
- the processor authentication data are used for hardware authentication of the accessory component.
- the program authentication data can include, for example, binary data from the first test program.
- the program authentication data allow the main component to check whether the first test program is authentic and with integrity or whether the first test program has been manipulated by a third party became.
- the device ID can consist, for example, of a sequence of numbers that determine membership of an authentic group.
- the use of processor authentication data, program authentication data and a device ID can significantly increase the reliability of the authentication process. In this way, both a hardware check, a software check and a check of the accessory components carried out via a device ID are guaranteed. This makes it much more difficult to imitate an accessory component. Even if only one of the three authentication components is modified slightly, the corresponding hash value changes significantly.
- microcontroller authentication data are data that are determined by executing a test program in which not only the processor of the accessory component is involved, but also at least one peripheral register.
- processor authentication data can be determined by executing a test program in which no peripheral registers are involved.
- the use of microcontroller authentication data can be particularly advantageous because, in addition to the specific properties of a processor, the specific properties of one or more peripheral registers are also taken into account. This enables microcontroller types that have the same processor type to be distinguished from one another.
- the response message (regardless of the use of a hash function) comprises microcontroller authentication data and / or processor authentication data and / or program authentication data and / or a device ID.
- the first test program in a memory element of the Accessory component is stored.
- This has the advantage that the program data do not have to be transferred to the accessory component every time. This enables a particularly fast and efficient authentication process. The requirements for the bandwidth of the transmission channel between the main component and the accessory component are thereby advantageously reduced.
- the first test program is stored in a memory element of the main component. This has the advantage that the corresponding data does not have to be stored permanently on every accessory component. This advantageously reduces the memory requirements with regard to the accessory component.
- This has the advantage that not all of the program data have to be transferred from the main component to the accessory component. Instead, it is sufficient to simply transfer the information about which test program is to be executed to the accessory component. With a total of two test programs, it is sufficient to transmit a single program selection bit to the accessory component, with which of the two test programs is to be executed is coded in the program selection bit.
- test programs are stored on a memory element of the accessory component and that the program selection data contain information about which of the test programs is to be executed on the accessory component.
- several reference values can be stored on the main component, one reference value being assigned to a test program in each case. In other words, the main component knows that when choosing one specific test program a certain test value can be expected. If the test value received by the accessory component with the response message does not correspond to the reference value expected for the selected test program, the main component can conclude that the accessory component is not an original.
- the request message has modification data by which the test program to be executed is modified.
- this instruction can be a write instruction, the value to be written being designed to be modifiable.
- the modification data can contain, for example, the value to be written into a specific register. In this way, a slight variation of the test program can be made possible without storing a large amount of data on the accessory component and without having to transfer a large amount of data between the main component and the accessory component.
- the received test value is compared with a plurality of reference values, the predefined function then being activated if the comparison of the test value is identical to one of the reference values.
- the predefined function then being activated if the comparison of the test value is identical to one of the reference values.
- a system comprising an accessory component and a main component
- the main component being designed to authenticate the accessory component by the method according to the invention and to activate a predetermined function of the system, provided that the authentication was previously performed Accessory component was successful.
- the main component is a drill and the accessory component is a battery device belonging to it.
- the drill can be activated as long as the battery device has been recognized as authentic (i.e. as an original).
- the main component is designed as a printer and the accessory component has a printer cartridge or a printer cartridge.
- the print function can be activated if the printer cartridge was previously recognized as authentic.
- individual or all functions of the printer can be deactivated if it was previously recognized that the accessory component is an imitation of the original cartridge.
- a main component of an electrical or electronic device comprising a microcontroller
- the microcontroller being designed to send a request message to an accessory component of the electrical or electronic device; receive a response message from the accessory component; evaluate the received response message, the response message having a test value and the test value being compared with a reference value when the response message is evaluated; in which the test value compared with the reference value has a dependency on a processing speed of the first test program by the accessory component; and to activate a predetermined function of the device, provided that the comparison of the test value with the reference value has shown that the values compared with one another are identical.
- an accessory component of an electrical or electronic device comprising a microcontroller
- a microcontroller which is designed to receive an inquiry message from the main component; run a test program; and send a reply message to the main component; wherein the response message has a test value determined by the test program; and the test value is dependent on a processing speed of the first test program by the microcontroller.
- Fig.l an embodiment of an electrical device according to the present invention
- 4 shows a representation of the course of a counter reading as a function of the instructions executed
- 5 shows a representation of the course of a program state as a function of the clock cycles
- Fig. 10 is a flow chart for a further embodiment of the fiction, contemporary method.
- FIG. 11 shows a further illustration of an embodiment of the method according to the invention.
- an electrical device 10 is shown, which can be operated by the fiction, contemporary method.
- the device 10 has a main component 12 and an accessory component 14.
- the device 10 shown in Fig. 1 is designed as a drill.
- the main component 12 represents the drill as such, while the accessories component 14 is designed as a battery in the embodiment shown.
- the device according to the present invention can also be designed, for example, as a printer, coffee machine, e-cigarette or smartphone.
- FIG. 2 shows a general illustration of the method according to the invention.
- the main component 12 sends a request message 16 the accessory component 14.
- a test program is then executed on the accessory component 14, by means of which a test value is determined.
- the accessory component 14 then transmits the determined test value within a response message 18 to the main component 12.
- the main component 12 compares the obtained test value with a reference value and activates a function of the device 10 if the two compared values are identical.
- a test value is determined which is dependent on a processing speed of the first test program by the accessory component 14.
- the test value can contain a counter reading or program status data, as explained in connection with the following figures.
- a response message is transmitted from the accessory component 14 to the main component 12, the response message containing the previously determined test value.
- the main component 12 receives the response message 18 received from the accessory component 14.
- the test value contained in the response message 18 is compared with a reference value.
- the reference value can be stored in a storage element of the main component or it can be stored in an external memory. It can also be provided that several reference values are stored in a database and that the test value is compared with several reference values.
- a Device function activated if the test value is identical to the reference value (or one of the reference values).
- FIG. 4 shows an exemplary course of a counter reading as a function of the instructions that have been executed. It can be seen that after execution of m instruction, the count is Zi, on type of equipment of r2 instructions of the counter reading Z2 is, is after execution of n 3 Instruktonen the counter state Z3 and after execution of n 4 Instrukti the count ones Z 4 is as well as after execution of n instructions the counter reading Z is.
- the respective counter reading (for example, the counter reading of a CPU clock) can be read out after, n2, P 3 , n 4 and n instructions, so that the read counter readings are transmitted to the main component 12 and with the corresponding Referees n second to be compared.
- the main component 12 can recognize whether the processing speed of the checked accessory component 14 corresponds to or deviates from the processing speed of an original accessory component. If the processing speeds or the counter reading values are above the same, the main component 12 can conclude therefrom that the checked accessory component 14 is an original.
- an exemplary course of program status data is shown as a function of the clock cycles.
- the program status data can be, for example, the percentage of the instructions executed act in proportion to the total number of instructions. For example, after ml clock cycles, 20% of the total instructions can be executed, while after m2 clock cycles 38% of the total instructions are executed, after m3 clock cycles 62.5% of the instructions are executed, after m4 clock cycles 79% of the instructions are executed and after m clock cycles 100% of the instructions have been carried out. In this way, after a fixed number of clock cycles, the program status data can be read out and then transmitted to the main component 12.
- the program status data (just like the counter values) represent an individual distinguishing feature of a specific microcontroller, which enables the accessory component 14 to be clearly identified.
- the response message 18 has four counter values 20a, 20b, 20c, 20d which were read out according to n, n 3 and n 4 instructions.
- the four counter reading values 20a, 20b, 20c, 20d together form the counter reading data 22 and can be contained in the response message 18 as plain text.
- the counter reading data 22 can also be transmitted in the form of a single numerical value which is calculated from the counter reading values 20a, 20b, 20c, 20d. If the counter values 20a, 20b, 20c, 20d are transmitted as plain text to the main component 12, the main component 12 can compare the received four values with four reference values in order to identify whether the checked accessory component 14 is an original acts. As an alternative to this, it is also possible that the counter reading values 20a, 20b, 20c, 20d are not transmitted to the main component 12 as individual values, but rather that, for example, the sum total of all Counter reading values 20a, 20b, 20c, 20d or a hash value from the product of the individual values is determined.
- the response message 18 shows a response message 18 according to a second embodiment of the method according to the invention, the response message 18 containing both meter reading data 22 and a device ID 24.
- the counter reading data 22 can contain a single counter reading value, a plurality of counter reading values or a value which is determined from a plurality of counter reading values.
- the device ID 24 can be, for example, a twenty-digit ID, of which z. B. the first five digits describe a group of microcontrollers and the last 15 digits the individual microcontroller.
- the device ID 24 can in particular be stored on a ROM of the accessory component 14 and read out when the test program is executed.
- the response message 18 contains a hash value 26 which is calculated from the counter reading data 22 and the device ID 24.
- the use of a hash function has the advantage that slight deviations in the meter reading data 22 or the device ID 24 lead to a significant deviation in the hash value 26, so that the main component 12 can more easily recognize that the values determined when the test program was executed are different from the values that would be expected in the case of an original accessory component.
- Another advantage of using the hash function is that a check value with a constant length is always transmitted. This is particularly advantageous if numerous counter values are determined when the test program is executed and these values are to be used for the authentication of the accessory component 14.
- the amount of data transmitted from the accessory component 14 to the main component 12 can be significantly reduced through the use of the hash function and the transmission of the hash value 26.
- 9 shows a response message 18 according to a fourth embodiment of the method according to the invention.
- the response message 18 contains a hash value 26 which is determined from the counter reading data 22, the device ID 24 and a program code 28.
- the program code 28 can be, for example, the binary code of the test program.
- the hash value 26 can be calculated, for example, from a series of the counter reading data 22, the device ID 24 and the program code 28.
- the counter reading data 22, the device ID 24 and the program code 28 are first added or multiplied with one another and then the hash value 26 is calculated from the sum or the product of the input variables mentioned.
- the hash function used can be, for example, an SHA algorithm (Secure Hash Algorithm).
- SHA algorithm Secure Hash Algorithm
- FIGS. 10 and 11 show further representations of the method according to the invention, which will be discussed below in connection with the alternative description of the invention.
- REFERENCE CHARACTERISTICS device main component accessory component request message response message a first meter reading b second meter reading c third meter reading d fourth meter reading meter reading data device ID hash value program code 0 an exemplary embodiment of the method according to the invention for operating an electrical device 2 to 114
- the invention relates to pairs of a host system, e.g., a drill, an electronic cigarette or printer, and an interchangeable device, e.g., a rechargeable battery, a cartridge or an ink cartridge. It is suitable for manufacturers who want to prevent non-authentic devices from being used with authentic host systems. It describes a method with which the device controller verifies authentication features to the host system via a suitable data interface and a suitable protocol.
- Fallback measures such as the revocation of certificates for compromised, secret keys, do not exist for the area of application mentioned, since the host systems in the field do not establish a connection with the corresponding servers.
- Another disadvantage is the additional costs due to the need to protect the secret key outside of the host system and the logistics associated with key management. Compared to the pair of devices without authentication, the present invention requires very low additional unit costs.
- the disclosed authentication method requires approx. 1 kB additional flash memory on the host side and 2-3 kB on the device side. For each application, data transmission of 200 - 250 bits is required as a stimulus from the host system to the device and 64 - 128 bits as a response.
- the computation time required is comparable to the computation time of a cryptographic software hash for processing an input block and significantly less than the computation time for an asymmetrical, cryptographic signature process.
- the task is first to identify characteristic hardware features for the product version of the device controller, which are suitable for checking by the host system, and finally a test method for these hardware features in combination with the manufacturer ID to represent which is difficult to outsmart.
- test or “stimulus response test (SRT)” is a specified sequence according to which the test environment applies stimuli to the interface between test environment and test object and measures responses.
- the test specification includes the stimulus data, in particular the dependency of stimulus data on measured responses, and the stimulus timing. If a test can be repeated, ie if a test object always delivers the same responses when the test is repeated, then the quadruple (test environment, test, stimuli, responses) can be regarded as a "feature" of the test object.
- the "check” of a feature consists of a test and a subsequent comparison of the responses with reference values. In the following, a distinction is made between “isolated”, “internal” and “external” tests of certain hardware features of the device controller, depending on different test environments.
- Isolated tests are used to check specified features of individual hardware blocks, such as ALU, memory modules, peripheral modules. They take place in a specialized laboratory of the chip manufacturer with specialized test systems and probing points as a test interface. Isolated hardware features can be found in the product-specific reference manual. Depending on the debug system of the device controller, some isolated tests are also possible on the part of the host system, provided that it is connected to the debug interface of the device controller.
- Isolated tests of ALU, memory and peripheral modules can be translated into "internal" tests, in which the CPU takes over the function of the test system.
- the stimuli are sent via write access using STORE instructions, and the responses are received via read access using LOAD instructions.
- the instruction code executed by the CPU is part of the test specification for the internal test.
- test object In the "external" test, devices connected to external interfaces of the device controller act as a test system.
- the initial programming of the device controller is part of the complete test specification.
- the test object for the external test is the hardware of the device controller including ROM content, possibly together with external wiring and peripherals.
- An external test can contain many internal tests. Some internal features of the processor core, memory and peripherals are always implicitly tested by external tests because the test code is executed by the processor core instructions are fetched from memory by the pipeline, and the communication uses the peripherals.
- the authentication according to the disclosed invention takes place through external testing, the host system being the testing system.
- Each host system checks at least one external characteristic, which includes the examination of many internal characteristics of special hardware modules as well as the verification of the manufacturer ID.
- the internal features mentioned are translations of isolated hardware features which, taken together, characterize the functional product design of the device controller used.
- a host-specific, external feature of an authentic device controller is suitable for the disclosed authentication method if every controller of a different version and every controller of the same version but different manufacturer ID fails the external check. This assumes that the feature is difficult to simulate.
- the test code of the device controller must include the examination of internal features in a form that is difficult to simulate. To illustrate this, some hardware features are named below and a suitable stimulus-response test with simulation countermeasures is described in each case.
- Instruction Set / Hardware Fault Exception An external test begins when a test application is brought into the manufacturer. This step is always a prerequisite for checking a hardware feature in the field.
- the host system sends code and data to be processed as stimulus to the device controller, whose authentication application loads and executes code and data, see FIG. 11.
- the execution includes the sending of a response to the host system.
- the test environment includes a debug system on the device side, via which the device controller is controlled by the guest.
- the host system compares the response and, if necessary, the time delay between stimulus and response with reference values.
- the hardware feature is checked to determine whether the instruction set of the device controller covers the code sent. The handling of execution errors depends on the hardware Characteristic whether the device controller supports hardware fault exceptions. Depending on the test code, additional, internal hardware features are checked.
- the code In an extension of the first-mentioned test class, the code often includes the query of timer values. Conveniently, all timers of the device controller are configured differently in the test code, repeatedly reconfigured pseudo-randomly and queried multiple times. The timer values are part of the response, either directly or summarized via a hash function.
- the code also includes access to memory addresses. Read and write accesses are combined, for example to explore the limits of ROM and RAM. A suitably implemented hardware fault exception handler is used to detect when there is write access to ROM and write or read access to undefined addresses.
- Periphery In an extension of the last-mentioned test class, the code also includes access to peripheral registers.
- a pin 0 of a GPIO port A configured as an output is wired directly to a pin 1 of a GPIO port B configured as an input on the device board.
- the device controller has a DMA controller which, if configured appropriately, allows port B input to be redirected to a RAM memory area C without the CPU having to do anything.
- the test code is enriched with internal tests, which consist of write access to port A, read access to port B, and write and read access to port C. A simulation then not only has to take into account the peripheral functions, but also all CPU waiting cycles which are caused by BUS accesses by the DMA controller.
- the code also contains a suitable interrupt configuration and interrupt service routines for the peripheral components involved, eg timer overflow interrupts and port B pinl toggle interrupt.
- the test code is changed by the interrupt service routines, for example by exchanging lines in the implementation of a hash function.
- the interrupts control the timing of the execution of the test code hardware, which makes simulation even more difficult.
- Every controller has functional properties that characterize the functional product design of the controller product as a whole. They can be identified by comparing them with similar products based on the following questions: Which processor architecture and which variant of the instruction set are used? Which memories are available in which size, and how are they addressed? Which peripheral modules are available and how are they addressed? What configuration options are there for this, and what are the dependencies between peripheral modules? The identified, characteristic properties can be translated into isolated features.
- the code also contains an internal test for each feature from a list of isolated hardware features which, taken together, characterize the functional product execution of the device controller. This gives an external test for the device controller execution, which is difficult to pass with simulated hardware.
- Manufacturer ID In an extension of the last-mentioned test class, the code also includes queries for the manufacturer ID. To make the simulation more difficult, the test code must firstly use indirect addressing so that access to the manufacturer ID cannot be recognized directly from the code or can be redirected through code manipulation, and secondly, the internal responses are entered into the hash code. Include calculation. This gives you a Class of external tests for the device controller execution and the manufacturer ID, which are difficult to pass with simulated hardware.
- test of the last-mentioned test class consists on the one hand of a sequence of many internal SRTs and, on the other hand, the internal SRTs deliver different responses when a known sequence is rearranged and the stimulus values are changed that cannot be fully derived from the known responses.
- a rearranged test of the test class described remains a test of characteristic hardware features and the manufacturer ID.
- the essential step in generating host-specific tests consists in permuting the internal SRT of a specified, external SRT host-specifically. Additional steps are named below by way of example in the exemplary embodiment.
- an individual test is generated for each host system, as disclosed, and an external reference response is generated with the help of an authentic reference device.
- Each host system is provided with the external stimulus and the reference value for its individual test in the manufacturer's environment.
- the devices all receive an identical authentication application that supports the selected tests.
- the authentication application can be omitted if the host system is connected to the device via a suitable debug interface. The device can then be stimulated via the debug interface.
- the host system checks the authenticity of the counterpart at given times.
- the sequence is shown in FIG.
- the host system has it only the task of sending the stored external stimulus, receiving the external response and comparing it with the stored reference value and finally, depending on the success of the comparison, starting the normal device function.
- an isolated or internal test in the simplest version consists of writing the stimulus to a WriteAddress and then reading the response from a ReadAddress.
- the stimulus for the internal tests to be carried out is not yet defined, but is generated pseudo-randomly during the execution.
- the WriteAddress is a configuration register of a periphery, it can make sense to keep certain stimulus bits fixed at 0 or 1.
- the restriction can be enforced by logically combining the stimulus with an AND mask before writing and then with an OR mask.
- the reset value at the ReadAddress may not have to be defined for all bits, or some bits should be ignored in the test. This is done by linking the response value with an AND mask.
- a simple, isolated or internal test is with the exception of the definition of the stimulus and the timing by a 5-tuple
- addresses are 32 bits wide.
- the device controller has a memory that can already be clearly assigned with 19 bits.
- the lower 16 bits correspond to normal addressing, the upper three bits choose between different physical memory modules.
- ReadAddress and WriteAddress are represented in a 5 byte block, whereby bytes 1-2 represent the lower 16 bits of the WriteAddress, bytes 3-4 the lower 16 bits of the ReadAddress and byte 0 contains the following information: Bit 0 indicates whether a 32 Bit WriteAndMask and a 32-bit WriteOrMask follow, bit 1 indicates whether a 32-bit ReadAndMask follows, bits 2-4 represent the memory module for write, bits 5-7 the memory module for read.
- bit 0 or bit 1 is equal to zero, the trivial masks are to be selected as masks, ie b'l ... l as the AND mask and b'0 ... 0 as the OR mask.
- Non-trivial masks are appended to the 5-byte block. Depending on bits 0 and 1, this results in a length of 5, 9 or 17 bytes for the compressed representation of a simple test.
- a fixed list of 140 simple tests is stored in the flash of the device controller. The compressed length is 20 times 17 bytes, 40 times 9 bytes and 80 times 5 bytes, ie a total of 1200 bytes have to be saved. During execution, the list is decompressed in sections and loaded into RAM.
- the device manufacturer lists a number of internal tests that together characterize the hardware version of the device controller and each consist of several simple SRTs.
- the collection of these simple SRTs is arranged in a suitable manner in a sequence SRT_0, SRT_1,... So that four consecutive, simple SRTs belong to four different internal tests and the SRTs belonging to an internal test in the appear in the order determined by the internal test.
- the length of the sequence is 140.
- the sequence is subdivided into a sequence of 35 blocks of 4 simple SRT each. A host-specific interweaving of the internal tests is done by permutating the tests within a block.
- a host-specific interweaving is thus to be defined as a sequence pO, ..., p34 of 4-way permutations.
- a suitable coding needs 5 bits per permutation. This means that a host-specific interweaving can be represented using 175 bits.
- the stimulus-response tests which can be coded as sequences of 5-tuples, are suitable for testing behavioral characteristics of the device controller.
- the following alternative is available for checking runtimes and contents in contiguous RAM or ROM areas:
- a projection function can be implemented for each contiguous area to be checked, which maps every 32-bit word to an area address.
- the following eight areas are checked in this way: ROM code area, Flash area, RAM code area, RAM stack area, RAM data area, chip ID area, area of the Manufacturer ID, timer register area. From a deterministic pseudo-random source described below, 3 bits are used for area selection per read access and 32 bits are mapped to an area address by area-specific projection function.
- hash function's state buffer As a pseudo-random source for the stimulus of every simple, internal test.
- simulation countermeasure it makes sense to include not only the response, but also the stimulus, as well as the ReadAddress and WriteAdress of a test in the hash calculation.
- Logical operations, addition and multiplication are particularly suitable for the instructions opj. It is advantageous to reserve CPU registers in the main program for the hash buffer.
- the registers R0-R3 are selected. The registers receive the last 128 bits of the stimulus as an initial value.
- At least one hash round is carried out for each internal SRT.
- Stimulus generation writing the stimulus, reading the response and reading a pseudo-random address are defined for an internal test such as shown in drawing 2, directly connected to the hash update:
- RI serves as a pseudo-random source for the stimulus, which is formed by linking RI with WriteAndMask and WriteOrMask.
- the stimulus is written to the WriteAddress address, then the response is read from the ReadAddress.
- the stimulus and the values R2, R3 in the buffer form the input of F0, the output of which is linked to R0 via XOR.
- R0 is then linked with the AND link of Response and ReadAndMask via XOR and overwritten with the result.
- R0, R2 and R3 form the input of F2, whose output is linked with RI via XOR. Then the result is XORed with WriteAddress and R2 is overwritten with the result.
- R0, R1 and R3 form the input of F2, whose output is linked with R2 via XOR. Then the result is XORed with ReadAddress and R2 is overwritten with the result.
- R2 and the 3 lowest R1 bits are now used as a pseudo-random source for the pseudo-randomized read access described above. The read data are linked with R3 via XOR and R3 is overwritten with the result.
- R0, R1 and R2 form the input of F3, whose output is linked with R3 via XOR.
- the hash function is generated by the authentication application of the device controller from a basic structure stored in flash, an opcode lookup table with 16 entries stored in flash, depending on the host-specific opcode selection, at runtime assembled and loaded into RAM.
- the host-specific opcode selection is done by transmitting 8 times 4 equal to 32 bits within the external stimulus.
- the sequence of instructions for the described hash update in connection with an SRT and a pseudo-random read access is not clearly defined.
- the manufacturer selects a fixed instruction sequence which contains the opcode variables op0, ..., op7. It identifies pairs of instructions within this sequence that allow interchangeability without fundamentally changing the procedure.
- code dynamization is implemented in that interrupt service routines are implemented in the test code in such a way that they each carry out one of the identified swaps. After the swap, stimuli, responses and read data will turn out differently, since read timer values in particular change.
- the external stimulus consists of 207 bits, of which 175 bits encode a sequence of 35 permutations of four consecutive SRTs stored in the flash of the device controller and 32 bits, which are 8 times 4 bits, the opcodes for op0, ... , select op7 from a lookup table stored in the flash of the device controller.
- the main program of the device controller loads the basic structure for the hash update routine described above into the RAM and supplements the received opcodes opO, ..., op7. Then it decompresses part of the SRT and stores the decompressed ones 5-tuples in RAM. The main loop is then started, which includes the decompression of one or more tests and overwriting of the tests already carried out in RAM, as well as the combined execution of an SRT, a pseudo-random read access and a hash update in each round. After the last round, the content of half the hash buffer is transmitted to the host system. The response thus consists of 64 bits.
- the method described can also be used if the device manufacturer wants to use several different hardware versions for the guest controller. Then either the response of a stimulus response test can be compared with several authentic reference values, or the host system selects a suitable stimulus response test for the device controller, depending on the hardware design. The claims remain unaffected.
- the method for authenticating a device according to the present invention can be combined with cryptographic methods.
- Method for electronic authentication of a device by a host system characterized in that all authentic devices are provided with a microcontroller of the same functional hardware version, a device as an authentication feature proves that it has a microcontroller of the authentic hardware version, the test of this authentication feature includes a stimulus-response test, in which the host system sends a host-system-specific stimulus to the device and compares the response of the device with an authentic response stored in the host system, the authentic response of this stimulus-response Tests depend on how many cycles an authentic device controller needs to execute one or more CPU instruction sequences determined by the device configuration and the stimulus.
- Method for electronic authentication of a device by a host system characterized in that all authentic devices are provided with a microcontroller of the same functional hardware version, all authentic devices have the same manufacturer ID at fixed addresses in an unchangeable memory area , a device proves as an authentication feature that it has a microcontroller of the authentic hardware version, a device proves the correct manufacturer ID as an authentication feature, the testing of the two authentication features mentioned includes a stimulus-response test which the host system sends a host system-specific stimulus to the device and compares the response of the device with an authentic response stored in the host system, the authentic response of this stimulus-response test depends on how many cycles an authentic device controller is used for execution one or more CPU instruction sequences determined by the device configuration and the stimulus are required.
- a method for electronic authentication of a device by a host system characterized in that all authentic devices are provided with a microcontroller of the same functional hardware version, a device as an authentication feature proves that it has a microcontroller of the authentic hardware version that Checking this authentication feature includes a stimulus-response test in which the host system sends a host-system-specific stimulus to the device and compares the response of the device with an authentic response stored in the host system, the authentic response of this stimulus-response test depends on the address limits of RAM, ROM and I / O register area of an authentic device controller.
- Method for electronic authentication of a device by a host system characterized in that all authentic devices are provided with a microcontroller of the same functional hardware version, a device as an authentication feature proves that it has a microcontroller of the authentic hardware version, the test of this authentication feature includes a stimulus-response test, in which the host system sends a host-system-specific stimulus to the device and compares the response of the device with an authentic response stored in the host system, the authentic response of this stimulus-response Tests on the specified reset values in the I / O and system registers of an authentic device controller.
- a device as an authentication feature proves that it has a microcontroller of the authentic hardware version that Checking this authentication feature includes a stimulus-response test in which the host system sends a host-system-specific stimulus to the device and compares the response of the device with an authentic response stored in the host system, the authentic response of this stimulus-response test depends on the dependencies between the values in various I / O registers, system registers and RAM areas of an authentic device controller.
- Method for electronic authentication of a device by a host system characterized in that all authentic devices are provided with a microcontroller of the same functional hardware version, a device as an authentication feature proves that it has a microcontroller the authentic hardware version, the test of this authentication feature includes a stimulus-response test with host-specific stimulus, in which a debug interface of the device controller is used as a test interface.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
Description
VERFAHREN UND VORRICHTUNGEN ZUM BETREIBEN EINES ELEKTRISCHEN METHODS AND DEVICES FOR OPERATING AN ELECTRIC
ODER ELEKTRONISCHEN GERÄTS OR ELECTRONIC DEVICE
Die vorliegende Erfindung betrifft ein Verfahren zum Betreiben eines elektri schen oder elektronischen Geräts umfassend eine Hauptkomponente und eine Zubehörkomponente. The present invention relates to a method for operating an electrical or electronic device comprising a main component and an accessory component.
Elektrische und elektronische Geräte, die eine Hauptkomponente und eine Zu behörkomponente aufweisen, sind im Allgemeinen bekannt. Beispielsweise wer den Bohrmaschinen gemeinsam mit Akkus, Drucker mit Druckerpatronen, E- Zigaretten mit Liquid-Kartuschen, Kaffeemaschinen mit Kapseln und Smartpho- nes mit Akkus vertrieben. Häufig besteht beim Verbraucher der Wunsch oder die Notwendigkeit, die Zubehörkomponente auszutauschen, da beispielsweise die Leistungsfähigkeit eines Akkus nach einer bestimmten Zeit nachgelassen hat oder weil die Zubehörkomponente (wie etwa bei Kaffeekapseln) nur einmalig zu verwenden ist. Electrical and electronic devices that have a main component and an accessory component are generally known. For example, who sells drills with rechargeable batteries, printers with printer cartridges, e-cigarettes with liquid cartridges, coffee machines with capsules and smartphones with rechargeable batteries. The consumer often wants or needs to replace the accessory component because, for example, the performance of a rechargeable battery has deteriorated after a certain period of time or because the accessory component (such as coffee capsules, for example) only needs to be used once.
In einigen Fällen kann es aus Sicherheitsgründen ratsam oder sogar zwingend erforderlich sein, die auszutauschende Zubehörkomponente durch eine original Zubehörkomponente von demselben Hersteller zu ersetzen. Beispielsweise bei Akkus hat sich in der Vergangenheit gezeigt, dass der Einsatz nachgeahmter Zubehörkomponenten ein ernsthaftes Sicherheitsproblem darstellen kann, da einige der auf dem Markt erhältliche Nachahmungen keineswegs den hohen Si cherheitsanforderungen der Hersteller genügen. Dies kann zu einer übermäßi gen Erwärmung oder sogar zur Explosion der Akkus führen. In some cases, for safety reasons, it may be advisable or even absolutely necessary to replace the accessory component to be exchanged with an original accessory component from the same manufacturer. In the case of batteries, for example, it has been shown in the past that the use of counterfeit accessory components can pose a serious security problem, as some of the counterfeits available on the market by no means meet the manufacturers' high security requirements. This can cause the batteries to heat up excessively or even explode.
Eine übermäßige Erwärmung oder eine Explosion eines Akkus kann nicht nur zur Zerstörung der Hauptkomponente (z. B. ein Smartphone) führen, sondern auch ein beträchtliches Sicherheitsrisiko für den Verbraucher darstellen. Excessive heating or an explosion of a battery can not only destroy the main component (e.g. a smartphone) but also pose a significant safety risk for the consumer.
Aus den genannten Gründen ist es in bestimmten Fällen für den Hersteller wün schenswert, Sicherheitsmaßnahmen zu ergreifen, die es erlauben, dass ein Ge rät deaktiviert wird, sobald erkannt wird, dass es sich bei der verwendeten Zu behörkomponente nicht um ein Original handelt. Für die Unterscheidung zwischen einem Original und einer Nachahmung ist es erforderlich, eine zuverlässige Authentifizierung der Zubehörkomponente zu er möglichen. For the reasons mentioned, it is in certain cases desirable for the manufacturer to take security measures that allow a device to be deactivated as soon as it is recognized that the accessory component used is not an original. To distinguish between an original and an imitation, it is necessary to enable reliable authentication of the accessory component.
Verschiedene Ansätze für die Authentifizierung von Zubehörkomponenten sind bereits aus dem Stand der Technik bekannt. Insbesondere ist in der US 2011/0093714 Al ein Verfahren zur Authentifizierung von Zubehörkomponen ten beschrieben, bei dem ein kryptographisches Verfahren zur Prüfung der Au thentizität der Zubehörkomponente eingesetzt wird. Bei dem in der genannten Druckschrift beschriebenen Verfahren wird ein Schlüsselpaar bestehend aus ei nem privaten Schlüssel und einem öffentlichen Schlüssel verwendet. Die Zube hörkomponente sendet dabei eine mit dem privaten Schlüssel signierte Nach richt an die Hauptkomponente, die unter Verwendung des öffentlichen Schlüs sels verifizieren kann, ob die Zubehörkomponente tatsächlich im Besitz des zu dem öffentlichen Schlüssel gehörenden privaten Schlüssels ist. Falls dem so ist, klassifiziert die Hauptkomponente die Zubehörkomponente als "authentisch" und der Betrieb des Geräts wird zugelassen. Various approaches for the authentication of accessory components are already known from the prior art. In particular, US 2011/0093714 A1 describes a method for authenticating accessory components in which a cryptographic method is used to check the authenticity of the accessory component. In the method described in the cited publication, a key pair consisting of a private key and a public key is used. The accessory component sends a message signed with the private key to the main component, which can use the public key to verify whether the accessory component is actually in possession of the private key belonging to the public key. If so, the main component classifies the accessory component as "authentic" and the device is allowed to operate.
Auch wenn kryptographische Verfahren gewisse Vorteile bieten, sind diese auch mit einigen Nachteilen verbunden. Insbesondere können kryptographische Ver fahren leicht umgangen werden, falls der private Schlüssel in falsche Hände gelangt. In diesem Fall können ohne Weiteres zahlreiche Nachahmungen einer Zubehörkomponente bereitgestellt werden, da der private Schlüssel auf jeden der nachgebauten Zubehörkomponenten hinterlegt werden kann. Even if cryptographic methods offer certain advantages, these are also associated with some disadvantages. In particular, cryptographic processes can easily be bypassed if the private key falls into the wrong hands. In this case, numerous replicas of an accessory component can easily be provided, since the private key can be stored on each of the replicated accessory components.
Ausgehend von dem vorstehend beschriebenen Problem ist es Aufgabe der vor liegenden Erfindung, ein Verfahren zum Betreiben eines elektrischen oder elekt ronischen Geräts bereitzustellen, das eine sichere und möglichst effiziente Au thentifizierung einer Zubehörkomponente durch eine Hauptkomponente erlaubt. Based on the problem described above, it is the object of the present invention to provide a method for operating an electrical or electronic device that allows a secure and efficient as possible authentication of an accessory component by a main component.
Zur Lösung der genannten Aufgabe wird mit der vorliegenden Erfindung ein Verfahren zum Betreiben eines elektrischen oder elektronischen Geräts umfassend eine Hauptkomponente und eine Zubehörkomponente vorgeschla gen, wobei das Verfahren die nachfolgenden Schritte umfasst: To achieve the stated object, the present invention provides a method for operating an electrical or electronic device comprising a main component and an accessory component, the method comprising the following steps:
Senden einer Anfragenachricht von der Hauptkomponente zu der Zube hörkomponente; Sending an inquiry message from the main component to the accessory component;
Ausführen eines ersten Testprogramms auf der Zubehörkomponente; Senden einer Antwortnachricht von der Zubehörkomponente an die Hauptkomponente; Executing a first test program on the accessory component; Sending a response message from the accessory component to the main component;
Auswerten der von der Zubehörkomponente empfangenen Antwortnach richt durch die Hauptkomponente, wobei die Antwortnachricht einen durch das erste Testprogramm ermittelten Prüfwert aufweist und der Prüfwert bei der Auswertung der Antwortnachricht mit einem Referenz wert verglichen wird; wobei der mit dem Referenzwert verglichene Prüfwert eine Abhängigkeit von ei ner Verarbeitungsgeschwindigkeit des ersten Testprogramms durch die Zubehörkomponente aufweist; und Evaluation of the response message received from the accessory component by the main component, the response message having a test value determined by the first test program and the test value being compared with a reference value during the evaluation of the response message; wherein the test value compared with the reference value is dependent on a processing speed of the first test program by the accessory component; and
Aktivieren einer vorgegebenen und zuvor deaktivierten Funktion des Ge räts, sofern der Vergleich des Prüfwertes mit dem Referenzwert ergeben hat, dass die miteinander verglichenen Werte identisch sind. Activation of a predefined and previously deactivated function of the device, provided that the comparison of the test value with the reference value has shown that the values compared with one another are identical.
Das erfindungsgemäße Verfahren erlaubt es in vorteilhafter Weise, einzelne o- der sämtliche Funktionen eines Geräts nur dann freizuschalten, wenn nachge wiesen ist, dass die verwendete Zubehörkomponente im Original vorliegt. Dadurch kann die Sicherheit beim Betreiben des Geräts signifikant erhöht wer den. Bei dem erfindungsgemäßen Verfahren wird ein eindeutiges Authentifizie- rungsverfahren bereitgestellt, bei dem die Zubehörkomponente durch die Hauptkomponente authentifiziert wird, ohne auf ein kryptographisches Verfah ren und die Verwendung eines privaten Schlüssels angewiesen zu sein. Vielmehr basiert die vorliegende Erfindung auf der Tatsache, dass verschiedene Hardwa- remodule ein vorgegebenes Testprogramm unterschiedlich schnell verarbeiten. In der Regel weisen die Hauptkomponente und die Zubehörkomponente einen Mikrocontroller auf. Ein Mikrocontroller weist dabei mehrere Hardwaremodule auf, von denen die Verarbeitungsgeschwindigkeit der entsprechenden Kompo nente für ein bestimmtes Programm bzw. eine bestimmte Softwareroutine abhängt. Die vorliegende Erfindung basiert ebenfalls auf der Tatsache, dass ver schiedene Mikrocontroller-Typen unterschiedliche Hardwaremodule aufweisen, so dass jeder Mikrocontroller-Typ durch seine spezifische Hardware-Konfigura tion eindeutig identifizierbar ist. Wenn ein Hersteller eine Zubehörkomponente nachahmen möchte, so steht ihm in der Regel kein Mikrocontroller zur Verfü gung, der mit dem spezifischen, vom ursprünglichen Hersteller der Zubehör komponente verwendeten Mikrocontroller-Typ identisch ist. Auch wenn der Nachahmer die auf der Zubehörkomponente hinterlegte Software kopiert, kann bei dem Authentifizierungsprozess dennoch erkannt werden, dass es sich bei der Nachahmung nicht um das Original handelt. Anders ausgedrückt, weist jeder Mikrocontroller-Typ einen individuellen Rhythmus auf, mit dem er das erste Testprogramm verarbeitet. Dieser Rhythmus ist abhängig von den einzelnen Hardwaremodulen eines Mikrocontroller-Typs und insofern für einen spezifi schen Mikrocontroller-Typ praktisch einzigartig. The method according to the invention advantageously allows individual or all functions of a device to be activated only if it is proven that the accessory component used is in the original. As a result, the safety when operating the device can be significantly increased. In the method according to the invention, a unique authentication method is provided in which the accessory component is authenticated by the main component without having to rely on a cryptographic method and the use of a private key. Rather, the present invention is based on the fact that different hardware modules process a given test program at different speeds. As a rule, the main component and the accessory component have a microcontroller. A microcontroller has several hardware modules, of which the processing speed of the corresponding component for a specific program or a specific software routine depends. The present invention is also based on the fact that different types of microcontrollers have different hardware modules, so that each type of microcontroller can be uniquely identified by its specific hardware configuration. If a manufacturer wants to imitate an accessory component, there is generally no microcontroller available to him that is identical to the specific microcontroller type used by the original manufacturer of the accessory component. Even if the imitator copies the software stored on the accessory component, it can still be recognized during the authentication process that the imitation is not the original. In other words, each type of microcontroller has an individual rhythm with which it processes the first test program. This rhythm is dependent on the individual hardware modules of a microcontroller type and in this respect is practically unique for a specific microcontroller type.
Bei dem elektrischen oder elektronischen Gerät kann es sich im Rahmen der vorliegenden Erfindung insbesondere um eine Bohrmaschine mit Akku, einen Drucker mit Druckerpatrone bzw. Tonerkartusche, ein Smartphone mit einem Akku, etc. handeln. Das Testprogramm kann als ein Programm ausgeführt sein, dass eine vorgegebene Anzahl an Instruktionen aufweist. Beispielsweise kann das Testprogramm 100 oder 1000 einzelne Instruktionen aufweisen. Die In struktionen werden durch einen Mikrocontroller des Typs A mit einer anderen Verarbeitungsgeschwindigkeit verarbeitet als durch einen Mikrocontroller des Typs B. Somit sind die Mikrocontroller des Typs A und B voneinander unter scheidbar. Bei der Ausführung des Testprogramms wird ein Prüfwert ermittelt, der an die Hauptkomponente gesendet wird. Die Hauptkomponente vergleicht den erhaltenen Prüfwert mit einem Referenzwert. Wenn die beiden Werte mit einander übereinstimmen, kann die Hauptkomponente die Zubehörkomponente als "authentisch" klassifizieren und im Anschluss eine zuvor deaktivierte Funk tion des Geräts aktivieren. Auf diese Weise wird ein Verfahren bereitgestellt, das einerseits sehr sicher und andererseits effizient zu implementieren ist. Ins besondere werden gemäß der vorliegenden Erfindung keine Verfahren zur si cheren Speicherung privater Schlüssel benötigt. Auch kann ein Nachahmer das Authentifizierungsverfahren nicht umgehen, indem er eine softwaremäßige Ma nipulation der Zubehörkomponente vornimmt. Schließlich ist das Verfahren ef fizient zu implementieren, da keine komplexen Rechenoperationen auf der Hauptkomponente und der Zubehörkomponente durchgeführt werden müssen. Der übertragene Prüfwert kann im einfachsten Fall einen einzelnen Zahlenwert aufweisen, der mit dem Referenzwert verglichen wird. Der Referenzwert kann im Speicher der Hauptkomponente hinterlegt sein. Gemäß einer Ausführungs form kann auch vorgesehen sein, dass der Referenzwert in einer externen Da tenbank hinterlegt ist. Auch kann vorgesehen sein, dass der Prüfwert eine Ab folge von Zahlenwerten aufweist, wie im Nachfolgenden noch im Detail erläutert wird. In the context of the present invention, the electrical or electronic device can in particular be a drill with a rechargeable battery, a printer with a printer or toner cartridge, a smartphone with a rechargeable battery, etc. The test program can be implemented as a program that has a predetermined number of instructions. For example, the test program can have 100 or 1000 individual instructions. The instructions are processed by a microcontroller of type A at a different processing speed than by a microcontroller of type B. Thus, the microcontrollers of type A and B can be distinguished from one another. When the test program is executed, a test value is determined which is sent to the main component. The main component compares the test value obtained with a reference value. If the two values match, the main component can classify the accessory component as "authentic" and then activate a previously deactivated function of the device. In this way, a method is provided that can be implemented very safely on the one hand and efficiently on the other. In particular, no method for securely storing private keys are required according to the present invention. An imitator can do that too Do not bypass authentication procedures by manipulating the accessory component using software. Finally, the method can be implemented efficiently, since no complex arithmetic operations have to be carried out on the main component and the accessory component. In the simplest case, the transmitted test value can have a single numerical value which is compared with the reference value. The reference value can be stored in the memory of the main component. According to one embodiment, it can also be provided that the reference value is stored in an external database. It can also be provided that the test value has a sequence of numerical values, as will be explained in detail below.
Gemäß einer Ausführungsform des erfindungsgemäßen Verfahrens kann vorge sehen sein, dass das erste Testprogramm eine Anzahl n an CPU-Instruktionen aufweist und dass das erste Testprogramm vorsieht, dass nach Ausführung von nl Instruktionen auf der Zubehörkomponente ein Zählerstand ausgelesen wird, wobei nl kleiner oder gleich n ist, und wobei der ausgelesene Zählerstand in dem an die Hauptkomponente gesendeten Prüfwert enthalten ist. Bei dem Zäh lerstand kann es sich insbesondere um den Zählerstand eines CPU-Clocks han deln. Beispielsweise kann das erste Testprogramm 100 CPU-Instruktionen auf weisen, wobei nach nl = 75 Instruktionen der Zählerstand ausgelesen wird. Anschließend wird eine Antwortnachricht an die Hauptkomponente übermittelt, die einen Prüfwert aufweist, in dem der ausgelesene Zählerstand enthalten ist. Gemäß einer Ausführungsform kann der Prüfwert identisch mit dem ausgelese nen Zählerstand sein. Gemäß einer weiteren Ausführungsform der Erfindung kann ebenfalls vorgesehen sein, dass der Prüfwert einem Wert entspricht, der aus dem ausgelesenen Zählerstand ermittelt wurde. Auf diese Weise kann ein besonders einfach zu implementierendes Verfahren bereitgestellt werden, bei dem lediglich nach einer vorgegebenen Anzahl von Instruktionen ein Zähler standswert ausgelesen und an die Hauptkomponente übertragen wird und die Hauptkomponente durch einen einfachen Vergleich des Zählerstandes mit ei nem Referenzwert entscheiden kann, ob es sich bei der verwendeten Zubehör komponente um ein Original handelt oder nicht. Gemäß einer weiteren Ausführungsform des erfindungsgemäßen Verfahrens kann vorgesehen sein, dass nach Durchführung von n2 Instruktionen auf der Zubehörkomponente erneut der Zählerstand ausgelesen wird, wobei n2 größer als nl und kleiner oder gleich n ist, wobei die beiden Zählerstände oder die Differenz der beiden Zählerstände in dem an die Hauptkomponente gesendeten Prüfwert enthalten sind. Beispielsweise kann vorgesehen sein, dass n = 100, nl = 35 und n2 = 85 ist. Auf diese Weise kann die Verarbeitungsgeschwindigkeit der Zubehörkomponente zu zwei unterschiedlichen Zeitpunkten "gemessen" werden. Auf diese Weise kann in vorteilhafter Weise erreicht werden, dass die Zuverlässigkeit der Authentifizierung erhöht wird, da es sehr unwahrscheinlich ist, dass zwei unterschiedliche Mikrocontroller zufällig die gleiche Verarbeitungs dauer sowohl für nl als auch für n2 Instruktionen aufweist. Ferner kann vorge sehen sein, dass der Zählerstand an mehr als zwei Stellen im Testprogramm ausgelesen wird. Dadurch kann die Zuverlässigkeit der Authentifizierung weiter verbessert werden. Wenn der Zählerstand an besonders vielen Stellen im Test programm ausgelesen wird, kann dadurch erreicht werden, dass die Zubehör komponente sehr detailliert analysiert wird. Dadurch steigt die Zuverlässigkeit der Authentifizierung. Andernfalls nehmen der damit verbundene Rechenauf wand sowie die von der Zubehörkomponente an die Hauptkomponente übertra gene Datenmenge zu, wenn an besonders vielen Stellen im Testprogramm der entsprechende Zählerstand ausgelesen und sämtliche Zählerstände an die Hauptkomponente übertragen werden sollen. Wie im Nachfolgenden noch im Detail erläutert wird, kann es gemäß weiteren Ausführungsformen der Erfindung daher vorteilhaft sein, wenn nicht alle ausgelesenen Zählerstände an die Haupt komponente übertragen werden, sondern lediglich ein aus den einzelnen Zäh lerständen ermittelter Prüfwert. Beispielsweise kann der Prüfwert einen Hash- wert aufweisen, der zuvor aus dem Produkt der einzelnen Zählerstände ermittelt wurde. Anschließend muss dann lediglich der Hashwert an die Hauptkompo nente übertragen werden, so dass die Hauptkomponente lediglich den Hashwert mit einem Referenzwert vergleichen muss. Dadurch wird in vorteilhafter Weise erreicht, dass einerseits eine sehr detaillierte Analyse der Zubehörkomponente erfolgt, andererseits aber die von der Zubehörkomponente an die Hauptkompo nente übertragene Datenmenge weiterhin gering bleibt. According to one embodiment of the method according to the invention, it can be provided that the first test program has a number n of CPU instructions and that the first test program provides that after execution of nl instructions on the accessory component, a counter reading is read out, where nl is less than or equal to n is, and wherein the read out count is contained in the check value sent to the main component. The counter reading can in particular be the counter reading of a CPU clock. For example, the first test program can have 100 CPU instructions, the counter reading being read out after nl = 75 instructions. A response message is then transmitted to the main component, which has a check value in which the counter reading is contained. According to one embodiment, the test value can be identical to the counter reading read out. According to a further embodiment of the invention, it can also be provided that the test value corresponds to a value that was determined from the counter reading that has been read out. In this way, a particularly easy-to-implement method can be provided in which a counter reading is read out and transmitted to the main component only after a predetermined number of instructions and the main component can decide whether it should be by simply comparing the counter reading with a reference value whether the accessory component used is an original or not. According to a further embodiment of the method according to the invention, it can be provided that after execution of n2 instructions on the accessory component, the counter reading is read again, where n2 is greater than nl and less than or equal to n, the two counter readings or the difference between the two counter readings in the check value sent to the main component are included. For example, it can be provided that n = 100, nl = 35 and n2 = 85. In this way, the processing speed of the accessory component can be "measured" at two different points in time. In this way it can be achieved in an advantageous manner that the reliability of the authentication is increased, since it is very unlikely that two different microcontrollers happen to have the same processing time for both n1 and n2 instructions. It can also be provided that the counter reading is read out at more than two places in the test program. This can further improve the reliability of the authentication. If the counter reading is read out at a particularly large number of points in the test program, it can be achieved that the accessory component is analyzed in great detail. This increases the reliability of the authentication. Otherwise, the associated computing effort and the amount of data transmitted from the accessory component to the main component increase if the corresponding counter reading is to be read out at a particularly large number of points in the test program and all counter readings are to be transmitted to the main component. As will be explained in detail below, according to further embodiments of the invention it can therefore be advantageous if not all the counter readings are transmitted to the main component, but only a test value determined from the individual counter readings. For example, the check value can have a hash value that was previously determined from the product of the individual counter readings. Then only the hash value has to be transmitted to the main component, so that the main component only has to compare the hash value with a reference value. As a result, it is achieved in an advantageous manner that on the one hand a very detailed analysis of the accessory component takes place, but on the other hand the amount of data transferred from the accessory component to the main component remains small.
Gemäß einer weiteren Ausführungsform des erfindungsgemäßen Verfahrens kann vorgesehen sein, dass die Ausführung des ersten Testprogramms auf der Zubehörkomponente eine Anzahl m an Taktzyklen benötigt und dass das erste Testprogramm vorsieht, dass nach ml Taktzyklen auf einem Speicherelement der Zubehörkomponente gespeicherte Programmzustandsdaten ausgelesen werden, wobei ml kleiner oder gleich m ist, und wobei die ausgelesenen Pro grammzustandsdaten in dem an die Hauptkomponente gesendeten Prüfwert enthalten sind. Bei den Programmzustandsdaten kann es sich insbesondere um Daten handeln, die angeben, wieviel Prozent des Testprogramms bislang aus geführt wurde. Beispielsweise kann es vorgesehen sein, dass ein vorgegebenes erstes Testprogramm auf einer original Zubehörkomponente m = 10.000 Taktzyklen benötigt und das erste Testprogramm vorsieht, dass nach ml = 3.500 Taktzyklen die Programmzustandsdaten ausgelesen werden. Beispiels weise kann dabei ermittelt werden, dass nach ml = 3.500 Taktzyklen 20% der Instruktionen ausgeführt worden sind. Dieser Wert kann dann anschließend mit der Antwortnachricht an die Hauptkomponente übermittelt werden, die an schließend den empfangenen Prüfwert mit einem Referenzwert vergleicht. According to a further embodiment of the method according to the invention, it can be provided that the execution of the first test program on the accessory component requires a number m of clock cycles and that the first test program provides that program status data stored on a memory element of the accessory component are read out after ml clock cycles, with ml being smaller or is equal to m, and wherein the read program status data are contained in the check value sent to the main component. The program status data can in particular be data which indicate what percentage of the test program has been executed so far. For example, it can be provided that a specified first test program on an original accessory component requires m = 10,000 clock cycles and the first test program provides that the program status data are read out after ml = 3,500 clock cycles. For example, it can be determined that after ml = 3,500 clock cycles, 20% of the instructions have been executed. This value can then be transmitted with the response message to the main component, which then compares the received test value with a reference value.
Ferner kann gemäß einer Ausführungsform der Erfindung vorgesehen sein, dass nach m2 Taktzyklen auf der Zubehörkomponente erneut Programmzustandsda ten ausgelesen werden, wobei m2 größer als ml und kleiner oder gleich m ist, und wobei die beiden Programmzustandsdaten in dem an die Hauptkomponente gesendeten Prüfwert enthalten ist. Beispielsweise kann vorgesehen sein, dass das gesamte Testprogramm auf einer original Zubehörkomponente m = 10.000 Taktzyklen benötigt und dass nach ml = 4.000 und m2 = 7.800 Taktzyklen jeweils die Programmzustandsdaten ausgelesen werden. Beispielsweise kann dabei ermittelt werden, dass nach ml Taktzyklen 25% der Instruktionen durch die Zubehörkomponente ausgeführt waren, während nach m2 Taktzyklen 70% der Instruktionen ausgeführt waren. Die ermittelten Werte können dann an die Hauptkomponente übertragen werden, welche die empfangenen Werte zur Authentifizierung der Zubehörkomponente verwenden kann. Die Zuverlässigkeit der Authentifizierung kann dabei weiter erhöht werden, indem die Programm zustandsdaten zu mehr als zwei verschiedenen Taktzyklen ausgelesen und an die Hauptkomponente übermittelt werden. Wie bereits vorstehend erläutert, können auch die Programmzustandsdaten entweder direkt übermittelt werden oder in Form eines Prüfwertes, der aus den Programmzustandsdaten berechnet wurde. Beispielsweise kann der übermittelte Prüfwert als ein Hashwert ausge führt sein, der aus der Summe oder dem Produkt der einzelnen Programmzu standsdaten berechnet wurde. Furthermore, according to one embodiment of the invention, it can be provided that after m2 clock cycles on the accessory component program status data are read out again, where m2 is greater than ml and less than or equal to m, and the two program status data is contained in the test value sent to the main component. For example, it can be provided that the entire test program on an original accessory component requires m = 10,000 clock cycles and that the program status data are read out after ml = 4,000 and m2 = 7,800 clock cycles. For example, it can be determined that after ml clock cycles 25% of the instructions were executed by the accessory component, while after m2 clock cycles 70% of the instructions were executed. The determined values can then be transmitted to the main component, which uses the received values Accessory component authentication can use. The reliability of the authentication can be further increased in that the program status data is read out at more than two different clock cycles and transmitted to the main component. As already explained above, the program status data can also be transmitted either directly or in the form of a test value that was calculated from the program status data. For example, the transmitted check value can be implemented as a hash value that was calculated from the sum or the product of the individual program status data.
Auch kann gemäß einer weiteren Ausführungsform der Erfindung vorgesehen sein, dass das erste Testprogramm die Durchführung einer Interrupt-Service- Routine vorsieht und dass nach dem Auslösen eines Interrupts auf der Zube hörkomponente Programmzustandsdaten ausgelesen und anschließend in dem an die Hauptkomponente gesendeten Prüfwert enthalten sind. In dieser Ausfüh rungsform können die Programmzustandsdaten die Rücksprungadresse, d.h. die unmittelbar nach der Beendigung der Interrupt-Service-Routine aufzurufende Programmadresse, beinhalten. According to a further embodiment of the invention it can also be provided that the first test program provides for the execution of an interrupt service routine and that after an interrupt is triggered on the accessory component, program status data is read out and then contained in the test value sent to the main component. In this embodiment, the program status data can contain the return address, i.e. the program address to be called immediately after termination of the interrupt service routine.
Ferner kann gemäß einer Ausführungsform des erfindungsgemäßen Verfahrens vorgesehen sein, dass das erste Testprogramm mindestens eine Schreibinstruk tion und/oder eine Leseinstruktion beinhaltet. Wie bereits vorstehend erläutert, kann das Testprogramm zahlreiche Instruktionen aufweisen. Dabei kann es vor gesehen sein, dass das Testprogramm mehrere Schreibinstruktionen aufweist, wobei mehrfach ein oder mehrere Werte in ein oder mehrere Register geschrie ben werden. Dabei kann beispielsweise ein einzelner Wert in ein Register, ein Wert in verschiedene Register oder aber auch mehrere unterschiedliche Werte in mehrere unterschiedliche Register geschrieben werden. Furthermore, according to one embodiment of the method according to the invention, it can be provided that the first test program contains at least one write instruction and / or one read instruction. As already explained above, the test program can have numerous instructions. It can be provided that the test program has several write instructions, one or more values being written into one or more registers a number of times. For example, a single value can be written to a register, a value to different registers or several different values to several different registers.
Auch kann vorgesehen sein, dass die Schreibinstruktion das Schreiben eines Wertes in ein Peripherie-Register umfasst und/oder die Leseinstruktion das Le sen eines Wertes aus einem Peripherie-Register umfasst. Dabei kann die Zuver lässigkeit des Authentifizierungsverfahrens erhöht werden, indem die Diversität des Testprogramms erhöht wird. Anders ausgedrückt, kann ein differenziertes Bild der Zubehörkomponente erhalten werden, wenn nicht nur in ein einziges Register geschrieben oder aus einem einzigen Register gelesen wird, sondern wenn bei der Ausführung des Testpgrogramms unterschiedliche Peripherie-Re gister involviert sind. Für den Fachmann ist es erkenntlich, dass die Wahrschein lichkeit, dass unterschiedliche Zubehörkomponenten ein Testprogramm mit der gleichen Verarbeitungsgeschwindigkeit ausführen, äußerst gering ist, und zwar insbesondere dann, wenn mehrere unterschiedliche Hardwaremodule eines Mik rocontrollers für die Ausführung des Testprogramms verwendet werden. Denn jede einzelne Hardwarekomponente weist für sich genommen eine individuelle Performance auf, die für die eindeutige Differenzierung der Mikrocontroller ge nutzt werden kann. Prüfwerte, die mittels eines Testprogramms ermittelt wer den, bei dem in ein Peripherie-Register geschrieben oder aus einem Peripherie- Register gelesen wird, werden im Rahmen der vorliegenden Erfindung auch als Mikrocontroller-Authentifizierungsdaten bezeichnet. Gemäß einer Ausführungs form der Erfindung kann demnach vorgesehen sein, dass eine Antwortnachricht Mikrocontroller-Authentifizierungsdaten enthält. It can also be provided that the write instruction includes the writing of a value in a peripheral register and / or the read instruction includes the reading of a value from a peripheral register. The reliability of the authentication process can be increased by increasing the diversity of the test program is increased. In other words, a differentiated picture of the accessory component can be obtained if not only is writing to a single register or reading from a single register, but if different peripheral registers are involved in the execution of the test program. A person skilled in the art will recognize that the probability that different accessory components will execute a test program with the same processing speed is extremely low, especially when several different hardware modules of a microcontroller are used to execute the test program. This is because each individual hardware component has its own individual performance that can be used to clearly differentiate the microcontrollers. Test values that are determined by means of a test program in which a peripheral register is written to or read from a peripheral register are also referred to as microcontroller authentication data in the context of the present invention. According to one embodiment of the invention, it can therefore be provided that a response message contains microcontroller authentication data.
Gemäß einer weiteren bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens kann vorgesehen sein, dass die Antwortnachricht eine Geräte-ID der Zubehörkomponente aufweist und dass bei der Auswertung der Antwortnach richt durch die Hauptkomponente die von der Zubehörkomponente empfangene Geräte-ID oder ein Teil dieser Geräte-ID mit einem vorgegebenen Geräte-ID- Referenzwert verglichen wird. Insbesondere ist gemäß einer Ausführungsform der Erfindung vorgesehen, dass die Geräte-ID auf einem Nur-Lese-Speicher (auch als ROM oder read-only memory bezeichnet) der Zubehörkomponente hinterlegt ist. Auf diese Weise kann die Sicherheit des erfindungsgemäßen Ver fahrens weiter erhöht werden. Denn auch wenn ein Nachahmer in den Besitz von Hardwaremodulen gelangen sollte, die mit der original Hersteller-Hardware identisch sein sollten, kann trotzdem durch die zusätzliche Überprüfung der Ge- räte-ID zuverlässig überprüft werden, ob es sich bei der untersuchten Zubehör komponente um ein Original oder um eine Fälschung handelt. Beispielsweise kann vorgesehene sein, dass die Geräte-ID insgesamt 20 Ziffern aufweist, von denen die ersten fünf Ziffern die Gruppe spezifizieren, zu der ein Mikrocontroller gehört, wobei die weiteren 15 Ziffern den spezifischen Mikrocontroller identifi zieren. Auf diese Weise kann die Hauptkomponente durch Prüfung der Geräte- ID ermitteln, ob die Zubehörkomponente zu einer Gruppe von "authentischen Zubehörkomponenten" gehört oder nicht. According to a further preferred embodiment of the method according to the invention it can be provided that the response message has a device ID of the accessory component and that when the main component evaluates the response message, the device ID received from the accessory component or a part of this device ID with a specified device ID reference value is compared. In particular, one embodiment of the invention provides that the device ID is stored in a read-only memory (also referred to as ROM or read-only memory) of the accessory component. In this way, the security of the method according to the invention can be further increased. Even if an imitator should come into possession of hardware modules that should be identical to the original manufacturer hardware, the additional check of the device ID can still reliably check whether the accessory component being examined is a component Original or a fake. For example, it can be provided that the device ID has a total of 20 digits, from which the first five digits specify the group to which a microcontroller belongs, while the other 15 digits identify the specific microcontroller. In this way, by checking the device ID, the main component can determine whether or not the accessory component belongs to a group of “authentic accessory components”.
Gemäß einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens kann vorgesehen sein, dass die Antwortnachricht nicht als Plain Text (Klartext) an die Hauptkomponente übertragen wird, sondern als ein aus der Antwortnach richt berechneter Hashwert. Dadurch kann in vorteilhafter Weise erreicht wer den, dass die Menge der Daten, die von der Zubehörkomponente an die Haupt komponente übermittelt wird, reduziert wird. Zudem bietet die Verwendung des Hashwertes den Vorteil, dass auch geringfügige Änderungen des bei der Aus führung des Testprogramms ermittelten Wertes einfacher erkannt werden kön nen. Dies liegt daran, dass bereits geringfügige Änderungen am Eingang einer Hashfunktion zu einer kompletten Änderung des durch die Hashfunktion berech neten Wertes führen. Der Hashwert kann aus einem Einzelwert berechnet wer den oder aber auch, wie vorstehend bereits beispielhaft erläutert wurde, aus einer Mehrzahl an einzelnen Werten, die bei der Ausführung des Testprogramms ermittelt wurden (z. B. aus mehreren Zählerstandswerten oder aus unterschied lichen Programmzustandsdaten). According to a preferred embodiment of the method according to the invention, it can be provided that the response message is not transmitted to the main component as plain text, but rather as a hash value calculated from the response message. As a result, it can be achieved in an advantageous manner that the amount of data that is transmitted from the accessory component to the main component is reduced. In addition, the use of the hash value offers the advantage that even slight changes in the value determined when the test program is executed can be recognized more easily. This is because even minor changes to the input of a hash function lead to a complete change in the value calculated by the hash function. The hash value can be calculated from a single value or, as already explained above by way of example, from a plurality of individual values that were determined when the test program was executed (e.g. from several counter values or from different program status data).
Ferner kann gemäß einer Ausführungsform der Erfindung vorgesehen sein, dass die zu hashende Antwortnachricht Mikrocontroller-Authentifizierungsdaten und/oder Prozessor-Authentifizierungsdaten und/oder Programm-Authentifizie- rungsdaten und/oder eine Geräte-ID umfasst. Die Prozessor-Authentifizierungs- daten können insbesondere einen oder mehrere Zählerstände und/oder Pro grammzustandsdaten aufweisen. Die Prozessor-Authentifizierungsdaten dienen der hardwaremäßigen Authentifizierung der Zubehörkomponente. Die Pro- gramm-Authentifizierungsdaten können beispielsweise Binärdaten des ersten Testprogramms aufweisen. Die Programm-Authentifizierungsdaten erlauben der Hauptkomponente zu überprüfen, ob das erste Testprogramm authentisch und integer ist oder ob das erste Testprogramm von einem Dritten manipuliert wurde. Wenn die Programm-Authentifizierungsdaten bzw. ein aus den Pro- gramm-Authentifizierungsdaten ermittelter Hashwert nicht mit einem Prüfwert identisch sind, so kann hieraus darauf geschlossen werden, dass das erste Test programm manipuliert wurde, um bei einer nicht authentischen Zubehörkom ponente den gleichen Prüfwert zu erzeugen wie bei einer original Zubehörkom ponente. Die Geräte-ID kann beispielsweise aus einer Zahlenfolge bestehen, die die Zugehörigkeit zu einer authentischen Gruppe bestimmt. Durch die Verwen dung von Prozessor-Authentifizierungsdaten, Programm-Authentifizierungsda- ten und einer Geräte-ID kann die Zuverlässigkeit des Authentifizierungsverfah- rens signifikant erhöht werden. So wird sowohl eine hardwaremäßige Überprü fung, eine softwaremäßige Überprüfung und eine über eine Geräte-ID durchge führte Überprüfung der Zubehörkomponente gewährleistet. Dies erschwert die Nachahmung einer Zubehörkomponente wesentlich. Auch wenn nur einer der drei Authentifizierungs-Komponenten leicht abgewandelt wird, ändert sich der entsprechende Hashwert signifikant. Bei den Mikrocontroller-Authentifizierungs- daten handelt es sich um Daten, die durch Ausführung eines Testprogramms ermittelt werden, bei dem nicht nur der Prozessor der Zubehörkomponente in volviert ist, sondern auch mindestens ein Peripherie-Register. Hingegen können Prozessor-Authentifizierungsdaten durch Ausführung eines Testprogramms er mittelt werden, bei dem keine Peripherie-Register involviert sind. Die Verwen dung von Mikrocontroller-Authentifizierungsdaten kann besonders vorteilhaft sein, da zusätzlich zu den spezifischen Eigenschaften eines Prozessors auch die spezifischen Eigenschaften eines oder mehrerer Peripherie-Register berücksich tigt werden. Dadurch wird es ermöglicht, dass auch Mikrocontroller-Typen von einander unterschieden werden können, die denselben Prozessortyp aufweisen. Furthermore, according to one embodiment of the invention, it can be provided that the response message to be hashed comprises microcontroller authentication data and / or processor authentication data and / or program authentication data and / or a device ID. The processor authentication data can in particular have one or more counter readings and / or program status data. The processor authentication data are used for hardware authentication of the accessory component. The program authentication data can include, for example, binary data from the first test program. The program authentication data allow the main component to check whether the first test program is authentic and with integrity or whether the first test program has been manipulated by a third party became. If the program authentication data or a hash value determined from the program authentication data is not identical to a test value, it can be concluded from this that the first test program was manipulated in order to apply the same test value to an inauthentic accessory component as with an original accessory component. The device ID can consist, for example, of a sequence of numbers that determine membership of an authentic group. The use of processor authentication data, program authentication data and a device ID can significantly increase the reliability of the authentication process. In this way, both a hardware check, a software check and a check of the accessory components carried out via a device ID are guaranteed. This makes it much more difficult to imitate an accessory component. Even if only one of the three authentication components is modified slightly, the corresponding hash value changes significantly. The microcontroller authentication data are data that are determined by executing a test program in which not only the processor of the accessory component is involved, but also at least one peripheral register. In contrast, processor authentication data can be determined by executing a test program in which no peripheral registers are involved. The use of microcontroller authentication data can be particularly advantageous because, in addition to the specific properties of a processor, the specific properties of one or more peripheral registers are also taken into account. This enables microcontroller types that have the same processor type to be distinguished from one another.
Auch kann gemäß einer Ausführungsform der Erfindung vorgesehen sein, dass die Antwortnachricht (unabhängig vom Einsatz einer Hashfunktion) Mikrocon trol ler-Authentifizierungsdaten und/oder Prozessor-Authentifizierungsdaten und/oder Programm-Authentifizierungsdaten und/oder eine Geräte-ID umfasst. According to one embodiment of the invention, it can also be provided that the response message (regardless of the use of a hash function) comprises microcontroller authentication data and / or processor authentication data and / or program authentication data and / or a device ID.
Gemäß einer weiteren vorteilhaften Ausführungsform der Erfindung kann vor gesehen sein, dass das erste Testprogramm in einem Speicherelement der Zubehörkomponente gespeichert ist. Dies hat den Vorteil, dass die Programm daten nicht jedes Mal an die Zubehörkomponente übertragen werden müssen. Dadurch wird ein besonders schnelles und effizientes Authentifizierungsverfah- ren ermöglicht. Auch die Anforderungen an die Bandbreite des Übertragungska nals zwischen Hauptkomponente und Zubehörkomponente werden dadurch in vorteilhafter Weise reduziert. According to a further advantageous embodiment of the invention can be provided that the first test program in a memory element of the Accessory component is stored. This has the advantage that the program data do not have to be transferred to the accessory component every time. This enables a particularly fast and efficient authentication process. The requirements for the bandwidth of the transmission channel between the main component and the accessory component are thereby advantageously reduced.
Gemäß einer weiteren Ausführungsform des erfindungsgemäßen Verfahrens kann vorgesehen sein, dass das erste Testprogramm in einem Speicherelement der Hauptkomponente gespeichert ist. Dies hat den Vorteil, dass die entspre chenden Daten nicht dauerhaft auf jeder Zubehörkomponente gespeichert sein müssen. Dadurch werden in vorteilhafter Weise die Speicheranforderungen hin sichtlich der Zubehörkomponente reduziert. According to a further embodiment of the method according to the invention, it can be provided that the first test program is stored in a memory element of the main component. This has the advantage that the corresponding data does not have to be stored permanently on every accessory component. This advantageously reduces the memory requirements with regard to the accessory component.
Gemäß einer weiteren bevorzugten Ausführungsform der Erfindung kann vor gesehen sein, dass auf dem Speicherelement der Zubehörkomponente neben dem ersten Testprogramm noch mindestens ein zweites Testprogramm gespei chert ist und dass die Anfragenachricht Programmauswahldaten aufweist, durch die der Zubehörkomponente angezeigt wird, welches der Testprogramme aus zuführen ist. Dies hat den Vorteil, dass nicht die gesamten Programmdaten von der Hauptkomponente an die Zubehörkomponente übertragen werden müssen. Stattdessen reicht es aus, lediglich die Information darüber, welches Testpro gramm auszuführen ist, an die Zubehörkomponente zu übertragen. Bei insge samt zwei Testprogrammen reicht es insofern aus, ein einziges Programmaus wahl-Bit an die Zubehörkomponente zu übertragen, wobei in dem Pro grammauswahl-Bit kodiert ist, welches der zwei Testprogramme ausgeführt werden soll. Ferner kann vorgesehen sein, dass mehr als zwei Testprogramme auf einem Speicherelement der Zubehörkomponente hinterlegt sind und dass die Programmauswahldaten Information darüber enthalten, welches der Test programme auf der Zubehörkomponente ausgeführt werden soll. Entsprechend können auf der Hauptkomponente mehrere Referenzwerte abgespeichert sein, wobei jeweils ein Referenzwert einem Testprogramm zugeordnet ist. Anders ausgedrückt, weiß die Hauptkomponente, dass bei der Auswahl eines spezifischen Testprogramms ein bestimmter Prüfwert zu erwarten ist. Entspricht der von der Zubehörkomponente mit der Antwortnachricht empfangene Prüf wert nicht dem für das ausgewählte Testprogramm erwarteten Referenzwert, so kann die Hauptkomponente darauf schließen, dass es sich bei der Zubehör komponente um kein Original handelt. According to a further preferred embodiment of the invention, provision can be made for at least one second test program to be stored on the memory element of the accessory component in addition to the first test program and for the request message to have program selection data that indicates to the accessory component which of the test programs is to be executed . This has the advantage that not all of the program data have to be transferred from the main component to the accessory component. Instead, it is sufficient to simply transfer the information about which test program is to be executed to the accessory component. With a total of two test programs, it is sufficient to transmit a single program selection bit to the accessory component, with which of the two test programs is to be executed is coded in the program selection bit. It can also be provided that more than two test programs are stored on a memory element of the accessory component and that the program selection data contain information about which of the test programs is to be executed on the accessory component. Correspondingly, several reference values can be stored on the main component, one reference value being assigned to a test program in each case. In other words, the main component knows that when choosing one specific test program a certain test value can be expected. If the test value received by the accessory component with the response message does not correspond to the reference value expected for the selected test program, the main component can conclude that the accessory component is not an original.
Ferner kann gemäß einer weiteren bevorzugten Ausführungsform der Erfindung vorgesehen sein, dass die Anfragenachricht Modifikationsdaten aufweist, durch die das auszuführende Testprogramm modifiziert wird. Auf diese Weise können zahlreiche Variationen des Testprogramms bereitgestellt werden, ohne dabei mehrere Testprogramme auf dem Speicher der Zubehörkomponente ablegen zu müssen. Beispielsweise kann das Testprogramm n = 100 Instruktionen aufwei sen, wobei die 35. Instruktion als modifizierbare Instruktion ausgeführt ist. Bei spielsweise kann diese Instruktion eine Schreibinstruktion sein, wobei der zu schreibende Wert modifizierbar ausgeführt ist. Auf diese Weise können die Mo difikationsdaten beispielsweise den in ein bestimmtes Register zu schreibenden Wert enthalten. Auf diese Weise kann eine leichte Variation des Testprogramms ermöglicht werden, ohne eine große Datenmenge auf der Zubehörkomponente zu speichern und ohne eine große Menge an Daten zwischen der Hauptkompo nente und der Zubehörkomponente übertragen zu müssen. Furthermore, according to a further preferred embodiment of the invention, it can be provided that the request message has modification data by which the test program to be executed is modified. In this way, numerous variations of the test program can be provided without having to store several test programs in the memory of the accessory component. For example, the test program can have n = 100 instructions, the 35th instruction being executed as a modifiable instruction. For example, this instruction can be a write instruction, the value to be written being designed to be modifiable. In this way, the modification data can contain, for example, the value to be written into a specific register. In this way, a slight variation of the test program can be made possible without storing a large amount of data on the accessory component and without having to transfer a large amount of data between the main component and the accessory component.
Ferner kann gemäß einer weiteren Ausführungsform der Erfindung vorgesehen sein, dass beim Auswerten der von der Zubehörkomponente empfangenen Ant wortnachricht durch die Hauptkomponente der empfangene Prüfwert mit einer Mehrzahl an Referenz werten verglichen wird, wobei anschließend die vorgege bene Funktion aktiviert wird, sofern der Vergleich des Prüfwertes mit einem der Referenzwerte identisch ist. Auf diese Weise wird es ermöglicht, mehrere Typen einer Zubehörkomponente zu authentifizieren, die beispielsweise zu einer Pro duktfamilie gehören. Beispielsweise können dadurch mehrere Zubehörkompo nenten, die technisch unterschiedlich ausgeführt sind und unterschiedliche Hardwaremodule aufweisen, als authentische Zubehörkomponenten erkannt werden. Dies kann beispielsweise dann sinnvoll sein, wenn die Zubehörkompo nenten sich im Laufe der Zeit geändert haben und dabei über die Jahre unterschiedliche Mikrocontroller zum Einsatz gekommen sind. So kann für jeden Typ eines als authentisch zu klassifizierenden Mikrocontrollers ein Referenzwert im Speicher der Hauptkomponente hinterlegt sein. Furthermore, according to a further embodiment of the invention, it can be provided that when the response message received from the accessory component is evaluated by the main component, the received test value is compared with a plurality of reference values, the predefined function then being activated if the comparison of the test value is identical to one of the reference values. In this way it is possible to authenticate several types of an accessory component that belong, for example, to a product family. For example, several accessory components that are technically different and have different hardware modules can be recognized as authentic accessory components. This can be useful, for example, if the accessory components have changed over time and over the years different microcontrollers have been used. For each type of microcontroller to be classified as authentic, a reference value can be stored in the memory of the main component.
Darüber hinaus wird zur Lösung der vorstehend genannten Aufgabe ein System umfassend eine Zubehörkomponente und eine Hauptkomponente vorgeschla gen, wobei die Hauptkomponente dazu ausgelegt ist, die Zubehörkomponente durch das erfindungsgemäße Verfahren zu authentifizieren und eine vorgege bene Funktion des Systems zu aktivieren, sofern zuvor die Authentifizierung der Zubehörkomponente erfolgreich war. In addition, to solve the above-mentioned object, a system comprising an accessory component and a main component is proposed, the main component being designed to authenticate the accessory component by the method according to the invention and to activate a predetermined function of the system, provided that the authentication was previously performed Accessory component was successful.
Bei dem erfindungsgemäßen System kann es vorgesehen sein, dass die Haupt komponente eine Bohrmaschine und die Zubehörkomponente eine dazu gehö rende Akkueinrichtung ist. In diesem Fall kann die Bohrmaschine aktiviert wer den, sofern die Akkureinrichtung als authentisch (d. h. als ein Original) erkannt wurde. Alternativ kann vorgesehen sein, dass die Hauptkomponente als Drucker ausgeführt ist und die Zubehörkomponente eine Druckerkartusche oder eine Druckerpatrone aufweist. In diesem Fall kann beispielweise die Druckfunktion aktiviert werden, wenn die Druckerkartusche zuvor als authentisch erkannt wurde. Hingegen können einzelne oder sämtliche Funktionen des Druckers de aktiviert werden, sofern zuvor erkannt wurde, dass die Zubehörkomponente eine Nachahmung der Originalpatrone darstellt. In the system according to the invention, it can be provided that the main component is a drill and the accessory component is a battery device belonging to it. In this case, the drill can be activated as long as the battery device has been recognized as authentic (i.e. as an original). Alternatively, it can be provided that the main component is designed as a printer and the accessory component has a printer cartridge or a printer cartridge. In this case, for example, the print function can be activated if the printer cartridge was previously recognized as authentic. In contrast, individual or all functions of the printer can be deactivated if it was previously recognized that the accessory component is an imitation of the original cartridge.
Ferner wird zur Lösung der vorliegenden Aufgabe eine Hauptkomponente eines elektrischen oder elektronischen Geräts umfassend einen Mikrocontroller vor geschlagen, wobei der Mikrocontroller dazu ausgelegt ist, eine Anfragenachricht an eine Zubehörkomponente des elektrischen oder elektronischen Geräts zu senden; eine Antwortnachricht von der Zubehörkomponente zu empfangen; die empfangene Antwortnachricht auszuwerten, wobei die Antwortnach richt einen Prüfwert aufweist und der Prüfwert bei der Auswertung der Antwortnachricht mit einem Referenzwert verglichen wird; wobei der mit dem Referenzwert verglichene Prüfwert eine Abhängigkeit von ei ner Verarbeitungsgeschwindigkeit des ersten Testprogramms durch die Zubehörkomponente aufweist; und eine vorgegebene Funktion des Geräts zu aktivieren, sofern der Vergleich des Prüfwertes mit dem Referenzwert ergeben hat, dass die miteinander verglichenen Werte identisch sind. Furthermore, to solve the present problem, a main component of an electrical or electronic device comprising a microcontroller is proposed, the microcontroller being designed to send a request message to an accessory component of the electrical or electronic device; receive a response message from the accessory component; evaluate the received response message, the response message having a test value and the test value being compared with a reference value when the response message is evaluated; in which the test value compared with the reference value has a dependency on a processing speed of the first test program by the accessory component; and to activate a predetermined function of the device, provided that the comparison of the test value with the reference value has shown that the values compared with one another are identical.
Schließlich wird zur Lösung der vorliegenden Aufgabe eine Zubehörkomponente eines elektrischen oder elektronischen Geräts umfassend einen Mikrocontroller vorgeschlagen, der dazu ausgelegt ist, eine Anfragenachricht von der Hauptkomponente zu empfangen; ein Testprogramm auszuführen; und eine Antwortnachricht an die Hauptkomponente zu senden; wobei die Antwortnachricht einen durch das Testprogramm ermittelten Prüfwert aufweist; und der Prüfwert eine Abhängigkeit von einer Verarbeitungsgeschwindigkeit des ersten Testprogramms durch den Mikrocontroller aufweist. Finally, to solve the present object, an accessory component of an electrical or electronic device comprising a microcontroller is proposed, which is designed to receive an inquiry message from the main component; run a test program; and send a reply message to the main component; wherein the response message has a test value determined by the test program; and the test value is dependent on a processing speed of the first test program by the microcontroller.
Die Erfindung wird nachfolgend anhand der Figuren dargestellt. Im Einzelnen zeigen dabei: The invention is illustrated below with reference to the figures. In detail, show:
Fig.l eine Ausführungsform eines elektrischen Geräts gemäß der vorliegen den Erfindung, Fig.l an embodiment of an electrical device according to the present invention,
Fig. 2 eine Ausführungsform des erfindungsgemäßen Verfahrens, 2 shows an embodiment of the method according to the invention,
Fig. 3 ein Ablaufdiagramm einer Ausführungsform des erfindungsgemäßen Verfahrens, 3 shows a flow chart of an embodiment of the method according to the invention,
Fig. 4 eine Darstellung des Verlaufs eines Zählerstandes in Abhängigkeit der ausgeführten Instruktionen, Fig. 5 eine Darstellung des Verlaufs eines Programmzustandes in Abhängigkeit der Taktzyklen, 4 shows a representation of the course of a counter reading as a function of the instructions executed, 5 shows a representation of the course of a program state as a function of the clock cycles,
Fig. 6 eine Antwortnachricht gemäß einer ersten Ausführungsform des erfin dungsgemäßen Verfahrens, 6 shows a response message according to a first embodiment of the method according to the invention,
Fig. 7 eine Antwortnachricht gemäß einer zweiten Ausführungsform des erfin dungsgemäßen Verfahrens, 7 shows a response message according to a second embodiment of the method according to the invention,
Fig. 8 eine Antwortnachricht gemäß einer dritten Ausführungsform des erfin dungsgemäßen Verfahrens, 8 shows a response message according to a third embodiment of the method according to the invention,
Fig. 9 eine Antwortnachricht gemäß einer vierten Ausführungsform des erfin dungsgemäßen Verfahrens, 9 shows a response message according to a fourth embodiment of the method according to the invention,
Fig. 10 ein Ablaufdiagramm für eine weitere Ausführungsform des erfindungs gemäßen Verfahrens und Fig. 10 is a flow chart for a further embodiment of the fiction, contemporary method and
Fig. 11 eine weitere Darstellung einer Ausführungsform des erfindungsgemäßen Verfahrens. 11 shows a further illustration of an embodiment of the method according to the invention.
In der Fig. 1 ist ein elektrisches Gerät 10 dargestellt, das durch das erfindungs gemäße Verfahren betrieben werden kann. Das Gerät 10 weist dabei eine Hauptkomponente 12 sowie eine Zubehörkomponente 14 auf. Das in der Fig. 1 dargestellte Gerät 10 ist als Bohrmaschine ausgeführt. Die Hauptkomponente 12 stellt dabei die Bohrmaschine als solche dar, während die Zubehörkompo nente 14 in dem gezeigten Ausführungsbeispiel als Akku ausgeführt ist. Wie bereits vorstehend erläutert, kann das Gerät gemäß der vorliegenden Erfindung beispielsweise auch als Drucker, Kaffeemaschine, E-Zigarette oder Smartphone ausgeführt sein. In Fig. 1, an electrical device 10 is shown, which can be operated by the fiction, contemporary method. The device 10 has a main component 12 and an accessory component 14. The device 10 shown in Fig. 1 is designed as a drill. The main component 12 represents the drill as such, while the accessories component 14 is designed as a battery in the embodiment shown. As already explained above, the device according to the present invention can also be designed, for example, as a printer, coffee machine, e-cigarette or smartphone.
In der Fig. 2 ist eine allgemeine Darstellung des erfindungsgemäßen Verfahrens abgebildet. Dabei sendet die Hauptkomponente 12 eine Anfragenachricht 16 an die Zubehörkomponente 14. Auf der Zubehörkomponente 14 wird anschließend ein Testprogramm ausgeführt, durch das ein Prüfwert ermittelt wird. Die Zube hörkomponente 14 übermittelt im Anschluss den ermittelten Prüfwert innerhalb einer Antwortnachricht 18 an die Hauptkomponente 12. Die Hauptkomponente 12 vergleicht den erhaltenen Prüferwert mit einem Referenzwert und aktiviert eine Funktion des Geräts 10, falls die beiden miteinander verglichenen Werte identisch sind. FIG. 2 shows a general illustration of the method according to the invention. The main component 12 sends a request message 16 the accessory component 14. A test program is then executed on the accessory component 14, by means of which a test value is determined. The accessory component 14 then transmits the determined test value within a response message 18 to the main component 12. The main component 12 compares the obtained test value with a reference value and activates a function of the device 10 if the two compared values are identical.
In der Fig. 3 ist ein detaillierter Ablaufplan umfassend die einzelnen Schritte des erfindungsgemäßen Verfahrens 100 dargestellt. Wie in dieser Figur zu erkennen ist, sendet die Hauptkomponente 10 in einem ersten Schritt 102 eine Anfra genachricht 16 an die Zubehörkomponente 14. In der Anfragenachricht 16 kann optional ein Testprogramm enthalten sein. Alternativ kann das Testprogramm aber auch auf einem Speicher der Zubehörkomponente 14 hinterlegt sein. In einem nächsten Schritt 104 wird das Testprogramm in einen Arbeitsspeicher der Zubehörkomponente geladen. Nachfolgend wird im nächsten Schritt 106 das Testprogramm auf der Zubehörkomponente 14 ausgeführt. Bei der Ausführung des Testprogramms wird ein Prüfwert ermittelt, der eine Abhängigkeit von einer Verarbeitungsgeschwindigkeit des ersten Testprogramms durch die Zubehör komponente 14 aufweist. Beispielsweise kann der Prüfwert einen Zählerstand oder Programmzustandsdaten enthalten, wie im Zusammenhang mit den nach folgenden Figuren ausgeführt wird. Anschließend wird im nächsten Schritt 108 eine Antwortnachricht von der Zubehörkomponente 14 an die Hauptkompo nente 12 übermittelt, wobei die Antwortnachricht den zuvor ermittelten Prüfwert enthält. Im nachfolgenden Schritt 110 empfängt die Hauptkomponente 12 die von der Zubehörkomponente 14 empfangene Antwortnachricht 18. Anschlie ßend wird im Schritt 112 der in der Antwortnachricht 18 enthaltene Prüfwert mit einem Referenzwert verglichen. Der Referenzwert kann dabei in einem Spei cherelement der Hauptkomponente gespeichert oder aber auf einem externen Speicher hinterlegt sein. Auch kann vorgesehen sein, dass mehrere Referenz werte in einer Datenbank hinterlegt sind und dass der Prüfwert mit mehreren Referenz werten verglichen wird. Anschließend wird im Schritt 114 eine Gerätefunktion aktiviert, falls der Prüfwert mit dem Referenzwert (oder einem der Referenzwerte) identisch ist. 3 shows a detailed flow chart comprising the individual steps of the method 100 according to the invention. As can be seen in this figure, in a first step 102 the main component 10 sends a request message 16 to the accessory component 14. The request message 16 can optionally contain a test program. Alternatively, the test program can also be stored in a memory of the accessory component 14. In a next step 104, the test program is loaded into a main memory of the accessory component. The test program is then executed on the accessory component 14 in the next step 106. When the test program is executed, a test value is determined which is dependent on a processing speed of the first test program by the accessory component 14. For example, the test value can contain a counter reading or program status data, as explained in connection with the following figures. Subsequently, in the next step 108, a response message is transmitted from the accessory component 14 to the main component 12, the response message containing the previously determined test value. In the subsequent step 110, the main component 12 receives the response message 18 received from the accessory component 14. Subsequently, in step 112, the test value contained in the response message 18 is compared with a reference value. The reference value can be stored in a storage element of the main component or it can be stored in an external memory. It can also be provided that several reference values are stored in a database and that the test value is compared with several reference values. Then in step 114 a Device function activated if the test value is identical to the reference value (or one of the reference values).
In der Fig. 4 ist ein beispielhafter Verlauf eines Zählerstandes in Abhängigkeit von den ausgeführten Instruktionen dargestellt. Dabei ist zu erkennen, dass nach Ausführung von m Instruktionen der Zählerstand Zi beträgt, nach Ausfüh rung von r2 Instruktionen der Zählerstand Z2 beträgt, nach Ausführung von n3 Instruktonen der Zählerstand Z3 beträgt und nach Ausführung von n4 Instrukti onen der Zählerstand Z4 beträgt sowie nach Ausführung von n Instruktionen der Zählerstand Z beträgt. Zur eindeutigen Identifizierung einer Zubehörkompo nente kann beispielsweise nach , n2, P3, n4 und n Instruktionen der jeweilige Zählerstand (beispielsweise der Zählerstand eines CPU-Clocks) ausgelesen wer den, so dass die ausgelesenen Zählerstände an die Hauptkomponente 12 über mittelt und mit entsprechenden Refe re n zweiten verglichen werden. Dadurch kann die Hauptkomponente 12 erkennen, ob die Verarbeitungsgeschwindigkeit der überprüften Zubehörkomponente 14 mit der Verarbeitungsgeschwindigkeit einer Original-Zubehörkomponente übereinstimmt oder von dieser abweicht. Stimmen die Verarbeitungsgeschwindigkeiten bzw. die Zählerstandswerte über ein, so kann die Hauptkomponente 12 daraus schließen, dass es sich bei der überprüften Zubehörkomponente 14 um ein Original handelt. Alternativ zu der in der Fig. 4 gezeigten Ausführungsform kann auch vorgesehen sein, dass le diglich ein Zählerstandswert an die Hauptkomponente 12 übermittelt wird und dass dieser Zählerstandswert mit einem Referenzwert verglichen wird. Ebenso kann vorgesehen sein, dass zehn oder 100 Zählerstandswerte ausgelesen und diese an die Hauptkomponente übermittelt werden. Im Allgemeinen kann davon ausgegangen werden, dass die Zuverlässigkeit der Authentifizierung der Zube hörkomponente 14 weiter zunimmt, je häufiger der Zählerstand ausgelesen wird und je mehr Zählerstandswerte an die Hauptkomponente 12 übermittelt wer den. FIG. 4 shows an exemplary course of a counter reading as a function of the instructions that have been executed. It can be seen that after execution of m instruction, the count is Zi, on type of equipment of r2 instructions of the counter reading Z2 is, is after execution of n 3 Instruktonen the counter state Z3 and after execution of n 4 Instrukti the count ones Z 4 is as well as after execution of n instructions the counter reading Z is. For unambiguous identification of an accessory component, the respective counter reading (for example, the counter reading of a CPU clock) can be read out after, n2, P 3 , n 4 and n instructions, so that the read counter readings are transmitted to the main component 12 and with the corresponding Referees n second to be compared. As a result, the main component 12 can recognize whether the processing speed of the checked accessory component 14 corresponds to or deviates from the processing speed of an original accessory component. If the processing speeds or the counter reading values are above the same, the main component 12 can conclude therefrom that the checked accessory component 14 is an original. As an alternative to the embodiment shown in FIG. 4, it can also be provided that only one counter reading is transmitted to the main component 12 and that this counter reading is compared with a reference value. It can also be provided that ten or 100 counter reading values are read out and these are transmitted to the main component. In general, it can be assumed that the reliability of the authentication of the accessory component 14 increases the more frequently the counter reading is read out and the more counter reading values are transmitted to the main component 12.
In der Fig. 5 ist ein beispielhafter Verlauf von Programmzustandsdaten in Ab hängigkeit der Taktzyklen gezeigt. Bei den Programmzustandsdaten kann es sich beispielsweise um den prozentualen Anteil der ausgeführten Instruktionen im Verhältnis zu der Gesamtanzahl der Instruktionen handeln. Beispielsweise können nach ml Taktzyklen 20% der gesamten Instruktionen ausgeführt sein, während nach m2 Taktzyklen 38% der gesamten Instruktionen ausgeführt sind, nach m3 Taktzyklen 62,5% der Instruktionen ausgeführt sind, nach m4 Taktzyklen 79% der Instruktionen ausgeführt sind und nach m Taktzyklen 100% der Instruktionen ausgeführt sind. Auf diese Weise können nach einer fest vor gegebenen Anzahl an Taktzyklen die Programmzustandsdaten ausgelesen und anschließend an die Hauptkomponente 12 übermittelt werden. Die Programm zustandsdaten stellen (genauso wie die Zählerstandswerte) ein individuelles Un terscheidungsmerkmal eines spezifischen Mikrocontrollers dar, das eine eindeu tige Identifizierung der Zubehörkomponente 14 ermöglicht. In FIG. 5, an exemplary course of program status data is shown as a function of the clock cycles. The program status data can be, for example, the percentage of the instructions executed act in proportion to the total number of instructions. For example, after ml clock cycles, 20% of the total instructions can be executed, while after m2 clock cycles 38% of the total instructions are executed, after m3 clock cycles 62.5% of the instructions are executed, after m4 clock cycles 79% of the instructions are executed and after m clock cycles 100% of the instructions have been carried out. In this way, after a fixed number of clock cycles, the program status data can be read out and then transmitted to the main component 12. The program status data (just like the counter values) represent an individual distinguishing feature of a specific microcontroller, which enables the accessory component 14 to be clearly identified.
In der Fig. 6 ist ein erstes Ausführungsbeispiel einer Antwortnachricht 18 gemäß einem ersten Ausführungsbeispiel des erfindungsgemäßen Verfahrens darge stellt. Die Antwortnachricht 18 weist gemäß diesem Ausführungsbeispiel vier Zählerstandswerte 20a, 20b, 20c, 20d auf, die nach , n , n3 und n4 Instrukti onen ausgelesen wurden. Nach Instruktionen beträgt in dem in der Fig. 6 dargestellten Ausführungsbeispiel der Zählerstand Zi = 1.827, während nach Ausführung von n2 Instruktionen der Zählerstand Z2 = 3.416 beträgt, nach Aus führung von n3 Instruktionen der Zählerstand Z3 = 6.138 und nach Ausführung von n4 Instruktionen der Zählerstand Z4 = 7.947 beträgt. Die vier Zählerstands werte 20a, 20b, 20c, 20d bilden gemeinsam die Zählerstandsdaten 22 und kön nen als Plain Text in der Antwortnachricht 18 enthalten sein. Alternativ hierzu können die Zählerstandsdaten 22 auch in Form eines einzelnen Zahlenwertes übermittelt werden, der aus den Zählerstandswerten 20a, 20b, 20c, 20d be rechnet wird. Sofern die Zählerstandswerte 20a, 20b, 20c, 20d als Plain Text an die Hauptkomponente 12 übermittelt werden, kann die Hauptkomponente 12 die empfangenen vier Werte entsprechend mit vier Referenz werten vergleichen, um zu erkennen, ob es sich bei der überprüften Zubehörkomponente 14 um ein Original handelt. Alternativ hierzu ist es auch möglich, dass die Zählerstands werte 20a, 20b, 20c, 20d nicht als Einzelwerte an die Hauptkomponente 12 übermittelt werden, sondern dass beispielsweise die Quersumme aller Zählerstandswerte 20a, 20b, 20c, 20d oder ein Hashwert aus dem Produkt der Einzelwerte ermittelt wird. 6 shows a first exemplary embodiment of a response message 18 according to a first exemplary embodiment of the method according to the invention. According to this exemplary embodiment, the response message 18 has four counter values 20a, 20b, 20c, 20d which were read out according to n, n 3 and n 4 instructions. According to instructions, the counter reading Zi = 1,827 in the embodiment shown in FIG. 6, while after executing n 2 instructions the counter reading Z 2 = 3,416, after executing n 3 instructions the counter reading Z 3 = 6,138 and after executing n 4 instructions the counter reading Z 4 = 7,947. The four counter reading values 20a, 20b, 20c, 20d together form the counter reading data 22 and can be contained in the response message 18 as plain text. As an alternative to this, the counter reading data 22 can also be transmitted in the form of a single numerical value which is calculated from the counter reading values 20a, 20b, 20c, 20d. If the counter values 20a, 20b, 20c, 20d are transmitted as plain text to the main component 12, the main component 12 can compare the received four values with four reference values in order to identify whether the checked accessory component 14 is an original acts. As an alternative to this, it is also possible that the counter reading values 20a, 20b, 20c, 20d are not transmitted to the main component 12 as individual values, but rather that, for example, the sum total of all Counter reading values 20a, 20b, 20c, 20d or a hash value from the product of the individual values is determined.
In der Fig. 7 ist eine Antwortnachricht 18 gemäß einer zweiten Ausführungsform des erfindungsgemäßen Verfahrens dargestellt, wobei die Antwortnachricht 18 sowohl Zählerstandsdaten 22 als auch eine Geräte-ID 24 enthält. Die Zähler standsdaten 22 können, wie vorstehend beschrieben, einen einzelnen Zähler standswert, mehrere Zählerstandswerte oder einen Wert, der aus mehreren Zählerstandswerten ermittelt ist, enthalten. Bei der Geräte-ID 24 kann es sich beispielsweise um eine zwanzigstellige ID handeln, von denen z. B. die ersten fünf Stellen eine Gruppe von Mikrocontrollern und die letzten 15 Stellen den individuellen Mikrocontroller beschreiben. Die Geräte-ID 24 kann insbesondere auf einem ROM der Zubehörkomponente 14 hinterlegt sein und bei der Ausfüh rung des Testprogramms ausgelesen werden. 7 shows a response message 18 according to a second embodiment of the method according to the invention, the response message 18 containing both meter reading data 22 and a device ID 24. As described above, the counter reading data 22 can contain a single counter reading value, a plurality of counter reading values or a value which is determined from a plurality of counter reading values. The device ID 24 can be, for example, a twenty-digit ID, of which z. B. the first five digits describe a group of microcontrollers and the last 15 digits the individual microcontroller. The device ID 24 can in particular be stored on a ROM of the accessory component 14 and read out when the test program is executed.
In der Fig. 8 ist eine Antwortnachricht 18 gemäß einer dritten Ausführungsform des erfindungsgemäßen Verfahrens abgebildet. Bei der dargestellten Ausfüh rungsform enthält die Antwortnachricht 18 einen Hashwert 26, der aus den Zäh lerstandsdaten 22 und der Geräte-ID 24 berechnet wird. Die Verwendung einer Hashfunktion hat den Vorteil, dass geringfügige Abweichungen der Zähler standsdaten 22 oder der Geräte-ID 24 zu einer signifikanten Abweichung des Hashwertes 26 führen, so dass die Hauptkomponente 12 leichter erkennen kann, dass die bei Ausführung des Testprogramms ermittelten Werte von den Werten abweichen, die im Falle einer original Zubehörkomponente zu erwarten wären. Ein weiterer Vorteil der Verwendung der Hashfunktion ist, dass immer ein Prüfwert mit einer konstanten Länge übertragen wird. Dies ist insbesondere dann vorteilhaft, wenn bei Ausführung des Testprogramms zahlreiche Zähler standswerte ermittelt werden und diese Werte bei der Authentifizierung der Zu behörkomponente 14 genutzt werden sollen. In diesem Fall kann beispielsweise die von der Zubehörkomponente 14 an die Hauptkomponente 12 übermittelte Datenmenge durch die Verwendung der Hashfunktion und die Übermittlung des Hashwertes 26 signifikant reduziert werden. In der Fig. 9 ist eine Antwortnachricht 18 gemäß einer vierten Ausführungsform des erfindungsgemäßen Verfahrens dargestellt. Bei dieser Ausführungsform enthält die Antwortnachricht 18 einen Hashwert 26, der aus den Zählerstands daten 22, der Geräte-ID 24 und einem Programmcode 28 ermittelt wird. Bei dem Programmcode 28 kann es sich beispielsweise um den Binärcode des Test programms handeln. Der Hashwert 26 kann beispielsweise aus einer Aneinan derreihung der Zählerstandsdaten 22, der Geräte-ID 24 und des Programm codes 28 berechnet werden. Alternativ kann beispielsweise auch vorgesehen sein, dass die Zählerstandsdaten 22, die Geräte-ID 24 und der Programmcode 28 zunächst miteinander addiert oder multipliziert werden und anschließend aus der Summe bzw. dem Produkt der genannten Eingangsgrößen der Hashwert 26 berechnet wird. Bei der verwendeten Hashfunktion kann es sich beispielsweise um einen SHA-Algorithmus (Secure Hash Algorithm) handeln. Die in der Fig. 9 gezeigte Ausführungsform kann als besonders vorteilhaft angesehen werden, da eine Manipulation der Zählerstandsdaten 22, der Geräte-ID 24 oder des Pro grammcodes 28 zu einer signifikanten Änderung des Hashwertes 26 führt, wodurch seitens der Hauptkomponente 12 unmittelbar erkannt werden kann, ob es sich bei der Zubehörkomponente 14 um ein Original oder eine Nachah mung handelt. 8 shows a response message 18 according to a third embodiment of the method according to the invention. In the embodiment shown, the response message 18 contains a hash value 26 which is calculated from the counter reading data 22 and the device ID 24. The use of a hash function has the advantage that slight deviations in the meter reading data 22 or the device ID 24 lead to a significant deviation in the hash value 26, so that the main component 12 can more easily recognize that the values determined when the test program was executed are different from the values that would be expected in the case of an original accessory component. Another advantage of using the hash function is that a check value with a constant length is always transmitted. This is particularly advantageous if numerous counter values are determined when the test program is executed and these values are to be used for the authentication of the accessory component 14. In this case, for example, the amount of data transmitted from the accessory component 14 to the main component 12 can be significantly reduced through the use of the hash function and the transmission of the hash value 26. 9 shows a response message 18 according to a fourth embodiment of the method according to the invention. In this embodiment, the response message 18 contains a hash value 26 which is determined from the counter reading data 22, the device ID 24 and a program code 28. The program code 28 can be, for example, the binary code of the test program. The hash value 26 can be calculated, for example, from a series of the counter reading data 22, the device ID 24 and the program code 28. Alternatively, it can also be provided, for example, that the counter reading data 22, the device ID 24 and the program code 28 are first added or multiplied with one another and then the hash value 26 is calculated from the sum or the product of the input variables mentioned. The hash function used can be, for example, an SHA algorithm (Secure Hash Algorithm). The embodiment shown in FIG. 9 can be viewed as particularly advantageous, since a manipulation of the counter reading data 22, the device ID 24 or the program code 28 leads to a significant change in the hash value 26, which can be recognized directly by the main component 12 whether the accessory component 14 is an original or an imitation.
In den Fign. 10 und 11 sind weitere Darstellungen des erfindungsgemäßen Ver fahrens abgebildet, auf die nachfolgend noch im Zusammenhang mit der alter nativen Beschreibung der Erfindung eingegangen wird. In FIGS. 10 and 11 show further representations of the method according to the invention, which will be discussed below in connection with the alternative description of the invention.
BEZUGSZEICHENLISTE Gerät Hauptkomponente Zubehörkomponente Anfragenachricht Antwortnachricht a erster Zählerstandswert b zweiter Zählerstandswert c dritter Zählerstandswert d vierter Zählerstandswert Zählerstandsdaten Geräte-ID Hashwert Programmcode 0 ein Ausführungsbeispiel des erfindungsgemäßen Verfahrens zum Betreiben eines elektrischen Geräts 2 bis 114 REFERENCE CHARACTERISTICS device main component accessory component request message response message a first meter reading b second meter reading c third meter reading d fourth meter reading meter reading data device ID hash value program code 0 an exemplary embodiment of the method according to the invention for operating an electrical device 2 to 114
Schritte des erfindungsgemäßen Verfahrens Steps of the method according to the invention
Zur weiteren Veranschaulichung der vorliegenden Erfindung wird diese nachfol gend anhand einer alternativen Beschreibung weiterer, optionaler Aspekte der Erfindung dargestellt. In order to further illustrate the present invention, it is presented in the following on the basis of an alternative description of further, optional aspects of the invention.
Hintergrund background
Die Erfindung betrifft Paare aus einem Hostsystem, z.B. einer Bohrmaschine, einer elektronischen Zigarette oder einem Drucker und einem austauschbarem Gerät, z.B einem Akku, einer Kartusche oder einer Tintenpatrone. Sie eignet sich für Hersteller, die verhindern möchten, dass nicht-authentische Geräte mit authentischen Hostsystemen zum Einsatz kommen. Sie beschreibt ein Verfah ren, mit welchem der Geräte-Controller gegenüber dem Hostsystem über eine geeignete Datenschnittstelle und ein geeignetes Protokoll Authentisierungs- merkmale nachweist. The invention relates to pairs of a host system, e.g., a drill, an electronic cigarette or printer, and an interchangeable device, e.g., a rechargeable battery, a cartridge or an ink cartridge. It is suitable for manufacturers who want to prevent non-authentic devices from being used with authentic host systems. It describes a method with which the device controller verifies authentication features to the host system via a suitable data interface and a suitable protocol.
Stand der Technik State of the art
Authentifizierungsverfahren nach dem Stand der Technik nutzen beispielsweise die Kenntnis eines geheimen Schlüssels als Authentisierungsmerkmal. Die Kenntnis des geheimen Schlüssels ist über ein geeignetes kryptographisches Protokoll nachzuweisen. Der gravierende Nachteil kryptographischer Lösungen für den genannten Einsatzbereich ist, dass die einmalige Kompromittierung ei nes geheimen Schlüssels ausreicht, um beliebig viele Geräte-Plagiate zu produ zieren. Ein nachweislich wirksamer Schutz gegen hohes Angriffspotential wird nur durch zertifizierte kryptographische Harware ab "Evaluation Assurance Le vel" EAL4+ erreicht, welche zu erheblichen Zusatz-Stückkosten führt. Prior art authentication methods use knowledge of a secret key as an authentication feature, for example. Knowledge of the secret key must be proven using a suitable cryptographic protocol. The serious disadvantage of cryptographic solutions for the aforementioned area of application is that the one-time compromise of a secret key is sufficient to produce any number of counterfeit devices. A demonstrably effective protection against high attack potential is only achieved with certified cryptographic hardware from "Evaluation Assurance Level" EAL4 +, which leads to considerable additional unit costs.
Fallback-Maßnahmen, wie der Widerruf von Zertifikaten für kompromittierte, geheime Schlüssel, gibt es für den genannten Einsatzbereich nicht, da die Host- systeme im Feld keine Verbindung mit entsprechenden Servern aufbauen. Ein weiterer Nachteil sind Zusatzkosten, bedingt durch den erforderlichen Schutz der geheimen Schlüssel außerhalb der Hostsysteme und die mit der Schlüssel verwaltung zusammenhängende Logistik. Die vorliegende Erfindung erfordert im Vergleich zum Geräte-Paar ohne Authen- tifizierung sehr geringe Zusatz-Stückkosten. Fallback measures, such as the revocation of certificates for compromised, secret keys, do not exist for the area of application mentioned, since the host systems in the field do not establish a connection with the corresponding servers. Another disadvantage is the additional costs due to the need to protect the secret key outside of the host system and the logistics associated with key management. Compared to the pair of devices without authentication, the present invention requires very low additional unit costs.
Aufwand expense
Das offen gelegte Authentifizierungsverfahren erfordert ca. 1 kB zusätzlichen Flash-Speicher auf Host-Seite und 2-3 kB auf Geräte-Seite. Je Anwendung ist eine Datenübertragung von 200 - 250 Bits als Stimulus vom Hostsystem an das Gerät und von 64 - 128 Bits als Response erforderlich. Die erforderliche Rechen zeit ist vergleichbar mit der Rechenzeit eines kryptographischen Software- Hashs für die Verarbeitung eines Input-Blocks und deutlich geringer als die Re chenzeit für ein asymmetrisches, kryptographisches Signaturverfahren. The disclosed authentication method requires approx. 1 kB additional flash memory on the host side and 2-3 kB on the device side. For each application, data transmission of 200 - 250 bits is required as a stimulus from the host system to the device and 64 - 128 bits as a response. The computation time required is comparable to the computation time of a cryptographic software hash for processing an input block and significantly less than the computation time for an asymmetrical, cryptographic signature process.
Aufgabenstellung Task
Die Aufgabenstellung besteht zuerst darin, charakteristische Hardware-Merk male für die Produkt-Ausführung des Geräte-Controllers zu identifizieren, wel che sich für die Überprüfung durch das Hostsystem eignen, und schließlich ein Prüfverfahren für diese Hardware-Merkmale in Kombination mit der Hersteller- ID darzustellen, welches schwer zu überlisten ist. The task is first to identify characteristic hardware features for the product version of the device controller, which are suitable for checking by the host system, and finally a test method for these hardware features in combination with the manufacturer ID to represent which is difficult to outsmart.
Hardware- Merkmale Hardware characteristics
Ein "Test" oder "Stimulus-Response-Test (SRT)" ist eine spezifizierte Abfolge, nach welcher die Testumgebung an der Schnittstelle zwischen Testumgebung und Testobjekt Stimuli anlegt und Responses misst. Zur Test-Spezifikation ge hören die Stimulus-Daten, insbesondere die Abhängigkeit von Stimulus-Daten von gemessenen Responses, und das Stimulus-Timing. Ist ein Test wiederhol bar, d.h. liefert ein Testobjekt bei Test-Wiederholung stets die gleichen Respon ses, dann kann man das Quadrupel (Testumgebung, Test, Stimuli, Responses) als "Merkmal" des Testobjekts betrachten. Die "Prüfung" eines Merkmals be steht aus einem Test und anschließendem Vergleich der Responses mit Refe renz werten. Im Folgenden wird zwischen "isolierten", "internen" und "externen" Tests ge wisser Hardware-Merkmale des Geräte-Controllers unterschieden, abhängig von unterschiedlichen Test-Umgebungen. A “test” or “stimulus response test (SRT)” is a specified sequence according to which the test environment applies stimuli to the interface between test environment and test object and measures responses. The test specification includes the stimulus data, in particular the dependency of stimulus data on measured responses, and the stimulus timing. If a test can be repeated, ie if a test object always delivers the same responses when the test is repeated, then the quadruple (test environment, test, stimuli, responses) can be regarded as a "feature" of the test object. The "check" of a feature consists of a test and a subsequent comparison of the responses with reference values. In the following, a distinction is made between "isolated", "internal" and "external" tests of certain hardware features of the device controller, depending on different test environments.
"Isolierte" Tests dienen der Überprüfung von spezifizierten Merkmalen einzelner Hardware-Blöcke, wie ALU, Speicherbausteine, Peripherie-Bausteine. Sie finden in einem spezialisierten Labor des Chip-Herstellers mit spezialisierten Testsys temen und Probing-Punkten als Test-Schnittstelle statt. Isolierte Hardware- Merkmale finden sich im Produkt-spezifischen Referenz-Manual wieder. Abhängig vom Debug-System des Geräte-Controllers sind einige isolierte Tests auch von Seiten des Hostsystems möglich, sofern es an die Debug-Schnittstelle des Geräte-Controllers angeschlossen ist. "Isolated" tests are used to check specified features of individual hardware blocks, such as ALU, memory modules, peripheral modules. They take place in a specialized laboratory of the chip manufacturer with specialized test systems and probing points as a test interface. Isolated hardware features can be found in the product-specific reference manual. Depending on the debug system of the device controller, some isolated tests are also possible on the part of the host system, provided that it is connected to the debug interface of the device controller.
Isolierte Tests von ALU, Speicher- und Peripherie-Bausteinen lassen sich in "in terne" Tests übersetzen, bei welchen die CPU die Funktion des Testsystems übernimmt. Beim internen Test geschieht das Senden der Stimuli über Schreib- Zugriffe mittels STORE-Instruktionen, das Empfangen der Responses über Lese- Zugriffe mittels LOAD-Instruktionen. Der dabei von der CPU ausgeführte In struktions-Code gehört beim internen Test zur Test-Spezifikation. Bei dieser Übersetzung ist zu beachten, dass die "internen Responses" nicht immer mit den von isolierten Tests bekannten Responses übereinstimmen. Dies liegt vor allem an der Überschneidung zwischen "internem Testsystem" und Testobjekt. Isolated tests of ALU, memory and peripheral modules can be translated into "internal" tests, in which the CPU takes over the function of the test system. In the internal test, the stimuli are sent via write access using STORE instructions, and the responses are received via read access using LOAD instructions. The instruction code executed by the CPU is part of the test specification for the internal test. With this translation it should be noted that the "internal responses" do not always match the responses known from isolated tests. This is mainly due to the overlap between the "internal test system" and the test object.
Beim "externen" Test fungieren an externe Schnittstellen des Geräte-Controllers angeschlossene Geräte als Testsystem. Das initiale Programmieren des Geräte- Controllers gehört zur vollständigen Test-Spezifikation. Testobjekt ist beim ex ternen Test die Hardware des Geräte-Controllers inklusive ROM-Inhalt, ggf. zu sammen mit externer Verdrahtung und Peripherie. In the "external" test, devices connected to external interfaces of the device controller act as a test system. The initial programming of the device controller is part of the complete test specification. The test object for the external test is the hardware of the device controller including ROM content, possibly together with external wiring and peripherals.
Ein externer Test kann viele interne Tests beinhalten. Implizit werden durch externe Tests immer einige interne Merkmale von Prozessor-Core, Speicher und Peripherie mit getestet, weil der Testcode durch den Prozessor-Core ausgeführt wird, Instruktionen von der Pipeline aus dem Speicher geholt werden, und die Kommunikation die Peripherie benutzt. An external test can contain many internal tests. Some internal features of the processor core, memory and peripherals are always implicitly tested by external tests because the test code is executed by the processor core instructions are fetched from memory by the pipeline, and the communication uses the peripherals.
Die Authentifizierung entsprechend der offen gelegten Erfindung geschieht durch externe Prüfung, wobei das Hostsystem das Prüfsystem darstellt. Jedes Hostsystem prüft mindestens ein externes Merkmal, welches die Prüfung vieler interner Merkmale spezieller Hardware-Bausteine sowie die Prüfung der Her- steller-ID beinhaltet. Die genannten internen Merkmale sind Übersetzungen iso lierter Hardware-Merkmale, welche zusammengenommen die funktionale Pro dukt-Ausführung des eingesetzten Geräte-Controllers charakterisieren. The authentication according to the disclosed invention takes place through external testing, the host system being the testing system. Each host system checks at least one external characteristic, which includes the examination of many internal characteristics of special hardware modules as well as the verification of the manufacturer ID. The internal features mentioned are translations of isolated hardware features which, taken together, characterize the functional product design of the device controller used.
Ein Host-spezifisches, externes Merkmal eines authentischen Geräte-Controllers eignet sich dann für das offen gelegte Authentifizierungsverfahren, wenn jeder Controller einer anderen Ausführung und jeder Controller der gleichen Ausfüh rung aber unterschiedlicher Hersteller-ID durch die externe Prüfung fällt. Das setzt voraus, dass das Merkmal schwer zu simulieren ist. Der Test-Code des Geräte-Controllers muss die Prüfung interner Merkmale in schwer zu simulie render Form beinhalten. Zur Anschauung werden im Folgenden einige Hard ware-Merkmale benannt und jeweils ein geeigneter Stimulus-Response-Test mit Simulations-Gegenmaßnahmen beschrieben. A host-specific, external feature of an authentic device controller is suitable for the disclosed authentication method if every controller of a different version and every controller of the same version but different manufacturer ID fails the external check. This assumes that the feature is difficult to simulate. The test code of the device controller must include the examination of internal features in a form that is difficult to simulate. To illustrate this, some hardware features are named below and a suitable stimulus-response test with simulation countermeasures is described in each case.
Instruction Set / Hardware-Fault-Exception: Ein externer Test beginnt beim Ein bringen einer Test-Applikation beim Hersteller. Bei der Prüfung eines Hardware- Merkmals im Feld wird dieser Schritt stets vorausgesetzt. Das Hostsystem sen det als Stimulus Code und zu verarbeitende Daten an den Geräte-Controller, dessen Authentisierungs-Applikation Code und Daten lädt und ausführt, siehe Fig. 11. Die Ausführung beinhaltet das Senden einer Response an das Hostsys tem. Alternativ beinhaltet die Testumgebung Geräte-seitig ein Debug-System, über welches der Geräte-Controller vom Gast angesteuert wird. Das Hostsystem vergleicht die Response und ggf. den Zeitverzug zwischen Stimulus und Response mit Referenz werten. Dabei wird unter anderem das Hardware-Merk mal geprüft, ob das Instruction-Set des Geräte-Controllers den gesendeten Code abdeckt. Die Behandlung von Ausführungsfehlern hängt vom Hardware- Merkmal ab, ob der Geräte-Controller Hardware-Fault-Exceptions unterstützt. Abhängig vom Test-Code werden weitere zusätzliche, interne Hardware-Merk male geprüft. Instruction Set / Hardware Fault Exception: An external test begins when a test application is brought into the manufacturer. This step is always a prerequisite for checking a hardware feature in the field. The host system sends code and data to be processed as stimulus to the device controller, whose authentication application loads and executes code and data, see FIG. 11. The execution includes the sending of a response to the host system. Alternatively, the test environment includes a debug system on the device side, via which the device controller is controlled by the guest. The host system compares the response and, if necessary, the time delay between stimulus and response with reference values. Among other things, the hardware feature is checked to determine whether the instruction set of the device controller covers the code sent. The handling of execution errors depends on the hardware Characteristic whether the device controller supports hardware fault exceptions. Depending on the test code, additional, internal hardware features are checked.
CPU Wartezykel und Hazards: In einer Erweiterung der zuerst genannten Test klasse beinhaltet der Code vielfach die Abfrage von Timer-Werten. Günstiger Weise werden alle Timer des Geräte-Controllers im Test-Code unterschiedlich konfiguriert, mehrfach pseudo-zufällig rekonfiguriert und vielfach abgefragt. Die Timer-Werte sind, entweder direkt oder über eine Hash-Funktion zusammenge fasst, Bestandteil der Response. CPU waiting cycles and hazards: In an extension of the first-mentioned test class, the code often includes the query of timer values. Conveniently, all timers of the device controller are configured differently in the test code, repeatedly reconfigured pseudo-randomly and queried multiple times. The timer values are part of the response, either directly or summarized via a hash function.
Memory: In einer Erweiterung der zuletzt genannten Testklasse beinhaltet der Code zusätzlich Zugriffe auf Speicheradressen. Schreib-und Lese-Zugriffe wer den kombiniert, um beispielsweise die Grenzen von ROM und RAM auszuloten. Durch einen geeignet implementierten Hardware-Fault-Exception-Handler wird erkannt, wenn schreibend auf ROM und schreibend oder lesend auf Undefinierte Adressen zugegriffen wird. Memory: In an extension of the last-mentioned test class, the code also includes access to memory addresses. Read and write accesses are combined, for example to explore the limits of ROM and RAM. A suitably implemented hardware fault exception handler is used to detect when there is write access to ROM and write or read access to undefined addresses.
Peripherie: In einer Erweiterung der zuletzt genannten Testklasse beinhaltet der Code zusätzlich Zugriffe auf Peripherie-Register. In einem Beispiel sei ein als Output konfigurierter Pin 0 eines GPIO-Ports A mit einem als Input konfigurier ten Pin 1 eines GPIO-Ports B direkt auf der Gerät-Platine verdrahtet. Der Geräte- Controller verfüge über einen DMA-Controller, welcher es bei geeigneter Konfi guration erlaube, den Port B-Input ohne Zutun der CPU an einen RAM- Speicherbereich C umzuleiten. Der Test-Code sei um interne Tests angereichert, welche aus Schreibzugriffen auf Port A, Lesezugriffen auf Port B, sowie Schreib und Lesezugriffen auf C bestehen. Eine Simulation muss dann nicht nur die Pe ripherie-Funktionen berücksichtigen, sondern auch alle CPU-Wartezykel, welche durch BUS-Zugriffe des DMA-Controllers verursacht werden. Eine solche Einbin dung von Peripherie erschwert die Simulation im Vergleich zur vorher genann ten Testklasse zusätzlich. Interrupts: In einer Erweiterung der zuletzt genannten Testklasse beinhaltet der Code zusätzlich eine geeignete Interrupt-Konfiguration sowie Interrupt-Service- Routinen für die beteiligten Peripherie-Bestandteile, z.B. Timer-Overflow-Inter- rupts und Port-B-Pinl-Toggle-Interrupt. In einer günstigen Ausführung wird durch die Interrupt-Service-Routinen der Test-Code verändert, z.B. durch Aus tausch von Zeilen in der Implementierung einer Hash-Funktion. Allgemein wird durch die Interrupts das Timing bei der Ausführung des Test-Codes Hardware gesteuert, was eine Simulation zusätzlich erschwert. Periphery: In an extension of the last-mentioned test class, the code also includes access to peripheral registers. In one example, a pin 0 of a GPIO port A configured as an output is wired directly to a pin 1 of a GPIO port B configured as an input on the device board. The device controller has a DMA controller which, if configured appropriately, allows port B input to be redirected to a RAM memory area C without the CPU having to do anything. The test code is enriched with internal tests, which consist of write access to port A, read access to port B, and write and read access to port C. A simulation then not only has to take into account the peripheral functions, but also all CPU waiting cycles which are caused by BUS accesses by the DMA controller. Such an integration of peripherals makes the simulation even more difficult compared to the previously mentioned test class. Interrupts: In an extension of the last-mentioned test class, the code also contains a suitable interrupt configuration and interrupt service routines for the peripheral components involved, eg timer overflow interrupts and port B pinl toggle interrupt. In a favorable embodiment, the test code is changed by the interrupt service routines, for example by exchanging lines in the implementation of a hash function. In general, the interrupts control the timing of the execution of the test code hardware, which makes simulation even more difficult.
Charakteristische Hardware-Merkmale: Jeder Controller hat funktionale Eigen schaften, welche die funktionale Produkt-Ausführung des Controller-Produkts in ihrer Summe charakterisieren. Sie lassen sich durch Vergleich mit ähnlichen Produkten anhand folgender Fragen identifizieren: Welche Prozessor-Architek tur und welche Variante des Instruction-Sets werden genutzt? Welche Speicher stehen in welcher Größe zur Verfügung, und wie werden diese adressiert? Wel che Peripherie-Bausteine sind vorhanden, und wie werden diese adressiert? Welche Konfigurations-Möglichkeiten gibt es dafür, und welche Abhängigkeiten bestehen zwischen Peripherie-Bausteinen? Die identifizierten, charakteristi schen Eigenschaften lassen sich in isolierte Merkmale übersetzen. Characteristic hardware features: Every controller has functional properties that characterize the functional product design of the controller product as a whole. They can be identified by comparing them with similar products based on the following questions: Which processor architecture and which variant of the instruction set are used? Which memories are available in which size, and how are they addressed? Which peripheral modules are available and how are they addressed? What configuration options are there for this, and what are the dependencies between peripheral modules? The identified, characteristic properties can be translated into isolated features.
In einer Erweiterung der zuletzt genannten Testklasse beinhaltet der Code zu sätzlich einen internen Test zu jedem Merkmal aus einer Liste isolierter Hard ware-Merkmale, welche zusammen genommen die funktionale Produkt-Ausfüh rung des Geräte-Controllers charakterisieren. Dadurch erhält man einen exter nen Test für die Geräte-Controller-Ausführung, welcher nur schwer durch eine simulierte Hardware zu bestehen ist. In an extension of the last-mentioned test class, the code also contains an internal test for each feature from a list of isolated hardware features which, taken together, characterize the functional product execution of the device controller. This gives an external test for the device controller execution, which is difficult to pass with simulated hardware.
Hersteller-ID: In einer Erweiterung der zuletzt genannten Testklasse beinhaltet der Code zusätzlich Abfragen der Hersteller-ID. Um die Simulation zu erschwe ren, muss der Testcode erstens eine indirekte Adressierung nutzen, damit Zu griffe auf die Hersteller-ID nicht direkt am Code zu erkennen sind, bzw. durch Code-Manipulation umgeleitet werden können und zweitens die internen Responses in die Hash-Berechnung einbeziehen. Dadurch erhält man eine Klasse externer Tests für die Geräte-Controller-Ausführung und die Hersteller- ID, welche nur schwer durch eine simulierte Hardware zu bestehen sind. Manufacturer ID: In an extension of the last-mentioned test class, the code also includes queries for the manufacturer ID. To make the simulation more difficult, the test code must firstly use indirect addressing so that access to the manufacturer ID cannot be recognized directly from the code or can be redirected through code manipulation, and secondly, the internal responses are entered into the hash code. Include calculation. This gives you a Class of external tests for the device controller execution and the manufacturer ID, which are difficult to pass with simulated hardware.
Hostsvstem-individueller Test Hostsvstem-individual test
In den vorgehenden Abschnitten wurde eine Klasse von Tests beschrieben, wel che sich für die Überprüfung der authentischen Geräte-Controller-Hardware in Kombination mit der Überprüfung der Hersteller-ID durch das Hostsystem eig net. In the previous sections, a class of tests was described which is suitable for checking the authentic device controller hardware in combination with checking the manufacturer ID by the host system.
Um Host-spezifische Tests zu generieren, wird ausgenutzt, dass ein Test der zuletzt genannten Testklasse zum einen aus einer Folge von vielen internen SRT besteht, und zweitens die internen SRT bei Umordnung einer bekannten Rei henfolge und Veränderung der Stimulus-Werte unterschiedliche Responses lie fern, die nicht vollständig aus den bekannten Responses ableitbar sind. Ein so umgeordneter Test der beschriebenen Testklasse bleibt ein Test charakteristi scher Hardware-Merkmale und der Hersteller-ID. Der wesentliche Schritt, um Host-spezifische Tests zu generieren, besteht daraus, die internen SRT eines festgelegten, externen SRT Host-spezifisch zu permutieren. Zusätzliche Schritte werden im Ausführungsbeispiel unten exemplarisch benannt. In order to generate host-specific tests, use is made of the fact that a test of the last-mentioned test class consists on the one hand of a sequence of many internal SRTs and, on the other hand, the internal SRTs deliver different responses when a known sequence is rearranged and the stimulus values are changed that cannot be fully derived from the known responses. Such a rearranged test of the test class described remains a test of characteristic hardware features and the manufacturer ID. The essential step in generating host-specific tests consists in permuting the internal SRT of a specified, external SRT host-specifically. Additional steps are named below by way of example in the exemplary embodiment.
Authentifizierunasverfahren Authentication procedure
Vor dem Ausrollen der Gerätepaare wird für jedes Hostsystem, wie offen gelegt wurde, ein individueller Test generiert und mit Hilfe eines authentischen Refe renzgeräts eine externe Referenz-Response generiert. Jedes Hostsystem wird in der Hersteller-Umgebung mit dem externen Stimulus und dem Referenzwert für seinen individuellen Test versehen. Die Geräte erhalten in der Herstellerum gebung alle eine identische Authentisierungs-Applikation, welche die gewählten Tests unterstützt. Die Authentisierungs-Applikation kann wegfallen, wenn das Hostsystem über eine geeignete Debug-Schnittstelle mit dem Gerät verbunden ist. Dann kann die Stimulation des Geräts über die Debug-Schnittstelle erfolgen. Before the device pairs are rolled out, an individual test is generated for each host system, as disclosed, and an external reference response is generated with the help of an authentic reference device. Each host system is provided with the external stimulus and the reference value for its individual test in the manufacturer's environment. In the manufacturer environment, the devices all receive an identical authentication application that supports the selected tests. The authentication application can be omitted if the host system is connected to the device via a suitable debug interface. The device can then be stimulated via the debug interface.
Im Feld prüft das Hostsystem zu gegebenen Zeiten die Authentizität des Ge genübers. Der Ablauf ist in der Fig. 10 dargestellt. Das Hostsystem hat dabei nur die Aufgabe, den gespeicherten, externen Stimulus zu senden, die externe Response zu empfangen und mit dem gespeicherten Referenzwert zu verglei chen und schließlich, abhängig vom Erfolg des Vergleichs, die normale Geräte funktion zu starten. In the field, the host system checks the authenticity of the counterpart at given times. The sequence is shown in FIG. The host system has it only the task of sending the stored external stimulus, receiving the external response and comparing it with the stored reference value and finally, depending on the success of the comparison, starting the normal device function.
Ausführungsbeispiel Embodiment
Kodierung isolierter / interner Tests Coding of isolated / internal tests
Ignoriert man Anforderungen an den zeitlichen Ablauf, so besteht ein isolierter oder interner Test in der einfachsten Ausführung aus dem Schreiben des Stimu lus an eine WriteAddress und anschließendem Lesen der Response von einer ReadAddress. Um die Simulation zu erschweren, wird der Stimulus der auszu führenden, internen Tests noch nicht festgelegt, sondern während der Ausfüh rung pseudo-zufällig generiert. Wenn die WriteAddress ein Konfigurationsregis ter eines Peripherais ist, kann es sinnvoll sein, bestimmte Stimulus-Bits auf 0 oder auf 1 fest zu halten. Für zufällig gewählte Stimuli kann die Einschränkung dadurch erzwungen werden, dass der Stimulus vor dem Schreiben mit einer AND-Maske und anschließend mit einer OR-Maske logisch verknüpft wird. Um gekehrt ist der Reset-Wert an der ReadAddress ggf. nicht notwendig für alle Bits definiert, oder im Test sollen einige Bits ignoriert werden. Das wird durch Ver knüpfung des Response-Wertes mit einer AND-Maske realisiert. Ein einfacher, isolierter oder interner Test ist damit bis auf die Festlegung des Stimulus und das Timing durch ein 5-Tuple If you ignore the requirements for the time sequence, an isolated or internal test in the simplest version consists of writing the stimulus to a WriteAddress and then reading the response from a ReadAddress. To make the simulation more difficult, the stimulus for the internal tests to be carried out is not yet defined, but is generated pseudo-randomly during the execution. If the WriteAddress is a configuration register of a periphery, it can make sense to keep certain stimulus bits fixed at 0 or 1. For randomly selected stimuli, the restriction can be enforced by logically combining the stimulus with an AND mask before writing and then with an OR mask. Conversely, the reset value at the ReadAddress may not have to be defined for all bits, or some bits should be ignored in the test. This is done by linking the response value with an AND mask. A simple, isolated or internal test is with the exception of the definition of the stimulus and the timing by a 5-tuple
(WriteAddress, WriteAndMask, WriteOrMask, ReadAddress, ReadAndMask) zu definieren. Ein isolierter oder interner Test ergibt sich durch hintereinander hängen einfacher Tests. (WriteAddress, WriteAndMask, WriteOrMask, ReadAddress, ReadAndMask). An isolated or internal test is obtained by hanging simple tests one after the other.
Komprimierte Darstellung einfacher Tests Compressed representation of simple tests
Im Ausführungsbeispiel sind Adressen 32 Bits breit. Der Geräte-Controller ver fügt über einen Speicher, der sich bereits mit 19 Bits eindeutig zuordnen lässt. Dabei entsprechen die unteren 16 Bits der normalen Adressierung, die oberen drei Bits wählen zwischen verschiedenen physikalischen Speicherbausteinen. ReadAddress und WriteAddress werden in einem 5 Byte-Block dargestellt, wobei Byte 1-2 die unteren 16 Bits der WriteAddress darstellen, Byte 3-4 die unteren 16 Bits der ReadAddress und Byte 0 folgende Informationen enthält: Bit 0 zeigt an, ob eine 32 Bit WriteAndMask und eine 32 Bit WriteOrMask folgen, Bit 1 zeigt an, ob eine 32 bit ReadAndMask folgt, Bits 2-4 stellen den Speicherbaustein für Write dar, Bits 5-7 den Speicherbaustein für Read. Ist Bit 0 oder Bit 1 gleich Null, so sind als Masken die trivialen Masken zu wählen, d.h. b'l...l als AND- Maske und b'0...0 als OR-Maske. Nicht-triviale Masken werden an den 5-Byte- Block angehängt. Damit ergibt sich abhängig von Bits 0 und 1 eine Länge von 5, 9 oder 17 Byte für die komprimierte Darstellung eines einfachen Tests. Im Ausführungsbeispiel wird eine feststehende Liste von 140 einfacher Tests im Flash des Geräte-Controllers gespeichert. Dabei beträgt die komprimierte Länge 20 mal 17 Byte, 40 mal 9 Byte und 80 mal 5 Byte, d.h. insgesamt sind 1200 Byte zu speichern. Die Liste wird während der Ausführung abschnittsweise de- komprimiert und ins RAM geladen. In the exemplary embodiment, addresses are 32 bits wide. The device controller has a memory that can already be clearly assigned with 19 bits. The lower 16 bits correspond to normal addressing, the upper three bits choose between different physical memory modules. ReadAddress and WriteAddress are represented in a 5 byte block, whereby bytes 1-2 represent the lower 16 bits of the WriteAddress, bytes 3-4 the lower 16 bits of the ReadAddress and byte 0 contains the following information: Bit 0 indicates whether a 32 Bit WriteAndMask and a 32-bit WriteOrMask follow, bit 1 indicates whether a 32-bit ReadAndMask follows, bits 2-4 represent the memory module for write, bits 5-7 the memory module for read. If bit 0 or bit 1 is equal to zero, the trivial masks are to be selected as masks, ie b'l ... l as the AND mask and b'0 ... 0 as the OR mask. Non-trivial masks are appended to the 5-byte block. Depending on bits 0 and 1, this results in a length of 5, 9 or 17 bytes for the compressed representation of a simple test. In the exemplary embodiment, a fixed list of 140 simple tests is stored in the flash of the device controller. The compressed length is 20 times 17 bytes, 40 times 9 bytes and 80 times 5 bytes, ie a total of 1200 bytes have to be saved. During execution, the list is decompressed in sections and loaded into RAM.
Verwebung interner Tests Interweaving internal tests
Im Ausführungsbeispiel listet der Gerätehersteller eine Anzahl interner Tests, die zusammen die Hardware-Ausführung des Geräte-Controllers charakterisie ren und jeweils aus mehreren einfachen SRT bestehen. Die Sammlung dieser einfachen SRT wird im Ausführungsbeispiel in geeigneter Weise in einer Folge SRT_0, SRT_1, ... angeordnet, so dass jeweils vier aufeinander folgende, einfa che SRT zu vier unterschiedlichen internen Tests gehören und die zu einem in ternen Test gehörigen SRT in der durch den internen Test festgelegten Reihen folge auftauchen. Im Ausführungsbeispiel ist die Länge der Folge 140. Die Folge wird in eine Folge von 35 Blöcken zu je 4 einfachen SRT unterteilt. Eine Host- spezifische Verwebung der internen Tests geschieht durch Permutation der Tests innerhalb eines Blocks. Eine Host-spezifische Verwebung ist also als Folge pO, ..., p34 von 4er-Permutationen zu definieren. Eine geeignete Kodierung be nötigt 5 Bits pro Permutation. Damit ist eine Host-spezifische Verwebung durch 175 Bits darstellbar. Pseudozufälliae Lesezuariffe In the exemplary embodiment, the device manufacturer lists a number of internal tests that together characterize the hardware version of the device controller and each consist of several simple SRTs. In the exemplary embodiment, the collection of these simple SRTs is arranged in a suitable manner in a sequence SRT_0, SRT_1,... So that four consecutive, simple SRTs belong to four different internal tests and the SRTs belonging to an internal test in the appear in the order determined by the internal test. In the exemplary embodiment, the length of the sequence is 140. The sequence is subdivided into a sequence of 35 blocks of 4 simple SRT each. A host-specific interweaving of the internal tests is done by permutating the tests within a block. A host-specific interweaving is thus to be defined as a sequence pO, ..., p34 of 4-way permutations. A suitable coding needs 5 bits per permutation. This means that a host-specific interweaving can be represented using 175 bits. Pseudo-random read access
Die als Folgen von 5-Tupeln kodierbaren Stimulus-Response-Tests eignen sich, um Verhaltensmerkmale des Geräte-Controllers zu testen. Um Laufzeiten und Inhalte in zusammenhängenden RAM-oder ROM-Bereichen zu prüfen, bietet sich folgende Alternative an: Zu jedem zu prüfendem, zusammenhängenden, Be reich kann eine Projektionsfunktion implementiert werden, die jedes 32- Bit- Wort auf eine Bereichs-Adresse abbildet. Im Ausführungsbeispiel werde die fol genden acht Bereiche auf diese Weise geprüft: ROM-Code-Bereich, Flash-Be reich, RAM-Code-Bereich, RAM-Stack-Bereich, RAM-Daten-Bereich, Bereich der Chip-ID, Bereich der Hersteller-ID, Timer-Register-Bereich. Aus einer unten be schriebenen, deterministischen Pseudozufallsquelle werden je Lesezugriff 3 Bits für die Bereichsauswahl verwendet und 32 Bits per Bereichs-spezifischer Pro jektionsfunktion auf eine Bereichsadresse abgebildet. The stimulus-response tests, which can be coded as sequences of 5-tuples, are suitable for testing behavioral characteristics of the device controller. The following alternative is available for checking runtimes and contents in contiguous RAM or ROM areas: A projection function can be implemented for each contiguous area to be checked, which maps every 32-bit word to an area address. In the exemplary embodiment, the following eight areas are checked in this way: ROM code area, Flash area, RAM code area, RAM stack area, RAM data area, chip ID area, area of the Manufacturer ID, timer register area. From a deterministic pseudo-random source described below, 3 bits are used for area selection per read access and 32 bits are mapped to an area address by area-specific projection function.
Hostsvstem-spezifische Hash- Funktion Hostsvstem-specific hash function
Um von einer Auswahl interner Tests in erneut Host-spezifischer Weise zu einem externen Test zu gelangen, bietet sich eine Hash-Funktion mit Host-spezifischer Parametrisierung an. Zur Erschwerung der Simulation ist keine kryptographi- sche Hash-Funktion erforderlich, sondern lediglich eine Hash-Funktion, die leicht Hostsystem-spezifisch anzupassen ist, und auf dem Geräte-Controller effizient läuft. In order to go from a selection of internal tests to an external test again in a host-specific manner, a hash function with host-specific parameterization is recommended. No cryptographic hash function is required to make the simulation more difficult, only a hash function that can be easily adapted to the host system and runs efficiently on the device controller.
Es bietet sich an, den Zustands-Puffer der Hashfunktion als Pseudozufallsquelle für den Stimulus jedes einfachen, internen Tests zu nutzen. Zudem ist es als Simulations-Gegenmaßnahme sinnvoll, nicht nur die Response, sondern auch den Stimulus, sowie die ReadAddress und WriteAdress eines Tests bei der Hash- Berechnung einzubeziehen. It makes sense to use the hash function's state buffer as a pseudo-random source for the stimulus of every simple, internal test. In addition, as a simulation countermeasure, it makes sense to include not only the response, but also the stimulus, as well as the ReadAddress and WriteAdress of a test in the hash calculation.
Im Ausführungsbeispiel werden für Hostsystem-spezifisch ausgewürfelte CPU- Instruktionen op_0 - op_7 Funktionen F0 - F3 mit je 3 CPU-Wörter als Input und einem CPU-Wort als Output, wie folgt definiert: F0(x,y,z) = op_0( x, op_l(y, z) ) In the exemplary embodiment, CPU instructions op_0 - op_7, each with 3 CPU words as input and one CPU word as output, are defined as follows for host system-specific CPU instructions: F0 (x, y, z) = op_0 (x, op_l (y, z))
Fl(x,y,z) = op_2( x, op_3(y, z) ) Fl (x, y, z) = op_2 (x, op_3 (y, z))
F0(x,y,z) = op_4( x, op_5(y, z) ) F0 (x, y, z) = op_4 (x, op_5 (y, z))
F0(x,y,z) = op_6( x, op_7(y, z) ) F0 (x, y, z) = op_6 (x, op_7 (y, z))
Für die Instruktionen opj kommen insbesondere logische Verknüpfungen, Ad dition und Multiplikation in Frage. Es ist vorteilhaft, im Hauptprogramm für den Hash-Puffer CPU-Register zu reservieren. Im Ausführungsbeispiel sind die Re gister R0 - R3 gewählt. Als Initialwert erhalten die Register die letzten 128 Bits des Stimulus. Logical operations, addition and multiplication are particularly suitable for the instructions opj. It is advantageous to reserve CPU registers in the main program for the hash buffer. In the exemplary embodiment, the registers R0-R3 are selected. The registers receive the last 128 bits of the stimulus as an initial value.
Für jeden internen SRT wird mindestens eine Hash-Runde durchgeführt. Stimu lus-Erzeugung, Schreiben des Stimulus, Lesen der Response und Lesen von ei ner pseudo-zufälligen Adresse werden für einen, über ein 5-Tupel (Wri- teAddress, WriteAndMask, WriteOrMask, ReadAddress, ReadAndMask) definier ten, internen Test, wie in Zeichnung 2 dargestellt, direkt mit dem Hash-Update verbunden: RI dient als Pseudozufallsquelle für den Stimulus, welcher durch Verknüpfung von RI mit WriteAndMask und WriteOrMask gebildet wird. Der Sti mulus wird an die Adresse WriteAddress geschrieben, anschließend die Response von der ReadAddress gelesen. Stimulus, sowie die im Puffer liegenden Werte R2, R3 bilden den Input von F0, deren Output per XOR mit R0 verknüpft wird. R0 wird anschließend mit der AND-Verknüpfung von Response und ReadAndMask per XOR verknüpft und mit dem Resultat überschrieben. At least one hash round is carried out for each internal SRT. Stimulus generation, writing the stimulus, reading the response and reading a pseudo-random address are defined for an internal test such as shown in drawing 2, directly connected to the hash update: RI serves as a pseudo-random source for the stimulus, which is formed by linking RI with WriteAndMask and WriteOrMask. The stimulus is written to the WriteAddress address, then the response is read from the ReadAddress. The stimulus and the values R2, R3 in the buffer form the input of F0, the output of which is linked to R0 via XOR. R0 is then linked with the AND link of Response and ReadAndMask via XOR and overwritten with the result.
R0,R2 und R3 bilden den Input von F2, deren Output mit RI per XOR verknüpft wird. Anschließend wird das Resultat mit WriteAddress XOR-verknüpft und R2 mit dem Ergebnis überschrieben. R0,R1 und R3 bilden den Input von F2, deren Output mit R2 per XOR verknüpft wird. Anschließend wird das Resultat mit ReadAddress XOR-verknüpft und R2 mit dem Ergebnis überschrieben. R2 und die 3 untersten Rl-Bits dienen jetzt als Pseudozufallsquelle für den oben be schriebenen, pseudo-randomisierten Lesezugriff. Die gelesenen Daten werden mit R3 per XOR verknüpft und R3 mit dem Ergebnis überschrieben. R0,R1 und R2 bilden den Input von F3, deren Output mit R3 per XOR verknüpft wird. Im Ausführungsbeispiel wird die Hash-Funktion von der Authentisierungs-Appli- kation des Geräte-Controllers aus einem im Flash gespeicherten Grundgerüst, einem im Flash gespeicherten Opcode-Lookup-Table mit 16 Einträgen, abhängig von der Host-spezifischen Opcode-Auswahl, zur Laufzeit zusammengesetzt und ins RAM geladen. Die Host-spezifische Opcode-Auswahl geschieht durch Über tragung von 8 mal 4 gleich 32 Bits innerhalb des externen Stimulus. R0, R2 and R3 form the input of F2, whose output is linked with RI via XOR. Then the result is XORed with WriteAddress and R2 is overwritten with the result. R0, R1 and R3 form the input of F2, whose output is linked with R2 via XOR. Then the result is XORed with ReadAddress and R2 is overwritten with the result. R2 and the 3 lowest R1 bits are now used as a pseudo-random source for the pseudo-randomized read access described above. The read data are linked with R3 via XOR and R3 is overwritten with the result. R0, R1 and R2 form the input of F3, whose output is linked with R3 via XOR. In the exemplary embodiment, the hash function is generated by the authentication application of the device controller from a basic structure stored in flash, an opcode lookup table with 16 entries stored in flash, depending on the host-specific opcode selection, at runtime assembled and loaded into RAM. The host-specific opcode selection is done by transmitting 8 times 4 equal to 32 bits within the external stimulus.
Code-Dvnamisieruna durch Interrupt-Service-Routinen Code dvnamisieruna through interrupt service routines
Die Instruktionsreihenfolge für den beschriebenen Hash-Update in Verbindung mit einem SRT und einem pseudo-zufälligen Lesezugriff ist nicht eindeutig fest gelegt. Der Hersteller wählt im Ausführungsbeispiel eine feste Instruktionsrei henfolge, welche die Opcode-Variabeln op0,...,op7 beinhaltet. Er identifiziert Paare von Instruktionen innerhalb dieser Folge, die eine Vertauschung zulassen, ohne dass das Verfahren dadurch grundsätzlich verändert wird. Eine Code-Dy namisierung wird im Ausführungsbeispiel dadurch realisiert, dass Interrupt-Ser vice-Routinen im Testcode so implementiert werden, dass sie jeweils eine der identifizierten Vertauschungen durchführen. Nach der Vertauschung werden Sti muli, Responses und ReadData unterschiedlich ausfallen, da sich insbesondere gelesene Timer-Werte ändern. The sequence of instructions for the described hash update in connection with an SRT and a pseudo-random read access is not clearly defined. In the exemplary embodiment, the manufacturer selects a fixed instruction sequence which contains the opcode variables op0, ..., op7. It identifies pairs of instructions within this sequence that allow interchangeability without fundamentally changing the procedure. In the exemplary embodiment, code dynamization is implemented in that interrupt service routines are implemented in the test code in such a way that they each carry out one of the identified swaps. After the swap, stimuli, responses and read data will turn out differently, since read timer values in particular change.
Externer Stimulus External stimulus
Der externe Stimulus besteht im Ausführungsbeispiel aus 207 Bits, davon 175 Bits, welche eine Folger von 35 Permutationen vier aufeinander folgender im Flash des Geräte-Controllers gespeicherten SRT kodieren und 32 Bits, welche als 8 mal 4 Bits die Opcodes für op0,...,op7 aus einem im Flash des Geräte- Controllers gespeicherten Lookup-Table auswählen. In the exemplary embodiment, the external stimulus consists of 207 bits, of which 175 bits encode a sequence of 35 permutations of four consecutive SRTs stored in the flash of the device controller and 32 bits, which are 8 times 4 bits, the opcodes for op0, ... , select op7 from a lookup table stored in the flash of the device controller.
Hauptproaramm des Geräte-Controllers Main program of the device controller
Im Ausführungsbeispiel lädt das Hauptprogramm des Geräte-Controllers nach dem Empfang des Stimulus das Grundgerüst für die oben beschriebene Hash- Update-Routine ins RAM und ergänzt die empfangenen Opcodes opO,..., op7. Dann dekomprimiert es einen Teil der SRT und speichert die dekomprimierten 5-Tupel im RAM. Anschließend wird die Hauptschleife gestartet, welche in jeder Runde das Dekomprimieren eines oder mehrere Tests und Überschreiben der bereits ausgeführten Tests im RAM, sowie die kombinierte Durchführung eines SRT, eines pseudo-zufälligen Lesezugriffs und eines Hash-Updates beinhaltet. Nach der letzten Runde wird der Inhalt des halben Hash-Puffers an das Host- system übermittelt. Die Response besteht damit aus 64 Bits. In the exemplary embodiment, after receiving the stimulus, the main program of the device controller loads the basic structure for the hash update routine described above into the RAM and supplements the received opcodes opO, ..., op7. Then it decompresses part of the SRT and stores the decompressed ones 5-tuples in RAM. The main loop is then started, which includes the decompression of one or more tests and overwriting of the tests already carried out in RAM, as well as the combined execution of an SRT, a pseudo-random read access and a hash update in each round. After the last round, the content of half the hash buffer is transmitted to the host system. The response thus consists of 64 bits.
Mehrere Gast-Control ler-Varianten Several guest controller variants
Das beschriebene Verfahren lässt sich auch anwenden, wenn der Geräteherstel ler mehrere verschiedene Hardware-Ausführungen für den Gast-Controller nut zen möchte. Dann kann entweder die Response eines Stimulus-Response-Tests mit mehreren authentischen Referenz werten verglichen werden, oder das Host- system wählt, abhängig von der Hardware-Ausführung, einen geeigneten Sti rn ulus- Response-Tests für den Geräte-Controller aus. Die Patentansprüche blei ben davon unberührt. The method described can also be used if the device manufacturer wants to use several different hardware versions for the guest controller. Then either the response of a stimulus response test can be compared with several authentic reference values, or the host system selects a suitable stimulus response test for the device controller, depending on the hardware design. The claims remain unaffected.
Kombination mit krvptoaraphischen Verfahren Combination with graphical methods
Das Verfahren zur Authentifizierung eines Geräts entsprechend der vorliegen den Erfindung lässt sich mit kryptographischen Verfahren kombinieren. The method for authenticating a device according to the present invention can be combined with cryptographic methods.
Nachfolgend werden weitere bevorzugte Aspekte der vorliegenden Erfindung genannt. Further preferred aspects of the present invention are mentioned below.
Aspekt 1 Aspect 1
Verfahren zur elektronischen Authentifizierung eines Geräts durch ein Hostsys- tem, dadurch gekennzeichnet, dass alle authentischen Geräte mit einem Mikro controller derselben funktionalen Hardware-Ausführung versehen sind, ein Ge rät als Authentisierungsmerkmal nachweist, dass es über einen Mikrocontroller der authentischen Hardware-Ausführung verfügt, die Prüfung dieses Authenti- sierungsmerkmals einen Stimulus-Response-Test beinhaltet, bei welchem das Hostsystem einen Hostsystem-spezifischen Stimulus an das Gerät sendet und die Response des Geräts mit einer im Hostsystem gespeicherten, authentischen Response vergleicht, die authentische Response dieses Stimulus-Response- Tests davon abhängt, wie viele Takte ein authentischer Geräte-Controller für die Ausführung einer oder mehrerer, durch die Geräte-Konfiguration und den Sti mulus bestimmter CPU-Instruktionsfolgen benötigt. Method for electronic authentication of a device by a host system, characterized in that all authentic devices are provided with a microcontroller of the same functional hardware version, a device as an authentication feature proves that it has a microcontroller of the authentic hardware version, the test of this authentication feature includes a stimulus-response test, in which the host system sends a host-system-specific stimulus to the device and compares the response of the device with an authentic response stored in the host system, the authentic response of this stimulus-response Tests depend on how many cycles an authentic device controller needs to execute one or more CPU instruction sequences determined by the device configuration and the stimulus.
Aspekt 2 Aspect 2
Verfahren zur elektronischen Authentifizierung eines Geräts durch ein Hostsys- tem, dadurch gekennzeichnet, dass alle authentischen Geräte mit einem Mikro controller derselben funktionalen Hardware-Ausführung versehen sind, alle au thentischen Geräte über die selbe Hersteller-ID an festgelegten Adressen in ei nem unveränderlichen Speicherbereich verfügen, ein Gerät als Authentisie- rungsmerkmal nachweist, dass es über einen Mikrocontroller der authentischen Hardware-Ausführung verfügt, ein Gerät als Authentisierungsmerkmal die kor rekte Hersteller-ID nachweist, die Prüfung der beiden genannten Authentisie- rungsmerkmale einen Stimulus-Response-Test beinhaltet, bei welchem das Hostsystem einen Hostsystem-spezifischen Stimulus an das Gerät sendet und die Response des Geräts mit einer im Hostsystem gespeicherten, authentischen Response vergleicht, die authentische Response dieses Stimulus-Response- Tests davon abhängt, wie viele Takte ein authentischer Geräte-Controller für die Ausführung einer oder mehrerer, durch die Geräte-Konfiguration und den Sti mulus bestimmter CPU-Instruktionsfolgen benötigt. Method for electronic authentication of a device by a host system, characterized in that all authentic devices are provided with a microcontroller of the same functional hardware version, all authentic devices have the same manufacturer ID at fixed addresses in an unchangeable memory area , a device proves as an authentication feature that it has a microcontroller of the authentic hardware version, a device proves the correct manufacturer ID as an authentication feature, the testing of the two authentication features mentioned includes a stimulus-response test which the host system sends a host system-specific stimulus to the device and compares the response of the device with an authentic response stored in the host system, the authentic response of this stimulus-response test depends on how many cycles an authentic device controller is used for execution one or more CPU instruction sequences determined by the device configuration and the stimulus are required.
Aspekt 3 Aspect 3
Verfahren zur elektronischen Authentifizierung eine Geräts durch ein Hostsys tem, dadurch gekennzeichnet, dass alle authentischen Geräte mit einem Mikro controller derselben funktionalen Hardware-Ausführung versehen sind, ein Ge rät als Authentisierungsmerkmal nachweist, dass es über einen Mikrocontroller der authentischen Hardware-Ausführung verfügt, die Prüfung dieses Authenti- sierungsmerkmals einen Stimulus-Response-Test beinhaltet, bei welchem das Hostsystem einen Hostsystem-spezifischen Stimulus an das Gerät sendet und die Response des Geräts mit einer im Hostsystem gespeicherten, authentischen Response vergleicht, die authentische Response dieses Stimulus-Response- Tests von den Adressgrenzen von RAM, ROM und I/O-Registerbereich eines au thentischen Geräte-Controllers abhängt. Aspekt 4 A method for electronic authentication of a device by a host system, characterized in that all authentic devices are provided with a microcontroller of the same functional hardware version, a device as an authentication feature proves that it has a microcontroller of the authentic hardware version that Checking this authentication feature includes a stimulus-response test in which the host system sends a host-system-specific stimulus to the device and compares the response of the device with an authentic response stored in the host system, the authentic response of this stimulus-response test depends on the address limits of RAM, ROM and I / O register area of an authentic device controller. Aspect 4
Verfahren zur elektronischen Authentifizierung eines Geräts durch ein Hostsys- tem, dadurch gekennzeichnet, dass alle authentischen Geräte mit einem Mikro controller derselben funktionalen Hardware-Ausführung versehen sind, ein Ge rät als Authentisierungsmerkmal nachweist, dass es über einen Mikrocontroller der authentischen Hardware-Ausführung verfügt, die Prüfung dieses Authenti- sierungsmerkmals einen Stimulus-Response-Test beinhaltet, bei welchem das Hostsystem einen Hostsystem-spezifischen Stimulus an das Gerät sendet und die Response des Geräts mit einer im Hostsystem gespeicherten, authentischen Response vergleicht, die authentische Response dieses Stimulus-Response- Tests von den spezifizierten Reset-Werte in I/O- und Systemregistern eines au thentischen Geräte-Controllers abhängt. Method for electronic authentication of a device by a host system, characterized in that all authentic devices are provided with a microcontroller of the same functional hardware version, a device as an authentication feature proves that it has a microcontroller of the authentic hardware version, the test of this authentication feature includes a stimulus-response test, in which the host system sends a host-system-specific stimulus to the device and compares the response of the device with an authentic response stored in the host system, the authentic response of this stimulus-response Tests on the specified reset values in the I / O and system registers of an authentic device controller.
Aspekt 5 Aspect 5
Verfahren zur elektronischen Authentifizierung eines Geräts durch ein Hostsys tem, dadurch gekennzeichnet, dass alle authentischen Geräte mit einem Mikro controller derselben funktionalen Hardware-Ausführung versehen sind, ein Ge rät als Authentisierungsmerkmal nachweist, dass es über einen Mikrocontroller der authentischen Hardware-Ausführung verfügt, die Prüfung dieses Authenti- sierungsmerkmals einen Stimulus-Response-Test beinhaltet, bei welchem das Hostsystem einen Hostsystem-spezifischen Stimulus an das Gerät sendet und die Response des Geräts mit einer im Hostsystem gespeicherten, authentischen Response vergleicht, die authentische Response dieses Stimulus-Response- Tests von Abhängigkeiten zwischen den Werten in verschiedenen I/O-Registern, System registern und RAM-Bereichen eines authentischen Geräte-Controllers abhängt. Method for electronic authentication of a device by a host system, characterized in that all authentic devices are provided with a microcontroller of the same functional hardware version, a device as an authentication feature proves that it has a microcontroller of the authentic hardware version that Checking this authentication feature includes a stimulus-response test in which the host system sends a host-system-specific stimulus to the device and compares the response of the device with an authentic response stored in the host system, the authentic response of this stimulus-response test depends on the dependencies between the values in various I / O registers, system registers and RAM areas of an authentic device controller.
Aspekt 6 Aspect 6
Verfahren zur elektronischen Authentifizierung eines Geräts durch ein Hostsys tem, dadurch gekennzeichnet, dass alle authentischen Geräte mit einem Mikro controller derselben funktionalen Hardware-Ausführung versehen sind, ein Ge rät als Authentisierungsmerkmal nachweist, dass es über einen Mikrocontroller der authentischen Hardware-Ausführung verfügt, die Prüfung dieses Authenti- sierungsmerkmals einen Stimulus-Response-Test mit Host-spezifischem Stimu lus beinhaltet, bei welchem eine Debug-Schnittstelle des Geräte-Controllers als Test-Schnittstelle dient. Method for electronic authentication of a device by a host system, characterized in that all authentic devices are provided with a microcontroller of the same functional hardware version, a device as an authentication feature proves that it has a microcontroller the authentic hardware version, the test of this authentication feature includes a stimulus-response test with host-specific stimulus, in which a debug interface of the device controller is used as a test interface.
Claims
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/EP2020/051637 WO2021148123A1 (en) | 2020-01-23 | 2020-01-23 | Method and devices for operating an electrical or electronic apparatus |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/EP2020/051637 WO2021148123A1 (en) | 2020-01-23 | 2020-01-23 | Method and devices for operating an electrical or electronic apparatus |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2021148123A1 true WO2021148123A1 (en) | 2021-07-29 |
Family
ID=69190804
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/EP2020/051637 Ceased WO2021148123A1 (en) | 2020-01-23 | 2020-01-23 | Method and devices for operating an electrical or electronic apparatus |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2021148123A1 (en) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN117851789A (en) * | 2024-03-05 | 2024-04-09 | 北京珞安科技有限责任公司 | Industrial control equipment operation quality evaluation system based on artificial intelligence |
| DE102024201880A1 (en) | 2024-02-29 | 2025-09-04 | Robert Bosch Gesellschaft mit beschränkter Haftung | Control unit and method for activating control functions |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20070160204A1 (en) * | 2006-01-05 | 2007-07-12 | Nec Electronics Corporation | Microcontroller and authentication method between the controllers |
| US20110093714A1 (en) | 2009-10-20 | 2011-04-21 | Infineon Technologies Ag | Systems and methods for asymmetric cryptographic accessory authentication |
| EP2777890A1 (en) * | 2013-03-12 | 2014-09-17 | Panasonic Corporation | Electric power tool |
| US20150343792A1 (en) * | 2008-05-29 | 2015-12-03 | Hewlett-Packard Development Company, L.P. | Authenticating a Replaceable Printer Component |
| EP3039490A1 (en) * | 2013-08-30 | 2016-07-06 | Hewlett-Packard Development Company, L.P. | Supply authentication via timing challenge response |
-
2020
- 2020-01-23 WO PCT/EP2020/051637 patent/WO2021148123A1/en not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20070160204A1 (en) * | 2006-01-05 | 2007-07-12 | Nec Electronics Corporation | Microcontroller and authentication method between the controllers |
| US20150343792A1 (en) * | 2008-05-29 | 2015-12-03 | Hewlett-Packard Development Company, L.P. | Authenticating a Replaceable Printer Component |
| US20110093714A1 (en) | 2009-10-20 | 2011-04-21 | Infineon Technologies Ag | Systems and methods for asymmetric cryptographic accessory authentication |
| EP2777890A1 (en) * | 2013-03-12 | 2014-09-17 | Panasonic Corporation | Electric power tool |
| EP3039490A1 (en) * | 2013-08-30 | 2016-07-06 | Hewlett-Packard Development Company, L.P. | Supply authentication via timing challenge response |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE102024201880A1 (en) | 2024-02-29 | 2025-09-04 | Robert Bosch Gesellschaft mit beschränkter Haftung | Control unit and method for activating control functions |
| CN117851789A (en) * | 2024-03-05 | 2024-04-09 | 北京珞安科技有限责任公司 | Industrial control equipment operation quality evaluation system based on artificial intelligence |
| CN117851789B (en) * | 2024-03-05 | 2024-05-31 | 北京珞安科技有限责任公司 | Industrial control equipment operation quality evaluation system based on artificial intelligence |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE69402955T2 (en) | Data exchange system with portable data processing units | |
| DE102020116791B4 (en) | Device and method for computer-aided processing of data | |
| DE69519473T2 (en) | Data exchange systems with portable data processing units | |
| EP3388994A1 (en) | Method and apparatus for computer-assisted testing of a blockchain | |
| WO2014206695A1 (en) | Data storage device for protected data exchange between different security zones | |
| EP1611510B1 (en) | Controlled execution of a program used for a virtual machine on a portable data carrier | |
| DE102022119774A1 (en) | Method and system for performing a secure boot procedure using multi-level security verification in a vehicle microcontroller | |
| WO2021148123A1 (en) | Method and devices for operating an electrical or electronic apparatus | |
| EP3811263B1 (en) | Cryptography module and method for operating same | |
| DE102013101709A1 (en) | Circuit arrangement, method of forming a circuit arrangement, and method of checking integrity | |
| EP3928463A1 (en) | Method for configuring a security module with at least one derived key | |
| EP4028878B1 (en) | Method for securely starting a device software, in particular an operating system, of an electronic device | |
| DE102013108073B4 (en) | DATA PROCESSING ARRANGEMENT AND DATA PROCESSING METHOD | |
| DE102018009143A1 (en) | Method for authenticating a device by a host system | |
| EP4139820A1 (en) | Booting device for a computer element and method for booting a computer element | |
| EP3798873B1 (en) | Method for protecting a computer-implemented application from manipulation | |
| DE102021110768B3 (en) | Forensics module and embedded system | |
| EP4297334B1 (en) | Method for the implementation and use of cryptographic material in at least one system component of an information technology system | |
| DE102021110766B3 (en) | Forensics module and embedded system | |
| WO2019166398A1 (en) | Computer program, particularly for a control unit of a motor vehicle | |
| EP1460510B1 (en) | Method for secure communication between data processing equipment and a security device | |
| WO2004081971A2 (en) | Method for using a microprocessor and a microprocessor system | |
| WO2025131631A1 (en) | Method for carrying out a device-onboarding process which is secured on the basis of a symmetric cryptography process in a device, computer program product, computer-readable storage medium, and onboarding system | |
| AT524619A1 (en) | Computer-implemented method for authorized execution of software, data processing system, computer program product and computer-readable storage medium | |
| DE102016115551A1 (en) | Configurable security modules |
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: 20701756 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 20701756 Country of ref document: EP Kind code of ref document: A1 |