SYSTEM AND METHOD FOR GENERATING AND AUTHENTICATING A TRUSTED POLYMORPHIC AND DISTRIBUTED UNIQUE HARDWARE IDENTIFIER
20200117795 ยท 2020-04-16
Assignee
Inventors
Cpc classification
H04L9/3239
ELECTRICITY
G06F21/45
PHYSICS
G06F21/73
PHYSICS
H04L2209/26
ELECTRICITY
G06F21/64
PHYSICS
H04L63/0876
ELECTRICITY
International classification
G06F21/45
PHYSICS
G06F21/64
PHYSICS
H04L9/32
ELECTRICITY
Abstract
A system and method for the generation of a trusted polymorphic and distributed unique hardware identifier (ID) are provided. The method includes checking a device for a current ID; selecting a polymorphic policy setting randomly when no current ID is detected, wherein the polymorphic policy setting defines a functionality of at least one function of the device; selecting functional steps of the at least one function randomly, wherein the functional steps are selected from a number of states of a finite-state machine (FSM) used to construct the at least one function; pairing an output DNA mechanism to the at least one function; and generating the unique ID based on the paired DNA mechanism, its structure and its functional operation.
Claims
1. A method for the generation of a trusted polymorphic and distributed unique hardware identifier (ID), comprising: checking a device for a current ID; selecting a polymorphic policy setting randomly when no current ID is detected, wherein the polymorphic policy setting defines a functionality of at least one function of the device; selecting functional steps of the at least one function randomly, wherein the functional steps are selected from a number of states of a finite-state machine (FSM) used to construct the at least one function; pairing an output DNA mechanism to the at least one function; and generating the unique ID based on the paired DNA mechanism, its structure and its functional operation.
2. The method of claim 1, wherein the polymorphic policy defines a specific functionality for each function of the device to be executed.
3. The method of claim 1, further comprising: generating and storing a signature of the unique ID on a distributed ledger.
4. The method of claim 3, further comprising: obfuscating the signature of the unique ID before storing it on the distributed ledger.
5. The method of claim 1, wherein checking of the current ID further comprises: determining at least one of: policies of the FSM and signatures thereof; functions, gadgets and hooks of the FSM and signatures thereof; and functions and sequences of the FSM and signatures thereof.
6. The method of claim 1, wherein the at least one function is a contextual function of a physical unclonable function (PUF).
7. The method of claim 1, wherein the unique ID is further generated based on a concatenation of previously generated IDs.
8. The method of claim 1, wherein the states of the FSM include one or more gadgets or one or more hooks that connect to determine a contextual ID for the FSM.
9. The method of claim 8, wherein at least one of the states of the FSM is used to determine a segment of the unique ID.
10. A non-transitory computer readable medium having stored thereon instructions for causing a processing circuitry to perform a process, the process comprising: checking a device for a current ID; selecting a polymorphic policy setting randomly when no current ID is detected, wherein the polymorphic policy setting defines a functionality of at least one function of the device; selecting functional steps of the at least one function randomly, wherein the functional steps are selected from a number of states of a finite-state machine (FSM) used to construct the at least one function; pairing an output DNA mechanism to the at least one function; and generating the unique ID based on the paired DNA mechanism, its structure and its functional operation;
11. A system for the generation of a trusted polymorphic and distributed unique hardware identifier (ID), comprising, comprising: a processing circuitry; and a memory, the memory containing instructions that, when executed by the processing circuitry, configure the system to: check a device for a current ID; select a polymorphic policy setting randomly when no current ID is detected, wherein the polymorphic policy setting defines a functionality of at least one function of the device; select functional steps of the at least one function randomly, wherein the functional steps are selected from a number of states of a finite-state machine (FSM) used to construct the at least one function; pair an output DNA mechanism to the at least one function; and generate the unique ID based on the paired DNA mechanism, its structure and its functional operation.
12. The system of claim 11, wherein the polymorphic policy defines a specific functionality for each function of the device to be executed.
13. The system of claim 11, wherein the system is further configured to: generate and storing a signature of the unique ID on a distributed ledger.
14. The system of claim 13, wherein the system is further configured to: obfuscate the signature of the unique ID before storing it on the distributed ledger.
15. The system of claim 11, wherein the system is further configured to: determine at least one of: policies of the FSM and signatures thereof; functions, gadgets and hooks of the FSM and signatures thereof; and functions and sequences of the FSM and signatures thereof.
16. The system of claim 11, wherein the at least one function is a contextual function of a physical unclonable function (PUF).
17. The system of claim 11, wherein the unique ID is further generated based on a concatenation of previously generated IDs.
18. The system of claim 11, wherein the states of the FSM include one or more gadgets or one or more hooks that connect to determine a contextual ID for the FSM.
19. The system of claim 18, wherein at least of the states of the FSM is used to determine a segment of the unique ID.
20. The system of claim 11, wherein the FSM is hardware base.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0015] The subject matter disclosed herein is particularly pointed out and distinctly claimed in the claims at the conclusion of the specification. The foregoing and other objects, features, and advantages of the disclosed embodiments will be apparent from the following detailed description taken in conjunction with the accompanying drawings.
[0016]
[0017]
[0018]
[0019]
[0020]
[0021]
[0022]
DETAILED DESCRIPTION
[0023] It is important to note that the embodiments disclosed herein are only examples of the many advantageous uses of the innovative teachings herein. In general, statements made in the specification of the present application do not necessarily limit any of the various claimed embodiments. Moreover, some statements may apply to some inventive features but not to others. In general, unless otherwise indicated, singular elements may be in plural and vice versa with no loss of generality. In the drawings, like numerals refer to like parts through several views.
[0024] The various disclosed embodiments include a method and system for the generation and or reconstructing of a trusted polymorphic and distributed unique hardware identifier (ID) and the storage of a signature of the unique hardware ID. In an embodiment, the generation of the unique ID is based on distributed polymorphic functions, such as those generated as a mutable physical unclonable function.
[0025]
[0026] The contextual PUF may be based on hardware properties related to transistors, gates, flip-flops, latches, or multiplexers, all of which are hardware logic primitives. These primitives can be used along with hardware structure design to construct a non-deterministic finite-state machine (FSM) of several types, including synchronous or asynchronous FSMs.
[0027] The polymorphic mutable distributed hardware function adds to the contextual PUF in that it can produce dynamic structures, functions and results that may change over time, even when produced from the same physical device.
[0028] Inputs 120 are received, e.g., from a previous function or a system of a collection of functions, and are sent the DNA mechanism 130. The DNA mechanism 130 is one of multiple functions 135 and logical operations of the device 110 and is embedded within a device 110 or within a function itself. The function may include associated policies, where a policy defines when to activate the distributed polymorphic hardware structure. The result generated from the DNA mechanism 130 are dependent on the current functional state or operational mode of the specific function or device 110, which have different attributes or challenge responses for each operational mode. Each function is configured with a particular purpose tied to one or more operational modes, for example when the device is executing code at runtime or is currently at rest. Operational modes include low power modes, high performance mode, and the like.
[0029] The device 110 may include any computing device, but not limited to, a personal computer, a laptop computer, a tablet computer, a server, an IoT device, a computing cloud resource, a network element, a smartphone, an automotive system, an industrial device, an embedded device, and the like. The device 110 may include a chip, a chipset, and the like integrated in any computing device as defined herein.
[0030] The results are output 140 from the device 110, e.g., output in text or binary format and sent to the user or to a relevant connected system. In an embodiment, the outputs 140 may be dependent on the DNA mechanism 130 and functions 135 of the device, while in a further embodiment, the outputs 140 are dependent on prior outputs as well, where a first output 140 is fed back 145 to the DNA mechanism 130 to generate a second output.
[0031] The challenge response is used to create a unique identification (ID) of the device or to generate a secure key based on that unique ID, which can be correlated to the structure and operation of the intrinsic ID logic.
[0032] In an embodiment, a function distributed structure allows for the DNA mechanism 130 to be distributed, i.e., where the DNA generation is spread across a wide physical or logical area. The functional operation of the device 110 itself is dependent on the DNA mechanism 130, making the function modes and operation proactively paired to the specific device.
[0033] The implementation of the DNA mechanism 130 is accomplished by following a distributed polymorphic mutable hardware function, such as one with a contextual PUF-like structure, which is embedded inside a logic cone of the function such that it is part of the function and is used to construct the DNA mechanism. Logic cones are logical structures of a function, such as various predetermined combinations of gates, flip-flops, latches, multiplexers, and FSM elements. This mechanism provides runtime challenges and returns responses based thereon. This mechanism can further be implemented either by a register-transfer level (RTL) representation of a contextual PUF, an embedded analog or hard macro function, or by similar silicon or chip design methods.
[0034] The polymorphic and distributed nature of the ID generation, as well as the hardware function, results in hardware obfuscation of key aspects of security flows and design elements of the device. In addition to creating a unique ID, this makes it practically impossible to track the functionally or the physical properties of the devices, and thus no probing mechanism can attack or spoof the secured device.
[0035]
[0036] The unique ID 150 is generated based on an encrypted, hashed, or combined scrambling of the outputs 140-1 and 140-2. In an embodiment, a first device 110-1 is configured to sign the outputs using both DNA mechanisms 130-1 and 130-2. Alternatively, a function can be distributed over both devices 110-1 and 110-2 so that a single output 140 is generated. In a further embodiment, the first device 110-1 executes only a runtime authentication, while the second device 110-2 executes either a runtime or a rest authentication.
[0037] In an embodiment, the unique ID 150 is added to a blockchain element (not shown) to be authenticated by different elements of a connected network before it can be used. Both of the devices 110-1 and 110-2 contain distributed mutated polymorphic hardware functions and the logic cones that generate the DNA mechanism 130 in each of these functions are dynamic, and thus can change over time. In an embodiment, the functions are distributed differently based on each device's policy settings.
[0038]
[0039] In the example
[0040] An FSM is configurable, depending on various logic cones and physical primitive building blocks, such as transistors, gates, flip-flops, latches or multiplexers. However, the available configurations of an FSM may be constrained to certain specific activities, e.g., only arithmetic functions or activities with a dedicated tolerance for specific security functions. Thus, even if a constrained FSM is accessed by a malicious entity, such as an outside attacker, the functions that the FSM is capable of executing are limited, providing additional security to the device.
[0041]
[0042] At S410, it is determined if a device has an existing current ID. The determination is made when the device is powered on as it completes an internal reset. If no current ID is detected, the method continues at S420, otherwise it continues at S415. The current ID can be detected and verified by, for example, searching for a signature associated with the ID, which may be stored either in an encrypted or hashed state, or in plaintext. The signature may be stored over a distributed ledger, such as blockchain in a database, and the like. An embodiment for storing the signature is a ledger is further discussed below.
[0043] At S415, when it is determined that the device does contain a current ID, properties of that ID are retrieved and used to authenticate the device itself against the current ID. In an embodiment, the authentication is accomplished by regenerating an ID following a predetermined recipe and comparing the resulting ID with the current ID.
[0044] In an optional embodiment, at S417, a signature of the current ID is generated and compared to a stored signature to determine a match. If there is a match, the authentication is complete. If a match is not produced, the authentication has failed, and a new unique ID may be generated, and execution processed to S420. Alternatively, an alert may be triggered indicating about the failed authentication.
[0045] At S420, if a current ID does not exist, a polymorphic policy related to functions of the device is randomly selected, where the polymorphic policy defines a specific functionality for each function of the device to be executed. For example, a polymorphic policy may configure the device to operate as a counter rather than, for example, as an arithmetic logic unit (ALU).
[0046] At S430, one or more logical steps of the functions to be executed are randomly selected to generate the intrinsic DNA mechanism. In an embodiment, the functional steps are selected from the number of states of an FSM. If the number of states of an FSM varies, the number of possible functional steps vary as well. A DNA mechanism is generated based on the randomly or controlled selected logical steps and will vary accordingly.
[0047] At S440, the generated DNA mechanism is intrinsically paired to the relevant functions to generate a proactive unique ID. In an embodiment, the pairing is accomplished using multiple methods, such as concatenating DNAs together, hashing the DNAs, and the like. In an embodiment, the unique ID is generated such that it possesses at least some metadata generated by the function, where the metadata is used for the regeneration of IDs for authentication purposes. The metadata may include policy settings, selected logical steps, and the like. With the stored metadata, the unique ID may be regenerated, but only if done on the same physical device.
[0048] At optional S450, the unique ID is obfuscated, e.g., via hashing or encrypting. In an embodiment, a generated signature of the unique ID is stored, e.g., locally or remotely over a distributed ledger, such as a blockchain to ensure a sufficient level of security.
[0049] At S460, a signature of the unique ID is generated and stored for future retrieval. The signature may be stored locally or remotely and may be stored in non-volatile memory (NVM), one-time-programmable (OTP), and the like.
[0050] At optional S470, the signature is paired to a network, such as a distributed network. In an embodiment, the distributed network is a blockchain, where the signature is distributed across a network where separate devices are implemented as signing devices. This can be executed with additional authentication steps for enhanced security.
[0051]
[0052] In an embodiment, the unique ID 150 can be also progressively created based on previously generated IDs. For example, a first generated ID can be used as the basis of a second generated ID, the second generated ID can be used as the basis of a third generated ID, and so on. A unique ID can be a concatenation of multiple generated IDs, such that each ID is unique, but based on previously generated ID. This method provides robust protection against ID spoofing, as no one unique ID can be generated, e.g., by a bad actor, on its own without access to previously generated IDs. The series of IDs can also be tokenized and distributed over a distributed network 500.
[0053] In an embodiment, the distributed network 500 is a blockchain network, where each node on the network not only stores one or more aspects of the unique ID, but also stores a distributed ledger detailing where signature of each ID can be distributed over the blockchain network. A stored aspect of the signature will only be authenticated if all, or a predetermined threshold, or the nodes confirm the authenticity of the unique ID based on the distributed signatures.
[0054]
[0055] In an embodiment, each device of function 600 having a unique ID and DNA mechanism combination 605 is connected to at least one other device of function 610 having its own unique ID and DNA mechanism combination 615.
[0056] This unique ID can be authenticated by using one or more randomly selected devices from within the network to execute the authentication process, allowing for a distributed authenticating mechanism. This authentication can be done on the device or function level, where each hardware function is authenticated to ensure no tampering, fibbing, side channel, reverse engineering or other attack was done on any of the devices of associated functions. In a further embodiment, this is done at both the device and the network level to authenticate each of the devices or device functions on the network.
[0057] In an embodiment, when the device identify an existing ID at the wake-up process, that device may be configured to start a self-authenticating flow that follows a recipe of the blockchain elements, which includes comparing the outcome of the DNA mechanisms within the devices. Should the device's authentication process fail to identify an existing ID, the device can be deactivated, and the rest of the distributed devices receives via the distributed network.
[0058]
[0059] In
[0060] The states 712 may include gadgets or hooks that connect together to determine the contextual ID for the FSM. This ID may be signed based on the policies of the FSM, the gadgets which describe elements of the FSM stitched together, and functional sequences, e.g., what is input into state, used to operate the FSM.
[0061] Each of these states can be used to determine a segment of the unique ID. A segment 722 may contain policies of the unique ID and their signatures. A segment 724 may also contain functions, gadgets, and/or hooks of the unique ID and their signature. A segment 726 may contain functions and sequences of functions of the ID and their signatures. Each segment may be stored on a distributed ledger, such as a blockchain 730, or may be combined together to generate the ID signature function itself 720, which may also be distributed and stored on the blockchain 730.
[0062] If the FSM loses power, is rebooted, and the like, the ID can be recreated, authenticated, or checked for integrity by comparing a newly generated signature of the ID with the signature that is distributed and stored on the blockchain 730.
[0063] It should be noted that the blockchain stores on the signatures or segments of generated signatures rather than the unique ID itself. The blockchain can be hosted and accessed locally or remotely and may employ proprietary software or implemented on existing blockchain platforms.
[0064] The ID can be based on a single FSM and logic, having the resolution of the logic itself (m of n) and can also be stitched together with multiple FSMs and logics (MN) where many types of FSMs are stitched together to create a new unique ID.
[0065] In
[0066] The mechanism described in
[0067] The various embodiments disclosed herein can be implemented as hardware, firmware, software, or any combination thereof. Moreover, the software is preferably implemented as an application program tangibly embodied on a program storage unit or computer readable medium consisting of parts, or of certain devices and/or a combination of devices. The application program may be uploaded to, and executed by, a machine comprising any suitable architecture. Preferably, the machine is implemented on a computer platform having hardware such as one or more central processing units (CPUs), a memory, and input or output interfaces. The computer platform may also include an operating system and microinstruction code. The various processes and functions described herein may be either part of the microinstruction code or part of the application program, or any combination thereof, which may be executed by a CPU, whether or not such a computer or processor is explicitly shown. In addition, various other peripheral units may be connected to the computer platform such as an additional data storage unit and a printing unit. Furthermore, a non-transitory computer readable medium is any computer readable medium except for a transitory propagating signal.
[0068] As used herein, the phrase at least one of followed by a listing of items means that any of the listed items can be utilized individually, or any combination of two or more of the listed items can be utilized. For example, if a system is described as including at least one of A, B, and C, the system can include A alone; B alone; C alone; A and B in combination; B and C in combination; A and C in combination; or A, B, and C in combination.
[0069] All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the principles of the disclosed embodiment and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions. Moreover, all statements herein reciting principles, aspects, and embodiments of the disclosed embodiments, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. Additionally, it is intended that such equivalents include both currently known equivalents as well as equivalents developed in the future, i.e., any elements developed that perform the same function, regardless of structure.