WO2024028134A1 - Verfahren und vorrichtung zum verarbeiten von mit einem hardware-sicherheitsmodul assoziierten daten - Google Patents

Verfahren und vorrichtung zum verarbeiten von mit einem hardware-sicherheitsmodul assoziierten daten Download PDF

Info

Publication number
WO2024028134A1
WO2024028134A1 PCT/EP2023/070336 EP2023070336W WO2024028134A1 WO 2024028134 A1 WO2024028134 A1 WO 2024028134A1 EP 2023070336 W EP2023070336 W EP 2023070336W WO 2024028134 A1 WO2024028134 A1 WO 2024028134A1
Authority
WO
WIPO (PCT)
Prior art keywords
partition
security module
hardware security
information
exemplary embodiments
Prior art date
Application number
PCT/EP2023/070336
Other languages
English (en)
French (fr)
Inventor
Hakan Aktas
Jens Schmuelling
Martin Assel
Peter Poinstingl
Daniel Hoettges
Frederic Stumpf
Aparna VIJAYA KRISHNAN
Original Assignee
Robert Bosch Gmbh
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch Gmbh filed Critical Robert Bosch Gmbh
Publication of WO2024028134A1 publication Critical patent/WO2024028134A1/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode

Definitions

  • the disclosure relates to a method for processing data associated with a hardware security module.
  • the disclosure further relates to a device for processing data associated with a hardware security module.
  • Exemplary embodiments relate to a method for processing data associated with a hardware security module, comprising: determining first information that establishes an identity of at least one partition of a computing device designed to access the hardware security module, for example accessing the hardware security module characterize, and, optionally, use the first information, for example to control an operation of the hardware security module based at least on the first information.
  • it can be ensured, for example, that different partitions of the computing device or computer programs associated with the different partitions, such as application programs, do not manipulate data from other partitions that can be processed by the hardware security module.
  • the hardware security module is designed to implement cryptographic primitives and/or Perform functions such as encrypting and/or decrypting and/or forming hash values and/or forming message authentication codes, etc.
  • the hardware security module has a key memory for storing cryptographic keys. For example, based on the first information, it is possible to control which of several partitions that can use functions of the hardware security module are allowed to use certain cryptographic keys. For example, in further exemplary embodiments it can be provided that some partitions are only allowed to use certain cryptographic keys, while other partitions are allowed to use all cryptographic keys, etc.
  • the at least one partition has at least one computing core and, optionally, a memory assigned to the computing core, for example working memory, for example RAM (random access memory).
  • working memory for example RAM (random access memory).
  • determining the first information comprises at least one of the following elements: a) determining the first information based on a communication channel that is, for example statically, for example exclusively, associated with the at least one partition, b) receiving the first information via a communication channel that can be used at least temporarily by the at least one partition, for example the communication channel can be used by several partitions, for example in time division multiplex.
  • the first information is provided implicitly, for example by making an, for example static, assignment of a specific communication channel to a specific partition. That is, in further exemplary embodiments, the hardware security module may derive an identity of a particular partition based on soft (e.g., statically assigned) communication channel (e.g., from multiple communication channels) information, e.g. data, has been received from the partition.
  • soft communication channel e.g., from multiple communication channels
  • the first information and/or further information characterizing the first information can be transmitted, for example, directly from a partition via a communication channel that can be used together, for example, with further partitions, for example together with data for operation of the hardware security module.
  • the method comprises: receiving second information, for example an interrupt request (e.g. interrupt request) and/or associated with an interrupt request, from the at least one partition, determining the first information based on a communication channel via which the second information has been received.
  • an interrupt request e.g. interrupt request
  • the method comprises: receiving second information, for example an interrupt request (e.g. interrupt request) and/or associated with an interrupt request, from the at least one partition, determining the first information based on a communication channel via which the second information has been received.
  • the method has at least one of the following elements: a) using multiple communication channels for communication with different partitions of the computing device (i.e., for example for communication of the hardware security module with the different partitions of the computing device), for example using a first communication channel of the plurality of communication channels, for example exclusively, for communication with a first partition and using a second communication channel of the plurality of communication channels, for example exclusively, for communication with a second partition, b) using a, for example common, communication channel for communication with different partitions of the computing device, for example based on a time division multiplex method.
  • the method has at least one of the following elements: a) using a first memory area, for example having a number of memory registers, to implement a first communication channel, b) using a second memory area, for example having a Number of memory registers, for realizing a second communication channel, c) using a third memory area, for example having a number of memory registers, for realizing a common communication channel for communication with different partitions of the computing device.
  • the method has at least one of the following elements: a) using a shared memory area, for example shared memory, for example a main memory, for example RAM, for example for exchanging information, for example data, with the at least one partition, b) virtualizing the shared memory area, for example comprising assigning different partial areas to a different partition of the computing device, c) using a memory protection device, for example a dynamic memory protection device, D-MPLI, for example for, for example dynamically, protecting at least some memory areas from access by at least some Partitions of the computing device.
  • a shared memory area for example shared memory, for example a main memory, for example RAM, for example for exchanging information, for example data, with the at least one partition
  • b) virtualizing the shared memory area for example comprising assigning different partial areas to a different partition of the computing device
  • a memory protection device for example a dynamic memory protection device, D-MPLI, for example for, for example dynamically, protecting at least some memory areas from access by at least some Partitions of the computing
  • the method comprises: configuring a or the memory protection device, for example dynamic memory protection device, D-MPLI, whereby, for example, the configuration is carried out in such a way that the memory protection device has at least one memory area, which is associated, for example, with a first partition, protects against manipulation by at least one other partition.
  • a or the memory protection device for example dynamic memory protection device, D-MPLI
  • the method comprises: assigning a priority to the at least one partition, executing an operation associated with the at least one partition based at least on the priority of the at least one partition.
  • Further exemplary embodiments relate to a device for carrying out the method according to the embodiments.
  • the device can be implemented, for example, by means of hardware and, at least in some exemplary embodiments, can be integrated into a, for example otherwise at least largely conventional, hardware security module.
  • Further exemplary embodiments relate to a hardware security module having at least one device according to the embodiments.
  • a computing device for example a microcontroller or microprocessor or system on chip, SoC, having at least one of the following elements: a) device according to the embodiments, b) hardware security module according to the embodiments, c) at least one partition, e.g. comprising at least one computing core, and, optionally, memory assigned to the partition, e.g. main memory, e.g. RAM.
  • SoC system on chip
  • provision and/or transmission is carried out, for example completely, on a hardware basis.
  • the method comprises: Providing a second communication channel for a Exchange of information between a, for example exactly one, second partition of the computing device and the hardware security module, and, optionally, using the second communication channel for the exchange of information between the second partition of the computing device and the hardware security module.
  • FIG. 1 For exemplary embodiments, relate to a use of the method according to the embodiments and/or the device according to the embodiments and/or the hardware security module according to the embodiments and/or the computing device according to the embodiments and/or the computer-readable storage medium according to the embodiments and/or or the computer program according to the embodiments and/or the data carrier signal according to the embodiments for at least one of the following elements: a) determining first information that establishes an identity of at least one person who is designed to access the hardware security module, for example accessing the hardware security module, Characterize partition of a computing device, b) virtualize a hardware security module, c) determine an identity of a partition that accesses the hardware security module, d) prioritizing operations associated with different partitions of a computing device based on an identity of at least one of the different partitions, e) increasing a security of a hardware security module to which multiple partitions of a computing device can access.
  • FIG. 1 schematically shows a simplified block diagram according to exemplary embodiments
  • FIG. 21 schematically shows a simplified block diagram according to exemplary embodiments.
  • cf -ID (Fig. 1) of at least one partition 302-1 of a computing device 1000 which is designed to access the hardware security module 100, for example accessing the hardware security module 100 (see, for example, also the elements 300, 1000" according to Fig. 19).
  • the first information 1-1 for example, to control operation of the hardware security module 100 (FIG. 1) based on at least the first information 1-1.
  • This ensures, for example, that different partitions 302-1, 302-2, ... (FIG. 1) of the computing device 300, 1000, 1000" or associated with the different partitions 302-1, 302-2, ...
  • Computer programs such as application programs cannot manipulate data that can be processed by the hardware security module 100, for example from other partitions.
  • the hardware security module 100 is designed to execute cryptographic primitives KRYPT-PRIM and/or functions KRYPT-FUNKT, such as encrypting and/or decrypting and/or forming hash values HASH and/or forming of message authentication codes MAC, etc.
  • the hardware security module 100 has a key memory KS for storing cryptographic keys KS-1, KS-2, KS-3, ....
  • KS key memory
  • the computing device 1000 the resources, for example the cryptographic primitives KRYPT-PRIM and/or the cryptographic functions KRYPT-FUNKT and/or the cryptographic keys KS-1, KS-2, KS- 3, ... of the hardware security module 100 can use.
  • some partitions 302-1 may only use certain cryptographic keys KS-1, while other partitions 302-2, for example, may use all cryptographic keys KS-1, KS-2, KS-3, etc.
  • the hardware security module 100 has at least one, for example secure, computing core 102, which, for example, is structurally and/or functionally separated from components external to the hardware security module 100, such as the partitions 302-1, 302-2, .. . can be separated, and which in further exemplary embodiments is designed, for example, to execute at least some of the cryptographic primitives KRYPT-PRIM or functions KRYPT-FUNKT.
  • the at least one partition 302-1 has at least one computing core 302-1a, and, optionally, a memory assigned to the computing core 302-1a, for example working memory, for example RAM (random access memory) 302 -1 b.
  • a memory assigned to the computing core 302-1a for example working memory, for example RAM (random access memory) 302 -1 b.
  • the first partition 302-1 has a computing core 302-1a and a local working memory 302-1b, for example only assigned to the computing core 302-1a.
  • An identity of the first partition 302-1 is symbolized in FIG. 1 with the reference number 302-1-ID.
  • the identity of the first partition 302-1 may correspond to a CPU ID (central processing unit identifier) of the computing core 302-1a or be based on the CPU ID of the computing core 302-1a.
  • a second partition 302-2 has a computing core 302-2a and a local working memory 302-2b, for example only assigned to the computing core 302-2a.
  • An identity of the second partition 302-2 is symbolized in FIG. 1 with the reference number 302-2-ID.
  • the identity the second partition 302-2 correspond to a CPU ID of the computing core 302-2a or are based on the CPU ID of the computing core 302-2a.
  • FIG. 1 more than the two partitions 302-1, 302-2 shown here as an example in FIG. 1 can be provided, which is symbolized in FIG. 1 by the three vertically arranged points at the bottom left in FIG is.
  • FIG the partitions 302-1, 302-2, ... and/or with other components not shown for reasons of clarity form a system on chip, SoC, 1000.
  • a first communication channel K1 is provided, via which the first partition 302-1, for example only the first partition 302-1 (i.e. none of the other partitions 302-2, ...), information , e.g. data, can be exchanged with the hardware security module 100, see block arrow A1.
  • a second communication channel K2 is provided, via which the second partition 302-2, for example only the second partition 302-2 (i.e. none of the other partitions 302-1, ...), receives information , e.g. data, can be exchanged with the hardware security module 100, see block arrow A2.
  • individual communication channels comparable to the communication channels K1, K2 can also be provided for at least some of the additional partitions that are optionally present (not shown).
  • FIG. 1 it is thus provided that each partition 302-1, 302-2, ... communicates information, for example data, with the hardware via its own or individual communication channel K1, K2, ... Security module 100 replaced.
  • FIG. 4 shows a simplified block diagram of an SoC 1000′ according to further exemplary embodiments, in which instead of a plurality of individual communication channels K1, K2, ... (FIG. 1), a, for example, single, communication channel K is provided, which, for example, in a time division multiplex operation, can be used jointly by several partitions 302-1, 302-2, ..., cf. the block arrows AT, A2 '.
  • mixed forms (not shown) of the exemplary configuration 1000 according to FIG. 1 and the exemplary configuration 1000 'according to FIG. 4 are also possible, in which, for example, a first number of (e.g. one or more) partitions each have an individual communication channel (see, for example, the elements K1, K2 according to FIG. 1) for exchanging information with the hardware security module 100, and in which, for example, a second number of (e.g. one or more) partitions share a communication channel (see, for example, element K according to FIG. 4) for Information exchange with the hardware security module 100.
  • a first number of (e.g. one or more) partitions each have an individual communication channel (see, for example, the elements K1, K2 according to FIG. 1) for exchanging information with the hardware security module 100
  • a second number of partitions share a communication channel (see, for example, element K according to FIG. 4) for Information exchange with the hardware security module 100.
  • At least one partition 302-1 both has an individual communication channel K1 to the hardware security module 100 and is designed to do so, for example with one or more further partitions 302 -2, ... to use a common communication channel K to the hardware security module 100.
  • determining 200 (FIG. 2) the first information 1-1 comprises at least one of the following elements: a) determining 200a (FIG. 3) the first information 1-1 based on a communication channel K1 (FIG. 1), which is associated, for example statically, for example exclusively, with the at least one partition 302-1 (see, for example, the configuration 1000 according to FIG. 1), b) receiving 200b of the first information 1-1 via a communication channel K (Fig. 4), which can be used at least temporarily by the at least one partition 302-1, whereby, for example, the communication channel K, for example in time division multiplex, can be used by several partitions 302-1, 302-2, ... (see, for example, the configuration 1000' according to Fig. 4).
  • the first information 1-1 is provided implicitly, for example, by making an, for example static, assignment of a specific communication channel K1 with a specific partition 302-1 becomes.
  • the hardware security module 100 can derive an identity 302-1 -ID of a specific partition 302-1 based on this via soft (e.g. statically assigned) communication channel K1 (e.g. from several communication channels K1, K2, ... ) Information, e.g. data, A1 has been received from partition 302-1.
  • the first information 1-1 and/or further information characterizing the first information 1-1 can be sent, for example, directly from a partition 302-1 via, for example, together with further partitions 302-2, ... usable communication channel K are transmitted, for example together with data for operation of the hardware security module, see for example the reference numbers 1-1 in the block arrows AT, A2 'in Fig. 4.
  • the first information 1-1 and/or further information characterizing the first information 1-1 can be transmitted, for example, directly from a partition 302-1 to the hardware security module 100 via, for example, an individual communication channel K1 , e.g. together with data for operation of the hardware security module 100.
  • this is e.g. due to the exemplary static, e.g. 1-to-1, assignment of partitions 302-1, 302-2 to communication channels K1, K2 1 is not necessary for the hardware security module 100 to obtain the first information 1-1, for example to determine or be able to determine an identity of a partition accessing the hardware security module 100.
  • the separate transmission of, for example, the first information 1-1, for example via a partition-specific communication channel K1 is not excluded in further exemplary embodiments.
  • the method comprises: receiving 210 of second information I-2, for example an interrupt request (eg interrupt request) I RQ1, IRQ2 and/or associated with an interrupt request, i.e. information associated with an interrupt request, from the at least one partition 302-1, 302-2, ... (FIG. 1), Determining 212 (FIG. 5) the first information 1-1 based on a communication channel K1, K2, ... via which the second information I-2 was received. For example, when the hardware security module 100 receives a first interrupt request IRQ1, for example via the first communication channel K1 according to FIG.
  • an interrupt request eg interrupt request
  • IRQ2 e.e. information associated with an interrupt request
  • the hardware security module 100 can conclude that the second interrupt request IRQ2 or data associated with the second interrupt request IRQ2 are from the second Partition 302-2 because the second communication channel K2, for example statically, is assigned to the second partition 302-2, etc.
  • FIG. 6 it is provided that the method has at least one of the following elements: a) using 220 several communication channels K1, K2, ... (FIG. 1) for communication with different partitions 302-1, 302-2, ... (FIG. 1) of the computing device 1000 (i.e., for example, for communication of the hardware security module 100 according to FIG. 1 with the different partitions 302-1, 302-2, ... of the computing device 1000), for example, using 220a (FIG. 6) a first communication channel K1 of the plurality of communication channels K1, K2, ..., for example exclusively, for communication A1 with the first partition 302-1 and using 220b (FIG.
  • a) using 220 several communication channels K1, K2, ... (FIG. 1) for communication with different partitions 302-1, 302-2, ... (FIG. 1) of the computing device 1000 i.e., for example, for communication of the hardware security module 100 according to FIG. 1 with the different partitions 302-1, 302-2, ... of the computing device 1000
  • 220a FIG. 6
  • FIG. 7 it is provided that the method has at least one of the following elements: a) using 225 a first memory area SB-1 (FIG. 1), for example comprising a number of memory registers (not shown), for Implementation of a first communication channel K1, b) Use 227 (FIG.
  • FIG. 7 of a second memory area SB-2 (FIG. 1), for example having a number of memory registers, to implement a second communication channel K2, c) Use 229 (FIG. 7) a third memory area SB-3, for example having a number of memory registers, to realize a common communication channel K (Fig. 4) for communication with different partitions 302-1, 302-2, ... of the computing device 1000, 1000 '.
  • At least one of the memory areas SB-1, SB-2, SB-3 can be provided in a shared memory (i.e. usable by one or more partitions and the hardware security module 100), for example main memory, RAM, SH-RAM be.
  • a shared memory area SH-MEM for example shared memory, for example a main memory, for example RAM, SH-RAM, for example for exchanging of information, for example data, with the at least one partition 302-1, 302-2, ..., b) virtualizing 232 of the shared memory area SH-MEM, for example comprising assigning different subareas, for example the memory areas SB-1, SB- 2, the shared memory area SH-MEM to a different partition 302-1, 302-2 of the computing device, c) using 234 (Fig. 8) an optional memory protection device MPU (Fig. 1, 4), for example a dynamic memory protection device, D -MPLI, for example for, for example, dynamically protecting at least some memory areas SB-1 from access by at least some partitions 302-2 of the computing device.
  • MPU Fig. 1, 4
  • D -MPLI dynamic memory protection device
  • the method comprises: configuring 240 one or the memory protection device MPU, for example dynamic memory protection device, D-MPU, where
  • the configuration 240 is carried out in such a way that the memory protection device MPU protects at least one memory area SB-1 (FIGS. 1, 4), which is associated, for example, with one or the first partition 302-1, from manipulation by at least one further partition 302-2 , ... protects.
  • the optional block 242 according to FIG. 9 symbolizes a use of the at least one memory area SB-1 for data exchange between the first partition 302-1 and the hardware security module 100.
  • the method comprises: assigning 245 a priority PR-1 to the at least one partition 302-1, executing 247 an operation OP-302- associated with the at least one partition 302-1. 1 (e.g., encrypting data) based on at least the priority PR-1 of the at least one partition 302-1.
  • the priority PR-1 may be assigned, for example, based on the first information 1-1. Further exemplary aspects and embodiments relating to priority are described below, for example, with reference to FIG. 15.
  • FIG. 21 relate to a device 400 for carrying out the method according to the embodiments.
  • the device 400 can be implemented, for example, by means of hardware, for example exclusively by means of hardware, and at least in some exemplary embodiments can be integrated into a hardware security module 100, see, for example, FIGS. 1, 4.
  • FIGS. 1, 4 relate to a hardware security module 100 having at least one device 400 according to the embodiments.
  • the device 400 has: a computing device ("computer") 402, for example having at least one computing core 402a, a memory device 404 assigned to the computing device 402 for at least temporarily storing at least one of the following elements: a) Data DAT (e.g.
  • the memory device 404 has a volatile memory 404a (e.g. random access memory (RAM)), and/or a non-volatile memory 404b (e.g. flash EEPROM), or a combination thereof or with other memory types not explicitly mentioned.
  • volatile memory 404a e.g. random access memory (RAM)
  • non-volatile memory 404b e.g. flash EEPROM
  • exemplary embodiments relate to a computer-readable storage medium SM, e.g. semiconductor memory and/or optical data carrier and/or magnetic storage medium, comprising instructions PRG which, when executed by a computer 402, cause the computer 402 to carry out the method according to the embodiments.
  • SM computer-readable storage medium
  • PRG e.g. semiconductor memory and/or optical data carrier and/or magnetic storage medium
  • FIG. 402 Further exemplary embodiments relate to a computer program PRG, comprising instructions that, when the program PRG is executed by a computer 402, cause it to carry out the method according to the embodiments.
  • the data carrier signal DCS can be transmitted, for example, via an optional data interface 406, for example as well as other optional data D.
  • the hardware security module 100 for example when integrating the device 400 or a functionality of the device 400 into the hardware security module 100, at least some of the components 402, 402a, 404, 404a, 404b, ... of the device 400 according to FIG. 21 e.g. using corresponding and possibly already existing components of the hardware
  • Security module 100 can be realized or implemented (e.g. the computing core 402a according to FIG. 21 by the HSM computing core 102, etc.).
  • FIGS. 1, 4 relate to a computing device, for example a microcontroller or microprocessor or system on chip, SoC, 1000, 1000', having at least one of the following elements: a) device 400 according to the embodiments, b) hardware Security module 100, for example according to the embodiments, c) at least one partition 302-1, 302-2, ..., for example having at least one computing core 302-1a, 302-2a, ..., and, optionally, memory assigned to the partition , e.g. main memory, e.g. RAM 302-1 b, 302-2b, ....
  • main memory e.g. RAM 302-1 b, 302-2b, ....
  • Fig. 11 relate to a method for transmitting with a hardware security module 100 (Fig.
  • FIG. 11 it is provided that the provision 250 and/or the transmission 252 is carried out, for example completely, on a hardware basis.
  • Fig. 12 relate to a method for transmitting with a hardware security module 100 (Fig.
  • 4) associated data comprising: providing 260 (Fig. 12) of a first communication channel K1 (Fig. 1) for an exchange of information A1 between a, for example exactly one, first partition 302-1 of a computing device and the hardware security module 100, and, optionally, using 262 the first communication channel K1 for the exchange of information A1 between the first partition 302-1 of the computing device and the hardware security module 100.
  • FIG. 13 it is provided that the method comprises: providing 264 a second communication channel K2 (FIG. 1) for an exchange of information A2 between a, for example exactly one, second partition 302-2 of the computing device and the hardware Security module 100, and, optionally, using 266 the second communication channel K2 for the exchange of information A2 between the second partition 302-2 of the computing device and the hardware security module 100.
  • a second communication channel K2 FIG. 1
  • Fig. 1 relate to a device 301 for carrying out the method, for example for transmitting the data associated with a hardware security module, according to the embodiments, for example according to Fig. 11 and/or Fig. 12 and/or Fig .13.
  • the device 301 (FIG. 1), for example, has a configuration that is comparable or at least similar to the device 400 according to FIG. 21, with an, for example purely hardware-based, implementation being possible.
  • Element e1 symbolizes an application or an application program that can be executed on the partition 302-T and that, for example, executes security-related functions and uses the hardware security module 100 'at least temporarily for this purpose.
  • Element e2 symbolizes a preparation of data for processing by means of the hardware security module 100', for example a "security job”.
  • Arrow a1 symbolizes the writing of the prepared data into a memory area e5a of a memory e5, for example shared RAM, which is shared, for example, with the hardware security module 100'.
  • Element e3 symbolizes signaling to the hardware security module 100', for example that the security job is ready for processing by the hardware security module 100', see also the arrow a2.
  • signaling e3 can be accomplished using an interrupt request that partition 302-T sends to hardware security module 100'.
  • the hardware security module 100 ' can also be transmitted, for example, information characterizing the memory area e5a, for example in the form of a pointer to a corresponding address of the shared memory e5, and/or information that, for example a cryptographic key KS-1 (FIG. 1) stored in the hardware security module 100 ', for example in the form of a pointer to a corresponding address of the key memory KS.
  • Element e6 symbolizes receiving or reading the information or data signaled by partition 302-T, see also arrow a3.
  • Elements? symbolizes processing of the data by the hardware security module 100'.
  • Element e8 symbolizes an output of a result of data processing by the hardware security module 100 ', e.g. in the memory area e5b of the shared memory e5, see also the arrow a4.
  • Element e4 symbolizes a reading of the result of the data processing of the hardware security module 100' by the partition 302-T, see also the arrow a5.
  • the identity 302-T-ID is provided, for example, via a hardware-based, for example purely hardware-based, mechanism, so that manipulation, for example by software, for example the application e1, is not possible.
  • the identity 302-T-ID of the partition 302-T in at least some, for example several, for example each, for example any, interaction of the partition 302-T, for example with the memory e5 and/or is transmitted with the hardware security module 100', for example (for example, if necessary in addition to other information or data).
  • the hardware security module 100' and the at least one partition 302-T are configured so that they contain information or data, for example about at least one corresponding address area e5a, e5b, which is stored, for example, in the shared memory, for example shared memory.
  • shared memory for example shared memory.
  • shared RAM shared RAM
  • this address area contains, for example, information that characterizes which operation(s) are to be carried out in the hardware security module 100′, as well as possibly a pointer, for example a pointer, to data that is, for example, for the operation(s) can be used (e.g., a pointer to data that is to be encrypted by the hardware security module 100', and possibly further information, e.g. regarding the operation(s) to be carried out (e.g. parameters)).
  • a pointer for example a pointer
  • a device 400 according to the embodiments can be provided in the hardware security module 100′, which in further exemplary embodiments can also be referred to, for example, as a “partition detector”.
  • the device 400 associates and/or manages an, e.g., unique, identity, e.g., “Partition ID,” for some, e.g., all, operations performed or invoked in the hardware security module 100′.
  • Partition ID e.g., unique, identity
  • all operations that are carried out or called in the hardware security module 100 ' can be traced back to a specific partition, for example designated as the "original partition”.
  • a number of partitions and/or associated partition IDs are configured, for example, based on a number of physical partitions 302-1, 302-2, ... (FIG. 1) in the system, for example SoC 1000. 1, for example, when an operation of a partition 302-1 in the hardware security module 100 is performed, for example by the device 400 and/or under control by the device 400, it is ensured that: e.g. only data that is associated with this partition 302-1 can be accessed.
  • at least one function, for example application, of the hardware security module 100 such as the key memory KS or a secure data storage (for example secure log, not shown), can be virtualized accordingly.
  • the hardware security module 100, 100' is designed to carry out scheduling, for example scheduling, for example preemptive scheduling, of operations.
  • the scheduling can be implemented, for example, via a software-based or firmware-based mechanism SCHED-MECH in the hardware security module 100, 100'.
  • individual operations are assigned a corresponding priority, and the individual operations are executed on the hardware security module 100 in accordance with the assigned priority.
  • the optional e.g. firmware-based mechanism SCHED-MECH according to FIG. 1 can optionally also be provided in the HSM 100 according to FIG. 4, but is not shown there for reasons of clarity.
  • a lower priority operation is executed while a higher priority operation reaches the hardware security module 100 (e.g., by signaling through a partition)
  • the new operation is prioritized and the lower priority operation is paused.
  • information eg, all information describing the state of the operation, is saved in a memory so that the lower priority operation can be completed, eg, after the higher priority operation has been executed.
  • the Preemptive scheduling can be designed in such a way that the device 400 and/or the scheduling mechanism SCHED-MECH, for example in the hardware security module 100, is configured in such a way that individual partitions also have respective priorities, which, for example, are the priorities of a certain threshold value specific operation. In this way, in further exemplary embodiments, it is prevented that individual operations of individual partitions can "starve", i.e. are not carried out (or, for example, not at all) over a comparatively long period of time.
  • the above-mentioned threshold value can be defined, for example, using comparatively complex rules, but in even further exemplary embodiments, comparatively simple rules are also possible.
  • a simplified example according to further exemplary embodiments is shown in the diagram according to FIG. 15, in which a horizontal axis t characterizes time and a vertical axis P characterizes a priority.
  • four different priority values 1, 2, 3, 4 are provided here by way of example, and by way of example, and without limiting the generality, it is assumed that there are four partitions that are based on the hardware security module 100 (FIG. 1). can access.
  • scheduling is provided, for example via a software-based or firmware-based mechanism SCHED-MECH (FIG. 1), in the hardware security module 100, 100' such that operations of a first partition 302-1, for example, only a maximum of two times interrupted may be.
  • an operation e10 of the first partition with priority value 1 (lowest priority) is interrupted by an operation e15 of a third partition (priority value 3) and then by an operation e14 of a second partition (priority value 2).
  • a fourth operation (priority value 4) is executed e17, the first operation is continued, for example completely executed, see element e12.
  • Element e11 symbolizes an interruption of the first operation e10
  • element e13 symbolizes an operation of the second partition waiting for operation e15 to complete
  • element e16 symbolizes operation e17 of the fourth partition waiting for operation e12 to complete.
  • virtualization of a communication channel between partitions 302-1, 302-2, ... (FIG. 1) of the computing device and the hardware security module 100, 100' is provided.
  • different methods can be used for signaling which partition of the multiple partitions 302-1, 302-2, ... e.g. currently wants to initiate communication with the hardware security module 100, 100'.
  • a multiplication of the communication channel is provided, see for example the configuration 1000 according to FIG. 4.
  • each individual partition 302-1, 302-2, ... is assigned a, for example, full register set (for example, a set of storage registers), which is used for communication with the hardware Security module 100, 100 'is used, see channel K1 for the first partition 302-1, channel K2 for the second partition 302-2, etc.
  • each partition 302-1 , 302-2, ... physically unique a complete register set is provided.
  • the register sets are numbered consecutively, for example, so that the device 400, for example the "partition detector", in the hardware security module 100, 100 'can clearly determine, for example validate, which partition a corresponding communication came from.
  • an advantage of this variant is that there can be no collisions in the communication channel (or the multiple channels K1, K2, ...) between the individual partitions 302-1, 302-2, ... .
  • a (e.g. common) communication channel K (FIG. 4) is shared between the individual partitions 302-1, 302-2, ..., in this case, for example, all partitions with unique identities (e.g. "Partition ID"), which in further exemplary embodiments are derived, for example, based on a CPU ID of their respective computing core.
  • the partition ID is represented, for example, by a byte value (i.e. a quantity of information comprising 8 bits), which is, for example, unique.
  • a byte value i.e. a quantity of information comprising 8 bits
  • its unique partition ID is transmitted to the hardware security module, for example in addition to any other information or data to be transmitted in the communication channel K. If the communication channel K is currently occupied by another partition, for example, it can be provided that the partition waits until the communication channel K is available again for sending further communication (such as an interrupt).
  • an advantage of this method can be that a single communication channel K is present, so the communication channel K, for example, does not have to be duplicated.
  • FIG. 1, virtualization of the shared memory SH-MEM may be provided.
  • the shared memory SH-MEM can be used, for example, to exchange data between the partitions and the hardware security module 100, 100'.
  • it can be provided that several, for example all, partitions access the shared memory SH-MEM. This could be the case
  • a situation may arise in which a second partition manipulates the data of the first partition in the shared memory SH-MEM and thus possibly influences the processing of an operation in the hardware security module 100, 100 '.
  • this is prevented, for example, by at least one of the following elements: a) virtualization of the shared memory SH-MEM, for example by means of sharing, b) use of a memory protection device MPU, for example dynamic MPU.
  • a virtualization of the shared memory SH-MEM is carried out using sharing, the shared memory being configured, for example, in such a way that dedicated areas SB-1, SB-2, for example per partition 302-1, 302-2 are specified, in which, for example, only one partition can write at a time and, for example, the other partitions can only operate read (or not at all).
  • the hardware security module 100, 100' can be designed, for example configured, in such a way that it can operate both read and write on all memory areas that are, for example, configured accordingly, which in further exemplary embodiments has a comparatively high reliability offers.
  • a Dynamic Memory Protection Unit (D-MPU) MPU (FIG. 1) can be used to virtualize individual memory areas, for example memory blocks.
  • the D-MPU for example similar to an MPU, protects memory and address areas.
  • the D-MPU for example unlike a conventional MPU or MMU (memory management device), can be dynamically, for example on-demand (i.e. on demand, and therefore flexible), for example by the hardware security module 100, 100 ', for example can be configured in response to a request from a software application e1 (FIG. 14), for example so that predeterminable address areas of the memory device are protected accordingly.
  • the hardware security module 100, 100' can make changes to this memory area. This achieves, for example, in further exemplary embodiments that: a potential attacker who, for example, has taken over a software system (e.g. exclusive of the hardware security module 100, 100'), does not transfer any manipulated information to the hardware security module 100, 100' and/or during data processing by the hardware security module 100, 100 ' makes appropriate changes to the contents in a memory area.
  • a potential attacker who, for example, has taken over a software system (e.g. exclusive of the hardware security module 100, 100') does not transfer any manipulated information to the hardware security module 100, 100' and/or during data processing by the hardware security module 100, 100 ' makes appropriate changes to the contents in a memory area.
  • D-MPLI information is provided as to which partition owns the respective memory area.
  • the use of D-MPLI for example, also prevents manipulations from being carried out by one partition in the memory area of another partition.
  • an owning partition is additionally prevented from manipulating its memory area after it has sent the data to the hardware security module 100, 100 ', for example for the purpose of operating on the memory area. has handed over.
  • the D-MPLI is configured dynamically, for example at runtime, for example exclusively, by a hardware security module 100, 100'.
  • the D-MPLI can, for example, protect individual and/or multiple address areas in the memory from changes by the individual partitions.
  • a first column SP-1 characterizes a memory address
  • a second column SP-2 characterizes a data content
  • a third column SP-3 characterizes at least one protection flag, for example protection flag (for example characterizable by one or more bits, for example a, for example linear, bitmap )
  • a fourth column SP-4 characterizes an owner (e.g. owner), i.e. a partition that owns the corresponding memory area.
  • a first line Z-1 describes a memory address 0x00 with the data content 0x1245, a protection flag "W, and that this memory address is assigned to a first partition Par#1.
  • Another line Zk describes a Memory address OxAO with data content 0x156A, protection flags "R”, “W”, and that this memory address is assigned to a third partition Par#3.
  • Another line Zm describes a memory address OxBA with the data content 0xA352, a protection flag "W”, and that this memory address is assigned to all partitions.
  • Another line Zo describes a memory address 0xD3 with data content 0x425D, without protection flags, and that this memory address is assigned to a second partition Par#2.
  • the protection flags are defined, for example, as follows:
  • the protection flags of the memory area can change at runtime, for example due to a corresponding configuration of the D-MPU by the hardware security module 100, 100'.
  • the hardware security module 100, 100' protects at least one memory area, for example from further access, for example manipulation, for example by an owner (eg "partition owner"), for example after data has been transferred from the partition to the Hardware security module 100, 100 'have been handed over, whereby Further exemplary embodiments, for example, time-of-check/time-of-use attacks can be prevented.
  • Examples of aspects of a key storage KS (FIG. 1) according to further exemplary embodiments are described below, for example regarding virtualization of the key storage KS.
  • aspects of the device 400 for example in the sense of a "partition detector”, are illustrated using the example of the key memory KS, with the aspects mentioned in further exemplary embodiments also being applicable to other, for example all other, application scenarios of the hardware security module 100, 100' can be transferred where, for example, sensitive data belongs to a specific partition, such as applications relating to the aspect of "secure logging".
  • all cryptographic keys are stored securely in the key memory KS.
  • the key memory KS is, for example, stored encrypted in a flash memory and, for example, loaded into the hardware security module 100, 100 'during an initial boot.
  • the corresponding access rights are configured for each individual entry in the key storage KS.
  • the key storage KS for example in addition to access rights such as "Read”, “Write”, “Executable”, for example per Key entry KS-1, KS-2, KS-3, ... also corresponding additional protection flags, for example as described above as an example for a memory device, for example the shared memory SH-MEM, are provided, for example set. If these protection flags are set accordingly, it would mean, for example, that a partition can overwrite a key, but another partition can only use the key (but not overwrite it, for example).
  • the setting of a read flag for the key memory KS can also be provided. 17 schematically shows a simplified table containing information of an example key store, according to example embodiments.
  • a key identification (e.g. key ID) is contained in column SP-1
  • column SP-2 contains the cryptographic key
  • column SP-3 contains information about a key type or an algorithm for which the key in question can be used
  • column SP-4 contains further properties of the key in question (e.g. "Verify-only”, “for verification only”, “Signing Key”, “Key for signing")
  • column SP-5 indicates a partition as the owner of the key in question, if applicable at.
  • only the owner of the key according to column SP-5 may use the relevant cryptographic key for operations. Further rights granularities are also possible in further exemplary embodiments, but are not shown in the exemplary illustration according to FIG. 17.
  • a hardware security module 100" is shown, which is arranged, for example, on the same semiconductor substrate 1002 as several partitions e32-1, ..., e32-n of a computing device.
  • An exchange of information or data between the components e32-1, . .. , e32-n, 100" is carried out, for example, via a chip-internal ("on-chip") bus system a6.
  • Some, for example all, partitions e32-1, ... , e32-n each have a unit e32-T, e32-n' for providing an identification ID#1, ... , ID#n of the partition e32- assigned to it.
  • the hardware security module 100 obtains first information 1-1, which characterizes an identity of at least one partition e32-1, ..., e32-n accessing the hardware security module 100".
  • Element e21 symbolizes an optional facility to support debug processes.
  • Element e22 symbolizes a, for example, secure computing core.
  • Element e23 symbolizes at least one entropy source, for example a pseudo-random number generator (PRNG) or a random number generator (TRNG).
  • PRNG pseudo-random number generator
  • TRNG random number generator
  • Element e24 symbolizes a memory, for example secure (for example secured against access outside the hardware security module 100"), for example volatile memory, e.g. main memory, e.g. a secure local RAM.
  • Element e25 symbolizes a device for forming hash values.
  • Element e26 symbolizes an interface to the bus system a6.
  • Element e27 symbolizes the device 400 according to the embodiments.
  • Element e28 symbolizes a device for executing cryptographic primitives and/or functions, for example based on ECC (Elliptic Curve Cryptography).
  • Element e29 symbolizes a device for executing cryptographic primitives and/or functions, for example based on the RSA algorithm.
  • Element e30 symbolizes a device for executing cryptographic primitives and/or functions, for example based on the AES algorithm.
  • Element e31 symbolizes a memory device, for example connected via the bus system a6, for example of the RAM type, which is divided, for example, into a shared memory area e31a, a system RAM e31b, and a protected area e31c.
  • the device e27, 400 can determine an identity of individual partitions e32-1, ... and, for example, provide it for controlling operation of the hardware security module 100" on the basis of the determined identity.
  • FIG. 19 schematically shows a simplified block diagram of an SoC 1000" according to exemplary embodiments, which has a computing device 300 with multiple partitions e32-1, e32-2, ..., e32-n, a hardware security module 100", a storage device e31 , for example similar or identical to the configuration according to FIG. 18.
  • Element e33 symbolizes a D-MPLI with a configuration e33a, which can be specified and/or changed, for example, by the hardware security module 100", for example via the bus system a6.
  • Element e34 symbolizes a non-volatile memory, for example a flash memory, for example host flash, which has, for example, a memory area e34a for data and a memory area e34b for program code.
  • Element e35a symbolizes a chip or SoC-internal diagnostic interface
  • element e35b symbolizes the diagnostic interface e35a associated registers
  • element e35c symbolizes an external diagnostic device (located outside the SoC 1000"), for example a debug access port, i.e. connection for diagnostic access, for example for debugging.
  • the element e36 symbolizes a device for processing, for example, data associated with the AES, which is connected to the interface e26, for example via a secure bus system a9, for example in the same or similar way as the flash memory e20 assigned to the hardware security module 100", see .
  • the safe bus system a10 The flash memory e20 has, for example, a data area e20a and an area e20b for program code.
  • Fig. 20 relate to a use 500 of the method according to the embodiments and/or the device 301, 400 according to the embodiments and/or the hardware security module 100, 100', 100" according to the embodiments and/or the computing device 300, 1000, 1000' according to the embodiments and/or the computer-readable storage medium SM according to the embodiments and/or the computer program PRG according to the embodiments and/or the data carrier signal DCS according to the embodiments for at least one of the following elements: a) Determine 501 of first information 1-1 that characterizes an identity of at least one partition of a computing device designed to access the hardware security module, for example accessing the hardware security module, b) virtualizing 502 of a hardware security module, c) determining 503 an identity of a Partition accessing the hardware security module, d) prioritizing 504 operations associated with different partitions of a computing device based on an identity of at least one of the different partitions, e) increasing 505 a security of a hardware security module
  • the principle according to the statements can be used, for example, for microprocessors and/or microcontrollers or for SoCs 1000, 1000', 1000", e.g. for control devices, e.g. for vehicles, e.g. motor vehicles (e.g. control devices for internal combustion engines and/or airbags and/or brake systems, etc. ), and/or for, but not limited to, domain controllers.
  • control devices e.g. for vehicles, e.g. motor vehicles (e.g. control devices for internal combustion engines and/or airbags and/or brake systems, etc. ), and/or for, but not limited to, domain controllers.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

Verfahren zum Verarbeiten von mit einem Hardware-Sicherheitsmodul assoziierten Daten, aufweisend: Ermitteln von ersten Informationen, die eine Identität wenigstens einer zum Zugriff auf das Hardware-Sicherheitsmodul ausgebildeten, beispielsweise auf das Hardware-Sicherheitsmodul zugreifenden, Partition einer Recheneinrichtung charakterisieren, und, optional, Verwenden der ersten Informationen, beispielsweise für eine Steuerung eines Betriebs des Hardware-Sicherheitsmoduls basierend wenigstens auf den ersten Informationen.

Description

Beschreibung
Titel
Verfahren und Vorrichtung zum Verarbeiten von mit einem Hardware- Sicherheitsmodul assoziierten Daten
Stand der Technik
Die Offenbarung betrifft ein Verfahren zum Verarbeiten von mit einem Hardware- Sicherheitsmodul assoziierten Daten.
Die Offenbarung betrifft ferner eine Vorrichtung zum Verarbeiten von mit einem Hardware-Sicherheitsmodul assoziierten Daten.
Offenbarung der Erfindung
Beispielhafte Ausführungsformen beziehen sich auf ein Verfahren zum Verarbeiten von mit einem Hardware-Sicherheitsmodul assoziierten Daten, aufweisend: Ermitteln von ersten Informationen, die eine Identität wenigstens einer zum Zugriff auf das Hardware-Sicherheitsmodul ausgebildeten, beispielsweise auf das Hardware-Sicherheitsmodul zugreifenden, Partition einer Recheneinrichtung charakterisieren, und, optional, Verwenden der ersten Informationen, beispielsweise für eine Steuerung eines Betriebs des Hardware- Sicherheitsmoduls basierend wenigstens auf den ersten Informationen. Bei weiteren beispielhaften Ausführungsformen kann dadurch z.B. sichergestellt werden, dass verschiedene Partitionen der Recheneinrichtung bzw. mit den verschiedene Partitionen assoziierte Computerprogramme wie z.B. Anwendungsprogramme nicht durch das Hardware-Sicherheitsmodul verarbeitbare Daten anderer Partitionen manipulieren.
Bei weiteren beispielhaften Ausführungsformen ist das Hardware- Sicherheitsmodul dazu ausgebildet, kryptografische Primitiven und/oder Funktionen auszuführen, wie z.B. Verschlüsseln und/oder Entschlüsseln und/oder Bildung von Hashwerten und/oder Bildung von Nachrichten- Authentifizierungscodes, usw.
Bei weiteren beispielhaften Ausführungsformen weist das Hardware- Sicherheitsmodul einen Schlüsselspeicher zum Speichern kryptografischer Schlüssel auf. Beispielsweise ist basierend auf den ersten Informationen steuerbar, welche von mehreren Partitionen, die Funktionen des Hardware- Sicherheitsmoduls nutzen können, bestimmte kryptografische Schlüssel verwenden dürfen. Z.B. kann bei weiteren beispielhaften Ausführungsformen vorgesehen sein, dass manche Partitionen nur bestimmte kryptografische Schlüssel verwenden dürfen, andere Partitionen hingegen z.B. alle kryptografischen Schlüssel, usw.
Bei weiteren beispielhaften Ausführungsformen weist die wenigstens eine Partition wenigstens einen Rechenkern auf, und, optional, einen dem Rechenkern zugeordneten Speicher, z.B. Arbeitsspeicher, z.B. RAM (random access memory).
Bei weiteren beispielhaften Ausführungsformen weist das Ermitteln der ersten Informationen wenigstens eines der folgenden Elemente auf: a) Ermitteln der ersten Informationen basierend auf einem Kommunikationskanal, der, beispielsweise statisch, beispielsweise ausschließlich, mit der wenigstens einen Partition assoziiert ist, b) Empfangen der ersten Informationen über einen Kommunikationskanal, der zumindest zeitweise von der wenigstens einen Partition verwendbar ist, wobei beispielsweise der Kommunikationskanal, beispielsweise im Zeitmultiplex, durch mehrere Partitionen verwendbar ist.
Mit anderen Worten kann bei weiteren beispielhaften Ausführungsformen vorgesehen sein, dass die ersten Informationen gleichsam implizit bereitgestellt werden, z.B. indem eine, z.B. statische, Zuordnung eines bestimmten Kommunikationskanals mit einer bestimmten Partition vorgenommen wird. D.h., bei weiteren beispielhaften Ausführungsformen kann das Hardware- Sicherheitsmodul eine Identität einer bestimmten Partition basierend darauf ableiten, über weichen (z.B. statisch zugeordneten) Kommunikationskanal (z.B. von mehreren Kommunikationskanälen) Informationen, z.B. Daten, von der Partition empfangen worden sind.
Bei weiteren beispielhaften Ausführungsformen können die ersten Informationen und/oder die ersten Informationen charakterisierende weitere Informationen z.B. direkt von einer Partition über einen z.B. gemeinsam mit weiteren Partitionen nutzbaren Kommunikationskanal übertragen werden, z.B. zusammen mit Daten für einen Betrieb des Hardware-Sicherheitsmoduls.
Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass das Verfahren aufweist: Empfangen von zweiten Informationen, beispielsweise einer Unterbrechungsanforderung (z.B. interrupt request) und/oder assoziiert mit einer Unterbrechungsanforderung, von der wenigstens einen Partition, Ermitteln der ersten Informationen basierend auf einem Kommunikationskanal, über den die zweiten Informationen empfangen worden sind.
Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass das Verfahren wenigstens eines der folgenden Elemente aufweist: a) Verwenden mehrerer Kommunikationskanäle für eine Kommunikation mit unterschiedlichen Partitionen der Recheneinrichtung (also z.B. für eine Kommunikation des Hardware-Sicherheitsmoduls mit den unterschiedlichen Partitionen der Recheneinrichtung), beispielsweise Verwenden eines ersten Kommunikationskanals der mehreren Kommunikationskanäle, beispielsweise ausschließlich, für eine Kommunikation mit einer ersten Partition und Verwenden eines zweiten Kommunikationskanals der mehreren Kommunikationskanäle, beispielsweise ausschließlich, für eine Kommunikation mit einer zweiten Partition, b) Verwenden eines, beispielsweise gemeinsamen, Kommunikationskanals für eine Kommunikation mit unterschiedlichen Partitionen der Recheneinrichtung, beispielsweise basierend auf einem Zeitmultiplex- Verfahren.
Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass das Verfahren wenigstens eines der folgenden Elemente aufweist: a) Verwenden eines ersten Speicherbereichs, beispielsweise aufweisend eine Anzahl von Speicherregistern, zur Realisierung eines ersten Kommunikationskanals, b) Verwenden eines zweiten Speicherbereichs, beispielsweise aufweisend eine Anzahl von Speicherregistern, zur Realisierung eines zweiten Kommunikationskanals, c) Verwenden eines dritten Speicherbereichs, beispielsweise aufweisend eine Anzahl von Speicherregistern, zur Realisierung eines gemeinsamen Kommunikationskanals für eine Kommunikation mit unterschiedlichen Partitionen der Recheneinrichtung.
Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass das Verfahren wenigstens eines der folgenden Elemente aufweist: a) Verwenden eines geteilten Speicherbereichs, beispielsweise shared memory, beispielsweise eines Arbeitsspeichers, beispielsweise RAM, beispielsweise zum Austauschen von Informationen, beispielsweise Daten, mit der wenigstens einen Partition, b) Virtualisieren des geteilten Speicherbereichs, beispielsweise aufweisend ein Zuordnen unterschiedlicher Teilbereiche zu jeweils einer anderen Partition der Recheneinrichtung, c) Verwenden einer Speicherschutzeinrichtung, beispielsweise einer dynamischen Speicherschutzeinrichtung, D-MPLI, beispielsweise zum, z.B. dynamischen, Schützen wenigstens mancher Speicherbereiche vor Zugriffen wenigstens mancher Partitionen der Recheneinrichtung.
Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass das Verfahren aufweist: Konfigurieren einer bzw. der Speicherschutzeinrichtung, beispielsweise dynamischen Speicherschutzeinrichtung, D-MPLI, wobei beispielsweise das Konfigurieren so erfolgt, dass die Speicherschutzeinrichtung wenigstens einen Speicherbereich, der z.B. mit einer ersten Partition assoziiert ist, vor Manipulationen durch wenigstens eine weitere Partition schützt.
Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass das Verfahren aufweist: Zuordnen einer Priorität zu der wenigstens einen Partition, Ausführen einer mit der wenigstens einen Partition assoziierten Operation basierend wenigstens auf der Priorität der wenigstens einen Partition.
Weitere beispielhafte Ausführungsformen beziehen sich auf eine Vorrichtung zur Ausführung des Verfahrens gemäß den Ausführungsformen. Die Vorrichtung kann z.B. mittels Hardware realisiert sein und zumindest bei manchen beispielhaften Ausführungsformen in ein, z.B. ansonsten zumindest i.w. konventionelles, Hardware-Sicherheitsmodul integriert werden bzw. sein. Weitere beispielhafte Ausführungsformen beziehen sich auf ein Hardware- Sicherheitsmodul aufweisend wenigstens eine Vorrichtung gemäß den Ausführungsformen.
Weitere beispielhafte Ausführungsformen beziehen sich auf eine Recheneinrichtung, beispielsweise Mikrocontroller oder Mikroprozessor oder System on Chip, SoC, aufweisend wenigstens eines der folgenden Elemente: a) Vorrichtung gemäß den Ausführungsformen, b) Hardware-Sicherheitsmodul gemäß den Ausführungsformen, c) wenigstens eine Partition, z.B. aufweisend wenigstens einen Rechenkern, und, optional, der Partition zugeordneten Speicher, z.B. Arbeitsspeicher, z.B. RAM.
Weitere beispielhafte Ausführungsformen beziehen sich auf ein Verfahren zum Übermitteln von mit einem Hardware-Sicherheitsmodul assoziierten Daten, aufweisend: Bereitstellen einer Identität für wenigstens eine zum Zugriff auf das Hardware-Sicherheitsmodul ausgebildete, beispielsweise auf das Hardware- Sicherheitsmodul zugreifende, Partition einer Recheneinrichtung, Übermitteln von die Identität charakterisierenden Informationen an das Hardware- Sicherheitsmodul, beispielsweise über einen, z.B. für mehrere Partitionen gemeinsamen Kommunikationskanal.
Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass das Bereitstellen und/oder das Übermitteln, beispielsweise vollständig, hardwarebasiert erfolgt.
Weitere beispielhafte Ausführungsformen beziehen sich auf ein Verfahren zum Übermitteln von mit einem Hardware-Sicherheitsmodul assoziierten Daten, aufweisend: Bereitstellen eines ersten Kommunikationskanals für einen Informationsaustausch zwischen einer, beispielsweise genau einer, ersten Partition einer Recheneinrichtung und dem Hardware-Sicherheitsmodul, und, optional Verwenden des ersten Kommunikationskanals für den Informationsaustausch zwischen der ersten Partition der Recheneinrichtung und dem Hardware-Sicherheitsmodul.
Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass das Verfahren aufweist: Bereitstellen eines zweiten Kommunikationskanals für einen Informationsaustausch zwischen einer, beispielsweise genau einer, zweiten Partition der Recheneinrichtung und dem Hardware-Sicherheitsmodul, und, optional Verwenden des zweiten Kommunikationskanals für den Informationsaustausch zwischen der zweiten Partition der Recheneinrichtung und dem Hardware-Sicherheitsmodul.
Weitere beispielhafte Ausführungsformen beziehen sich auf eine Vorrichtung zur Ausführung des Verfahrens (z.B. zum Übermitteln der mit einem Hardware- Sicherheitsmodul assoziierten Daten) gemäß den Ausführungsformen.
Weitere beispielhafte Ausführungsformen beziehen sich auf ein computerlesbares Speichermedium, umfassend Befehle, die bei der Ausführung durch einen Computer diesen veranlassen, das Verfahren gemäß den Ausführungsformen auszuführen.
Weitere beispielhafte Ausführungsformen beziehen sich auf ein Computerprogramm, umfassend Befehle, die bei der Ausführung des Programms durch einen Computer diesen veranlassen, das Verfahren gemäß den Ausführungsformen auszuführen.
Weitere beispielhafte Ausführungsformen beziehen sich auf ein Datenträgersignal, das das Computerprogramm gemäß den Ausführungsformen überträgt und/oder charakterisiert.
Weitere beispielhafte Ausführungsformen beziehen sich auf eine Verwendung des Verfahrens gemäß den Ausführungsformen und/oder der Vorrichtung gemäß den Ausführungsformen und/oder des Hardware-Sicherheitsmoduls gemäß den Ausführungsformen und/oder der Recheneinrichtung gemäß den Ausführungsformen und/oder des computerlesbaren Speichermediums gemäß den Ausführungsformen und/oder des Computerprogramms gemäß den Ausführungsformen und/oder des Datenträgersignals gemäß den Ausführungsformen für wenigstens eines der folgenden Elemente: a) Ermitteln von ersten Informationen, die eine Identität wenigstens einer zum Zugriff auf das Hardware-Sicherheitsmodul ausgebildeten, beispielsweise auf das Hardware- Sicherheitsmodul zugreifenden, Partition einer Recheneinrichtung charakterisieren, b) Virtualisieren eines Hardware-Sicherheitsmoduls, c) Ermitteln einer Identität einer Partition, die auf das Hardware-Sicherheitsmodul zugreift, d) Priorisieren von mit unterschiedlichen Partitionen einer Recheneinrichtung assoziierten Operationen basierend auf einer Identität wenigstens einer der unterschiedlichen Partitionen, e) Steigern einer Sicherheit eines Hardware- Sicherheitsmoduls, auf das mehrere Partitionen einer Recheneinrichtung zugreifen können.
Weitere Merkmale, Anwendungsmöglichkeiten und Vorteile der Erfindung ergeben sich aus der nachfolgenden Beschreibung von Ausführungsbeispielen der Erfindung, die in den Figuren der Zeichnung dargestellt sind. Dabei bilden alle beschriebenen oder dargestellten Merkmale für sich oder in beliebiger Kombination den Gegenstand der Erfindung, unabhängig von ihrer Zusammenfassung in den Ansprüchen oder deren Rückbeziehung sowie unabhängig von ihrer Formulierung bzw. Darstellung in der Beschreibung bzw. in der Zeichnung.
In der Zeichnung zeigt:
Fig. 1 schematisch ein vereinfachtes Blockdiagramm gemäß beispielhaften Ausführungsformen,
Fig. 2 schematisch ein vereinfachtes Flussdiagramm gemäß beispielhaften Ausführungsformen,
Fig. 3 schematisch ein vereinfachtes Flussdiagramm gemäß beispielhaften Ausführungsformen,
Fig. 4 schematisch ein vereinfachtes Blockdiagramm gemäß beispielhaften Ausführungsformen,
Fig. 5 schematisch ein vereinfachtes Flussdiagramm gemäß beispielhaften Ausführungsformen,
Fig. 6 schematisch ein vereinfachtes Flussdiagramm gemäß beispielhaften Ausführungsformen, Fig. 7 schematisch ein vereinfachtes Flussdiagramm gemäß beispielhaften Ausführungsformen,
Fig. 8 schematisch ein vereinfachtes Flussdiagramm gemäß beispielhaften Ausführungsformen,
Fig. 9 schematisch ein vereinfachtes Flussdiagramm gemäß beispielhaften Ausführungsformen,
Fig. 10 schematisch ein vereinfachtes Flussdiagramm gemäß beispielhaften Ausführungsformen,
Fig. 11 schematisch ein vereinfachtes Flussdiagramm gemäß beispielhaften Ausführungsformen,
Fig. 12 schematisch ein vereinfachtes Flussdiagramm gemäß beispielhaften Ausführungsformen,
Fig. 13 schematisch ein vereinfachtes Flussdiagramm gemäß beispielhaften Ausführungsformen,
Fig. 14 schematisch ein vereinfachtes Blockdiagramm gemäß beispielhaften Ausführungsformen,
Fig. 15 schematisch ein vereinfachtes Zeitdiagramm gemäß beispielhaften Ausführungsformen,
Fig. 16 schematisch eine vereinfachte Tabelle gemäß beispielhaften Ausführungsformen,
Fig. 17 schematisch eine vereinfachte Tabelle gemäß beispielhaften Ausführungsformen,
Fig. 18 schematisch ein vereinfachtes Blockdiagramm gemäß beispielhaften Ausführungsformen, Fig. 19 schematisch ein vereinfachtes Blockdiagramm gemäß beispielhaften Ausführungsformen,
Fig. 20 schematisch Aspekte von Verwendungen gemäß weiteren beispielhaften Ausführungsformen, und
Fig. 21 schematisch ein vereinfachtes Blockdiagramm gemäß beispielhaften Ausführungsformen.
Beispielhafte Ausführungsformen, vgl. Fig. 1 , 2, beziehen sich auf ein Verfahren zum Verarbeiten von mit einem Hardware-Sicherheitsmodul 100 assoziierten Daten, aufweisend: Ermitteln 200 (Fig. 2) von ersten Informationen 1-1 , die eine Identität 302-1-ID (Fig. 1) wenigstens einer zum Zugriff auf das Hardware- Sicherheitsmodul 100 ausgebildeten, beispielsweise auf das Hardware- Sicherheitsmodul 100 zugreifenden, Partition 302-1 einer Recheneinrichtung 1000 (s. z.B. auch die Elemente 300, 1000" gemäß Fig. 19) charakterisieren, und, optional, Verwenden 202 (Fig. 2) der ersten Informationen 1-1, beispielsweise für eine Steuerung eines Betriebs des Hardware- Sicherheitsmoduls 100 (Fig. 1) basierend wenigstens auf den ersten Informationen 1-1. Bei weiteren beispielhaften Ausführungsformen kann dadurch z.B. sichergestellt werden, dass verschiedene Partitionen 302-1 , 302-2, ... (Fig. 1) der Recheneinrichtung 300, 1000, 1000" bzw. mit den verschiedenen Partitionen 302-1 , 302-2, ... assoziierte Computerprogramme wie z.B. Anwendungsprogramme nicht durch das Hardware-Sicherheitsmodul 100 verarbeitbare Daten z.B. jeweils anderer Partitionen manipulieren.
Bei weiteren beispielhaften Ausführungsformen, Fig. 1, ist das Hardware- Sicherheitsmodul 100 dazu ausgebildet, kryptografische Primitiven KRYPT-PRIM und/oder Funktionen KRYPT-FUNKT auszuführen, wie z.B. Verschlüsseln und/oder Entschlüsseln und/oder Bildung von Hashwerten HASH und/oder Bildung von Nachrichten-Authentifizierungscodes MAC, usw.
Bei weiteren beispielhaften Ausführungsformen weist das Hardware- Sicherheitsmodul 100 einen Schlüsselspeicher KS zum Speichern kryptografischer Schlüssel KS-1 , KS-2, KS-3, ... auf. Beispielsweise ist basierend auf den ersten Informationen 1-1 steuerbar, welche von mehreren Partitionen 302-1 , 302-2, ... , der Recheneinrichtung 1000 die Ressourcen, z.B. die kryptografischen Primitiven KRYPT-PRIM und/oder die kryptografischen Funktionen KRYPT-FUNKT und/oder die kryptografischen Schlüssel KS-1 , KS-2, KS-3, ... des Hardware-Sicherheitsmoduls 100 nutzen können. Z.B. kann bei weiteren beispielhaften Ausführungsformen vorgesehen sein, dass manche Partitionen 302-1 nur bestimmte kryptografische Schlüssel KS-1 verwenden dürfen, andere Partitionen 302-2 hingegen z.B. alle kryptografischen Schlüssel KS-1 , KS-2, KS-3, usw.
Bei weiteren beispielhaften Ausführungsformen weist das Hardware- Sicherheitsmodul 100 wenigstens einen, beispielsweise sicheren, Rechenkern 102 auf, der z.B. strukturell und/oder funktional von bezüglich des Hardware- Sicherheitsmoduls 100 externen Komponenten wie z.B. den Partitionen 302-1 , 302-2, ... getrennt sein kann, und der bei weiteren beispielhaften Ausführungsformen z.B. zur Ausführung wenigstens mancher der kryptografischen Primitiven KRYPT-PRIM bzw. Funktionen KRYPT-FUNKT ausgebildet ist.
Bei weiteren beispielhaften Ausführungsformen, Fig. 1 , weist die wenigstens eine Partition 302-1 wenigstens einen Rechenkern 302-1 a auf, und, optional, einen dem Rechenkern 302-1a zugeordneten Speicher, z.B. Arbeitsspeicher, z.B. RAM (random access memory) 302-1 b.
Vorliegend weist beispielsweise die erste Partition 302-1 einen Rechenkern 302- 1a auf und einen lokalen, also z.B., beispielsweise nur, dem Rechenkern 302-1a zugeordneten Arbeitsspeicher 302-1 b. Eine Identität der ersten Partition 302-1 ist in Fig. 1 mit dem Bezugszeichen 302-1-ID symbolisiert. Bei weiteren beispielhaften Ausführungsformen kann die Identität der ersten Partition 302-1 einer CPU-ID (central processing unit identifier) des Rechenkerns 302-1 a entsprechen bzw. auf der CPU-ID des Rechenkerns 302-1a basieren.
In vergleichbarer Weise weist beispielsweise eine zweite Partition 302-2 einen Rechenkern 302-2a auf und einen lokalen, also z.B., beispielsweise nur, dem Rechenkern 302-2a zugeordneten Arbeitsspeicher 302-2b. Eine Identität der zweiten Partition 302-2 ist in Fig. 1 mit dem Bezugszeichen 302-2-ID symbolisiert. Bei weiteren beispielhaften Ausführungsformen kann die Identität der zweiten Partition 302-2 einer CPU-ID des Rechenkerns 302-2a entsprechen bzw. auf der CPU-ID des Rechenkerns 302-2a basieren.
Bei weiteren beispielhaften Ausführungsformen, Fig. 1 , können mehr als die vorliegend beispielhaft zwei in Fig. 1 abgebildeten Partitionen 302-1 , 302-2 vorgesehen sein, was in Fig. 1 durch die drei vertikal angeordneten Punkte links unten in Fig. 1 symbolisiert ist.
Bei weiteren beispielhaften Ausführungsformen, Fig. 1, kann das Hardware- Sicherheitsmodul 100 zusammen mit den Partitionen 302-1 , 302-2, ... z.B. auf einem gemeinsamen Halbleitersubstrat (nicht in Fig. 1 gezeigt) angeordnet sein und/oder z.B. mit den Partitionen 302-1 , 302-2, ... und/oder mit weiteren, aus Gründen der Übersichtlichkeit nicht abgebildeten Komponenten ein System on Chip, SoC, 1000 bilden.
Bei weiteren beispielhaften Ausführungsformen, Fig. 1 , ist ein erster Kommunikationskanal K1 vorgesehen, über den die erste Partition 302-1 , beispielsweise nur die erste Partition 302-1 (also z.B. keine der anderen Partitionen 302-2, ...), Informationen, z.B. Daten, mit dem Hardware- Sicherheitsmodul 100 austauschen kann, vgl. den Blockpfeil A1.
Bei weiteren beispielhaften Ausführungsformen, Fig. 1 , ist ein zweiter Kommunikationskanal K2 vorgesehen, über den die zweite Partition 302-2, beispielsweise nur die zweite Partition 302-2 (also z.B. keine der anderen Partitionen 302-1, ...), Informationen, z.B. Daten, mit dem Hardware- Sicherheitsmodul 100 austauschen kann, vgl. den Blockpfeil A2.
Bei weiteren beispielhaften Ausführungsformen, Fig. 1 , können auch für zumindest manche von den z.B. optional vorhandenen weiteren Partitionen zu den Kommunikationskanälen K1 , K2 vergleichbare individuelle Kommunikationskanäle vorgesehen sein (nicht gezeigt).
Bei weiteren beispielhaften Ausführungsformen, Fig. 1 , ist somit vorgesehen, dass jede Partition 302-1 , 302-2, ... über einen eigenen bzw. individuellen Kommunikationskanal K1, K2, ... Informationen, z.B. Daten, mit dem Hardware- Sicherheitsmodul 100 austauscht. Fig. 4 zeigt demgegenüber ein vereinfachtes Blockdiagramm eines SoC 1000' gemäß weiteren beispielhaften Ausführungsformen, bei denen anstelle einer Mehrzahl individueller Kommunikationskanäle K1 , K2, ... (Fig. 1) ein, z.B. einziger, Kommunikationskanal K vorgesehen ist, der, z.B. in einem Zeitmultiplexbetrieb, gemeinsam durch mehrere Partitionen 302-1 , 302-2, ... nutzbar ist, vgl. die Blockpfeile AT, A2'.
Bei weiteren beispielhaften Ausführungsformen sind auch Mischformen (nicht gezeigt) aus der beispielhaften Konfiguration 1000 gemäß Fig. 1 und der beispielhaften Konfiguration 1000' gemäß Fig. 4 möglich, bei denen z.B. eine erste Anzahl von (z.B. einer oder mehreren) Partitionen jeweils einen individuellen Kommunikationskanal (s. z.B. die Elemente K1, K2 gemäß Fig. 1) zum Informationsaustausch mit dem Hardware-Sicherheitsmodul 100 aufweist, und bei denen z.B. eine zweite Anzahl von (z.B. einer oder mehreren) Partitionen gemeinsam einen Kommunikationskanal (s. z.B. Element K gemäß Fig. 4) zum Informationsaustausch mit dem Hardware-Sicherheitsmodul 100 aufweist.
Bei weiteren beispielhaften Ausführungsformen (nicht gezeigt) sind auch weitere Mischformen denkbar, bei denen wenigstens eine Partition 302-1 sowohl über einen individuellen Kommunikationskanal K1 zu dem Hardware-Sicherheitsmodul 100 verfügt, als auch dazu ausgebildet ist, z.B. mit einer oder mehreren weiteren Partitionen 302-2, ... einen gemeinsamen Kommunikationskanal K zu dem Hardware-Sicherheitsmodul 100 zu verwenden.
Bei weiteren beispielhaften Ausführungsformen, Fig. 3, weist das Ermitteln 200 (Fig. 2) der ersten Informationen 1-1 wenigstens eines der folgenden Elemente auf: a) Ermitteln 200a (Fig. 3) der ersten Informationen 1-1 basierend auf einem Kommunikationskanal K1 (Fig. 1), der, beispielsweise statisch, beispielsweise ausschließlich, mit der wenigstens einen Partition 302-1 assoziiert ist (s. z.B. die Konfiguration 1000 gemäß Fig. 1), b) Empfangen 200b der ersten Informationen 1-1 über einen Kommunikationskanal K (Fig. 4), der zumindest zeitweise von der wenigstens einen Partition 302-1 verwendbar ist, wobei beispielsweise der Kommunikationskanal K, beispielsweise im Zeitmultiplex, durch mehrere Partitionen 302-1 , 302-2, ... verwendbar ist (s. z.B. die Konfiguration 1000' gemäß Fig. 4). Mit anderen Worten kann bei weiteren beispielhaften Ausführungsformen, s. Fig. 1, vorgesehen sein, dass die ersten Informationen 1-1 gleichsam implizit bereitgestellt werden, z.B. indem eine, z.B. statische, Zuordnung eines bestimmten Kommunikationskanals K1 mit einer bestimmten Partition 302-1 vorgenommen wird. D.h., bei weiteren beispielhaften Ausführungsformen kann das Hardware-Sicherheitsmodul 100 eine Identität 302-1 -ID einer bestimmten Partition 302-1 basierend darauf ableiten, über weichen (z.B. statisch zugeordneten) Kommunikationskanal K1 (z.B. von mehreren Kommunikationskanälen K1 , K2, ...) Informationen, z.B. Daten, A1 von der Partition 302-1 empfangen worden sind.
Bei weiteren beispielhaften Ausführungsformen, Fig. 4, können die ersten Informationen 1-1 und/oder die ersten Informationen 1-1 charakterisierende weitere Informationen z.B. direkt von einer Partition 302-1 über einen z.B. gemeinsam mit weiteren Partitionen 302-2, ... nutzbaren Kommunikationskanal K übertragen werden, z.B. zusammen mit Daten für einen Betrieb des Hardware- Sicherheitsmoduls, s. z.B. die Bezugszeichen 1-1 bei den Blockpfeilen AT, A2' in Fig. 4.
Bei weiteren beispielhaften Ausführungsformen, Fig. 1 , können die ersten Informationen 1-1 und/oder die ersten Informationen 1-1 charakterisierende weitere Informationen z.B. direkt von einer Partition 302-1 über einen z.B. individuellen Kommunikationskanal K1 an das Hardware-Sicherheitsmodul 100 übertragen werden, z.B. zusammen mit Daten für einen Betrieb des Hardware- Sicherheitsmoduls 100. Bei weiteren beispielhaften Ausführungsformen ist dies z.B. aufgrund der beispielhaften statischen, z.B. 1-zu-1-, Zuordnung von Partitionen 302-1 , 302-2 zu Kommunikationskanälen K1, K2 gemäß Fig. 1 nicht erforderlich, damit das Hardware- Sicherheitsmodul 100 die ersten Informationen 1-1 erlangt, z.B. eine Identität einer auf das Hardware- Sicherheitsmodul 100 zugreifenden Partition ermittelt bzw. ermitteln kann. Gleichwohl ist das gesonderte Senden z.B. der ersten Informationen 1-1 , z.B. über einen partitionsindividuellen Kommunikationskanal K1 , bei weiteren beispielhaften Ausführungsformen nicht ausgeschlossen.
Bei weiteren beispielhaften Ausführungsformen, Fig. 5, ist vorgesehen, dass das Verfahren aufweist: Empfangen 210 von zweiten Informationen I-2, beispielsweise einer Unterbrechungsanforderung (z.B. interrupt request) I RQ1 , IRQ2 und/oder assoziiert mit einer Unterbrechungsanforderung, also von mit einer Unterbrechungsanforderung assoziierten Informationen, von der wenigstens einen Partition 302-1 , 302-2, ... (Fig. 1), Ermitteln 212 (Fig. 5) der ersten Informationen 1-1 basierend auf einem Kommunikationskanal K1, K2, ... über den die zweiten Informationen I-2 empfangen worden sind. Beispielsweise kann das Hardware- Sicherheitsmodul 100, wenn es z.B. über den ersten Kommunikationskanal K1 gemäß Fig. 1 eine erste Unterbrechungsanforderung IRQ1 empfängt, darauf schließen, dass die erste Unterbrechungsanforderung IRQ1 bzw. mit der ersten Unterbrechungsanforderung IRQ1 assoziierte Daten von der ersten Partition 302-1 stammen, weil der erste Kommunikationskanal K1, z.B. statisch, der ersten Partition 302-1 zugeordnet ist. Demgegenüber kann das Hardware- Sicherheitsmodul 100 bei weiteren beispielhaften Ausführungsformen, wenn es z.B. über den zweiten Kommunikationskanal K2 gemäß Fig. 1 eine zweite Unterbrechungsanforderung IRQ2 empfängt, darauf schließen, dass die zweite Unterbrechungsanforderung IRQ2 bzw. mit der zweiten Unterbrechungsanforderung IRQ2 assoziierte Daten von der zweiten Partition 302-2 stammen, weil der zweite Kommunikationskanal K2, z.B. statisch, der zweiten Partition 302-2 zugeordnet ist, usw..
Bei weiteren beispielhaften Ausführungsformen, Fig. 6, ist vorgesehen, dass das Verfahren wenigstens eines der folgenden Elemente aufweist: a) Verwenden 220 mehrerer Kommunikationskanäle K1, K2, ... (Fig. 1) für eine Kommunikation mit unterschiedlichen Partitionen 302-1 , 302-2, ... (Fig. 1) der Recheneinrichtung 1000 (also z.B. für eine Kommunikation des Hardware-Sicherheitsmoduls 100 gemäß Fig. 1 mit den unterschiedlichen Partitionen 302-1 , 302-2, ... der Recheneinrichtung 1000), beispielsweise Verwenden 220a (Fig. 6) eines ersten Kommunikationskanals K1 der mehreren Kommunikationskanäle K1, K2, ... , beispielsweise ausschließlich, für eine Kommunikation A1 mit der ersten Partition 302-1 und Verwenden 220b (Fig. 6) eines zweiten Kommunikationskanals K2 der mehreren Kommunikationskanäle K1, K2, ... , beispielsweise ausschließlich, für eine Kommunikation A2 mit der zweiten Partition 302-2, b) Verwenden 222 (Fig. 6) eines, beispielsweise gemeinsamen, Kommunikationskanals K (Fig. 4) für eine Kommunikation AT, A2' mit unterschiedlichen Partitionen 301-1 , 301-2, ... der Recheneinrichtung, beispielsweise basierend auf einem Zeitmultiplex-Verfahren. Bei weiteren beispielhaften Ausführungsformen, Fig. 7, ist vorgesehen, dass das Verfahren wenigstens eines der folgenden Elemente aufweist: a) Verwenden 225 eines ersten Speicherbereichs SB-1 (Fig. 1), beispielsweise aufweisend eine Anzahl von Speicherregistern (nicht gezeigt), zur Realisierung eines ersten Kommunikationskanals K1, b) Verwenden 227 (Fig. 7) eines zweiten Speicherbereichs SB-2 (Fig. 1), beispielsweise aufweisend eine Anzahl von Speicherregistern, zur Realisierung eines zweiten Kommunikationskanals K2, c) Verwenden 229 (Fig. 7) eines dritten Speicherbereichs SB-3, beispielsweise aufweisend eine Anzahl von Speicherregistern, zur Realisierung eines gemeinsamen Kommunikationskanals K (Fig. 4) für eine Kommunikation mit unterschiedlichen Partitionen 302-1 , 302-2, ... der Recheneinrichtung 1000, 1000'.
Bei weiteren beispielhaften Ausführungsformen kann wenigstens einer der Speicherbereiche SB-1 , SB-2, SB-3 in einem geteilten (also z.B. von ein oder mehreren Partitionen und dem Hardware-Sicherheitsmodul 100 nutzbaren) Speicher, z.B. Arbeitsspeicher, RAM, SH-RAM vorgesehen sein.
Bei weiteren beispielhaften Ausführungsformen, Fig. 8, ist vorgesehen, dass das Verfahren wenigstens eines der folgenden Elemente aufweist: a) Verwenden 230 eines geteilten Speicherbereichs SH-MEM, beispielsweise shared memory, beispielsweise eines Arbeitsspeichers, beispielsweise RAM, SH-RAM beispielsweise zum Austauschen von Informationen, beispielsweise Daten, mit der wenigstens einen Partition 302-1 , 302-2, ... , b) Virtualisieren 232 des geteilten Speicherbereichs SH-MEM, beispielsweise aufweisend ein Zuordnen unterschiedlicher Teilbereiche, z.B. der Speicherbereiche SB-1 , SB-2, des geteilten Speicherbereichs SH-MEM zu jeweils einer anderen Partition 302-1, 302-2 der Recheneinrichtung, c) Verwenden 234 (Fig. 8) einer optionalen Speicherschutzeinrichtung MPU (Fig. 1, 4), beispielsweise einer dynamischen Speicherschutzeinrichtung, D-MPLI, beispielsweise zum, z.B. dynamischen, Schützen wenigstens mancher Speicherbereiche SB-1 vor Zugriffen wenigstens mancher Partitionen 302-2 der Recheneinrichtung.
Bei weiteren beispielhaften Ausführungsformen, Fig. 9, ist vorgesehen, dass das Verfahren aufweist: Konfigurieren 240 einer bzw. der Speicherschutzeinrichtung MPU, beispielsweise dynamischen Speicherschutzeinrichtung, D-MPU, wobei beispielsweise das Konfigurieren 240 so erfolgt, dass die Speicherschutzeinrichtung MPU wenigstens einen Speicherbereich SB-1 (Fig. 1, 4), der z.B. mit einer bzw. der ersten Partition 302-1 assoziiert ist, vor Manipulationen durch wenigstens eine weitere Partition 302-2, ... schützt. Der optionale Block 242 gemäß Fig. 9 symbolisiert eine Verwendung des wenigstens einen Speicherbereich SB-1 für einen Datenaustausch zwischen der ersten Partition 302-1 und dem Hardware-Sicherheitsmodul 100.
Bei weiteren beispielhaften Ausführungsformen, Fig. 10, ist vorgesehen, dass das Verfahren aufweist: Zuordnen 245 einer Priorität PR-1 zu der wenigstens einen Partition 302-1, Ausführen 247 einer mit der wenigstens einen Partition 302-1 assoziierten Operation OP-302-1 (z.B. Verschlüsseln von Daten) basierend wenigstens auf der Priorität PR-1 der wenigstens einen Partition 302- 1. Bei weiteren beispielhaften Ausführungsformen kann die Priorität PR-1 z.B. basierend auf den ersten Informationen 1-1 zugeordnet werden. Weitere beispielhafte Aspekte und Ausführungsformen betreffend eine Priorität sind weiter unten z.B. unter Bezugnahme auf Fig. 15 beschrieben.
Weitere beispielhafte Ausführungsformen, vgl. Fig. 21, beziehen sich auf eine Vorrichtung 400 zur Ausführung des Verfahrens gemäß den Ausführungsformen. Die Vorrichtung 400 kann z.B. mittels Hardware, beispielsweise ausschließlich mittels Hardware, realisiert sein und zumindest bei manchen beispielhaften Ausführungsformen in ein Hardware-Sicherheitsmodul 100 integriert werden bzw. sein, s. z.B. Fig. 1 , 4.
Weitere beispielhafte Ausführungsformen, Fig. 1 , 4, beziehen sich auf ein Hardware-Sicherheitsmodul 100 aufweisend wenigstens eine Vorrichtung 400 gemäß den Ausführungsformen.
Bei weiteren beispielhaften Ausführungsformen, Fig. 21, ist vorgesehen, dass die Vorrichtung 400 aufweist: eine z.B. wenigstens einen Rechenkern 402a aufweisende Recheneinrichtung ("Computer") 402, eine der Recheneinrichtung 402 zugeordnete Speichereinrichtung 404 zur zumindest zeitweisen Speicherung wenigstens eines der folgenden Elemente: a) Daten DAT (z.B. charakterisierend wenigstens eines der folgenden Elemente: die ersten Informationen 1-1, die zweiten Informationen I-2, eine Identität 302-1-ID wenigstens einer Partition 302- 1 charakterisierende Informationen, eine Zuordnung von Kommunikationskanälen K1, K2 zu Partitionen 302-1 , 302-2 charakterisierende Informationen, eine mit wenigstens einer Partition 302-1 assoziierte Priorität PR- 1 charakterisierende Informationen, Konfigurationsinformationen, z.B. für eine Virtualisierung 232 des geteilten Speicherbereichs SH-MEM und/oder für eine bzw. die Speicherschutzeinrichtung MPU) , b) Computerprogramm PRG, insbesondere zur Ausführung des Verfahrens gemäß den Ausführungsformen (z.B. im Falle einer nicht rein hardwarebasierten Implementierung der Vorrichtung 400).
Bei weiteren beispielhaften Ausführungsformen weist die Speichereinrichtung 404 einen flüchtigen Speicher 404a (z.B. Arbeitsspeicher (RAM)) auf, und/oder einen nichtflüchtigen Speicher 404b (z.B. Flash-EEPROM), oder eine Kombination hieraus oder mit anderen, nicht explizit genannten Speichertypen.
Weitere beispielhafte Ausführungsformen beziehen sich auf ein computerlesbares Speichermedium SM, z.B. Halbleiterspeicher und/oder optischen Datenträger und/oder magnetisches Speichermedium, umfassend Befehle PRG, die bei der Ausführung durch einen Computer 402 diesen veranlassen, das Verfahren gemäß den Ausführungsformen auszuführen.
Weitere beispielhafte Ausführungsformen beziehen sich auf ein Computerprogramm PRG, umfassend Befehle, die bei der Ausführung des Programms PRG durch einen Computer 402 diesen veranlassen, das Verfahren gemäß den Ausführungsformen auszuführen.
Weitere beispielhafte Ausführungsformen beziehen sich auf ein Datenträgersignal DCS, das das Computerprogramm PRG gemäß den Ausführungsformen überträgt und/oder charakterisiert. Das Datenträgersignal DCS ist beispielsweise über eine optionale Datenschnittstelle 406 übertragbar, z.B. ebenso wie weitere optionale Daten D.
Bei weiteren beispielhaften Ausführungsformen, z.B. bei einer Integration der Vorrichtung 400 bzw. einer Funktionalität der Vorrichtung 400 in das Hardware- Sicherheitsmodul 100, können wenigstens manche der Komponenten 402, 402a, 404, 404a, 404b, ... der Vorrichtung 400 gemäß Fig. 21 z.B. unter Verwendung entsprechender und ggf. bereits vorhandener Komponenten des Hardware-
Sicherheitsmoduls 100 realisiert bzw. implementiert werden (z.B. der Rechenkern 402a gemäß Fig. 21 durch den HSM-Rechenkern 102, usw.).
Weitere beispielhafte Ausführungsformen, Fig. 1, 4, beziehen sich auf eine Recheneinrichtung, beispielsweise Mikrocontroller oder Mikroprozessor oder System on Chip, SoC, 1000, 1000' aufweisend wenigstens eines der folgenden Elemente: a) Vorrichtung 400 gemäß den Ausführungsformen, b) Hardware- Sicherheitsmodul 100, z.B. gemäß den Ausführungsformen, c) wenigstens eine Partition 302-1 , 302-2, ... , z.B. aufweisend wenigstens einen Rechenkern 302- 1a, 302-2a, ... , und, optional, der Partition zugeordneten Speicher, z.B. Arbeitsspeicher, z.B. RAM 302-1 b, 302-2b, ....
Weitere beispielhafte Ausführungsformen, Fig. 11 , beziehen sich auf ein Verfahren zum Übermitteln von mit einem Hardware-Sicherheitsmodul 100 (Fig.
1 , 4) assoziierten Daten, aufweisend: Bereitstellen 250 einer Identität 302-1-ID für wenigstens eine zum Zugriff A1 auf das Hardware-Sicherheitsmodul 100 ausgebildete, beispielsweise auf das Hardware-Sicherheitsmodul 100 zugreifende, Partition 302-1 einer Recheneinrichtung, Übermitteln 252 von die Identität 302-1-ID charakterisierenden Informationen l-ID (z.B. in Form der zweiten Informationen I-2 und/oder der ersten Informationen 1-1 und/oder der Identität 302-1-ID selbst) an das Hardware-Sicherheitsmodul 100, beispielsweise über einen, z.B. für mehrere Partitionen gemeinsamen, Kommunikationskanal K (Fig. 4).
Bei weiteren beispielhaften Ausführungsformen, Fig. 11, ist vorgesehen, dass das Bereitstellen 250 und/oder das Übermitteln 252, beispielsweise vollständig, hardwarebasiert erfolgt.
Weitere beispielhafte Ausführungsformen, Fig. 12, beziehen sich auf ein Verfahren zum Übermitteln von mit einem Hardware-Sicherheitsmodul 100 (Fig.
1 , 4) assoziierten Daten, aufweisend: Bereitstellen 260 (Fig. 12) eines ersten Kommunikationskanals K1 (Fig. 1) für einen Informationsaustausch A1 zwischen einer, beispielsweise genau einer, ersten Partition 302-1 einer Recheneinrichtung und dem Hardware-Sicherheitsmodul 100, und, optional, Verwenden 262 des ersten Kommunikationskanals K1 für den Informationsaustausch A1 zwischen der ersten Partition 302-1 der Recheneinrichtung und dem Hardware- Sicherheitsmodul 100.
Bei weiteren beispielhaften Ausführungsformen, Fig. 13, ist vorgesehen, dass das Verfahren aufweist: Bereitstellen 264 eines zweiten Kommunikationskanals K2 (Fig. 1) für einen Informationsaustausch A2 zwischen einer, beispielsweise genau einer, zweiten Partition 302-2 der Recheneinrichtung und dem Hardware- Sicherheitsmodul 100, und, optional, Verwenden 266 des zweiten Kommunikationskanals K2 für den Informationsaustausch A2 zwischen der zweiten Partition 302-2 der Recheneinrichtung und dem Hardware- Sicherheitsmodul 100.
Weitere beispielhafte Ausführungsformen, Fig. 1, beziehen sich auf eine Vorrichtung 301 zur Ausführung des Verfahrens, z.B. zum Übermitteln der mit einem Hardware-Sicherheitsmodul assoziierten Daten, gemäß den Ausführungsformen, z.B. gemäß Fig. 11 und/oder Fig. 12 und/oder Fig. 13.
Bei weiteren beispielhaften Ausführungsformen weist die Vorrichtung 301 (Fig. 1) z.B. eine zu der Vorrichtung 400 gemäß Fig. 21 vergleichbare bzw. zumindest ähnliche Konfiguration auf, wobei eine, z.B. rein hardwarebasierte, Implementierung möglich ist.
Fig. 14 zeigt schematisch ein vereinfachtes Blockdiagramm gemäß beispielhaften Ausführungsformen, das einen Informationsfluss zwischen einer Partition 302-T einer Recheneinrichtung und einem Hardware-Sicherheitsmodul 100' gemäß weiteren beispielhaften Ausführungsformen veranschaulicht. Element e1 symbolisiert eine Anwendung bzw. ein Anwendungsprogramm, das auf der Partition 302-T ausführbar ist, und das z.B. sicherheitsbezogene Funktionen ausführt und hierzu zumindest zeitweise das Hardware- Sicherheitsmodul 100' nutzt. Element e2 symbolisiert eine Vorbereitung von Daten zur Verarbeitung mittels des Hardware-Sicherheitsmoduls 100', z.B. einen "security job". Pfeil a1 symbolisiert das Schreiben der vorbereiteten Daten in einen Speicherbereich e5a eines z.B. mit dem Hardware-Sicherheitsmodul 100' geteilten Speichers e5, z.B. shared RAM. Element e3 symbolisiert ein Signalisieren an das Hardware-Sicherheitsmodul 100', z.B. dass der security job zur Verarbeitung durch das Hardware-Sicherheitsmodul 100' bereit ist, s. auch den Pfeil a2. Das Signalisieren e3 kann beispielsweise unter Verwendung einer Unterbrechungsanforderung erfolgen, die die Partition 302-T an das Hardware- Sicherheitsmodul 100' sendet. Zusätzlich zu, z.B. zusammen mit, der Unterbrechungsanforderung kann dem Hardware-Sicherheitsmodul 100' z.B. noch eine den Speicherbereich e5a charakterisierende Information, z.B. in Form eines Zeigers auf eine entsprechende Adresse des geteilten Speichers e5, übermittelt werden, und/oder eine Information, die z.B. einen in dem Hardware- Sicherheitsmodul 100' gespeicherten kryptografischen Schlüssel KS-1 (Fig. 1) charakterisiert, z.B. in Form eines Zeigers auf eine entsprechende Adresse des Schlüsselspeichers KS.
Element e6 symbolisiert ein Empfangen bzw. Lesen der durch die Partition 302-T signalisierten Informationen bzw. Daten, s. auch den Pfeil a3. Element e? symbolisiert ein Verarbeiten der Daten durch das Hardware-Sicherheitsmodul 100'. Element e8 symbolisiert eine Ausgabe eines Ergebnisses der Datenverarbeitung durch das Hardware-Sicherheitsmodul 100', z.B. in den Speicherbereich e5b des geteilten Speichers e5, s. auch den Pfeil a4. Element e4 symbolisiert ein Lesen des Ergebnisses der Datenverarbeitung des Hardware- Sicherheitsmoduls 100' durch die Partition 302-T, s. auch den Pfeil a5.
Bei weiteren beispielhaften Ausführungsformen kann, z.B. bei wenigstens einer bzw. manchen bzw. allen, Unterbrechungsanforderungen a2, die die Partition 302-T an das Hardware-Sicherheitsmodul 100' sendet, z.B. neben einer die Unterbrechungsanforderung charakterisierenden Unterbrechungsanforderungs- bzw. Interrupt-Nummer, zusätzlich eine Information über die Identität 302-T-ID der sendenden Partition 302-T an das Hardware-Sicherheitsmodul 100' übermittelt werden.
Bei weiteren beispielhaften Ausführungsformen wird die Identität 302-T-ID dabei z.B. über einen hardwarebasierten, beispielsweise rein hardwarebasierten, Mechanismus bereitgestellt, so dass eine Manipulation, z.B. durch Software, z.B. die Anwendung e1, nicht möglich ist.
Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass die Identität 302-T-ID der Partition 302-T bei wenigstens manchen, z.B. mehreren, z.B. jeder, z.B. jeglicher, Interaktion der Partition 302-T, z.B. mit dem Speicher e5 und/oder mit dem Hardware-Sicherheitsmodul 100', z.B. mit (also z.B. ggf. zusätzlich zu anderen Informationen bzw. Daten) übermittelt wird.
Bei weiteren beispielhaften Ausführungsformen sind das Hardware- Sicherheitsmodul 100' und die wenigstens eine Partition 302-T so konfiguriert, dass sie Informationen bzw. Daten, z.B. über wenigstens einen entsprechenden Adressbereich e5a, e5b, der z.B. in dem geteilten Speicher, z.B. Shared Memory, z.B. Shared RAM, e5 liegt, austauschen können.
Bei weiteren beispielhaften Ausführungsformen liegen in diesem Adressbereich z.B. Informationen, die charakterisieren, welche Operation(en) in dem Hardware- Sicherheitsmodul 100' zur Ausführung gebracht werden soll(en), sowie ggf. ein Zeiger, z.B. Pointer, auf Daten, die z.B. für die Operation(en) verwendbar sind (z.B., ein Pointer auf Daten, die durch das Hardware-Sicherheitsmodul 100' verschlüsselt werden sollen, sowie ggf. weitere Informationen, z.B. hinsichtlich der auszuführenden Operation(en) (z.B. Parameter)).
Bei weiteren beispielhaften Ausführungsformen kann in dem Hardware- Sicherheitsmodul 100' eine Vorrichtung 400 gemäß den Ausführungsformen vorgesehen sein, die bei weiteren beispielhaften Ausführungsformen z.B. auch als "Partition Detector", also Partitions-Detektor, bezeichnet werden kann.
Bei weiteren beispielhaften Ausführungsformen assoziiert und/oder verwaltet die Vorrichtung 400, z.B. für manche, beispielsweise alle, Operationen, die in dem Hardware-Sicherheitsmodul 100' ausgeführt bzw. aufgerufen werden, eine, z.B. eindeutige, Identität, z.B. "Partition ID". Bei weiteren beispielhaften Ausführungsformen können somit z.B. alle Operationen, die in dem Hardware- Sicherheitsmodul 100' ausgeführt bzw. aufgerufen werden, auf eine bestimmte Partition, z.B. bezeichenbar als "Ursprungspartition", zurückgeführt werden.
Bei weiteren beispielhaften Ausführungsformen wird eine Anzahl der Partitionen und/oder werden zugehörige Partition IDs z.B. basierend auf einer Anzahl von physikalischen Partitionen 302-1 , 302-2, ... (Fig. 1) in dem System, z.B. SoC 1000, konfiguriert. Bei weiteren beispielhaften Ausführungsformen, Fig. 1, wird, z.B. dann, wenn eine Operation einer Partition 302-1 in dem Hardware-Sicherheitsmodul 100 ausgeführt wird, z.B. durch die Vorrichtung 400 und/oder unter Steuerung durch die Vorrichtung 400, sichergestellt, dass, z.B. nur, auf Daten zugegriffen wird bzw. werden kann, die mit dieser Partition 302-1 assoziiert sind. Hierzu kann bei weiteren beispielhaften Ausführungsformen wenigstens eine Funktion, z.B. Anwendung, des Hardware-Sicherheitsmoduls 100 wie beispielsweise der Schlüsselspeicher KS oder eine sichere Datenhaltung (z.B. Secure Log, nicht gezeigt) entsprechend virtualisiert werden.
Bei weiteren beispielhaften Ausführungsformen, Fig. 1 , ist das Hardware- Sicherheitsmodul 100, 100' dazu ausgebildet, eine Ablaufplanung, z.B. Scheduling, z.B. präemptives Scheduling, von Operationen auszuführen.
Bei weiteren beispielhaften Ausführungsformen, Fig. 1 , kann das Scheduling z.B. über einen softwarebasierten bzw. Firmware-basierten Mechanismus SCHED- MECH in dem Hardware-Sicherheitsmodul 100, 100' realisiert werden. Hierbei wird bei weiteren beispielhaften Ausführungsformen z.B. einzelnen Operationen jeweils eine entsprechende Priorität zugewiesen, und die einzelnen Operationen werden entsprechend der zugewiesenen Priorität auf dem Hardware- Sicherheitsmodul 100 ausgeführt. Der optionale z.B. Firmware-basierte Mechanismus SCHED-MECH gemäß Fig. 1 kann optional auch bei dem HSM 100 gemäß Fig. 4 vorgesehen sein, ist dort vorliegend aus Gründen der Übersichtlichkeit jedoch nicht abgebildet.
Wird z.B. eine Operation mit einer niedrigeren Priorität ausgeführt, währenddessen eine Operation mit einer höheren Priorität das Hardware- Sicherheitsmodul 100 erreicht (z.B. durch Signalisieren durch eine Partition), wird bei weiteren beispielhaften Ausführungsformen die neue Operation priorisiert und die Operation mit der niedrigeren Priorität pausiert. Bei weiteren beispielhaften Ausführungsformen werden vor dem Pausieren Informationen, z.B. alle Informationen, die den Zustand der Operation beschreiben, in einem Speicher gesichert, so dass die Operation mit der niedrigeren Priorität z.B. nach der Ausführung der Operation mit der höheren Priorität fertig gestellt werden kann. Bei der Verwendung des Prinzips gemäß den Ausführungsformen, z.B. mit der Vorrichtung 400, z.B. als "Partition Detector", z.B. mit mehreren Partitionen 302- 1 , 302-2, ... (Fig. 1) kann, bei weiteren beispielhaften Ausführungsformen, das präemptive Scheduling so ausgestaltet werden, dass die Vorrichtung 400 und/oder der Scheduling Mechanismus SCHED-MECH, z.B. in dem Hardware- Sicherheitsmodul 100, so konfiguriert wird, dass einzelne Partitionen ebenfalls über jeweilige Prioritäten verfügen, die z.B. ab einem gewissen Schwellwert die Prioritäten einer spezifischen Operation invalidieren. So wird bei weiteren beispielhaften Ausführungsformen verhindert, dass einzelne Operationen einzelner Partitionen "verhungern" können, also über einen vergleichsweise langen Zeitraum nicht (oder z.B. gar nicht) ausgeführt werden.
Bei weiteren beispielhaften Ausführungsformen kann der vorstehend genannte Schwellwert z.B. mittels vergleichsweise komplexer Regeln definiert werden, bei noch weiteren beispielhaften Ausführungsformen sind aber auch vergleichsweise einfache Regeln möglich.
Bei weiteren beispielhaften Ausführungsformen kann der Schwellwert beispielsweise so konfiguriert werden, dass eine Operation einer bestimmten Partition mit einem spezifischen Prioritätslevel (Prioritätswert) z.B. nur n-mal, n>=0, unterbrochen werden kann. Ein vereinfachtes Beispiel gemäß weiteren beispielhaften Ausführungsformen ist in dem Diagramm gemäß Fig. 15 gezeigt, bei dem eine horizontale Achse t die Zeit charakterisiert, und bei dem eine vertikale Achse P eine Priorität charakterisiert. Aus Gründen der Übersichtlichkeit sind vorliegend beispielhaft vier verschiedene Prioritätswerte 1, 2, 3, 4 vorgesehen, und beispielhaft, und ohne Beschränkung der Allgemeinheit, wird davon ausgegangen, dass vier Partitionen vorhanden sind, die auf das Hardware-Sicherheitsmodul 100 (Fig. 1) zugreifen können. Bei weiteren beispielhaften Ausführungsformen können weniger oder mehr als vier verschiedene Prioritätswerte und/oder weniger oder mehr als vier Partitionen vorhanden sein.
Bei weiteren beispielhaften Ausführungsformen ist ein Scheduling z.B. über einen softwarebasierten bzw. Firmware-basierten Mechanismus SCHED-MECH (Fig. 1) in dem Hardware-Sicherheitsmodul 100, 100' derart vorgesehen, dass Operationen einer ersten Partition 302-1 z.B. nur maximal zwei Mal unterbrochen werden dürfen. Vorliegend wird beispielhaft eine Operation e10 der ersten Partition mit Prioritätswert 1 (niedrigste Priorität) durch eine Operation e15 einer dritten Partition (Prioritätswert 3) und danach durch eine Operation e14 einer zweiten Partition (Prioritätswert 2) unterbrochen. Bevor es zur Ausführung e17 einer vierten Operation (Prioritätswert 4) kommt, wird z.B. die erste Operation fortgesetzt, z.B. vollständig ausgeführt, s. Element e12. Element e11 symbolisiert eine Unterbrechung der ersten Operation e10, e12, Element e13 symbolisiert ein Warten einer Operation der zweiten Partition auf einen Abschluss der Operation e15, und Element e16 symbolisiert ein Warten der Operation e17 der vierten Partition auf einen Abschluss der Operation e12.
Bei weiteren beispielhaften Ausführungsformen ist eine Virtualisierung eines Kommunikationskanals zwischen Partitionen 302-1 , 302-2, ... (Fig. 1) der Recheneinrichtung und dem Hardware-Sicherheitsmodul 100, 100' vorgesehen.
Bei weiteren beispielhaften Ausführungsformen können für eine Signalisierung, welche Partition von den mehreren Partitionen 302-1 , 302-2, ... z.B. aktuell eine Kommunikation mit dem Hardware-Sicherheitsmodul 100, 100' auslösen möchte, unterschiedliche Verfahren verwendet werden. Bei weiteren beispielhaften Ausführungsformen ist z.B. eine Vervielfachung des Kommunikationskanals vorgesehen, s. z.B. die Konfiguration 1000 gemäß Fig. 1. Bei weiteren beispielhaften Ausführungsformen ist z.B. ein Teilen, z.B. Sharing, des (z.B. einzigen) Kommunikationskanals K vorgesehen, s. z.B. die Konfiguration 1000' gemäß Fig. 4.
Bei weiteren beispielhaften Ausführungsformen wird bei der vorstehend genannten Vervielfachung des Kommunikationskanals z.B. jeder einzelnen Partition 302-1 , 302-2, ... ein, z.B. volles, Register-Set (z.B. Satz von Speicherregistern), welches für die Kommunikation mit dem Hardware- Sicherheitsmodul 100, 100' genutzt wird, zur Verfügung gestellt, s. Kanal K1 für die erste Partition 302-1, Kanal K2 für die zweite Partition 302-2, usw.. Dies bedeutet, dass bei weiteren beispielhaften Ausführungsformen jeder Partition 302-1 , 302-2, ... physikalisch eindeutig ein vollständiger Registersatz bereitgestellt wird. Bei weiteren beispielhaften Ausführungsformen werden die Registersätze z.B. fortlaufend durchnummeriert, so dass die Vorrichtung 400, z.B. der "Partition Detector", in dem Hardware-Sicherheitsmodul 100, 100' eindeutig ermitteln, z.B. validieren, kann, aus welcher Partition eine entsprechende Kommunikation kam. Bei weiteren beispielhaften Ausführungsformen liegt ein Vorteil bei dieser Variante daran, dass es zu keinen Kollisionen im Kommunikationskanal (bzw. den mehreren Kanälen K1, K2, ...) zwischen den einzelnen Partitionen 302-1, 302-2, ... kommen kann.
Bei weiteren beispielhaften Ausführungsformen wird bei dem vorstehend genannten Sharing ein (z.B. gemeinsamer) Kommunikationskanal K (Fig. 4) zwischen den einzelnen Partitionen 302-1 , 302-2, ... geteilt, hierbei werden z.B. alle Partitionen mit eindeutigen Identitäten (z.B. "Partition ID") ausgestattet, die bei weiteren beispielhaften Ausführungsformen z.B. anhand einer CPU-ID ihres jeweiligen Rechenkerns abgeleitet werden.
Bei weiteren beispielhaften Ausführungsformen kann vorgesehen sein, dass die Partition ID z.B. über einen Byte-Wert (also eine Informationsmenge aufweisend 8 bit) repräsentiert wird, der z.B. eindeutig ist. Bei weiteren beispielhaften Ausführungsformen wird, z.B. bei einem Interrupt der jeweiligen Partition, deren eindeutige Partition ID an das Hardware-Sicherheitsmodul, z.B. zusätzlich zu ggf. anderen zu übermittelnden Informationen bzw. Daten in dem Kommunikationskanal K übermittelt. Ist der Kommunikationskanal K aktuell z.B. durch eine andere Partition belegt, kann vorgesehen sein, dass die Partition so lange wartet, bis der Kommunikationskanal K für das Absetzen einer weiteren Kommunikation (wie beispielsweise einen Interrupt) wieder verfügbar ist. Bei weiteren beispielhaften Ausführungsformen kann ein Vorteil bei diesem Verfahren darin liegen, dass ein einziger Kommunikationskanal K vorhanden ist, der Kommunikationskanal K z.B. also nicht vervielfältigt werden muss.
Bei weiteren beispielhaften Ausführungsformen, Fig. 1 , kann eine Virtualisierung des geteilten Speichers SH-MEM vorgesehen sein. Bei weiteren beispielhaften Ausführungsformen kann der geteilte Speicher SH-MEM z.B. zum Austausch von Daten zwischen den Partitionen und dem Hardware-Sicherheitsmodul 100, 100' genutzt werden. Insbesondere kann vorgesehen sein, dass mehrere, z.B. alle, Partitionen auf den geteilten Speicher SH-MEM zugreifen. Hierbei könnte es bei manchen beispielhaften Ausführungsformen zu einer Situation kommen, bei der eine zweite Partition die Daten der ersten Partition im geteilten Speicher SH- MEM manipuliert und somit ggf. die Abarbeitung einer Operation in dem Hardware-Sicherheitsmodul 100, 100' beeinflusst. Dies wird bei weiteren beispielhaften Ausführungsformen z.B. durch wenigstens eines der folgenden Elemente verhindert: a) Virtualisierung des geteilten Speichers SH-MEM, z.B. mittels Sharing, b) Nutzung einer Speicherschutzeinrichtung MPU, z.B. Dynamic- MPU.
Bei weiteren beispielhaften Ausführungsformen wird eine Virtualisierung des geteilten Speichers SH-MEM mittels Sharing ausgeführt, wobei der geteilte Speicher z.B. so konfiguriert wird, dass dedizierte Bereiche SB-1 , SB-2, z.B. pro Partition 302-1 , 302-2 vorgegeben werden, in denen z.B. nur jeweils eine Partition schreiben kann und z.B. die anderen Partitionen nur lesend (oder z.B. gar nicht) operieren können. Bei weiteren beispielhaften Ausführungsformen kann das Hardware-Sicherheitsmodul 100, 100' so ausgebildet, z.B. konfiguriert, sein, dass es auf allen Speicherbereichen, die z.B. entsprechend konfiguriert sind, sowohl lesend als auch schreibend operieren kann, was bei weiteren beispielhaften Ausführungsformen eine vergleichsweise hohe Verlässlichkeit bietet.
Bei weiteren beispielhaften Ausführungsformen kann z.B. eine Dynamic Memory Protection Unit (D-MPU) MPU (Fig. 1) zur Virtualisierung einzelner Speicherbereiche, z.B. Speicherblöcke verwendet werden. Bei weiteren beispielhaften Ausführungsformen schützt die D-MPU, z.B. ähnlich zu einer MPU, Speicher- und Adressbereiche. Bei weiteren beispielhaften Ausführungsformen kann die D-MPU, z.B. anders als eine konventionelle MPU oder MMU (Speicherverwaltungseinrichtung), dynamisch, z.B. on-demand (also z.B. bei Bedarf, und damit flexibel) z.B. durch das Hardware-Sicherheitsmodul 100, 100', z.B. auf eine Anfrage einer Software-Anwendung e1 (Fig. 14) konfiguriert werden, z.B. so dass vorgebbare Adressbereiche der Speichereinrichtung entsprechend geschützt werden. Nachdem z.B. ein Speicherbereich durch die D-MPU entsprechend geschützt wurde, kann bei weiteren beispielhaften Ausführungsformen z.B. nur noch das Hardware- Sicherheitsmodul 100, 100' Änderungen an diesem Speicherbereich vornehmen. Hierdurch wird bei weiteren beispielhaften Ausführungsformen z.B. erreicht, dass ein potenzieller Angreifer, der z.B. ein Softwaresystem (z.B. exklusive des Hardware-Sicherheitsmoduls 100, 100') übernommen hat, keine manipulierten Informationen an das Hardware-Sicherheitsmodul 100, 100' übergibt und/oder während der Datenverarbeitung durch das Hardware-Sicherheitsmodul 100, 100' entsprechende Änderungen an den Inhalten in einem Speicherbereich vornimmt.
Bei weiteren beispielhaften Ausführungsformen wird, z.B. zusätzlich zu der Verwendung der D-MPLI, eine Information bereitgestellt, welche Partition den jeweiligen Speicherbereich besitzt. Bei weiteren beispielhaften Ausführungsformen wird durch die Verwendung der D-MPLI z.B. ebenfalls verhindert, dass Manipulationen durch eine Partition in dem Speicherbereich einer anderen Partition durchgeführt werden können.
Bei weiteren beispielhaften Ausführungsformen wird, z.B. im Gegensatz zum Memory-Sharing, jedoch zusätzlich verhindert, dass eine besitzende Partition eine Manipulation an ihrem Speicherbereich vornimmt, nachdem sie die Daten an das Hardware-Sicherheitsmodul 100, 100', z.B. zwecks Operation auf dem Speicherbereich, übergeben hat.
Bei weiteren beispielhaften Ausführungsformen wird die D-MPLI dynamisch, z.B. zur Laufzeit, z.B. ausschließlich, durch ein bzw. das Hardware-Sicherheitsmodul 100, 100' konfiguriert. Die D-MPLI kann hierzu z.B. einzelne und/oder mehrere Adressbereiche im Speicher vor Änderungen durch die einzelnen Partitionen schützen.
In Fig. 16 ist ein Speicherbereich einer Speichereinrichtung gemäß beispielhaften Ausführungsformen in vereinfachter weise abgebildet. Eine erste Spalte SP-1 charakterisiert eine Speicheradresse, eine zweite Spalte SP-2 charakterisiert einen Dateninhalt, eine dritte Spalte SP-3 charakterisiert wenigstens ein Schutzflag, beispielsweise Protection Flag (z.B. charakterisierbar durch ein oder mehrere Bits, z.B. eine, z.B. lineare, Bitmap), und eine vierte Spalte SP-4 charakterisiert einen Besitzer (z.B. owner), also z.B. eine Partition, die den entsprechenden Speicherbereich besitzt. Wie aus Fig. 16 ersichtlich ist, beschreibt eine erste Zeile Z-1 eine Speicheradresse 0x00 mit dem Dateninhalt 0x1245, einem Schutzflag "W, und dass diese Speicheradresse einer ersten Partition Par#1 zugewiesen ist. Eine weitere Zeile Z-k beschreibt eine Speicheradresse OxAO mit dem Dateninhalt 0x156A, Schutzflags "R", "W", und dass diese Speicheradresse einer dritten Partition Par#3 zugewiesen ist. Eine weitere Zeile Z-m beschreibt eine Speicheradresse OxBA mit dem Dateninhalt 0xA352, einem Schutzflag "W", und dass diese Speicheradresse allen Partitionen zugewiesen ist. Eine weitere Zeile Z-o beschreibt eine Speicheradresse 0xD3 mit dem Dateninhalt 0x425D, ohne Schutzflags, und dass diese Speicheradresse einer zweiten Partition Par#2 zugewiesen ist.
Bei weiteren beispielhaften Ausführungsformen sind die Schutzflags bzw. Protection Flags z.B. wie folgt definiert:
"W" = Write Protection, in dem Adressbereich sind keine Änderungen möglich, Lesezugriff ist möglich;
"R", "W" = Read/Write Protection, weder Lese noch Schreibzugriff ist möglich;
" " = No Protection oder kein Flag gesetzt, auf den Adressbereich kann sowohl lesend als auch schreibend zugegriffen werden;
"Part#n", n>=1 , beschreibt die Partition, der dieser Speicherbereich gehört. Z.B. darf lediglich diese Partition auf den Speicher entsprechend grundsätzlich zugreifen (z.B. gemäß "R", "W"), es sei denn z.B. die Protection Flags überschreiben die Zugriffsberechtigung;
"ALL" = Zugriff auf diesen Speicherbereich ist beliebig durch alle Partitionen möglich.
Bei weiteren beispielhaften Ausführungsformen können sich die Protection Flags des Speicherbereichs, z.B. aufgrund einer entsprechenden Konfiguration der D- MPU durch das Hardware-Sicherheitsmodul 100, 100', zur Laufzeit verändern. Bei weiteren beispielhaften Ausführungsformen ist vorgesehen, dass das Hardware-Sicherheitsmodul 100, 100' wenigstens einen Speicherbereich, z.B. vor weiteren Zugriffen, z.B. Manipulationen, z.B. durch einen Besitzer (z.B. "Partition Owner"), schützt, z.B. nachdem Daten von der Partition an das Hardware-Sicherheitsmodul 100, 100' übergeben worden sind, wodurch bei weiteren beispielhaften Ausführungsformen z.B. Time-of- Check / Time-of-Use Angriffe verhindert werden können.
Nachfolgend sind beispielhaft Aspekte eines Schlüsselspeichers KS (Fig. 1) gemäß weiteren beispielhaften Ausführungsformen beschrieben, beispielsweise betreffend eine Virtualisierung des Schlüsselspeichers KS. Im Folgenden werden z.B. auch Aspekte der Vorrichtung 400, z.B. im Sinne eines "Partition Detectors" an dem Beispiel des Schlüsselspeichers KS veranschaulicht, wobei die genannten Aspekte bei weiteren beispielhaften Ausführungsformen z.B. auch auf andere, z.B. alle anderen, Anwendungsszenarien des Hardware- Sicherheitsmoduls 100, 100' übertragbar sind, bei denen z.B. sensitive Daten zu einer spezifischen Partition gehören, wie zum Beispiel Anwendungen betreffend den Aspekt des "Sicheren Loggens".
Bei weiteren beispielhaften Ausführungsformen werden in dem Schlüsselspeicher KS z.B. alle kryptographischen Schlüssel gesichert abgelegt. Der Schlüsselspeicher KS wird z.B. in einem Flash-Speicher verschlüsselt abgelegt, und z.B. bei einem initialen Booten in das Hardware-Sicherheitsmodul 100, 100' geladen. Um zu verhindern, dass eine Partition auf kryptographisches Material einer anderen Partition zugreifen kann, werden bei weiteren beispielhaften Ausführungsformen z.B. für jeden einzelnen Eintrag im Schlüsselspeicher KS die entsprechenden Zugriffsrechte konfiguriert.
Bei weiteren beispielhaften Ausführungsformen können in dem Schlüsselspeicher KS, z.B. zusätzlich zu Zugriffsrechten wie z.B. "Read" ("Lesen"), "Write" ("Schreiben"), "Executable" ("Ausführen" bzw. "ausführbar"), z.B. pro Schlüsseleintrag KS-1 , KS-2, KS-3, ... auch entsprechende zusätzliche Protection Flags, z.B. wie vorstehend beispielhaft für eine Speichereinrichtung, z.B. den geteilten Speicher SH-MEM, beschrieben, vorgesehen, z.B. gesetzt, werden. Sofern diese Protection Flags entsprechend gesetzt sind, würde es z.B. bedeuten, dass eine Partition beispielsweise einen Schlüssel überschreiben kann, eine andere Partition den Schlüssel aber nur nutzen kann (aber z.B. nicht überschreiben). Bei weiteren beispielhaften Ausführungsformen kann z-B. auch das Setzen eines Read-Flags für den Schlüsselspeicher KS vorgesehen sein. Fig. 17 zeigt schematisch eine vereinfachte Tabelle gemäß beispielhaften Ausführungsformen, die Informationen eines beispielhaften Schlüsselspeichers enthält. Eine Schlüssel-Identifikation (z.B. Key-ID) ist in Spalte SP-1 enthalten, Spalte SP-2 enthält den kryptografischen Schlüssel, Spalte SP-3 enthält Informationen über einen Schlüsseltyp bzw. einen Algorithmus, für den der betreffende Schlüssel verwendbar ist, Spalte SP-4 enthält weitere Eigenschaften des betreffenden Schlüssels (z.B. "Verify-only", "nur zum Verifizieren", "Signing Key", "Schlüssel zum Signieren"), und Spalte SP-5 gibt ggf. eine Partition als Besitzer des betreffenden Schlüssels an. Bei weiteren beispielhaften Ausführungsformen darf z.B. ausschließlich der Besitzer des Schlüssels gemäß Spalte SP-5 den betreffenden kryptographischen Schlüssel für Operationen verwenden. Weitere Rechtegranularitäten sind bei weiteren beispielhaften Ausführungsformen ebenfalls möglich, aber nicht in der beispielhaften Abbildung gemäß Fig. 17 dargestellt.
Fig. 18 zeigt schematisch ein vereinfachtes Blockdiagramm gemäß weiteren beispielhaften Ausführungsformen. Abgebildet ist ein Hardware-Sicherheitsmodul 100", das z.B. auf einem selben Halbleitersubstrat 1002 angeordnet ist, wie mehrere Partitionen e32-1 , ... , e32-n einer Recheneinrichtung. Ein Informations- bzw. Datenaustausch zwischen den Komponenten e32-1 , ... , e32-n, 100" erfolgt z.B. über ein, z.B. chip-internes ("on-chip"), Bussystem a6. Manchen, beispielsweise allen, Partitionen e32-1, ... , e32-n ist jeweils eine Einheit e32-T, e32-n' zur Bereitstellung einer Identifikation ID#1 , ... , ID#n der ihr zugeordneten Partition e32-1 , ... , e32-n zugeordnet, die z.B. die Identifikation der jeweiligen Partition an das Hardware-Sicherheitsmodul 100" übermittelt, s. die Pfeile a7, a8, z.B. dann, wenn die jeweilige Partition Daten an das Hardware-Sicherheitsmodul 100" übermittelt. Auf diese Weise erlangt das Hardware-Sicherheitsmodul 100" erste Informationen 1-1, die eine Identität wenigstens einer auf das Hardware- Sicherheitsmodul 100" zugreifenden Partition e32-1 , ... , e32-n charakterisieren.
Element e21 symbolisiert eine optionale Einrichtung zur Unterstützung von Debug-Prozessen. Element e22 symbolisiert einen, z.B. sicheren, Rechenkern. Element e23 symbolisiert wenigstens eine Entropiequelle, z.B. einen Pseudozufallszahlengenerator (PRNG) oder einen Zufallszahlengenerator (TRNG). Element e24 symbolisiert einen, z.B. sicheren (z.B. vor Zugriffen außerhalb des Hardware-Sicherheitsmoduls 100" gesicherten) Speicher, z.B. flüchtigen Speicher, z.B. Arbeitsspeicher, z.B. ein secure local RAM. Element e25 symbolisiert eine Einrichtung zur Bildung von Hashwerten. Element e26 symbolisiert eine Schnittstelle zu dem Bussystem a6. Element e27 symbolisiert die Vorrichtung 400 gemäß den Ausführungsformen. Element e28 symbolisiert eine Einrichtung zur Ausführung von kryptografischen Primitiven und/oder Funktionen, beispielsweise basierend auf ECC (Elliptische-Kurven-Kryptografie). Element e29 symbolisiert eine Einrichtung zur Ausführung von kryptografischen Primitiven und/oder Funktionen, beispielsweise basierend auf dem RSA- Algorithmus. Element e30 symbolisiert eine Einrichtung zur Ausführung von kryptografischen Primitiven und/oder Funktionen, beispielsweise basierend auf dem AES-Algorithmus.
Element e31 symbolisiert eine Speichereinrichtung, beispielsweise angebunden über das Bussystem a6, z.B. vom RAM-Typ, die z.B. in einen geteilten Speicherbereich e31a, ein System-RAM e31b, und einen geschützten Bereich e31c aufgeteilt ist.
Die Vorrichtung e27, 400 kann eine Identität einzelner Partitionen e32-1 , ... ermitteln und z.B. für eine Steuerung eines Betriebs des Hardware- Sicherheitsmoduls 100" auf der Basis der ermittelten Identität bereitstellen.
Fig. 19 zeigt schematisch ein vereinfachtes Blockdiagramm eines SoC 1000" gemäß beispielhaften Ausführungsformen, das eine Recheneinrichtung 300 mit mehreren Partitionen e32-1 , e32-2, ... , e32-n aufweist, ein Hardware- Sicherheitsmodul 100", eine Speichereinrichtung e31, z.B. ähnlich oder identisch zu der Konfiguration gemäß Fig. 18. Element e33 symbolisiert eine D-MPLI mit einer Konfiguration e33a, die z.B. durch das Hardware-Sicherheitsmodul 100", z.B. über das Bussystem a6, vorgebbar und/oder veränderbar ist. Element e34 symbolisiert einen nichtflüchtigen Speicher, z.B. einen Flash-Speicher, z.B. Host- Flash, der z.B. einen Speicherbereich e34a für Daten und einen Speicherbereich e34b für Programmcode aufweist. Element e35a symbolisiert ein chip- bzw. SoC- internes Diagnoseinterface, Element e35b symbolisiert mit dem Diagnoseinterface e35a assoziierte Register, und Element e35c symbolisiert eine externe (außerhalb des SoC 1000" angeordnete) Diagnoseeinrichtung, z.B. einen Debug Access Port, also Anschluss für einen Diagnosezugang, z.B. zum Debuggen. Das Element e36 symbolisiert eine Einrichtung zur Verarbeitung z.B. von mit dem AES assoziierten Daten, die z.B. über ein sicheres Bussystem a9 an das Interface e26 angebunden ist, z.B. ebenso bzw. ähnlich wie der dem Hardware- Sicherheitsmodul 100" zugeordnete Flash-Speicher e20, s. das sichere Bussystem a10. Der Flash-Speicher e20 weist z.B. einen Datenbereich e20a auf und einen Bereich e20b für Programmcode.
Weitere beispielhafte Ausführungsformen, Fig. 20, beziehen sich auf eine Verwendung 500 des Verfahrens gemäß den Ausführungsformen und/oder der Vorrichtung 301 , 400 gemäß den Ausführungsformen und/oder des Hardware- Sicherheitsmoduls 100, 100', 100" gemäß den Ausführungsformen und/oder der Recheneinrichtung 300, 1000, 1000' gemäß den Ausführungsformen und/oder des computerlesbaren Speichermediums SM gemäß den Ausführungsformen und/oder des Computerprogramms PRG gemäß den Ausführungsformen und/oder des Datenträgersignals DCS gemäß den Ausführungsformen für wenigstens eines der folgenden Elemente: a) Ermitteln 501 von ersten Informationen 1-1 , die eine Identität wenigstens einer zum Zugriff auf das Hardware-Sicherheitsmodul ausgebildeten, beispielsweise auf das Hardware- Sicherheitsmodul zugreifenden, Partition einer Recheneinrichtung charakterisieren, b) Virtualisieren 502 eines Hardware-Sicherheitsmoduls, c) Ermitteln 503 einer Identität einer Partition, die auf das Hardware- Sicherheitsmodul zugreift, d) Priorisieren 504 von mit unterschiedlichen Partitionen einer Recheneinrichtung assoziierten Operationen basierend auf einer Identität wenigstens einer der unterschiedlichen Partitionen, e) Steigern 505 einer Sicherheit eines Hardware-Sicherheitsmoduls, auf das mehrere Partitionen einer Recheneinrichtung zugreifen können.
Das Prinzip gemäß den Ausführungen kann beispielsweise für Mikroprozessoren und/oder Mikrocontroller bzw. für SoCs 1000, 1000', 1000", z.B. für Steuergeräte, z.B. für Fahrzeuge, z.B. Kraftfahrzeuge (z.B. Steuergeräte für Brennkraftmaschinen und/oder Airbags und/oder Bremssysteme usw.), verwendet werden, und/oder für Domänen-Steuergeräte, ist aber nicht darauf beschränkt.

Claims

Ansprüche
1 . Verfahren zum Verarbeiten von mit einem Hardware-Sicherheitsmodul (100; 100'; 100") assoziierten Daten, aufweisend: Ermitteln (200) von ersten Informationen (1-1), die eine Identität (302-1-ID) wenigstens einer zum Zugriff (A1) auf das Hardware-Sicherheitsmodul (100; 100'; 100") ausgebildeten, beispielsweise auf das Hardware-Sicherheitsmodul (100; 100'; 100") zugreifenden, Partition (302-1) einer Recheneinrichtung (300) charakterisieren, und, optional, Verwenden (202) der ersten Informationen (I- 1), beispielsweise für eine Steuerung eines Betriebs des Hardware- Sicherheitsmoduls (100; 100'; 100") basierend wenigstens auf den ersten Informationen (1-1).
2. Verfahren nach Anspruch 1 , wobei das Ermitteln (200) der ersten Informationen (1-1) wenigstens eines der folgenden Elemente aufweist: a) Ermitteln (200a) der ersten Informationen (1-1) basierend auf einem Kommunikationskanal (K1), der, beispielsweise statisch, beispielsweise ausschließlich, mit der wenigstens einen Partition (302-1) assoziiert ist, b) Empfangen (200b) der ersten Informationen (1-1) über einen Kommunikationskanal (K), der zumindest zeitweise von der wenigstens einen Partition (302-1) verwendbar ist, wobei beispielsweise der Kommunikationskanal (K), beispielsweise im Zeitmultiplex, durch mehrere Partitionen (302-1 , 302-2, ...) verwendbar ist.
3. Verfahren nach wenigstens einem der vorstehenden Ansprüche, aufweisend: Empfangen (210) von zweiten Informationen (I-2), beispielsweise einer Unterbrechungsanforderung und/oder assoziiert mit einer Unterbrechungsanforderung, von der wenigstens einen Partition (302- 1), Ermitteln (212) der ersten Informationen (1-1) basierend auf einem Kommunikationskanal (K1), über den die zweiten Informationen (I-2) empfangen worden sind. Verfahren nach wenigstens einem der vorstehenden Ansprüche, aufweisend wenigstens eines der folgenden Elemente: a) Verwenden (220) mehrerer Kommunikationskanäle (K1 , K2, ...) für eine Kommunikation mit unterschiedlichen Partitionen (302-1 , 302-2, ...) der Recheneinrichtung (300), beispielsweise Verwenden (220a) eines ersten Kommunikationskanals (K1) der mehreren Kommunikationskanäle (K1 , K2, ...), beispielsweise ausschließlich, für eine Kommunikation mit einer ersten Partition (302-1) und Verwenden (220b) eines zweiten Kommunikationskanals (K2) der mehreren Kommunikationskanäle (K1 , K2, ...), beispielsweise ausschließlich, für eine Kommunikation mit einer zweiten Partition (302-2), b) Verwenden (222) eines, beispielsweise gemeinsamen, Kommunikationskanals (K) für eine Kommunikation mit unterschiedlichen Partitionen (302-1 , 302-2, ...) der Recheneinrichtung (300), beispielsweise basierend auf einem Zeitmultiplex-Verfahren. Verfahren nach wenigstens einem der vorstehenden Ansprüche, aufweisend wenigstens eines der folgenden Elemente: a) Verwenden (225) eines ersten Speicherbereichs (SB-1), beispielsweise aufweisend eine Anzahl von Speicherregistern, zur Realisierung eines ersten Kommunikationskanals (K1), b) Verwenden (227) eines zweiten Speicherbereichs (SB-2), beispielsweise aufweisend eine Anzahl von Speicherregistern, zur Realisierung eines zweiten Kommunikationskanals (K2), c) Verwenden (229) eines dritten Speicherbereichs (SB-3), beispielsweise aufweisend eine Anzahl von Speicherregistern, zur Realisierung eines gemeinsamen Kommunikationskanals (K) für eine Kommunikation mit unterschiedlichen Partitionen (302-1 , 302-2, ...) der Recheneinrichtung (300). Verfahren nach wenigstens einem der vorstehenden Ansprüche, aufweisend wenigstens eines der folgenden Elemente: a) Verwenden (230) eines geteilten Speicherbereichs (SH-MEM), beispielsweise shared memory, beispielsweise eines Arbeitsspeichers, beispielsweise RAM, beispielsweise zum Austauschen von Informationen, beispielsweise Daten, mit der wenigstens einen Partition (302-1 , 302-2, ...), b) Virtualisieren (232) des geteilten Speicherbereichs (SH-MEM), beispielsweise aufweisend ein Zuordnen unterschiedlicher Teilbereiche (SH-MEM-1 , SH-MEM-2, ...) zu jeweils einer anderen Partition (302-1 , 302-2, ...) der Recheneinrichtung (300), c) Verwenden (234) einer Speicherschutzeinrichtung (MPU), beispielsweise einer dynamischen Speicherschutzeinrichtung, D-MPLI, beispielsweise zum, z.B. dynamischen, Schützen wenigstens mancher Speicherbereiche vor Zugriffen wenigstens mancher Partitionen (302-1 , 302- 2, ...) der Recheneinrichtung (300).
7. Verfahren nach wenigstens einem der vorstehenden Ansprüche, aufweisend: Konfigurieren (240) einer bzw. der Speicherschutzeinrichtung (MPU), beispielsweise dynamischen Speicherschutzeinrichtung, D-MPLI, wobei beispielsweise das Konfigurieren (240) so erfolgt, dass die Speicherschutzeinrichtung wenigstens einen Speicherbereich, der z.B. mit einer ersten Partition (302-1) assoziiert ist, vor Manipulationen durch wenigstens eine weitere Partition (302-2, ...) schützt.
8. Verfahren nach wenigstens einem der vorstehenden Ansprüche, aufweisend: Zuordnen (245) einer Priorität (PR-1) zu der wenigstens einen Partition (302-1), Ausführen (247) einer mit der wenigstens einen Partition (302-1) assoziierten Operation (OP-302-1) basierend wenigstens auf der Priorität (PR-1) der wenigstens einen Partition (302-1).
9. Vorrichtung (400) zur Ausführung des Verfahrens nach wenigstens einem der vorstehenden Ansprüche.
10. Hardware-Sicherheitsmodul (100; 100'; 100") aufweisend wenigstens eine Vorrichtung (400) nach Anspruch 9.
11. Recheneinrichtung (300), beispielsweise System on Chip, SoC, (1000; 1000'; 1000"), aufweisend wenigstens eines der folgenden Elemente: a) Vorrichtung (400) nach Anspruch 9, b) Hardware-Sicherheitsmodul (100; 100'; 100") nach Anspruch 10, c) wenigstens eine Partition (302-1 , 302-2, ...).
12. Verfahren zum Übermitteln von mit einem Hardware-Sicherheitsmodul (100; 100'; 100") assoziierten Daten, aufweisend: Bereitstellen (250) einer Identität (302-1-ID) für wenigstens eine zum Zugriff (A1) auf das Hardware- Sicherheitsmodul (100; 100'; 100") ausgebildete, beispielsweise auf das Hardware-Sicherheitsmodul (100; 100'; 100") zugreifende, Partition (302-1) einer Recheneinrichtung (300), Übermitteln (252) von die Identität (302-1-ID) charakterisierenden Informationen (l-ID) an das Hardware-Sicherheitsmodul (100; 100'; 100"), beispielsweise über einen, z.B. für mehrere Partitionen (302-1 , 302-2, ...) gemeinsamen Kommunikationskanal (K). Verfahren nach Anspruch 12, wobei das Bereitstellen (250) und/oder das Übermitteln (252), beispielsweise vollständig, hardwarebasiert erfolgt. Verfahren zum Übermitteln von mit einem Hardware-Sicherheitsmodul (100; 100'; 100") assoziierten Daten, aufweisend: Bereitstellen (260) eines ersten Kommunikationskanals (K1) für einen Informationsaustausch zwischen einer, beispielsweise genau einer, ersten Partition (302-1) einer Recheneinrichtung (300) und dem Hardware-Sicherheitsmodul (100; 100'; 100"), und, optional Verwenden (262) des ersten Kommunikationskanals (K1) für den Informationsaustausch zwischen der ersten Partition (302-1) der Recheneinrichtung (300) und dem Hardware-Sicherheitsmodul (100; 100'; 100"). Verfahren nach Anspruch 14, aufweisend: Bereitstellen (264) eines zweiten Kommunikationskanals (K2) für einen Informationsaustausch zwischen einer, beispielsweise genau einer, zweiten Partition (302-2) der Recheneinrichtung (300) und dem Hardware-Sicherheitsmodul (100; 100'; 100"), und, optional Verwenden (266) des zweiten Kommunikationskanals (K2) für den Informationsaustausch zwischen der zweiten Partition (302-2) der Recheneinrichtung (300) und dem Hardware-Sicherheitsmodul (100; 100'; 100"). Vorrichtung (301) zur Ausführung des Verfahrens nach wenigstens einem der Ansprüche 12 bis 15. Computerlesbares Speichermedium (SM), umfassend Befehle (PRG), die bei der Ausführung durch einen Computer (202) diesen veranlassen, das Verfahren nach wenigstens einem der Ansprüche 1 bis 8 und/oder 12 bis 15 auszuführen. Computerprogramm (PRG), umfassend Befehle, die bei der Ausführung des Programms (PRG) durch einen Computer (202) diesen veranlassen, das Verfahren nach wenigstens einem der Ansprüche 1 bis 8 und/oder 12 bis 15 auszuführen. Datenträgersignal (DCS), das das Computerprogramm nach Anspruch 18 überträgt und/oder charakterisiert. Verwendung (500) des Verfahrens nach wenigstens einem der Ansprüche 1 bis 8 und/oder 12 bis 15 und/oder der Vorrichtung (400) nach Anspruch 9 und/oder des Hardware-Sicherheitsmoduls (100; 100'; 100") nach Anspruch 10 und/oder der Recheneinrichtung (300) nach Anspruch 11 und/oder der Vorrichtung (301) nach Anspruch 16 und/oder des computerlesbaren Speichermediums (SM) nach Anspruch 17 und/oder des Computerprogramms (PRG) nach Anspruch 18 und/oder des Datenträgersignals (DCS) nach Anspruch 19 für wenigstens eines der folgenden Elemente: a) Ermitteln (501) von ersten Informationen (1-1), die eine Identität (302-1-ID) wenigstens einer zum Zugriff (A1) auf das Hardware-Sicherheitsmodul (100; 100'; 100") ausgebildeten, beispielsweise auf das Hardware-Sicherheitsmodul (100; 100'; 100") zugreifenden, Partition (302-1) einer Recheneinrichtung (300) charakterisieren, b) Virtualisieren (502) eines Hardware-Sicherheitsmoduls (100; 100'; 100"), c) Ermitteln (503) einer Identität einer Partition (302-1 , 302-2, ...), die auf das Hardware- Sicherheitsmodul (100; 100'; 100") zugreift, d) Priorisieren (504) von mit unterschiedlichen Partitionen (302-1 , 302-2, ...) einer Recheneinrichtung (300) assoziierten Operationen basierend auf einer Identität wenigstens einer der unterschiedlichen Partitionen (302-1 , 302-2, ...), e) Steigern (505) einer Sicherheit eines Hardware-Sicherheitsmoduls (100; 100'; 100"), auf das mehrere Partitionen (302-1 , 302-2, ...) einer Recheneinrichtung (300) zugreifen können.
PCT/EP2023/070336 2022-08-01 2023-07-21 Verfahren und vorrichtung zum verarbeiten von mit einem hardware-sicherheitsmodul assoziierten daten WO2024028134A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102022207910.8 2022-08-01
DE102022207910.8A DE102022207910A1 (de) 2022-08-01 2022-08-01 Verfahren und Vorrichtung zum Verarbeiten von mit einem Hardware-Sicherheitsmodul assoziierten Daten

Publications (1)

Publication Number Publication Date
WO2024028134A1 true WO2024028134A1 (de) 2024-02-08

Family

ID=87474044

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2023/070336 WO2024028134A1 (de) 2022-08-01 2023-07-21 Verfahren und vorrichtung zum verarbeiten von mit einem hardware-sicherheitsmodul assoziierten daten

Country Status (2)

Country Link
DE (1) DE102022207910A1 (de)
WO (1) WO2024028134A1 (de)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102019220461A1 (de) * 2019-12-20 2021-06-24 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren und Vorrichtung zum Betreiben einer Recheneinrichtung

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102019220461A1 (de) * 2019-12-20 2021-06-24 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren und Vorrichtung zum Betreiben einer Recheneinrichtung

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SHIAO-LI TSAO ET AL: "Performance Evaluation of Inter-Processor Communication for an Embedded Heterogeneous Multi-Core Processor", JOURNAL OF INFORMATION SCIENCE AND ENGINEERING, vol. 28, 1 January 2012 (2012-01-01), pages 537 - 554, XP055513028 *

Also Published As

Publication number Publication date
DE102022207910A1 (de) 2024-02-01

Similar Documents

Publication Publication Date Title
DE69334091T2 (de) Zugangskontrollen-Untersystem und Verfahren für ein verteiltes Rechensystem, das lokal gespeicherte Authentifizierungsdaten benutzt
EP2899714B1 (de) Gesichertes Bereitstellen eines Schlüssels
DE102008006759B4 (de) Prozessor-Anordnung und Verfahren zum Betreiben der Prozessor-Anordnung ohne Verringerung der Gesamtsicherheit
DE69629738T2 (de) Verwaltung kryptographischer Schlüssel
DE102019107503A1 (de) Ein-chip-system und speichersystem, die einen sicherheitsprozessor mit verbesserter speichernutzungseffizienz umfassen, sowie verfahren zum betreiben des ein-chip-systems
DE112005001666T5 (de) Verfahren zum Bereitstellen von privaten Direktbeweis-Schlüsseln in signierten Gruppen für Vorrichtungen mit Hilfe einer Verteilungs-CD
DE102014002181B4 (de) Chip und Verfahren zum Betreiben eines Chips
DE112005001654T5 (de) Verfahren zum Übermitteln von Direct-Proof-Privatschlüsseln an Geräte mittels einer Verteilungs-CD
DE102017117895A1 (de) Sicherer Prozessor für mandantenfähige Cloud-Arbeitslasten
DE112017007755B4 (de) Schlüsselverwaltungsvorrichtung und kommunikationsgerät
WO2011054639A1 (de) Kryptographisches Hardwaremodul bzw. Verfahren zur Aktualisierung eines kryptographischen Schlüssels
DE102016210788A1 (de) Komponente zur Verarbeitung eines schützenswerten Datums und Verfahren zur Umsetzung einer Sicherheitsfunktion zum Schutz eines schützenswerten Datums in einer solchen Komponente
DE102022108625A1 (de) Mehrere physische anforderungsschnittstellen für sicherheitsprozessoren
DE60100363T2 (de) Sequenznummerierungsmechanismus zur sicherung der ausführungsordnungs-integrietät von untereinander abhängigen smart-card anwendungen
EP3655876B1 (de) Ein-chip-system, verfahren zum betrieb eines ein-chip-systems und kraftfahrzeug
DE602004002241T2 (de) Schutz eines auf ausführungwartenden Programms in einem Speicher für einen Mikroprozessor
WO2021122734A1 (de) Verfahren und vorrichtung zum betreiben einer recheneinrichtung
WO2024028134A1 (de) Verfahren und vorrichtung zum verarbeiten von mit einem hardware-sicherheitsmodul assoziierten daten
DE112020005949T5 (de) Informationsverarbeitungsvorrichtung, Anomalieerfassungsverfahren und Computerprogramm
EP3819804A1 (de) Integritätsüberprüfung eines registerinhalts
DE102020216030A1 (de) Verfahren zum abgesicherten Start einer Recheneinheit
DE102021108961A1 (de) Verschlüsselungsschlüssel von speichersystemen
EP3422234B1 (de) Container-image, computerprogrammprodukt und verfahren
DE112019006051T5 (de) Sicheres-rechnen-einrichtung und client-einrichtung
EP3371733A1 (de) Verschlüsseln des speicherinhalts eines speichers in einem eingebetteten system

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: 23745487

Country of ref document: EP

Kind code of ref document: A1