The present technique relates to the field of electronic devices. More particularly, it relates to establishing a cryptographic identity for an electronic device.
Increasingly, electronic devices are being used for processing of potentially sensitive information. For example, it is increasingly common for banking to be carried out using applications running on mobile devices. For a user to be confident that it is safe to use their electronic device for a potentially sensitive application, mechanisms may be provided to establish trust in data or commands received by the device. Similarly, electronic devices, such as sensors in the Internet of Things, may need keys for cryptographically proving their identity to others to ensure trust in the data sent by the sensor. However, establishing device-specific trust roots in a manufacturing setting can be an expensive and cumbersome undertaking.
At least some examples provide a method for establishing a new cryptographic identity for an electronic device, the method comprising:
providing in the electronic device at least one device key for encryption or decryption of data or commands or for proving the identity of the electronic device according to the new cryptographic identity; and
uploading, to a public ledger for tracking a chain of cryptographic identities established for said electronic device, information indicative of an identity of a stakeholder establishing the new cryptographic identity and an order in which the new cryptographic identity was established with respect to other cryptographic identities in said chain.
At least some examples provide a computer program for controlling an electronic device to perform the method described above. The computer program may for example be stored on a storage medium. The storage medium may be a non-transitory medium.
At least some examples provide an electronic device comprising circuitry configured to:
provide in the electronic device at least one device key for encryption or decryption of data or commands or for proving the identity of the electronic device according to a new cryptographic identity; and
upload, to a public ledger for tracking a chain of cryptographic identities established for said electronic device, information indicative of an identity of a stakeholder establishing the new cryptographic identity and an order in which the new cryptographic identity was established with respect to other cryptographic identities in said chain.
Further aspects, features and advantages of the present technique will be apparent from the following description of examples, which is to be read in conjunction with the accompanying drawings, in which:
An electronic device may, en route from its initial manufacture to the end user, pass through the hands of several stakeholders (e.g. several parties responsible for different stages of the device manufacture or configuration, or parties responsible for installing software applications or operating systems on the device). Each stakeholder may wish to embed keys defining a cryptographic identity for the device. For example, the keys can be used for authenticating commands to be executed by the device (e.g. commands for providing software updates) or to prove the device's identity to the stakeholder or other parties when the device interacts with them. Typically, this is done by a root stakeholder at the top of the chain taking responsibility for the chain of trust. The root stakeholder guarantees the device identity to stakeholders further down the chain and takes responsibility for authenticating each subsequent stakeholder who wishes to configure the device (with the subsequent stakeholders being authenticated either directly by the root stakeholder or in a delegated manner by the root stakeholder authorizing other stakeholders to authenticate further stakeholders on their behalf). However, this approach relies on (a) the root stakeholder being able to authenticate the subsequent stakeholders, and (b) the attestations of the root stakeholder being trusted by other parties. With the advent of the Internet of Things (IoT), increasingly there is no longer a clear “computing device manufacturer” as the manufacture of a given end device may be divided into a large number of iterative sourcing steps, and the products provided by a given manufacturer may find their way into a vast array of different products made by different parties. Hence, it may be increasingly difficult for one party to vouch for all subsequent stakeholders who may configure aspects of the device. Also, as the original device manufacturer may be a relatively small-scale outfit, other stakeholders may not be prepared to trust the attestations of such a small-scale manufacturer.
The present disclosure describes a method for establishing a new cryptographic identity for an electronic device, which comprises providing at least one device key for encryption or decryption of data or commands or for proving the identity of the electronic device according to the new cryptographic identity, and uploading, to a public ledger for tracking a chain of cryptographic identities established for said electronic device, information indicative of an identity of a stakeholder establishing the new cryptographic identity and an order in which the new cryptographic identity was established with respect to other cryptographic identities in said chain.
With this approach, it is not necessary for the stakeholder providing the new cryptographic identity to have been authorised by a previous stakeholder, or to have trust that a previous stakeholder has appropriately managed trust in the device up to the point when the current stakeholder has received the device. Different cryptographic identities can be established for the same device completely independently from one another—interaction between stakeholders is not essential. Rather than verification of the chain of trust being implicit from the authentication of one stakeholder by another stakeholder, instead the chain of trust can be verified using a public ledger which tracks the chain of cryptographic identities established for the electronic device. On establishing a new cryptographic identity for the device, information indicative of the identity of the stakeholder establishing that new cryptographic identity and an order in which the identity was established with respect to other cryptographic identities in the chain is uploaded to the public ledger. Hence, the public ledger can later be used if necessary to check that a number of independently-configured cryptographic identities do in fact relate to the same device, and/or identify how the device passed between the different stakeholders who set up the different cryptographic identities.
The public ledger may for example comprise a block chain, a linked list of blocks of data whose validity can be verified by checking the relation between successive blocks in the chain. In some examples, the public ledger may maintain a public component of the device key alongside the ledger entries tracking the stakeholder identities and sequence.
Each block of data on the public ledger may comprise information dependent on a counter maintained by the electronic device for tracking a number of transactions accepted by the electronic device for establishing the chain of cryptographic identities. This allows the sequence of stakeholders to be verified, since a different order of the stakeholders would result in different values of the counter associated with the respective stakeholders' entries in the public ledger. In one example, each block of data on the public ledger comprises information dependent on two successive count values of said counter, so that the forward flowing nature of the chain of blocks included on the public ledger can be proved.
In one example, establishment of the new cryptographic identity may require successful acceptance of an ownership taken transaction initiated by the stakeholder establishing the new cryptographic identity. Hence, when the ownership taken transaction is accepted, the at least one device key is provided in the device (e.g. by injecting one or more externally generated keys or by controlling the device to generate the keys internally). Acceptance of the ownership taken transaction may for example be dependent on certification of the identity of the stakeholder (certification that the stakeholder is actually the party they claim to be, e.g. using a digital certificate or public key infrastructure based mechanism).
Acceptance of the ownership taken transaction may also be dependent on the stakeholder providing a transfer token derived from a previous transaction performed on the electronic device by a previous stakeholder who established a previous cryptographic identity in the chain of cryptographic identities. By making establishment of the new cryptographic identity dependent on the transfer token derived by the previous stakeholder who interacted with the device, this provides a protocol which provides freedom for a given stakeholder to restrict subsequent configuration of the device to particular authorised stakeholders should they wish, but which also allows for stakeholders to configure the device independently without authorisation by the previous stakeholder. If the previous stakeholder wishes to make the device available for general configuration by any subsequent stakeholder (without any interaction between stakeholders), then they can store the transfer token derived from their interaction with the device in a publicly accessible location, e.g. on a server or in a location within storage on the electronic device itself, and on receiving the electronic device, the new stakeholder can then read the transfer token from the publicly accessible location and provide the transfer token when issuing the ownership taken transaction. On the other hand, if the previous stakeholder wishes to restrict subsequent configuration of the device to a particular party, then they can keep the transfer token secret to the public at large, and only provide the transfer token to the particular party or parties they wish to authorise to establish further cryptographic identities on the device. Hence, the use of the transfer token provides the flexibility to support both a hierarchical model in which an earlier stakeholder authenticates a particular subsequent stakeholder, and an independent model where each stakeholder independently configures the device without interaction with the previous stakeholder, with the previous stakeholder selecting which model is used for the next link in the chain depending on how they choose to distribute the transfer token (publicly or privately). In some examples, the transfer token may for example be a random number generated based on some seed information held by the electronic device and the counter discussed above (which tracks the number of accepted transactions), which can make it difficult for a malicious party to guess the transfer token returned for a given link in the chain of trust.
On acceptance of the ownership taken transaction, a block of data binding identity information indicative of the identity of the stakeholder to the transfer token may be uploaded to the public ledger. For example, where a counter for tracking the number of transactions accepted by the electronic device is used as discussed above, the block of data uploaded to the public ledger in response to acceptance of the ownership taken transaction may comprise at least a first value dependent on the transfer token and a given value of the counter; and a second value dependent on the identity information and a next value of the counter.
In some examples, the ownership taken transaction may be the only transaction required for a given stakeholder to establish the cryptographic identity, before passing the device to the next stakeholder in the chain. In this case, the public ledger could comprise one block of data per stakeholder.
However, in some examples, following acceptance of a given ownership taken transaction, acceptance of a subsequent ownership taken transaction may be prohibited until after acceptance of an ownership release transaction. This provides a protocol which allows a given stakeholder to terminate the chain of trust, since if they choose never to issue the ownership release transaction, no subsequent ownership taken transaction will be accepted by the device, and so no other stakeholder can configure further cryptographic identities.
In one example, following acceptance of a given ownership release transaction, the electronic device may be prohibited from using the at least one device key provided in response to said given ownership taken transaction or a previous ownership taken transaction for encryption or decryption of data or commands or for proving the identity of the electronic device, until after acceptance of a subsequent ownership taken transaction. This protects the device against inappropriate use when in transit between stakeholders. Even if a malicious party intercepts the device when travelling between stakeholders, they would not be able to make use of the device's credentials until a subsequent stakeholder has their ownership taken transaction accepted (which may require authentication of the stakeholder's identity).
Acceptance of the ownership release transaction may be dependent on the stakeholder providing at least one of information returned by the electronic device in response to said given ownership taken transaction; and information for proving that a stakeholder initiating the ownership release transaction is the stakeholder who initiated said given ownership taken transaction. This allows the device to check that the party initiating the ownership release transaction is the same stakeholder as the stakeholder who initiated the previous ownership taken transaction (or at least that the party is authorised by that stakeholder), to prevent a malicious party being able to re-start the chain by permitting further cryptographic identities to be established once more, if this is not desired by the most recent stakeholder.
In response to acceptance of the ownership release transaction, the electronic device may return a transfer token to the stakeholder initiating the ownership release transaction, wherein acceptance of a subsequent ownership taken transaction is dependent on provision of the transfer token to the electronic device. Hence, the transfer token described above may be derived from the ownership release transaction. The transfer token may be generated as a function of a counter for tracking a number of transactions accepted by the electronic device for establishing the chain of cryptographic identities.
In one example, in response to acceptance of the ownership release transaction, data binding identity information indicative of the identity of the stakeholder who initiated the ownership release transaction to the transfer token generated in response to the ownership release transaction may be uploaded to the public ledger. This block may be in addition to the block of data uploaded in response to acceptance of the ownership taken transaction (e.g. the public ledger may include at least two blocks per stakeholder). Including the transfer token in the public ledger enables verification of the links between the blocks uploaded during the configuration by one stakeholder and the blocks uploaded by previous or following stakeholders in the chain. If the same stakeholders act in a different sequence, this would result in different data on the block chain.
Again, the data uploaded for the ownership taken transaction may depend on the counter for tracking the number of transactions accepted by the electronic device for establishing the chain of cryptographic identities. For example, the data uploaded to the public ledger in response to acceptance of the ownership taken transaction may comprise at least a first value dependent on the stakeholder identity information and a given value of said the; and a second value dependent on the transfer token and a next value of the counter.
Also, in response to acceptance of the ownership release transaction, information for validating the identity of the stakeholder who initiated the most recent ownership taken transaction may be uploaded to the public ledger. While some identity information dependent on the stakeholder's identity may already have been uploaded to the public ledger in response to the ownership taken transaction, information for processing that identity information in order to verify who the stakeholder is may not be included until after the ownership release transaction has been accepted. This allows the final stakeholder in the chain of trust (who has not yet triggered the ownership release transaction) to remain anonymous in the public ledger.
In some examples, to increase security, the electronic device 2 may have a hardware architecture which supports operation of a secure runtime environment 30 in addition to a normal runtime environment 32, as shown in
The trust established by a given cryptographic identity may derive ultimately from a particular certifying authority, who could be a manufacturer of the electronic device itself, a party supplying secure software for setting up the infrastructure for checking the cryptographic identity associated with the commands to be executed and verifying their authenticity, or an entirely independent body responsible for authorising other parties applications for example. Hence, one approach for maintaining trust in the applications running on the electronic device could be that the certifying authority sets up cryptographic identities for each of the applications which could be installed on the device and is responsible for configuring the device with information defining the criteria to be used for all signing and authenticating operations associated with any command to be executed by an application. However, in practice the number of applications that could potentially need authentication is vast, and one certifying authority may simply not have enough resources for verifying all applications, including specifying the criteria to be applied for commands from any given application to be authenticated. Hence, this approach with a single agent establishing the cryptographic identity for all applications does not scale in practice.
The hierarchical chain or trust shown in
However, efficiently seeding/imprinting device-specific trust roots in a manufacturing setting is an expensive and cumbersome undertaking. Additionally, it introduces an aspect of key management—the stakeholder that owns the seeded keys typically will maintain a PKI-like system (or a publicly accessible server setup) for distributing and transforming the trusted channel to the endpoint into device authentications and attestation for other stakeholders needing to establish trust in the aforementioned device. Few device/chip providers are prepared to undertake the responsibility of guaranteeing the device identity to stakeholders further down in the manufacturing chain, and not all such stakeholders are prepared to trust say the attestations of a small, unknown chip provider. This issue is highlighted in situations where the manufacturing process is either small-scale or divided into a large number of iterative sourcing steps with no clear “computing device manufacturer”. This is assumed to become the case with IoT sensor and actuator devices, where we have SoC manufacturers, sourced by reference design integrators, possibly sourced by the original design manufacturer (ODM) directly, or via an external hardware contractor. The software and its component production may follow an equally multi-dimensional stakeholder model. Hence, it is hard to find a clear producer/consumer situation for cryptographic trust root in such scenarios, especially considering that the total value of the resulting devices likely fall in the few-dollars range.
For example, the public ledger may use block chain technology in relation to enabling multiple stakeholders to extend the trust of a device (often an IoT device) by adding their components in a trusted worthy manner. An anonymity-preserving mechanism is provided for managing identity transfers with respect to an embedded device, especially in the context of IoT, where the core processing unit, during separate steps of device production and sales, will pass by several, respectively independent, stakeholders, all which may have an incentive to revisit the device for management at a later time but where no two of the individual stakeholders share, or want to share, a cryptographic trust relationship. The mechanism uses doubly linked hash chains.
The technique uses a trusted environment in the system on chip (SoC), and presents a solution by which any stakeholder in the production process (at the time the SoC is in “his hands” or being configured with “his software”) can set up independent keying with the device, however in a way where all the individual identities later can be proven (using a public ledger) to refer to the same device (which can be important when liability issues are encountered (counterfeit protection, warranty service) or security protocols (version upgrades) need to be synchronized between several parties.
With this approach, device imprinting can be done without a need to rely on (but does not preclude) inter-stakeholder interaction (agreements or processes). Everybody can do device imprinting separately. The next stakeholder (in the end, the user) is fully anonymous with respect to the device as well as any prior stakeholder in the chain. In some examples, there is only backwards binding. The identity binding towards the origin is subject to the respective stakeholder revealing a handle (say a public key) that binds to the device identity. The identity chain history is immutable. It can only be extended, but no identity can be removed from the chain. The public ledger (“block chain”) for the device can be maintained and verified by a functionally correct party (one who checks the bindings between the chain elements). The secure environment in the device will also maintain this property, but with a public ledger also the transaction binding (when a new identity has been added to the device) can be maintained, if this is important for the deployed model, e.g. a stakeholder may e.g. require that sourced chips are not re-used ones, or that only well known, attestable other entities have device trust roots in the device (counterfeit protection).
This technique leverages the isolation properties of a single (anonymous) device to partly stand for the trustworthiness based on which the ledgers are constructed and publicly (or locally) maintained. A further, external, trust authority (like a Bitcoin ledger) can additionally be used to guarantee the global freshness of the ledger in such cases where this is important, for devices that have passed the production phase and entered usage, this guarantee is not relevant. The advantage of the model specifically appears where there are more than one stakeholder who in some, non-predetermined form or combination must agree on the identity of a device they all have an attachment to.
To explain the algorithm, we will first describe the API of the stakeholder who generates an identity and an identity key (as in
The technique addresses a number of requirements in parallel. These include: R0: The distributed (in terms of trust) device setup process as outlined above. The requirement is that a device security setup must be applicable to (follow) the general setup of the device.
R1: A stakeholder can for itself (cryptographically) identify a device when it comes back to being serviced, either locally or remotely. Remote servicing does include the provisioning of patches and other software upgrades to the device, in a secure channel between the originator of the servicing, and its target.
R2: Device servicing may include policy constraints between stakeholders. E.g. a firmware upgrade may only be accepted based on a signed confirmation of the user. This technique does not elaborate on this option explicitly (many kinds of stakeholder-interdependent policies can be constructed with the setup)—rather it provides a fundament of trust roots on top of which such policy enforcement can be constructed.
R3: The stakeholders may choose to remain anonymous, or provide proof of partial “ownership” of the device. The authentication of the stakeholder is achieved by attesting to a part of the hash (block) chain related to the stakeholder, i.e. it is a process external to this technique. However, due to the linked property of the generation proof, this system, if so required or used, provides a publicly verifiable binding to the stakeholders partaking in the trail of the device setup.
R4: A verifiable public ledger of the device's history is used to ascertain how the device has been set up, and how stakeholders relate to the different roles of the device setup and maintenance. This ledger will be wrapped up when reaching the end customer, i.e. at that point in time, the stakeholders associated with the device are frozen, and cannot change any more. The public ledger can be device-local, or global.
The top-level flow of device set-up is outlined in
0a) No authorization: The device flash contains a token H(RKx). Read it off, this will be the password by which a stakeholder-specific key will be generated in step 1.
0b) The previous stakeholder provides usage activation for his produce. In that case, the labeling station asks the device for its Id. At that stage, a protocol between the stakeholders can be used to exchange the device Id for the release token for the device.
In the next phase the new stakeholder takes ownership of the device. This encompasses the device to produce a key for device identification and/or device decryption. The mechanism does not mandate that this key is asymmetric (ECC/RSA), it can equally well be a symmetric trust root, say for performance (or code-size reasons), which in many cases is assumed to be the case in these classes of the devices for now.
NOTE: The use case is described as a key generation activity. It can equally well (with no loss of applicability) be described as a key provisioning activity—especially for symmetric key systems this may be a preferred option, as the provisioned key can be, say, a key diversified from a master key and the current device identity.
The stakeholder taking ownership of the device encompasses three distinct parameters to be provided to or agreed with the device:
In an API sense, the mechanism proceeds as follows on the API: a single stakeholder invokes the mechanism two times with the same token. The first invocation is the one where keys and public keys are input. The responses received from that interaction correspond to an “ownership taken transaction”. The second invocation (“release committed”) moves the device into a transitory mode, where a new token is generated AND the device is rendered temporarily non-functional (in terms of the provided keys) until the next ownership input is generated. Note that the final stakeholder (the user?) terminates the chain by never running the second round of operation, and since the signature over H(RKx) can only be produced by him (the previous stakeholder—and possibly the whole world—knows H(RKx) but cannot reproduce the signing), the continuation opportunity is not available. Since persistent storage in the secure environment is assumed, the length of the stakeholder chain can of course also be limited by internal design.
At this stage, the identity path of the device is locked—no new identity can be added to the device without the authorization of the latest stakeholder. Also, there is no trace (yet) in the list of identities in the ledger of anything that can be verified as belongings to the latest stakeholder, his relation to the device is completely anonymized, despite the fact that he owns a key that can be used to securely authenticate the device OR to communicate with the device (e.g. using other interfaces). For example, for stakeholder 1 in
For example, this technique may be part of a secure operating system leveraging ARM® TrustZone®-M on ARM's Cortex®-M processors, which enables chip makers, devices makers and solution developers to offer new security infrastructures and services. Targeted at IoT devices and using standard blockchain technology, each stakeholder of the device can easily create a chain of trust to leverage unique scalability across a wide range of devices. With the number of connected devices growing exponentially every day, this accelerates the need for increased security and trust to strongly authenticate and protect sensitive data on endpoint devices, even into the smallest sensors. Healthcare, smart homes and smart cities are a few examples of tremendous markets for growth. A hardware-based trusted operating environment can provide strong device authentication and protection for data at rest and in transit, to a whole new range of devices. With each device becoming a root of trust, stakeholders in IoT can expand their portfolio of services while also addressing privacy, operational and security concerns. The use of blockchain enables each stakeholder to easily personalize a device, without the need to build a highly complex and expensive infrastructure.
Hence, IoT device production lifecycle involves a variable set of independent stakeholders: e.g. SoC manufacturer (core+mem), Reference design integrator, Device manufacturer, Operator/Service provider, Owner. All of these stakeholders have a role in device personalization, from providing to the device drivers, software images, content data or keys. These roles also extend into the active lifecycle of the IoT device in terms of repair/service guarantees and software (data/key) updates, as well as possibly data collection and operation. The stakeholders are independent, and the production chain is not always pre-determined (the chip manufacturer may not know during production in which device and for service the chip eventually will be used). TrustZone-M in ARM v8M processors can be used similarly to TrustZone-A in mobile devices—i.e. as a device-local trust root. In this disclosure, a “secure world” in TZ-M as shown in
In
As shown in
It will be appreciated that
In summary, by performing these steps, the blockchain ends up including a series of blocks as follows:
Hence, each entry binds the transfer token RK for a given transfer between stakeholders to the stakeholder key K of the preceding or subsequent stakeholder, to provide tracking of the sequence of stakeholders who configured the device and the identities of those stakeholders. To verify that the block chain has been established correctly, the public ledger 64 (or a party verifying the public ledger) can start with the final block in the chain, which provides the data used to form A, B in the preceding blockchain entry, and then step back through the chain using the hash function H( ) to reconstruct the entries in the preceding entries to check that the blockchain matches the expected values. For example, blockchain entry 6 provides H(X|RK3) and A6, which can be used to reconstruct A5, B5 for blockchain entry 5; blockchain entry 5 provides H(Y|K2) and A5, which can be used to reconstruct A4, B4 for blockchain entry 4, and so on back to the start of the chain. The identities of the stakeholders (other than the first stakeholder and the final stakeholder who has not yet performed the ownership release transaction) can be identified from the values H(Y|Kn) included in the odd-numbered entries of the block chain.
Although illustrative embodiments of the invention have been described in detail herein with reference to the accompanying drawings, it is to be understood that the invention is not limited to those precise embodiments, and that various changes and modifications can be effected therein by one skilled in the art without departing from the scope and spirit of the invention as defined by the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
1617913.7 | Oct 2016 | GB | national |
1700043.1 | Jan 2017 | GB | national |