Patent Description:
The production and assembly of state-of-the-art electronic consumer equipment, such as smartphones, tablet computers as well as other types of loT devices, often happens in a distributed fashion in that the various electronic components or devices, including the electronic chips or microprocessors of the electronic consumer equipment are manufactured, provisioned or personalized and finally assembled at different locations and by different parties. For instance, an electronic chip or microprocessor for an electronic consumer equipment may be originally manufactured by a chip manufacturer and provisioned by another party with personalized provisioning data, before being assembled into the final end product by the manufacturer of the electronic consumer equipment, e.g. an OEM (Original Equipment Manufacturer).

Document <CIT> discloses a system comprising a configuration file producer.

Document <CIT> discloses a secure programming system and a device programmer.

Often the personalized provisioning data includes firmware, software applications or other types of program code of the OEM as well as one or more personalized cryptographic keys, which are unique for each electronic device to be provisioned. However, before the actual production of electronics devices for the OEM, i.e. the provisioning of the electronics devices with personalized provisioning data, the provisioning process must usually be tested to work correctly. Generally, this development and testing phase is done by the OEM.

For such distributed processing chains of electronic equipment there is a need for apparatuses, systems and methods allowing for a secure and controlled provisioning of electronic components or devices, such as chips or microprocessors of the electronic equipment.

It is therefore an object of the invention to provide apparatuses and methods allowing for a secure and controlled provisioning of electronic devices, such as chips or microprocessors for electronic equipment.

Further embodiments are apparent from the dependent claims, the description and the figures.

According to a first aspect an apparatus for generating a plurality of provisioning data sets for provisioning a plurality of electronic devices is provided. The electronic devices may comprise chips, microprocessors or other programmable electronic components, such as Flash memories, electrically erasable programmable read only memories (EEPROM), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), and microcontrollers incorporating non-volatile memory elements and/or Physical Unclonable Functions (PUFs). The respective provisioning data set may include a plurality of data elements, such as personalized cryptographic keys, a firmware, a software application or another type of program code. The respective provisioning data set may be digitally signed.

The apparatus according to the first aspect comprises a processing circuitry, e.g. a processor, configured to obtain a first provisioning data set for provisioning an electronic device and to generate at least one further provisioning data set for provisioning at least one further electronic device by generating at least one copy of the first provisioning data set. Moreover, the apparatus comprises a communication interface configured to output the at least one further provisioning data set for provisioning the at least one further electronic device.

In a further embodiment, the apparatus further comprises a memory configured to store the first provisioning data set and/or the at least one further provisioning data set.

In a further embodiment, the at least one further provisioning data set is a production provisioning data set, i.e. a provisioning data set for completing the production of the electronic devices, wherein the processing circuitry is further configured to encrypt the at least one further production provisioning data set and wherein the communication interface is configured to transmit the at least one further encrypted production provisioning data set to a production provisioning control apparatus for provisioning the at least one further electronic device with the at least one further production provisioning data set using the production provisioning control apparatus. A hybrid encryption scheme, such as PKCS#<NUM>, may be used.

In a further embodiment, the first provisioning data set comprises a first cryptographic key, wherein the processing circuitry is further configured to generate a second cryptographic key using, for instance, a key generation mechanism and to replace the first cryptographic key of the at least one further provisioning data set with the second cryptographic key.

In a further embodiment, the first provisioning data set is a development provisioning data set, i.e. a provisioning data set for developing and testing the provisioning of the electronic devices, and the at least one further provisioning data set is a production provisioning data set, wherein the first cryptographic key has a first key entropy and the second cryptographic key has a second key entropy, wherein the second key entropy is larger than the first key entropy.

In a further embodiment, the first provisioning data set comprises a plurality of data elements, wherein the processing circuitry is further configured to replace an adjustable subset of the plurality of data elements of the at least one further provisioning data set with one or more preset data elements.

In a further embodiment, the first provisioning data set is a development provisioning data set, wherein the adjustable subset of the plurality of data elements of the at least one further provisioning data set depends on whether the at least one further provisioning data set is a development provisioning data set or a production provisioning data set.

According to a second aspect a method for generating a plurality of provisioning data sets for provisioning a plurality of electronic devices is provided. The method comprises a step of obtaining a first provisioning data set for provisioning an electronic device. Furthermore, the method comprises a step of generating at least one further provisioning data set for provisioning at least one further electronic device by generating at least one copy of the first provisioning data set. The method further comprises a step of outputting the at least one further provisioning data set for provisioning the at least one further electronic device.

In a further embodiment, the method further comprises a step of storing the first provisioning data set and/or the at least one further provisioning data set in a memory.

In a further embodiment, the at least one further provisioning data set is a production provisioning data set, i.e. a provisioning data set for completing the production of the electronic devices, wherein the method comprises the further steps of encrypting the at least one further production provisioning data set and transmitting the at least one further encrypted production provisioning data set to a production provisioning control apparatus for provisioning the at least one further electronic device with the at least one further production provisioning data set using the production provisioning control apparatus.

In a further embodiment, the first provisioning data set comprises a first cryptographic key, wherein the method further comprises the steps of generating a second cryptographic key and replacing the first cryptographic key of the at least one further provisioning data set with the second cryptographic key.

In a further embodiment, the first provisioning data set comprises a plurality of data elements, wherein the method comprises a further step of replacing an adjustable subset of the plurality of data elements of the at least one further provisioning data set with one or more preset data elements.

According to a third aspect a computer program product is provided comprising a non-transitory computer-readable storage medium for storing program code which causes a computer or a processor to perform the method according to the second aspect when the program code is executed by the computer or the processor.

Embodiments of the invention can be implemented in hardware and/or software.

In the figures, identical reference signs are used, as far as possible, for identical or at least functionally equivalent features.

In the following detailed description, reference is made to the accompanying drawings, which form part of the disclosure, and in which are shown, by way of illustration, specific aspects in which the present invention may be implemented. It is understood that other aspects may be utilized and structural or logical changes may be made without departing from the scope of the present invention. The following detailed description, therefore, is not to be taken in a limiting sense, as the scope of the present invention is defined by the appended claims.

<FIG> shows a schematic diagram of a provisioning system <NUM> according to an embodiment of the invention. The provisioning system <NUM> comprises an apparatus <NUM> for generating a plurality of provisioning data sets <NUM>, <NUM>' for provisioning a plurality of electronic devices <NUM>, such as chips <NUM> or microprocessors <NUM> for electronic consumer equipment. As can be taken from <FIG>, the apparatus <NUM> may comprise a processor <NUM>, a communication interface <NUM> and a memory <NUM>. As will be described in more detail below, the processor <NUM> of the apparatus <NUM> is configured to obtain a first provisioning data set <NUM>, <NUM>' for provisioning an electronic device <NUM> and to generate at least one further provisioning data set <NUM>, <NUM>' for provisioning at least one further electronic device <NUM> by generating at least one copy of the first provisioning data set <NUM>, <NUM>'. Moreover, the communication interface <NUM> of the apparatus <NUM> is configured to output the at least one further provisioning data set <NUM>, <NUM>' for provisioning the at least one further electronic device <NUM>. The first provisioning data set <NUM>, <NUM>' and/or the at least one further provisioning data set <NUM>, <NUM>' may be stored in the memory <NUM> of the apparatus <NUM>.

In addition to the apparatus <NUM> for generating the plurality of provisioning data sets <NUM>, <NUM>' the provisioning system <NUM> may comprise a production provisioning control apparatus <NUM>, a security server <NUM> and a production provisioning equipment server <NUM> for provisioning or personalizing the plurality of electronic devices <NUM>, such as chips or microprocessors <NUM> with a respective provisioning data set <NUM>'. In the embodiment shown in <FIG>, the apparatus <NUM> for generating the plurality of provisioning data sets <NUM>, <NUM>' may be implemented as a development provisioning apparatus <NUM> for testing and developing the provisioning of the electronic devices <NUM> with a respective provisioning data set <NUM>. In an embodiment, the development provisioning apparatus <NUM> may be operated by the electronic equipment manufacturer, i.e. the OEM as a part of a testing and developing environment 110a of the OEM.

As illustrated in <FIG>, the production provisioning control apparatus <NUM>, the development provisioning apparatus <NUM> and the security server <NUM> may be configured to communicate with each other via a communication network, such as the Internet. Thus, the production provisioning control apparatus <NUM>, the development provisioning apparatus <NUM> and the security server <NUM> may be at different locations and under the control of different parties. As illustrated in <FIG>, the production provisioning control apparatus <NUM> and the production provisioning equipment server <NUM> may be located within a production environment <NUM>, such as a personalization factory <NUM>. As already mentioned above, the development provisioning apparatus <NUM> may be under the control or associated with an electronic equipment manufacturer, e.g. an OEM, wherein the electronic equipment manufacturer assembles electronic equipment, such as smartphones, tablet computers or other types of loT or electronic consumer equipment, using the electronic devices <NUM> provisioned by the production provisioning equipment server <NUM> with the respective production provisioning data set <NUM>'. In an embodiment, the respective production provisioning data set <NUM>' may comprise a plurality of data elements, such as cryptographic keys, a firmware and/or a software application of the electronic equipment manufacturer associated. Thus, a provisioning data set <NUM>, <NUM>' may be a collection of configuration data objects that defines specifics controlling provisioning of the electronic devices <NUM>. A provisioning data set <NUM>, <NUM>' may comprise software configuration information (such as certificate chain configurations, logging and debugging configurations, new-version settings), security secrets (such as cryptographic certificates and/or keys) as well as configuration settings concerning the hardware of the electronic devices (such as memory-addresses and lockdown information). Advantageously, this allows the electronic equipment manufacturer to have control over the provisioning of the electronic devices <NUM> with its firmware or software applications.

In an embodiment, the production provisioning control apparatus <NUM>, the development provisioning apparatus <NUM> and the security server <NUM> are configured to securely communicate with each other using one or more cryptographic schemes, such as a public key infrastructure and/or a hybrid cryptographic scheme.

The production provisioning control apparatus <NUM> is configured to be coupled to the provisioning equipment server <NUM>, for instance, by a wired or a wireless connection. In an embodiment, the production provisioning equipment server <NUM> may be implemented as a personal computer and the production provisioning control apparatus <NUM> may be implemented as a PC card inserted in the production provisioning equipment server <NUM>.

The production provisioning equipment server <NUM> may comprise an electrical and/or mechanical interface for interacting directly or indirectly via a provisioning equipment with the electronic devices <NUM>. For instance, the production provisioning equipment server <NUM> may comprise a personalization tray for personalizing a batch of electronic devices <NUM> inserted therein.

In an embodiment, the at least one further provisioning data set <NUM>, <NUM>' is a production provisioning data set <NUM>' (herein referred to with the reference sign <NUM>'), i.e. a provisioning data set <NUM>' for completing the production of the electronic devices <NUM>. The processing circuitry <NUM> of the apparatus <NUM> may be further configured to encrypt the at least one further production provisioning data set <NUM>' using for instance a cryptographic key 115a stored in the memory <NUM> wherein the communication interface <NUM> of the apparatus is configured to transmit the at least one further encrypted production provisioning data set <NUM>' to the production provisioning control apparatus <NUM> for provisioning the at least one further electronic device <NUM> with the at least one further production provisioning data set <NUM>' using the production provisioning control apparatus <NUM>. The production provisioning control apparatus <NUM> may be configured to decrypt the encrypted production provisioning data set <NUM>' using a further cryptographic key 117b. A hybrid encryption scheme, such as PKCS#<NUM>, may be used.

In an embodiment, the first provisioning data set <NUM>, <NUM>' used by the apparatus <NUM> for generating the further provisioning data sets <NUM>, <NUM>' comprises one or more cryptographic keys, including a first cryptographic key. In an embodiment, the processing circuitry <NUM> of the apparatus <NUM> is further configured to generate a second cryptographic key using, for instance, a key generation mechanism and to replace the first cryptographic key of the at least one further provisioning data set <NUM>, <NUM>' with the second cryptographic key.

In an embodiment, the first provisioning data set <NUM> may be a development provisioning data set <NUM>, i.e. a provisioning data set <NUM> for developing and testing the provisioning of the electronic devices <NUM> (herein referred to as development provisioning data set <NUM>), and the at least one further provisioning data set <NUM>' is a production provisioning data set <NUM>'. In this case, the processing circuitry <NUM> of the apparatus <NUM> may be configured to generate the second key entropy with a second key entropy that is larger than a first key entropy of the first cryptographic key.

In an embodiment, the apparatus <NUM> may be configured to generate the first cryptographic key using a first set of random numbers or random seed numbers and the second cryptographic key using a second set of random numbers or random seed numbers, wherein the entropy of the first set of random numbers is smaller than the entropy of the second set of random numbers. By way of example, in an embodiment, a reduced set of numbers may be used as the source for a cryptographic key generation mechanism for generating the first cryptographic key. In an embodiment, rather than using a small set of "random" numbers, the numbers may be chosen such that they do not appear very random at all. By way of example, the following "random numbers" may be used for generating the first cryptographic key:.

In an embodiment, the first provisioning data set <NUM>, <NUM> comprises a plurality of data elements, wherein the processing circuitry <NUM> of the apparatus is further configured to replace an adjustable subset of the plurality of data elements of the at least one further provisioning data set <NUM>, <NUM>' with one or more preset data elements. In an embodiment, where the first provisioning data set <NUM> is a development provisioning data set <NUM>, the adjustable subset of the plurality of data elements of the at least one further provisioning data set <NUM>, <NUM>' may depend on whether the at least one further provisioning data set <NUM>, <NUM>' is a development provisioning data set <NUM> or a production provisioning data set <NUM>'.

<FIG> shows a schematic diagram illustrating processing steps implemented by the apparatus <NUM> (some of which already have been described above) for generating on the basis of an existing development provisioning data set (or security context) <NUM> a production provisioning data set (or security context) <NUM>'. In a first stage, a straight clone of the existing development provisioning data set (or security context) <NUM> is taken. In a second stage, depending on the intended target environment, i.e. development or production, more or less of the data elements of the cloned development provisioning data set <NUM> may be overwritten using preset data elements (however, in an embodiment, these data elements may remain unchanged as well). In a third stage, one or more security-specific data elements of the cloned development provisioning data set (or security context) <NUM>, such as keys, certificates and update-keys, may be regenerated, as already described above, resulting in the production provisioning data set <NUM>'.

As will be appreciated, in an embodiment, the apparatus <NUM> advantageously allows selecting the data elements to be optimal for development (in the first provisioning data set <NUM>) or optimal for production (in the second provisioning data set <NUM>'). For instance, the apparatus <NUM> may be configured to enable debug logging in the development stage and disable debug logging in the production stage by setting and adjusting a respective data element in the first development provisioning data set <NUM> and the second production provisioning data set <NUM>'.

As illustrated in <FIG>, the apparatus <NUM> may comprise a further interface <NUM>, such as a human interface or an application programming interface, to allow a user or another device to interact with the apparatus <NUM>, e.g. for specifying a particular target environment, i.e. development or production, as well as some security options, such as whether to replace 'secret' information such as keys, with freshly generated values. In the embodiment illustrated in <FIG> the production provisioning control apparatus <NUM> comprises a processor <NUM>, a communication interface <NUM> and a non-transient memory <NUM>. The communication interface <NUM> is configured to transmit the plurality of production provisioning data sets <NUM>' to the production provisioning equipment server <NUM>.

The communication interface <NUM> of the production provisioning control apparatus <NUM> may configured to receive an electronic provisioning token. The electronic provision token may be generated by the security server <NUM>. The security server <NUM> may be configured to generate the electronic provisioning token in response to a token request from the apparatus <NUM> associated with the electronic equipment manufacturer. Advantageously, this allows the security server <NUM> to generate and provide the electronic provisioning token on demand, i.e. when the electronic equipment manufacturer wants to obtain electronic devices <NUM> provisioned by the electronic equipment server <NUM> with a respective provisioning data set <NUM> for assembling electronic equipment.

In response to the request the security server <NUM> may provide the generated electronic provisioning token to the apparatus <NUM>, which, in turn, may forward the generated electronic provisioning token to the production provisioning control apparatus <NUM>. In a further embodiment, the security server <NUM> may provide the generated electronic provisioning token directly to the production provisioning control apparatus <NUM>.

The electronic provisioning token may comprise a provisioning counter indicating a total number of allowed transmissions of the provisioning data set <NUM>' towards the production provisioning equipment server <NUM> in the production provisioning stage. Once received by the communication interface <NUM>, the processor <NUM> of the production provisioning control apparatus <NUM> is configured to retrieve the provisioning counter from the received electronic provisioning token, i.e. the total number of allowed transmissions of the respective provisioning data set <NUM>' via the communication interface <NUM> to the production provisioning equipment server <NUM> in the production provisioning stage. For each transmission of the respective provisioning data set <NUM>' via the communication interface <NUM> to the provisioning equipment server <NUM> the processor <NUM> of the production provisioning control apparatus <NUM> is configured in the production provisioning stage to update the value of the provisioning counter and to obtain an updated value of the provisioning counter. For instance, the processor <NUM> may be configured to decrement the current value of the provisioning counter by one for each transmission of the respective provisioning data set <NUM>' via the communication interface <NUM> to the production provisioning equipment server <NUM>.

In the production provisioning stage the processor <NUM> of the production provisioning control apparatus <NUM> is further configured to prohibit a further transmission of the respective provisioning data set <NUM>' to the production provisioning equipment server <NUM>, if the updated value of the provisioning counter indicates that the total number of transmissions has been reached. In other words, once the total number of electronic devices <NUM> (as indicated by the initial provision counter of the electronic token) have been provisioned with the respective provisioning data set <NUM>' by the production provisioning equipment server <NUM> in the production provisioning stage, the production provisioning control apparatus <NUM> blocks the provisioning of further electronic devices <NUM> with the respective provisioning data set <NUM>' by the production provisioning equipment server <NUM>.

<FIG> shows a flow diagram illustrating steps of a corresponding method <NUM> according to an embodiment of the invention for generating a plurality of provisioning data sets <NUM>, <NUM>' for provisioning the plurality of electronic devices <NUM>. The method <NUM> comprises a step <NUM> of obtaining a first provisioning data set <NUM>, <NUM>' for provisioning an electronic device <NUM>. Furthermore, the method <NUM> comprises a step <NUM> of generating at least one further provisioning data set <NUM>, <NUM>' for provisioning at least one further electronic device <NUM> by generating at least one copy of the first provisioning data set <NUM>, <NUM>'. The method <NUM> further comprises a step <NUM> of outputting the at least one further provisioning data set <NUM>, <NUM>' for provisioning the at least one further electronic device <NUM>.

While a particular feature or aspect of the disclosure may have been disclosed with respect to only one of several implementations or embodiments, such feature or aspect may be combined with one or more other features or aspects of the other implementations or embodiments as may be desired and advantageous for any given or particular application.

Furthermore, to the extent that the terms "include", "have", "with", or other variants thereof are used in either the detailed description or the claims, such terms are intended to be inclusive in a manner similar to the term "comprise". Also, the terms "exemplary", "for example" and "e.g." are merely meant as an example, rather than the best or optimal. The terms "coupled" and "connected", along with derivatives may have been used. It should be understood that these terms may have been used to indicate that two elements cooperate or interact with each other regardless whether they are in direct physical or electrical contact, or they are not in direct contact with each other.

Although the elements in the following claims are recited in a particular sequence, unless the claim recitations otherwise imply a particular sequence for implementing some or all of those elements, those elements are not necessarily intended to be limited to being implemented in that particular sequence.

Claim 1:
An apparatus (<NUM>) for generating a plurality of provisioning data sets (<NUM>, <NUM>') for provisioning a plurality of electronic devices (<NUM>), wherein the apparatus (<NUM>) comprises:
a processing circuitry (<NUM>) configured to obtain a first provisioning data set (<NUM>, <NUM>') for provisioning an electronic device (<NUM>) and to generate at least one further provisioning data set (<NUM>, <NUM>') for provisioning at least one further electronic device (<NUM>) by generating at least one copy of the first provisioning data set (<NUM>, <NUM>');
a communication interface (<NUM>) configured to output the at least one further provisioning data set (<NUM>, <NUM>') for provisioning the at least one further electronic device (<NUM>),
wherein the first provisioning data set (<NUM>, <NUM>') comprises a plurality of data elements and wherein the processing circuitry (<NUM>) is further configured to replace an adjustable subset of the plurality of data elements of the at least one further provisioning data set (<NUM>, <NUM>') with one or more preset data elements,
wherein the first provisioning data set (<NUM>, <NUM>') is a development provisioning data set (<NUM>) and wherein the adjustable subset of the plurality of data elements of the at least one further provisioning data set (<NUM>, <NUM>') depends on whether the at least one further provisioning data set (<NUM>, <NUM>') is a development provisioning data set (<NUM>) or a production provisioning data set (<NUM>').