Provable and destructible device identity
By using nonvolatile memory to generate and store device identity indexes in TPM, the security and persistence of device identity management in mobile devices and IoT devices are solved, and the proof and destructiveness of device identity is achieved. Enhanced resilience to malware.
Patent Information
- Application Number
- CN201980025927.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2018-04-16
- Filing Date
- 2019-04-01
- Publication Date
- 2025-01-07
- Estimated Expiration
- 2039-04-01
AI Technical Summary
Existing device identity management systems are difficult to effectively manage and verify device identity in mobile devices and IoT devices, especially in the face of malware and security vulnerabilities, and cannot ensure the persistence of device identity information when reset or tampered. and security.
Using nonvolatile memory (NVM) in Trusted Platform Module (TPM) to generate and store proveable and corruption-free identity indexes of devices, ensuring that by hashing random secrets, using AIK to sign and prove The persistence and security of device identity.
It realizes the persistence of device identity when a device is reset or tampered, provides resistance to malware, and simplifies the management and verification process of device identity, ensuring the security and trustworthiness of device.
Smart Images

Figure CN111971672B_ABST
Abstract
Description
Background Art
[0001] Trusted computing (TC) has become an important part of the computing landscape over the past few years. This is because email viruses, Trojans, spyware, phishing scams, keyloggers, and security breaches have become a large part of the landscape, and trusted computing addresses these challenges not only through computing devices such as desktops and laptops, but also through mobile devices and devices used with Internet of Things (IoT) technology. With TC, computing devices always behave in the expected manner, and these behaviors are enforced by the computer hardware and software. Specifically, this behavior is achieved by loading the hardware with a unique encryption key (EK) that is inaccessible to the rest of the system. Summary of the invention
[0002] Implementations described herein disclose a device identity management system using a trusted platform module (TPM) of a device. The device identity management system provides one or more computer executable instructions for the following operations: receiving a secret random number at a trusted platform module (TPM) of a device, using the secret random number to generate a hash of an existing device identity stored in a non-volatile (NV) identity index, and storing the hash as the device identity in the NV identity index.
[0003] This Summary is provided to introduce some concepts in a simplified form that are further described in the Detailed Description below. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
[0004] Other implementations are also described and described herein. BRIEF DESCRIPTION OF THE DRAWINGS
[0005] A further understanding of the nature and advantages of the present technology may be realized by reference to the drawings described in the remainder of the specification.
[0006] Figure 1 An example implementation of a system for provable and destructible device identity is shown.
[0007] Figure 2 An example implementation of a non-volatile identity index according to implementations disclosed herein is shown.
[0008] Figure 3 Example operations for generating a non-volatile identity index according to implementations disclosed herein are shown.
[0009] Figure 4 Example operations for changing a non-volatile identity index according to implementations disclosed herein are shown.
[0010] Figure 5 Example operations for providing attestation using a non-volatile identity index in accordance with implementations disclosed herein are shown.
[0011] Figure 6 An example system is shown that can be used to implement the described techniques. DETAILED DESCRIPTION
[0012] Implementations disclosed herein provide a device identity management system using a Trusted Platform Module (TPM) of a device. Trusted Platform Module (TPM) is a public standard for hardware cryptography. TPM is designed to provide hardware-based security-related functions. A TPM chip is a secure cryptographic processor that is designed to perform cryptographic operations. The TPM chip can include multiple physical security mechanisms to make it tamper-proof so that malware cannot tamper with the security functions of the TPM. Various implementations of TPM can perform symmetric and asymmetric cryptography and various other operations to prove various facts about the device to which the TPM is connected. The TPM can be viewed as a keychain, and the TPM can prove that a given key in the keychain is actually in the keychain and not somewhere else.
[0013] In one implementation, the TPM of a device may be provided as part of the device. For example, the TPM may be part of the microprocessor of the device. Alternatively, the TPM may be a discrete component of the device implemented on a chip connected to a motherboard of the device. In such an implementation, the TPM chip may communicate with the microprocessor of the device using the system bus of the device.
[0014] The TPM can be implemented with non-volatile memory (NVM) to store one or more keys, including an endorsement key (EK). The EK can be an asymmetric key contained inside the TPM. For example, the EK can be injected during the manufacture of the TPM. The EK is unique to each TPM and can identify the TPM. Specifically, the EK cannot be changed or deleted from the TPM. In an example implementation, the EK can be a 2048-bit RSA key, or other key with encryption supported by the device's hardware. The public part of the key is called EKPub, and the associated private key is called EKPriv. The TPM chip also has an EK certificate issued by the manufacturer for the EKPub. The certificate is called EKCert.
[0015] In one implementation, the EK is a decryption key that is only allowed to be used to attest to other keys, such as the Attestation Identity Key (AIK) in the TPM. Therefore, the EK can be used to develop trust in other keys in the TPM. In addition, the EK can also be used to develop other AIKs in the TPM, in which case the EK has a one-to-many relationship with these AIKs. In such an implementation, additional AIKs can be used to sign other restricted statements. For example, if the device is conducting certain transactions with an online merchant that requires TPM-based attestation, the device can use the AIK to provide such attestation. In this way, the device can use a separate AIK to attest to various third parties (such as online social networks, mobile service providers, online merchants, etc.).
[0016] The implementation disclosed herein provides a provable and destructible identity based on the NVM of the TPM. Specifically, in one implementation, the device identity management system disclosed herein includes a number of computer executable instructions that can generate a provable and destructible device identity. Specifically, such a device identity is generated by performing a hash operation on a random secret provided to the TPM. The result of the hash operation can be proved by the AIK of the TPM. The device identity generated by the hash of the random secret can be stored in an identity index in the NVM of the TPM. For example, the identity index is a 32-bit address of NV data created and stored in the TPM.
[0017] Furthermore, the device identity in the identity index is destructible because another random secret can be provided and a hash operation using the other random secret on the current device identity will result in a new device identity while simultaneously causing the destruction of the current device identity. Storing the device identity in the TPM's NVM ensures that the identity persists even when the system is reset, the system's virtual memory is deleted, etc. Assuming that the TPM can have approximately 4K to 10K of NVM, this allows the implementation disclosed herein to store a sufficient number of device identities.
[0018] Figure 1 An example implementation of a device identity management system 100 for providing provable and destructible device identities is shown. The device identity management system 100 may be implemented on a computing device 101 configured to have a TPM 102 thereon. The computing device 101 may be any computing device, such as a laptop, desktop computer, or mobile computing device. Figure 6 Examples of computing devices and components thereof are further disclosed in the .
[0019] In an implementation of the device identity management system 100, the TPM 102 may include a processing unit or CPU 104 and non-volatile (NV) memory 106, and an input / output (I / O) module 108. The TPM 102 may communicate with an operating system (OS) 120 of the computing device 101 using the I / O module 108. For example, the I / O module 108 may use a processor such as a processor. Figure 6 The OS 120 communicates with the OS 120 via a communication bus such as the system bus 23 disclosed in FIG.
[0020] One or more external applications, such as remote applications 132 or local applications 134, may communicate with computing device 101 to request a provable device identity for computing device 101. For example, remote application 132 may send a create() command to computing device 101 via network 150 to create a new proven identity for computing device 101. For example, an API 124 exposed by OS 120 may allow such remote applications 132, local applications 134 to transmit a request to OS 120. In response to the request for a provable device identity, OS 120 generates a random secret 126 and extends the random secret 126 with the request for a provable identity to TPM 102. For example, random secret 126 may be a 256-bit random number. In an alternative implementation, random secret 126 may be generated in some other way in an alternative implementation, and OS 120 may generate a provable identity for the device without any remote device prompting to do so. OS 120 may communicate with TPM 102 using TPM commands 102 such as TPM2_NV_DefineSpace. For example, in response to a create() command, two commands are executed, specifically, TPM2_NV_DefineSpace (attributes include NV_Extend) creates an index, and TPM2_NV_Extend (data is random data generated by the OS) extends the random secret into the index.
[0021] After creating the provable identity of the device, it can be attested by the AIK via the network 150 in response to a get_attested() command from the remote application 132. In response to this request, the OS 120 will use the TPM command TPM2_NV_Certify to obtain a statement of the current provable identity signed by the AIK. Thus, the TPM2_NV_Certify command allows the remote application 132 to request a signed statement of the current identity of the device.
[0022] The TPM 102 may have a series of computer instructions, referred to as code 105, executable on the CPU 104 to generate an identity that may be stored on the identity index 110 using the random secret 126 received from the OS 120. Specifically, the code 105 may perform a hash of the random secret 126 using a hashing algorithm to generate an identity that is added to the identity index 110. In one implementation, the hashing algorithm may be SHA-256, however, alternative hashing algorithms may also be used. The SHA-256 algorithm generates a 256-bit hash value. The identity index 110 is stored on the NV 106 of the TPM 102 and is therefore persistent.
[0023] In addition, the remote application 132, the local application 134 can also communicate with the API 124 to destroy the provable identity of the computing device 101 or change the provable identity. For example, the API 124 may have exposed a change() instruction that can be used by the remote application 132, the local application 134 to transmit such a request for a change of the destruction of the provable identity of the computing device 101. In response to such a change / destruction request 140, the OS 120 generates another random secret 126. Since this newly generated random secret 126 is randomly generated, it is statistically infeasible that the secret is the same as the initially generated random secret 126. In addition, if the index is not deleted (TPM2_NV_UndefineSpace) and recreated before the change, the new value will be the result of a hash operation on the original secret and the new secret, which means that even if the newly generated random secret is controlled by a malicious entity, as part of its hash calculation, the final identity will still contain secret data unknown to the entity requesting a change of identity.
[0024] In response to receiving new random secret 126, code 105 requests the TPM to generate a new hash using new random secret 126 and the current value of the provable identity stored in identity index 110 in NV 106. The newly generated hash is also saved in identity index 110.
[0025] The TPM 102 may also include an EK 112 and one or more AIKs 114a, 114b, etc. Specifically, the EK 112 and the AIKs 114a, 114b may have a one-to-many relationship, such that the AIKs 114a, 114b may be generated by the EK 112. The AIK may be used to sign other restricted statements, such as attestations of identities in the identity index 110. Thus, if the computing device 101 is conducting certain transactions with a remote application 132 that requires TPM-based attestation, the computing device 101 may use the AIK 114a to provide such attestation for the device identity stored in the identity index 110.
[0026] Figure 2 An example implementation of an identity index 200 according to the implementation disclosed herein is shown. The identity index 200 may be stored in the NVM of the TPM of the computing device. The NV identity index 200 works similarly to the platform configuration registers (PCRs) of the TPM, as they are also located in the NV of the TPM. Therefore, the NV identity index 200 retains its value until the TPM is cleared or the identity index is deleted.
[0027] When the computing device's TPM is initiated, the register's initial value 204 is set to all zeros. The length of the register may depend on the type of hash algorithm used to generate the identity value of the identity index 200. For example, if the hash algorithm is SHA-256, the register has 256 bits. When a new provable and destructible identity is requested, at 206, the random secret is extended to the TPM. In one implementation, the device responsible for proposing a new identity is also responsible for extending the random secret to the NV extension index. Such a random number may be a 256-bit random number. Alternatively, the device's operating system generates the random secret. The TPM's hash code 220 generates a hash using the initial value 204 and the random secret 206 to generate a provable and destructible device identity 208. For example, the value of the newly generated device identity 208 may be XXXXXXXX...X. The device identity 208 is provable because the TPM's AIK can prove its presence in the TPM's NVM.
[0028] Device identity 208 can be used as an unlocking identifier for a device. For example, a device cannot use a key in a TPM to attest the value of device identity 208. For example, AIK 230a of a TPM can attest to device identity 208 in an attestation operation. In addition, AIK 230a can be used to sign a statement using the value of device identity 208.
[0029] Device identity 208 is destructible because it can be changed with a new random secret. For example, in response to a destruction of the device identity or a request to change the device identity, at 210, the new random secret is extended to the TPM. The TPM's code 220 generates a new hash YYYYYYYYY ... Y using the current device identity 208 and the random secret 210. The new hash value is stored in the identity index 200 as the device identity 212. The TPM's AIK 230b can attest to the device identity 212 in an attestation operation. Because the original identity XXXX ... X is the result of one or more hash calculations of the secret random value, the original identity can never be recreated on any device.
[0030] Figure 3An example operation 300 for generating a non-volatile identity index according to an implementation disclosed herein is shown. Operation 300 can be implemented in a TPM of a device. Specifically, operation 302 initiates an empty identity index in the NV of the TPM. Such an empty identity index can have only one entry, and all values are set to empty. Operation 304 receives a request to generate a provable and destructible device identity. For example, such a request can be generated by an operating system of the device. The request also includes a secret random number, such as a 256-bit random number. Operation 306 performs a hash operation on the identity with the empty value and the secret random number received at operation 304 to generate a new device identity. In one implementation, the hash operation can be SHA-256. Operation 308 stores the result of the hash operation 306 as the new device identity in the identity index stored in the NV of the TPM.
[0031] Figure 4 Example operations 400 for changing a non-volatile identity index according to implementations disclosed herein are shown. Operation 400 may be implemented in a TPM of a device. Operation 402 determines whether a request to change a device identity is received. For example, such a request may be received from an operating system of the device, and if so, it includes a secret random number. If so, operation 404 reads the current value of the device identity, which may be a hash generated in a previous hash operation or null. Operation 406 generates a new hash using the current value of the device identity and any newly received random secret to generate a new value for the device identity, which is stored in the NV identification index at operation 408.
[0032] Figure 5 Example operations 500 for providing attestation using a non-volatile identity index according to implementations disclosed herein are shown. Operation 500 may be implemented in a TPM of a device. Operation 502 determines whether a request for device attestation has been received. If so, operation 504 reads a current value of the device identity, which may be a hash generated in a previous hash operation. Operation 506 attests the value of the device identity using the AIK of the TPM, and at operation 508, such attestation is forwarded to the requesting application.
[0033] Figure 6 An example system 600 is shown that can be used to implement the described techniques to provide provable and destructible device identities. Figure 6 Example hardware and operating environments include computing devices, such as general purpose computing devices in the form of computers 20, mobile phones, personal data assistants (PDAs), tablet computers, smart watches, game remote controls, or other types of computing devices. Figure 6In an implementation, for example, computer 20 includes processing unit 21, system memory 22, and system bus 23, which operably couples various system components including system memory to processing unit 21. There may be only one or more than one processing unit 21, so that the processor of computer 20 includes a central processing unit (CPU) or multiple processing units, which is generally referred to as a parallel processing environment. Computer 20 can be a conventional computer, a distributed computer, or any other type of computer; the implementation is not limited thereto.
[0034] The system bus 23 may be any of several types of bus structures using any of a variety of bus architectures, including a memory bus or memory controller, a peripheral bus, a switching fabric, a point-to-point connection, and a local bus. The system memory may also be referred to simply as memory, and includes a read-only memory (ROM) 24 and a random access memory (RAM) 25. A basic input / output system (BIOS) 26 containing the basic routines that facilitate the transfer of information between elements within the computer 20, such as during startup, is stored in the ROM 24. The computer 20 also includes a hard disk drive 27 for reading from and writing to a hard disk not shown, a disk drive 28 for reading from and writing to a removable disk 29, and an optical drive 30 for reading from or writing to a removable optical disk 31, such as a CD ROM, DVD, or other optical media.
[0035] The hard disk drive 27, magnetic disk drive 28, and optical disk drive 30 are connected to the system bus 23 via a hard disk drive interface 32, a magnetic disk drive interface 33, and an optical drive interface 34, respectively. The drives and their associated tangible computer-readable media provide nonvolatile storage of computer-readable instructions, data structures, program modules, and other data for the computer 20. Those skilled in the art will appreciate that any type of tangible computer-readable media may be used in the exemplary operating environment.
[0036] A number of program modules may be stored on the hard disk drive 27, magnetic disk drive 28, optical disk drive 30, ROM 24 or RAM 25, including an operating system 35, one or more application programs 36, other program modules 37 and program data 38. A user may generate reminders on the personal computer 20 through input devices such as a keyboard 40 and a pointing device 42. Other input devices (not shown) may include a microphone (e.g., for voice input), a camera (e.g., for a natural user interface (NUI)), a joystick, a game controller, a satellite dish, a scanner, etc. These and other input devices are typically connected to the processing unit 21 through a serial port interface 46 coupled to the system bus 23, but may be connected through other interfaces such as a parallel port, a game port or a universal serial bus (USB) (not shown). A display 47 or other type of display device is also connected to the system bus 23 via an interface such as a video adapter 48. In addition to the display, the computer typically includes other peripheral output devices (not shown), such as speakers and printers.
[0037] The computer 20 can operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 49. These logical connections are implemented by a communication device coupled to or as part of the computer 20; the implementation is not limited to a particular type of communication device. The remote computer 49 can be another computer, a server, a router, a network PC, a client, a peer device, or other public network node, and typically includes many or all of the elements described above with respect to the computer 20. Figure 6 The logical connections depicted in 5 include a local area network (LAN) 51 and a wide area network (WAN) 52. Such networking environments are commonplace in office networks, enterprise-wide computer networks, intranets and the Internet (which are all types of networks).
[0038] When used in a LAN networking environment, the computer 20 is connected to the local area network 51 through a network interface or adapter 53, which is a type of communication device. When used in a WAN networking environment, the computer 20 typically includes a modem 54, a network adapter, a type of communication device, or any other type of communication device for establishing communication through the wide area network 52. The modem 54 (which can be internal or external) is connected to the system bus 23 via the serial port interface 46. In a networking environment, the program engine described with respect to the personal computer 20 or a portion thereof can be stored in a remote memory storage device. It should be understood that the network connections shown are examples, and other means of communication devices for establishing a communication link between computers can be used.
[0039] In an example implementation, software or firmware instructions for providing a provable and destructible device identity may be stored in memory 22 and / or a storage device and processed by processing unit 21. Rules for providing a provable and destructible device identity may be stored in memory 22 and / or a storage device as a persistent data repository. For example, TPM module 602 may be implemented on computer 20 (alternatively, TPM module 602 may be implemented on a server or in a cloud environment). TPM module 602 may utilize one or more of processing unit 21, memory 22, system bus 23, and other components of personal computer 20.
[0040] In contrast to tangible computer-readable storage media, intangible computer-readable communication signals may embody computer / processor readable instructions, data structures, program modules, or other data residing in a modulated data signal, such as a carrier wave or other signal transmission mechanism. The term "modulated data signal" refers to a signal whose one or more characteristics are set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, intangible communication signals include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media.
[0041] Some embodiments may include a product. The product may include a tangible storage medium for storing logic. Examples of storage media may include one or more types of computer-readable storage media capable of storing electronic data, including volatile memory or non-volatile memory, removable or non-removable memory, erasable or non-erasable memory, writable or rewritable memory, etc. Examples of logic may include various software elements, such as software components, programs, applications, computer programs, applications, system programs, machine programs, operating system software, middleware, firmware, software modules, routines, subroutines, functions, methods, processes, software interfaces, application program interfaces (APIs), instruction sets, computing codes, computer codes, code segments, computer code segments, words, values, symbols, or any combination thereof. In one embodiment, for example, the product may store executable computer program instructions that, when executed by a computer, cause the computer to perform methods and / or operations according to the described embodiments. Executable computer program instructions may include any suitable type of code, such as source code, compiled code, interpreted code, executable code, static code, dynamic code, etc. Executable computer program instructions can be implemented according to a predefined computer language, manner or syntax to instruct the computer to perform a specific function. The instructions can be implemented using any suitable high-level, low-level, object-oriented, visual, compiled and / or interpreted programming language.
[0042] The system for providing a provable and destructible device identity may include various tangible computer-readable storage media and intangible computer-readable communication signals. The tangible computer-readable storage may be provided by the provable and destructible device identity management system 100 (e.g., Figure 1 The invention may be embodied in any available media accessible by the computer (disclosed herein), and includes volatile and non-volatile storage media, removable and non-removable storage media. Tangible computer-readable storage media does not include intangible and ephemeral communication signals, and includes volatile and non-volatile removable and non-removable storage media implemented in any method or technology for storing information such as computer-readable instructions, data structures, program modules, or other data. Tangible computer-readable storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other storage technology, CDROM, digital versatile disk (DVD) or other optical disk storage, magnetic tape, magnetic disk storage or other magnetic storage devices, or may be used to store the desired information and may be used by a provable and destructible device identity management system 100 (such as Figure 1 In contrast to tangible computer-readable storage media, intangible computer-readable communication signals may embody computer-readable instructions, data structures, program modules, or other data residing in a modulated data signal such as a carrier wave or other signal transmission mechanism. The term "modulated data signal" refers to a signal that has one or more of its characteristics set or changed in such a manner as to encode information as a signal. By way of example, and not limitation, intangible communication signals include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media.
[0043] The trusted device identity management system disclosed herein provides a solution to the technical problem necessary for the developer to unlock / re-lock and the licensing problem of computing devices. Specifically, the trusted device identity management system disclosed herein provides an unconventional technical solution to the technical problem by providing a TPM-based identity index to store a provable and destructible device identity generated using a secret random number and using a random secret to generate a hash.
[0044] For example, a phone with this technology may be able to register itself as a developer device so that developers can run unsigned test software on it. In this case, the attestation service registers the device's identity into the developer's license and signs a statement that authenticates another component on the phone to run unsigned code. A TPM-aware component can even be set up to verify the current state of the phone's identity before allowing unapproved software to run on the phone. Similarly, a personal computer (PC) with this technology can register itself as a registered user of a certain software. The attestation service registers the device's identity into the user's license and signs a statement that authenticates the software to run on that PC. A TPM-aware component can even be set up to verify the current state of the PC's identity before allowing the program to start. In both cases, when the license expires, the server or remote application can request a change in the device's identity and require proof of the device's new identity (proving that the old identity is gone and can never be used again).
[0045] Additionally, the server or remote application can also insert additional secret randomness into the identity so that it can be determined that, even on a hacked / malicious OS, the device is not aware of all the randomness that makes up the device's identity. This is accomplished by extending the identity to the device in the encrypted TPM session using a shared secret that is encrypted into a new storage key that has been attested by the AIK that was already used to attest to the device's identity. Additionally, the remote application can also request attestation that the device's identity has actually been modified using a secret known to the remote application, based on the old identity and the secret randomness it provided in the encrypted session to verify that it matches the value calculated by the remote application.
[0046] A physical article disclosed herein includes one or more tangible computer-readable storage media encoding computer-executable instructions for executing a computer process on a computer system to provide a provable and destructible device identity, the computer process comprising: receiving a secret random number at a trusted platform module (TPM) of a device, using the secret random number to generate a hash of an existing device identity stored in a non-volatile (NV) identity index, and storing the hash as the device identity in the NV identity index. In one implementation, the TPM receives the secret random number from an operating system of the device. In another implementation, the secret random number is a 256-bit number, and generating the hash includes creating the hash using a SHA-256 hashing algorithm.
[0047] Alternatively, the computer process also includes proving the identity of the device in the identity index using the TPM's Attestation Identity Key (AIK). Alternatively, the computer process also includes proving the identity of the device in the identity index using the TPM's Salted Encryption Key (EK). In another implementation, the computer process also includes destroying the device identity by generating a hash of the existing device identity using a new value of the secret random number. Alternatively, the computer process also includes destroying the device identity by deleting the identification index. Alternatively, the computer process also includes exposing the identity index to an application using an application programming interface (API) that supports at least one of a create identity call and a change identity call. In another implementation, the computer process also includes relocking the device by extending a new secret random number to the TPM and generating a new hash using the new secret random number and the current device identity.
[0048] A method disclosed herein includes receiving a secret random number at a trusted platform module (TPM) of a device, generating a hash of an existing device identity stored in a non-volatile (NV) identity index using the secret random number, and storing the hash as the device identity in the NV identity index. In an alternative implementation, the TPM receives the secret random number from an operating system of the device. Alternatively, the secret random number is a 256-bit number, and generating the hash includes creating the hash using a SHA-256 hash algorithm (e.g., code 105). Alternatively, the method also includes attesting the identity of the device in the identity index using at least one of an attestation identity key (AIK) of the TPM and a salted EK of the TPM.
[0049] In one implementation, the method further includes destroying the device identity by generating a hash of the existing device identity using a new value of the secret random number. In another implementation, the method further includes relocking the device by extending a new secret random number to the TPM and generating a new hash using the new secret random number and the current device identity. Alternatively, the method further includes exposing the identity index to an application using an application programming interface (API) that supports at least one of a create identity call and a change identity call.
[0050] A system disclosed herein includes a memory, one or more processor units, and a device identity management system, which is stored in the memory and executable by the one or more processor units, the device identity management system encoding computer executable instructions on the memory for executing a computer process on the one or more processor units to provide malware sequence detection, the computer process including: receiving a secret random number at a trusted platform module (TPM) of a device, using the secret random number to generate a hash of an existing device identity stored in a non-volatile (NV) identity index, and storing the hash as the device identity in the NV identity index.
[0051] In one implementation of the system, the computer process further comprises attesting the identity of the device in the identity index using an attestation identity key (AIK) of the TPM. Alternatively, the computer process further comprises destroying the device identity by generating a hash of the existing device identity using a new value of the secret random number. Alternatively, the computer process further comprises exposing the identity index to an application using an application programming interface (API) supporting at least one of a create identity call and a change identity call.
[0052] The above description, examples and data provide a complete description of the structure and use of exemplary embodiments of the present invention. Since many implementations of the present invention can be carried out without departing from the spirit and scope of the present invention, the present invention resides in the claims appended below. In addition, the structural features of different embodiments can be combined in another implementation without departing from the claims described.
Claims
1. A physical article comprising one or more non-transitory tangible computer-readable storage media encoding computer-executable instructions for executing a computer process on a computer system to provide a provable and destructible device identity, the computer process comprising: Receiving a secret random number at a trusted platform module (TPM) of a device; generating, using the secret random number, a hash of an existing device identity stored in a non-volatile NV identity index stored within the TPM, wherein the existing device identity is attestable using a first attestation identity key of the TPM; as well as storing the hash of the existing device identity as a new device identity in the NV identity index, wherein the new device identity is attestable using a second attestation identity key of the TPM; wherein the existing device identity is destroyed by generating a hash of the existing device identity stored in the NV identity index using the secret random number. 2 . The physical article of claim 1 , wherein the TPM receives the secret random number from an operating system of the device.
3. The physical article of claim 1, wherein the secret random number is a 256-bit number and generating the hash comprises creating the hash using a SHA-256 hashing algorithm. 4 . The physical article of claim 1 , wherein the computer process further comprises attesting the new identity of the device in the NV identity index using an attestation identity key (AIK) of the TPM.
5. The physical article of claim 1, wherein the computer process further comprises The new identity of the device in the NV identity index is attested using the TPM's salted encryption key EK.
6. The physical article of claim 1, wherein the computer process further comprises destroying the existing device identity by deleting the NV identity index.
7. The physical article of claim 1, wherein the computer process further comprises exposing the identity index to an application using an application programming interface (API) that supports at least one of a create identity call and a change identity call.
8. The physical article of claim 1, wherein the computer process further comprises relocking the device by extending a new secret random number to the TPM and generating a new hash using the new secret random number and the existing device identity.
9. A method executed on at least one processor in a computing environment for providing a provable and destructible device identity, the method comprising: Receiving a secret random number at a trusted platform module (TPM) of a device; generating, using the secret random number, a hash of an existing device identity stored in a non-volatile NV identity index stored within the TPM, wherein the existing device identity is attestable using a first attestation identity key of the TPM; as well as storing the hash of the existing device identity as a new device identity in the NV identity index, wherein the new device identity is attestable using a second attestation identity key of the TPM; wherein the existing device identity is destroyed by generating a hash of the existing device identity stored in the NV identity index using the secret random number.
10. The method of claim 9, wherein the existing device identity and the new device identity are provable device identities.
11. The method of claim 9, wherein the secret random number is a 256-bit number and generating the hash comprises creating the hash using a SHA-256 hashing algorithm. 12 . The method of claim 9 , further comprising attesting the identity of the device in the identity index using at least one of an attestation identity key (AIK) of the TPM and a salted EK of the TPM.
13. The method of claim 9, further comprising relocking the device by extending a new secret random number to the TPM and generating a new hash using the new secret random number and the existing device identity.
14. The method of claim 9, further comprising exposing the identity index to an application using an application programming interface (API) that supports at least one of a create identity call and a change identity call.
15. A system for providing a provable and destructible device identity in a computing environment, comprising: Memory; one or more processor units; a device identity management system stored in the memory and executable by the one or more processor units, the device identity management system encoding computer executable instructions on the memory for executing a computer process on the one or more processor units to provide malware sequence detection, the computer process comprising: Receiving a secret random number at a trusted platform module (TPM) of a device; generating, using the secret random number, a hash of an existing device identity stored in a non-volatile NV identity index stored within the TPM, wherein the existing device identity is attestable using a first attestation identity key of the TPM; and storing the hash of the existing device identity as a new device identity in the NV identity index, wherein the new device identity is attestable using a second attestation identity key of the TPM; wherein the existing device identity is destroyed by generating a hash of the existing device identity stored in the NV identity index using the secret random number.
16. The system of claim 15, wherein the computer process further comprises attesting the identity of the device in the identity index using an attestation identity key (AIK) of the TPM.
17. The system of claim 15, wherein the computer process further comprises exposing the identity index to an application using an application programming interface (API) supporting at least one of a create identity call and an change identity call.
Citation Information
Patent Citations
Information processing device, information processing system, software routine execution method, and remote attestation method
WO2011102087A1