Data Recovery for Computing Devices

JP7644308B2Active Publication Date: 2025-03-11GOOGLE LLC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2024508484
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2021-08-11
Filing Date
2022-08-05
Publication Date
2025-03-11
Estimated Expiration
2042-08-05

Smart Images

  • Figure 0007644308000001
    Figure 0007644308000001
  • Figure 0007644308000002
    Figure 0007644308000002
  • Figure 0007644308000003
    Figure 0007644308000003
Patent Text Reader

Abstract

According to one aspect, a method for accessing a computing device includes the computing device receiving an authentication credential for recovery access to the computing device, the authentication credential being different from an authentication credential used to access encrypted data on the computing device, the method further including, in response to receiving the authentication credential for recovery access, obtaining a first key portion stored on the computing device, sending a request over a network to receive a second key portion, receiving a response over the network including the second key portion, recovering a decryption key using the first key portion and the second key portion, and decrypting the encrypted data on the computing device using the decryption key.
Need to check novelty before this filing date? Find Prior Art

Description

[Background technology]

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application is a continuation of and claims priority to U.S. Non-provisional Patent Application No. 17 / 444,884, filed August 11, 2021, entitled “DATA RECOVERY FOR A COMPUTING DEVICE,” the disclosure of which is incorporated by reference in its entirety herein.

[0002] background Data associated with a computing device may be encrypted and then decrypted when a user logs into their device. For example, the user may provide their password, and in response to the user being authenticated, the data may be decrypted. An organization (e.g., a school, a business) that provides a computing device to a user sometimes has policies for managing the device, including setting up the device with encrypted data. However, such an organization may need access to some of the encrypted data when the user may be absent or uncooperative. In addition, a user may have forgotten their password. In some instances, without the user's password, the decryption key for decrypting the encrypted data may be unrecoverable. Summary of the Invention

[0003] overview The present disclosure relates to a recovery system that can securely provide access to encrypted data when an organization (or person) that manages a computing device requires access to the encrypted data and the organization (or person) owns the computing device. In some examples, the recovery system can securely provide access to the encrypted data when a user does not have access to his or her password and the user owns the computing device. Technical problems may include providing access to encrypted data on a computing device when authentication credentials to the encrypted data are not available in a secure and transparent manner. The recovery system described herein may provide a technical solution that maintains the security of data associated with a computing device while providing access to the data when a user's authentication credentials are not available in a manner that is resilient to network and physical attacks.

[0004] The recovery system may maintain in separate locations two different key parts (e.g., a first key part, a second key part) that are disclosed to a decryption unit on a computing device when certain conditions are met, and the decryption unit requires both the first key part and the second key part to recover the decryption key used to decrypt the encrypted data. In contrast, some conventional recovery mechanisms may assign management of the decryption key to a central entity, which may result in technical problems such as risk of fraud, vulnerability to network attacks, and vulnerability to mass surveillance that may potentially put users' privacy, security, and / or safety at risk.

[0005] The recovery system includes one or more server computers having a recovery service module. The recovery system includes a computing device configured to communicate with the recovery service module over a secure network. The computing device includes a cryptographic processor configured to store and manage a key portion (e.g., a first key portion) associated with a user of the computing device. The first key portion may be a private key (e.g., a cryptographic secret) stored internally to the computing device (e.g., internally to the cryptographic processor). The computing device (e.g., the cryptographic processor) may generate and store the first key portion (and the second key portion). In some examples, the computing device generates and stores the first key portion when a user account associated with the user is created and / or the user is enrolled in the recovery system. The cryptographic processor may be a dedicated computer-on-chip or microprocessor for performing cryptographic operations. In some examples, the cryptographic processor is a security chip or a trusted platform module.

[0006] As described further below, if the user's authentication credentials used to access the encrypted data are unavailable, the cryptographic processor may communicate over a network with a recovery services module to obtain a second key portion, and the first key portion and the second key portion are used to recover a decryption key used to decrypt the encrypted data. Before the second key portion is returned to the cryptographic processor, the recovery services module may cause a log entry to be recorded in a database (e.g., a public ledger), and the log entry may identify information regarding the access, such as a device identifier, information identifying the person who was granted access, and / or the time / date that access was provided.

[0007] The recovery services module includes one or more hardware security modules that store and manage key portions associated with a user of a computing device. For example, the hardware security module may store and manage a key portion (e.g., a second key portion) that is used (in combination with a first key portion) to recover a decryption key for decrypting encrypted data on the computing device. The hardware security module may be a computing device (e.g., a physical computing device) that manages encryption keys and performs encryption and decryption functions as well as other cryptographic functions.

[0008] A user may provide their authentication credential to the computing device, which, once authenticated, may cause the cryptographic processor to disclose a first key portion to a decryption unit on the computing device. The user's authentication credential may be a password associated with the computing device, or a user account associated with the computing device. However, the authentication credential may include other forms of identification information, such as a digital certificate or biometric data (e.g., face scan, iris scan, fingerprint scan, voice data, etc.). In some examples, the decryption unit uses the first key portion (disclosed by the cryptographic processor) and the authentication credential to recover a decryption key and decrypt the encrypted data on the computing device. For example, the decryption key may be encrypted with an encryption key (e.g., a wrapping key). The decryption unit may use the first key portion and the authentication credential to obtain an encryption key used to decrypt the decryption key.

[0009] In some examples, a third party may require access to some of the encrypted data on the computing device. For example, the third party may be associated with an organization that owns or manages the user's computing device. For example, the computing device may be an enterprise-owned computing device, such as a business computer owned or managed by the user's company, or a school computer owned or managed by the user's school. For one or more reasons (e.g., governance reasons, risk management reasons, legal reasons, and / or compliance reasons), the organization may require access to the encrypted data on the computing device. However, without the user's authentication credentials, some conventional techniques would result in the decryption unit being unable to obtain or derive the decryption key.

[0010] To address this scenario, an organization may register a computing device with the recovery system so that one or more persons associated with the organization (e.g., authorized third parties) may access the user's computing device when the user is absent, uncooperative, or unable to provide authentication credentials (e.g., forgotten password) and a third party has physical possession of the computing device. For example, the recovery system may store registration data associated with the user's computing device. The registration data may identify one or more personnel (or personnel roles / types) within the organization who may access the user's encrypted data when the user is absent or uncooperative, or authentication credentials are otherwise unavailable. For example, the registration data may specify authorized third parties by identifying user accounts that are authorized to enter the user's encrypted data. The user accounts may be assigned to specific persons or specific roles (e.g., general manager, director, human resources director, etc.) within the organization. The third party may register for the recovery service using the user's computing device or another computing device. For example, a third party may use their computing device to communicate with a recovery service module (e.g., executable by a server computer) to register and submit registration data, which is then communicated by the recovery service module to the user's computing device. In some examples, a third party may use a user's computing device to register and submit registration data. In some examples, the computing device may render one or more user interfaces that enable the third party to register with the recovery service and enter one or more authorized third-party user accounts.

[0011] A cryptographic processor on the computing device may store the enrollment data. In some examples, a recovery service module (e.g., a hardware security module) of a server computer may store the enrollment data. In some examples, in response to the computing device being enrolled in the recovery system, the hardware security module may generate and store a second key portion. In some examples, the second key portion is encrypted and stored in the hardware security module.

[0012] To access encrypted data on a registered computing device, a third party may provide its authentication credentials to the computing device, which, upon authentication, causes the cryptographic processor to determine whether the authentication credentials correspond to (or match) one of the authorized third-party user accounts in the registration data stored on the cryptographic processor. If the third party's authentication credentials are one of the authorized third-party user accounts, the cryptographic processor may disclose a first key portion (stored on the computing device) to the decryption unit. Also, if the third party's authentication credentials are one of the authorized third-party user accounts, the cryptographic processor is configured to communicate with a hardware security module that is part of a recovery service module of a server computer associated with the authorized third party and obtain a second key portion stored in the hardware security module. For example, the cryptographic processor may send a key request over a network to the hardware security module, where the key request includes identifying information about the third party, identifying information about the user, and / or a device identifier associated with the computing device.

[0013] Before the second key portion is retrieved and returned to the cryptographic processor, a log entry is created in a database to record access to the computing device. The database may be a publicly available database. The database may be a database that is accessible by a certain portion of the public. In some examples, the database is a public ledger. For example, the recovery service module includes a database recorder configured to record the log entry in the database. In some examples, the database may support tamper-resistant logging, for example, using Merkle trees, hash lists, or hash chains. Before the second key portion is sent to the computing device, the database recorder may communicate with the database over a network and record the log entry in the database. The log entry may include information regarding the access to the computing device. For example, the log entry may include a time, a date, an identification of the computing device, and / or an identification of the person who gained access to the computing device, the person's role, and / or organization. After the log entry is created in the database, the hardware security module sends the second key portion to the cryptographic processor. The cryptographic processor provides the second key portion to the decryption unit. The decryption unit uses the first key part and the second key part to recover a decryption key used to decrypt the encrypted data. In some examples, the first key part and the second key part are combined (e.g., to form a symmetric wrapping key) to decrypt the decryption key, which is used to decrypt the encrypted data. In some examples, the decryption key may have been encrypted using a combination of the first key part and the second key part when the device was enrolled in the recovery process.

[0014] In some examples, the recovery system can securely provide access to encrypted user data when a user has changed their password on another device (or with a browser), the user does not have access to their password, and the user has possession of the computing device. In one example, the user may provide their authentication credential to the computing device, and once authenticated, the cryptographic processor receives the authentication credential. The user may be authenticated in other ways (e.g., using a recovery method such as an old password, email or phone verification). Because the authentication credential is not a current authentication credential (to be combined with the first key portion) to recover the decryption key, the cryptographic processor may communicate with the hardware security module (in the same manner as described above) to obtain the second key portion. The second key portion is disclosed to the cryptographic processor after a log entry is made in the database.

[0015] According to one aspect, a method for accessing a computing device includes the computing device receiving an authentication credential for recovery access to the computing device, the authentication credential being different from an authentication credential used to access encrypted data on the computing device, the method further including, in response to receiving the authentication credential for recovery access, obtaining a first key portion stored on the computing device, sending a request over a network to receive a second key portion, receiving a response over the network including the second key portion, recovering a decryption key using the first key portion and the second key portion, and decrypting the encrypted data on the computing device using the decryption key.

[0016] According to some aspects, the method may include one or more of the following features (or any combination thereof): The request to receive the second key part triggers recording of a log entry in a database, and the second key part is received at the computing device after recording of the log entry in the database. The method may include combining the first key part and the second key part to form a wrapping key, and decrypting the decryption key with the wrapping key. The method may include obtaining enrollment data identifying at least one authorized user account, determining whether an authentication credential for recovery access corresponds to the at least one authorized user account, and transmitting a request to receive the second key part in response to the authentication credential for recovery access corresponding to the at least one authorized user account. The first key part is stored in a cryptographic processor of the computing device, and the request to receive the second key part is transmitted to a security module configured to store the second key part. The method may include storing enrollment data on at least one of the cryptographic processor or the security module, and the enrollment data identifying the at least one authorized user account. The method may include receiving an authentication success response in response to an authentication credential for recovery access being authenticated by the authentication system, and the first key portion being obtained in response to the authentication success response. The authentication credential for recovery access may be associated with a third party that owns or controls the computing device. The authentication credential for recovery access may be associated with a user of the computing device.

[0017] According to one aspect, a recovery system includes a security module configured to receive, over a network, a first request from a computing device, the first request being for a second key portion configured to be combined with a first key portion stored on the computing device to recover a decryption key for decrypting encrypted data, the recovery system further including a database recorder configured to send a second request to a database to record a log entry in the database regarding the first request, the security module being configured to send the second key portion to the computing device after the log entry is recorded in the database.

[0018] According to some aspects, the recovery system may include one or more of the following features (or any combination thereof): The security module is configured to store at least a portion of the enrollment data, the enrollment data identifying at least one authorized user account associated with a third party; The security module is configured to generate a second key portion in response to receiving the enrollment data; The security module is configured to generate a first key portion in response to receiving the enrollment data, the security module is configured to transmit the first key portion to the computing device.

[0019] According to one aspect, a non-transitory computer-readable medium stores executable instructions that, when executed by at least one processor, cause the at least one processor to receive authentication credentials for recovery access to the computing device, the authentication credentials being different from authentication credentials used to access encrypted data on the computing device, and further cause the at least one processor to obtain a first key portion stored on the computing device in response to receiving the authentication credentials for recovery access, and further cause the processor to send, over a network, a request to receive a second key portion, the request to receive the second key portion triggering recording of a log entry in a database, and after the log entry is recorded in the database, further cause the processor to receive a response including the second key portion, recover a decryption key using the first key portion and the second key portion, and decrypt the encrypted data using the decryption key.

[0020] According to some aspects, the non-transitory computer-readable medium may include one or more of the following features (or any combination thereof): The executable instructions, when executed by at least one processor, include instructions that cause the at least one processor to encrypt data in response to receiving that a computing session has been logged off. The executable instructions, when executed by the at least one processor, include instructions that cause the at least one processor to obtain enrollment data identifying at least one authorized user account, determine whether authentication credentials for recovery access correspond to the at least one authorized user account, and send a request to receive a second key portion in response to the authentication credentials for recovery access corresponding to the at least one authorized user account. The executable instructions, when executed by the at least one processor, include instructions that cause the at least one processor to store the enrollment data on at least one of a cryptographic processor on the computing device or a security module executable by a server computer, and generate at least one of the first key portion or the second key portion in response to receiving the enrollment data. The executable instructions, when executed by the at least one processor, include instructions that cause the at least one processor to store a first key portion on the cryptographic processor and store a second key portion on the security module. The executable instructions, when executed by the at least one processor, include instructions that cause the at least one processor to receive an authentication success response in response to an authentication credential for recovery access being authenticated by an authentication system, the first key portion being obtained from the computing device in response to the authentication success response. The executable instructions, when executed by the at least one processor, include instructions that cause the at least one processor to combine the first key portion and the second key portion to form a symmetric wrapping key and decrypt the decryption key using the symmetric wrapping key.

[0021] The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features will be apparent from the description and drawings, and from the claims. [Brief description of the drawings]

[0022] [Figure 1A] FIG. 1 illustrates a recovery system for recovering encrypted data on a computing device according to one aspect. [Figure 1B] FIG. 1 illustrates a login workflow for a computing device according to an aspect. [Figure 1C] FIG. 1 illustrates a recovery workflow for a computing device according to an aspect. [Diagram 2] FIG. 2 illustrates a recovery system for recovering encrypted data on a computing device according to another aspect. [Diagram 3] 1 is a flowchart illustrating an example operation of a recovery system according to one aspect. [Figure 4] 5 is a flowchart illustrating an example operation of a recovery system according to another aspect. [Diagram 5] 5 is a flowchart illustrating an example operation of a recovery system according to another aspect. [Figure 6] FIG. 6 is a block diagram illustrating an example or representative computing device and related elements that may be used to implement the systems and methods of FIGS. 1A-5. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0023] Detailed Description FIG. 1A illustrates a recovery system 100 for recovering encrypted data 136a on a computing device 120 according to an embodiment. FIG. 1B illustrates a login workflow for a computing device 120 according to an embodiment. FIG. 1C illustrates a recovery workflow for a computing device 120 according to an embodiment. Referring to FIG. 1A, the computing device 120 includes an encryption unit 133 configured to encrypt data 136. When the data 136 is encrypted, the data 136 may be referred to as encrypted data 136a. When the data 136 is decrypted, the data 136 may be referred to as decrypted data 136b. When the user 101 is logged off (or signed out) from a computing session of the computing device 120, the encryption unit 133 may encrypt the data 136. In some examples, the user 101 is logged off (or signed out) from a computing session when the computing device 120 requires input of the user's authentication credentials 138 to gain access to at least a portion of the functionality of the computing device 120.

[0024] The encryption unit 133 may encrypt the data 136 when the user intentionally logs off (or signs out) from a computing session. The encryption unit 133 may encrypt the data 136 upon expiration of a certain period of inactivity (e.g., no user commands are received for a period of time). The encrypted data 136 may be user data and / or data generated by the user 101 during use of the computing device 120. In some examples, the data 136 includes any data stored on or accessible via the computing device 120. In some examples, the data 136 may represent a portion of data stored on the computing device 120.

[0025] In some examples, the computing device 120 is associated with a user account, and the authentication credentials 138 are authentication credentials for the user account. The user 101 may provide his / her authentication credentials 138 to the computing device 120 to decrypt the encrypted data 136a and / or to gain access to at least some of the functionality of the computing device 120. In some examples, the user 101 provides his / her authentication credentials 138 via an authentication interface 142 rendered on the display 140 of the computing device 120. The authentication interface 142 may be any type of interface that receives the authentication credentials 138. In some examples, the authentication interface 142 includes an input screen (e.g., a login screen) for user identification and authentication. In some examples, if the user's authentication credentials 138 are unavailable, the authentication interface 142 is referred to as a recovery screen. In some examples, the user 101 may provide his / her authentication credentials 138 without using the authentication interface 142.

[0026] Authentication credential 138 may be information used to authenticate a person attempting to access data 136 and / or a portion of the functionality of computing device 120. Authentication credential 138 may be any type of data structure, object, or document that identifies a user. In some examples, authentication credential 138 includes a password (also referred to as a passphrase). The password may be in the form of a string of characters, numbers, and / or special characters. In some examples, authentication credential 138 includes a digital certificate. The digital certificate may include a digital identifier (e.g., a public key) of the user and a digital signature of a certificate authority. In some examples, authentication credential 138 includes biometric data. In some examples, the biometric data may include a face scan, an iris scan, a fingerprint scan, and / or voice data.

[0027] The authentication credentials 138 may be authenticated by an authentication system 144. The authentication system 144 may be any type of system that can authenticate a user based on the authentication credentials 138, such as a password-based authentication system, a certificate-based authentication system, a biometric-based authentication system, and / or a multi-factor-based authentication system. A password-based authentication system may authenticate a user using a password. A certificate-based authentication system may verify the digital signature and the authenticity of the certificate authority and may use cryptography to ensure that the user has the correct private key associated with the certificate.

[0028] A biometric-based authentication system may use biometrics to authenticate a user. In some examples, a biometric-based authentication system may use facial recognition to match different facial features of an individual attempting to gain access with approved faces stored in a database. In some examples, a biometric-based authentication system may look at a speaker's speech patterns for specific shape and tone patterns and rely on standardized words to identify a user. In some examples, a biometric-based authentication system may match a unique pattern on an individual's fingerprint. In some examples, a biometric-based authentication system may include iris recognition and / or a retina scanner, and the pattern is compared to the approval information stored in a database. A multi-factor based authentication system may use two or more independent techniques to identify a user (e.g., a code generated from the user's device, a Captcha test, a fingerprint, and / or facial recognition, etc.).

[0029] In some examples, computing device 120 communicates with authentication system 144 over network 150 to authenticate user 101. For example, computing device 120 may send an encrypted transmission over network 150 to authentication system 144. In some examples, the encrypted transmission includes authentication credentials 138. In some examples, the encrypted transmission includes an encrypted version of authentication credentials 138, and authentication system 144 decrypts authentication credentials 138. Authentication system 144 is configured to authenticate authentication credentials 138, and if authentication credentials 138 are authenticated, authentication system 144 is configured to send authentication response 146 indicating that user 101 has been authenticated. In some examples, authentication credentials 138 are authenticated locally on computing device 120. In some examples (not shown), authentication system 144 is included on computing device 120.

[0030] 1A and 1B, the computing device 120 includes a cryptographic processor 126 configured to receive an (authenticated) authentication credential 138. In response to receiving the authentication credential 138, and if the authentication credential 138 corresponds to the user 101, the cryptographic processor 126 is configured to disclose the first key portion 130 to the decryption unit 132. As indicated above, the user's authentication credential 138 may be a password associated with the computing device 120, or a user account associated with the computing device 120. However, the authentication credential 138 may include other forms of identification information, such as a digital certificate or biometric data (e.g., a face scan, an iris scan, a fingerprint scan, voice data, etc.).

[0031] The first key portion 130 may be a private key stored inside the crypto processor 126. A private key is a type of cryptographic secret. There could be other cryptographic secrets, which could be various types of private keys or represent the results of secret calculations performed inside the hardware security module 110. The crypto processor 126 may be a dedicated computer-on-chip or microprocessor for performing cryptographic operations. In some examples, the crypto processor 126 is a security chip. In some examples, the crypto processor 126 is a trusted platform module. In some examples, the crypto processor 126 is embedded in a package with one or more physical security measures. The decryption unit 132 may receive the authentication credential 138 and the first key portion 130, and the decryption unit 132 may recover the decryption key 134 using the authentication credential 138 and the first key portion 130. In some examples, the decryption unit 132 is configured to run on an application processor of the computing device 120, which may be a separate module / package from the crypto processor 126. The application processor may be a system-on-chip (SOC) that controls application functions of the computing device 120. In some examples, the decryption unit 132 is configured to execute within the crypto processor 126. In some examples, instead of using the crypto processor 126, the above-mentioned functions of the crypto processor 126 may be executed by the application processor of the computing device 120.

[0032] In some examples, the decryption unit 132 may require both the authentication credential 138 and the first key portion 130 to recover the decryption key 134. In some examples, as shown in FIG. 1A and FIG. 1B, the authentication credential 138 and the first key portion 130 are combined to form an encryption key (e.g., a wrapping key, such as a symmetric wrapping key), which is used to decrypt the decryption key 134. If the authentication credential 138 is a password, the password and the first key portion 130 are combined to form an encryption key (e.g., a wrapping key), which is used to decrypt the decryption key 134. If the user changes his / her password on the computing device 120, the computing device 120 may generate a new encryption key from the new password and the first key portion 130, encrypt the decryption key 134 with the new encryption key, and delete the previous encrypted decryption key 134. Thus, the decryption key 134 may be recovered, derived, and / or associated with the password. However, if the user changes the password for the user account on another device, a recovery process may be required to recover the decryption key 134. If the authentication credential 138 includes biometric data or a digital certificate, the biometric data or digital certificate data may be used in combination with the first key portion 130 to decrypt the decryption key 134. A similar change in the biometric used, or the digital certificate, may result in a change in the encryption of the decryption key 134.

[0033] In some examples, a third party 103 may require access to some of the encrypted data 136a on the computing device 120. For example, the third party 103 may be associated with an organization 152 that owns or manages the user's computing device 120. For example, the computing device 120 may be an operator-owned computing device, such as a business computer owned or managed by the user's company or a school computer owned or managed by the user's school. For one or more reasons (e.g., governance reasons, risk management reasons, legal reasons, and / or compliance reasons), the organization 152 may require access to the encrypted data 136a on the computing device 120. However, without the user's authentication credentials 138, conventional techniques would result in the decryption unit 132 being unable to derive the decryption key 134.

[0034] The recovery system 100 includes a server computer 102 having a recovery services module 108. The recovery services module 108 includes a hardware security module 110 that stores and manages key portions associated with users of computing devices. The hardware security module 110 may be a computing device (e.g., a physical computing device) that manages encryption keys and performs encryption and decryption functions as well as other cryptographic functions.

[0035] In some examples, the present disclosure describes the recovery system 100 with respect to a single hardware security module 110, but the recovery service module 108 may include a group of hardware security modules 110. The hardware security module 110 may store and manage a second key portion 131 that, upon recovery, is used in combination with the first key portion 130 to recover a decryption key 134 for decrypting the encrypted data 136a on the computing device 120. The second key portion 131 is a portion of information used to recover the decryption key 134. The second key portion 131 may be a private key stored inside the hardware security module 110. As indicated above, a private key is a type of cryptographic secret. There could be other cryptographic secrets that may be various types of private keys or may represent the results of secret computations performed inside the hardware security module 110. In some examples, the first key portion 130 and the second key portion 131 are private keys (e.g., private keys) of an elliptic curve key pair. Elliptic curve cryptography (ECC) is a key-based technique for encrypting data. However, first key part 130 and / or second key part 131 could be private / secret parts of some other scheme (other than elliptic curve) that supports public key cryptography. In some examples, first key part 130 and second key part 131 are large integers (e.g., very large integers). In some examples, first key part 130 and second key part 131 could be some cryptographic material (e.g., either a secret key or the result of a cryptographic calculation).

[0036] 1A is described with the situation where hardware security module 110 stores second key portion 131 associated with a single user, it is noted that hardware security module 110 (or a group of hardware security modules 110) may store second key portion 131 for many users (e.g., hundreds, thousands, or millions of users). The second key portion 131 stored in hardware security module 110 is not, by itself, sufficient to recover the decryption key 134 associated with a particular user or a particular device.

[0037] The organization 152 may register the computing device 120 with the recovery system 100 before or after its distribution to the user so that one or more persons associated with the organization 152 (e.g., authorized third parties) may access the encrypted data 136a and / or the user's computing device 120 if the user is absent or uncooperative and a third party 103 has physical possession of the computing device 120. In some examples, the user 101 may need to consent to allowing the organization 152 to register the computing device 120 for the recovery service. In some examples, after the organization 152 registers for the recovery service, the computing device 120 of the organization 152 is on-boarded when the user 101 first logs into his / her computing device 120. In some examples, the organization 152 may register one or more of its computing devices 120 before the computing device 120 is delivered to the user.

[0038] The recovery system 100 may store registration data 128 associated with the user's computing device 120. The registration data 128 may identify one or more personnel (or personnel roles / types) within the organization 152 who may access the user's encrypted data 136a when the user 101 is absent or uncooperative. For example, the registration data 128 may designate authorized third parties by identifying user accounts that are authorized to enter the user's encrypted data 136a. The user accounts may be assigned to specific people or specific roles (e.g., general manager, director, human resources director, etc.) within the organization 152. The third parties 103 may register with the recovery system 100 using the user's computing device 120 or another computing device. For example, the computing device may render one or more user interfaces that enable the third parties 103 to register with the recovery system 100 and enter one or more authorized user accounts.

[0039] The cryptographic processor 126 on the computing device 120 may store the enrollment data 128. In some examples, the recovery services module 108 (e.g., the hardware security module 110) of the server computer 102 may store the enrollment data 128. In some examples, the third party 103 may register the enrollment data 128 with the computing device 120 (or a different computing device) and provide the enrollment data 128, and the recovery services module 108 stores at least a portion of the enrollment data 128 in the hardware security module 110. In some examples, the recovery services module 108 may transmit at least a portion of the enrollment data 128 to the cryptographic processor 126 for storage thereon. In some examples, the third party 103 may register the enrollment data 128 with the computing device 120 and provide the enrollment data 128, and the cryptographic processor 126 stores at least a portion of the enrollment data 128, and the cryptographic processor 126 transmits at least a portion of the enrollment data 128 to the hardware security module 110 for storage thereon.

[0040] In some examples, the first key portion 130 and the second key portion 131 are generated in response to the computing device 120 being enrolled in the recovery system 100. In some examples, the first key portion 130 and the second key portion 131 are generated by software executing on the computing device 120. In some examples, the first key portion 130 is encrypted such that only the hardware security module 110 has access to the first key portion 130. In some examples, the second key portion 131 is available only to the crypto processor 126. At this point, the encrypted first key portion 130 continues to reside on the crypto processor 126. However, in some examples, because the first key portion 130 is encrypted and cannot be accessed improperly, the first key portion 130 may be stored elsewhere on the computing device 120.

[0041] In some examples, the hardware security module 110 may generate the first key portion 130 and the second key portion 131. The hardware security module 110 may store the second key portion 131. In some examples, the second key portion 131 is encrypted. In some examples, in response to the computing device 120 being enrolled in the recovery system 100, the hardware security module 110 may generate the first key portion 130 and transmit the first key portion 130 to the crypto processor 126, which securely stores the first key portion 130. In some examples, in response to the computing device 120 being enrolled in the recovery system 100, the crypto processor 126 may generate the first key portion 130 and the second key portion 131, which may transmit the second key portion 131 to the hardware security module 110. In some examples, the second key portion 131 is encrypted and stored in the hardware security module 110.

[0042] 1A and 1C, the third party 103 may provide its own authentication credential 138, which, once authenticated (e.g., by authentication system 144), causes the cryptographic processor 126 to determine whether the authentication credential 138 corresponds to (or matches) one of the authorized user accounts in the enrollment data 128 stored on the cryptographic processor 126. If the third party's authentication credential 138 is one of the authorized user accounts, the cryptographic processor 126 may disclose the first key portion 130 (stored on the computing device 120) to the decryption unit 132.

[0043] Also, if the third party authentication credential 138 is one of the authorized user accounts identified in the enrollment data 128, the crypto processor 126 is configured to communicate with the hardware security module 110 via the protocol 105 to retrieve the second key portion 131 stored at the hardware security module 110. In some examples, the protocol 105 includes a multi-party decryption protocol involving the crypto processor 126 and the hardware security module 110. In some examples, the protocol 105 includes more than two participants, such as a three-party protocol as shown in FIG. 2. Still further, the protocol 105 may include a four-party protocol or a five-party protocol. The crypto processor 126 may send a key request to the hardware security module 110 over the network 150, the key request including identifying information about the third party, identifying information about the user, and / or identifying information about the computing device 120. In some examples, the key request may include authorization information to verify that the request has been validated through identification / authorization (e.g., validated through the authentication system 144). In some examples, hardware security module 110 performs its own authentication on the server side using identifying information about third party 103 or user 101 from the key request. In some examples, hardware security module 110 may perform (e.g., independently perform) an authentication check to authenticate third party 103 (or user 101) before returning second key portion 131. In some examples, server computer 102 may include or be in communication with authentication system 144.

[0044] In some examples, the crypto processor 126 communicates with the hardware security module 110 through a reverse proxy. For example, the computing device 120 may contact the recovery services module 108, which may connect to the reverse proxy, which disintermediates the hardware security module 110. In some examples, the crypto processor 126 may send an encrypted payload (e.g., a key request), where the payload is encrypted using the hardware security module's public key. The hardware security module 110 may return an encrypted (and / or signed) response with the second key portion 131. In some examples, the crypto processor 126 may generate an encrypted payload during the registration process, and the crypto processor 126 sends the encrypted payload during recovery. The encrypted payload may include a user type, a user account identifier, and / or identification information about the computing device 120.

[0045] Before the second key portion 131 is returned to the computing device 120, a log entry 112 is created in the database 114 to publicly record the access to the computing device 120. In some examples, the log entry 112 is recorded in a single database 114. In some examples, the log entry 112 is recorded in multiple databases 114. For example, the recovery service module 108 includes a database recorder 111 configured to record the log entry 112 in one or more databases 114. Before the second key portion 131 is sent to the computing device 120, the database recorder 111 is configured to communicate with the database 114 over the network 150 and record the log entry 112 in the database 114. The log entry 112 may include information regarding the access to the computing device 120. For example, the log entry 112 may include a time, a date, an identification of the computing device 120, and / or an identification of the person who gained access to the computing device 120, the person's role, and / or organization.

[0046] In some examples, database 114 is a database whose records are publicly available. In some examples, database 114 is a public ledger. In some examples, database 114 is accessible to a portion of the public. In some examples, database 114 resides on a computing device that is separate from server computer 102. In some examples, database 114 is included within server computer 102. Database recorder 111 may receive a response indicating that recording of log entry 112 was successful. Hardware security module 110 may determine whether the response indicates that log entry 112 was successful and then send a response that includes second key portion 131. In some examples, the response may include information (e.g., certification) that the access request was logged in database 114.

[0047] In some examples, the database 114 may record all recovery attempts. In some examples, the database 114 may record unsuccessful recovery attempts. The hardware security module 110 may cause a log entry 112 to be recorded in the database 114 in response to an unsuccessful recovery attempt. For example, the hardware security module 110 may receive a malformed request that the hardware security module 110 would be unable to decrypt and / or access. In some examples, the hardware security module 110 may cause a log entry 112 to be recorded in the database 114 if the sender's signature (or a portion thereof) is determined to be invalid (e.g., an attacker has attempted to impersonate the laptop / requester). However, there may be numerous reasons why a recovery attempt may be unsuccessful, including accidental and / or malicious attempts. In some examples, hardware security module 110 may attempt to authenticate the requester (e.g., user 101 or third party 103) using authentication system 144, and if not authenticated, hardware security module 110 may cause a log entry 112 to be recorded in database 114 and return a rejection response to the requester.

[0048] The decryption unit 132 on the computing device 120 may then use the first key portion 130 and the second key portion 131 to recover the decryption key 134, which is used to decrypt the encrypted data 136a. In some examples, the first key portion 130 and the second key portion 131 are combined to decrypt the decryption key 134, which is used to decrypt the encrypted data. In some examples, the first key portion 130 and the second key portion 131 to form a symmetric wrapping key, and the symmetric wrapping key is used to cover the decryption key 134.

[0049] In some examples, the recovery system 100 can securely provide access to the encrypted data 136a when the user 101 has changed his / her password on another device (or with a browser), the user 101 does not have access to his / her password, and the user 101 has possession of the computing device 120. For example, the user can provide his / her authentication credential 138, and once authenticated (e.g., by the authentication system 144), the cryptographic processor 126 receives the authentication credential 138. The user may be authenticated in other ways (e.g., using a recovery method such as an old password, email, or phone verification). In some examples, the user 101 has forgotten his / her previous password to gain access to the encrypted data 136a, but the user 101 has his / her login password for the authentication system 144. In some examples, if the user 101 has forgotten his / her password for the authentication system 144, the server computer 102 can optionally reset this password and authenticate the user 101 in some way so that the user 101 can initiate this recovery process to gain access to the encrypted data 136a.

[0050] Because the authentication credentials are not current authentication credentials (combined with first key portion 130) for recovering decryption key 134, cryptographic processor 126 may trigger a recovery service, for example, by communicating with hardware security module 110 (in the same manner as described above) and obtaining second key portion 131, which is disclosed to cryptographic processor 126 after log entry 112 is recorded in database 114.

[0051] The computing device 120 can be any type of device having one or more processors 122 and one or more memory devices 123, where the memory devices 123 store the encrypted data 136a. The processor 122 can be formed in a substrate configured to execute one or more machine-executable instructions, software, firmware, or a combination thereof. The processor 122 can be semiconductor-based - that is, the processor can include semiconductor material capable of performing digital logic. The memory device 123 can include a main memory that stores information in a format that can be read and / or executed by the processor 122. The memory device 123 can also store executable instructions that, when executed by the processor 122, perform the functionality described with reference to the computing device 120.

[0052] Computing device 120 may be any type of consumer computing device, such as a laptop, a smartphone, a tablet, a desktop computing device, a gaming console, a smart TV, or a wearable device. In some examples, computing device 120 is a server computer. Computing device 120 may store data 136, which may be encrypted. In some examples, encrypted data 136a includes data associated with user 101.

[0053] The computing devices 120 may communicate with the server computer 102 through the network 150. The server computer 102 may be a computing device that takes the form of a number of different devices, such as a standard server, a group of such servers, or a rack server system. In some examples, the server computer 102 may be a single system that shares components such as a processor and memory. The network 150 may include the Internet and / or other types of data networks, such as a local area network (LAN), a wide area network (WAN), a cellular network, a satellite network, or other types of data networks. The network 150 may also include any number of computing devices (e.g., computers, servers, routers, network switches, etc.) configured to receive and / or transmit data within the network 150. The network 150 may further include any number of hardwired and / or wireless connections.

[0054] The server computer 102 may include one or more processors 104 formed within a substrate, an operating system (not shown), and one or more memory devices 106. The memory devices 106 may represent any type (or types) of memory (e.g., RAM, flash, cache, disk, tape, etc.). In some examples (not shown), the memory devices 106 may include external storage, e.g., memory that is physically remote from but accessible by the server computer 102. The server computer 102 may include one or more modules or engines that represent specially programmed software.

[0055] 2 illustrates a recovery system 200 that uses a multi-party recovery protocol to provide recovery access to encrypted data 236a on a computing device 220. Recovery system 200 may be an example of recovery system 100 of FIGS. 1A-1C and may include any of the details described with reference to those figures. In some examples, recovery system 200 is a three-party system that includes computing device 220 that stores a first key portion 230, a server computer 202a that stores a second key portion 231, and a server computer 202b that stores a third key portion 233. In some examples, server computer 202b is associated with an entity or organization that has registered with recovery system 200.

[0056] The first key part 230, the second key part 231, and the third key part 233 are used (e.g., combined) to recover a decryption key 234 for decrypting the encrypted data 236a. In some examples, the recovery system 200 uses more than three parties, such as a four-party or five-party system, where a fourth key part is stored on another computing device, a fifth key part is stored on another computing device, etc.

[0057] A third party may require access to some of the encrypted data 236a on the computing device 220. For example, the third party may be associated with an organization that owns or manages the user's computing device 220. In some examples, the server computer 202b is owned or managed by the organization. However, without the user's authentication credentials associated with the encrypted data 236a, some prior art techniques would prevent the decryption unit 232 from deriving the decryption key 234.

[0058] The recovery system 200 includes a server computer 202a having a hardware security module 210a that stores and manages a key portion (e.g., second key portion 231) associated with a user of a computing device. In some examples, the server computer 202a is not associated with an organization. In some examples, the server computer 202a is a third-party service that stores and manages key portions associated with a user of a computing device. The hardware security module 210a may be a computing device (e.g., a physical computing device) that manages encryption keys and performs encryption and decryption functions as well as other cryptographic functions. It is noted that the server computer 202a may include a single hardware security module 210a or a group of hardware security modules 210a. The hardware security module 210a may store and manage the second key portion 231 that, when recovered, is used in combination with the first key portion 230 and the third key portion 233 to recover a decryption key 234 for decrypting encrypted data 236a on the computing device 220.

[0059] The recovery system 200 includes a server computer 202b having a hardware security module 210b that stores and manages key portions (e.g., the third key portion 233) associated with users of computing devices associated with an entity or organization. In some examples, the server computer 202a stores and manages key portions for users (e.g., Apple users, Google users, Microsoft users, etc.) who use computing devices, and the server computer 202b stores and manages key portions for computing devices owned or managed by the organization or entity. The hardware security module 210b may be a computing device (e.g., a physical computing device) that manages encryption keys and performs encryption and decryption functions as well as other cryptographic functions. It is noted that the server computer 202b may include a single hardware security module 210b or a group of hardware security modules 210b. The hardware security module 210b may store and manage a third key portion 233 that, once recovered, is used in combination with the first key portion 230 and the second key portion 231 to recover a decryption key 234 for decrypting encrypted data 236a on the computing device 220.

[0060] In some examples, each of the first key part 230, the second key part 231, and the third key part 233 is a portion of information used to recover the decryption key 234. A key part (e.g., any of the first key part 230, the second key part 231, and the third key part 233) may be a private key stored inside the respective device. A private key is a type of cryptographic secret. There could be other cryptographic secrets that could be different types of private keys or could also represent the results of a secret calculation performed inside the hardware security module 210a, the hardware security module 210b, or the cryptographic processor 226. In some examples, the first key part 230, the second key part 231, and the third key part 233 are private keys (e.g., secret keys) of an elliptic curve key pair. However, the first key part 230, the second key part 231, and / or the third key part 233 could also be private / secret parts of some other scheme (other than elliptic curve) that supports public key cryptography.

[0061] An organization may register a computing device 220 with the recovery system 200 before or after its distribution to a user so that one or more persons associated with the organization (e.g., authorized third parties) can access the encrypted data 236a and / or the user's computing device 220 if the user is absent or uncooperative and a third party has physical possession of the computing device 220.

[0062] The recovery system 200 may store registration data associated with the user's computing device 220 (e.g., registration data 128 of FIG. 1A). In some examples, the registration data is stored at the computing device 220. In some examples, the registration data is stored at the server computer 202a. In some examples, the registration data is stored at the server computer 202b. The registration data may identify one or more personnel (or personnel roles / types) within the organization who may access the user's encrypted data 236a when the user is absent or uncooperative. For example, the registration data may specify authorized third parties by identifying user accounts that are authorized to enter the user's encrypted data 236a. The user accounts may be assigned to specific persons or specific roles (e.g., general manager, director, human resources director, etc.) within the organization. The third party may register with the recovery system 200 using the user's computing device 220 or another computing device. For example, the computing device may render one or more user interfaces that enable the third party to register with the recovery system 200 and enter one or more authorized user accounts.

[0063] In some examples, a third party may register and provide registration data using computing device 220 (or a different computing device), and the registration data may be stored on computing device 220, server computer 202a, and / or server computer 202b. In some examples, in response to computing device 220 being registered with recovery system 200, first key part 230, second key part 231, and third key part 233 are generated. In some examples, first key part 230, second key part 231, and third key part 233 are generated by software executing on computing device 220. Second key part 231 may be securely transmitted to server computer 202a for storage thereon. Third key part 233 may be securely transmitted to server computer 202b for storage thereon. In some examples, first key part 230, second key part 231, and third key part 233 are generated by server computer 202a. The first key part 230 may be securely transmitted to the computing device 220 for storage thereon. The third key part 233 may be securely transmitted to the server computer 202b for storage thereon. In some examples, the first key part 230, the second key part 231, and the third key part 233 are generated by the server computer 202b. The first key part 230 may be securely transmitted to the computing device 220 for storage thereon. The second key part 231 may be securely transmitted to the server computer 202a for storage thereon. In some examples, the first key part 230 is generated by the computing device 220, the second key part 231 is generated by the server computer 202a, and the third key part 233 is generated by the server computer 202b.

[0064] The third party may provide its own authentication credentials which, once authenticated, cause the cryptographic processor 226 to determine whether the third party's authentication credentials correspond to (or match) one of the authorized user accounts in the enrollment data stored on the cryptographic processor 226. If the third party's authentication credentials are one of the authorized user accounts, the cryptographic processor 226 may disclose the first key portion 230 to the decryption unit 232.

[0065] Also, if the third party's authentication credential is one of the authorized user accounts identified in the enrollment data, crypto processor 226 is configured to communicate with hardware security module 210a to obtain second key portion 231 and to communicate with hardware security module 210b to obtain third key portion 233. In some examples, crypto processor 226 may send a key request to hardware security module 210a over a network, where the key request includes identifying information about the third party, identifying information about the user, and / or identifying information about computing device 220. In some examples, hardware security module 210a performs its own authentication on the server side using the identifying information about the third party from the key request. In some examples, hardware security module 210a may perform (e.g., independently perform) an authentication check to authenticate the third party before returning second key portion 231.

[0066] Before the second key portion 231 is returned to the computing device 220, a log entry 212 is created in the database 214 to publicly record the access to the computing device 220. The log entry 212 may include information regarding the access to the computing device 220. For example, the log entry 212 may include the time, date, the identity of the computing device 220, and / or the identity of the person who gained access to the computing device 220, the person's role, and / or the organization. In some examples, the database 214 is a database whose records are publicly available. In some examples, the database 214 is a public ledger.

[0067] Also, if the third party's authentication credentials are one of the authorized user accounts identified in the enrollment data, crypto processor 226 is configured to communicate with hardware security module 210b to obtain third key portion 233. In some examples, crypto processor 226 may send a key request over a network to hardware security module 210b, where the key request includes identifying information about the third party, identifying information about the user, and / or identifying information about computing device 220. In some examples, hardware security module 210b performs its own authentication on the server side using the identifying information about the third party from the key request. In some examples, hardware security module 210b may perform (e.g., independently perform) an authentication check to authenticate the third party before returning third key portion 233.

[0068] In some examples, before the third key portion 233 is returned to the computing device 220, the hardware security module 210b may communicate with the database 214 to determine whether the log entry 212 has been recorded in the database 214. If so, the hardware security module 210b may send a response including the third key portion 233 to the crypto processor 226. In some examples, the hardware security module 210a is configured to record the log entry 212 in the database 214. In some examples, the hardware security module 210b is configured to record the log entry 212 in the database 214. In some examples, the hardware security module 210a and the hardware security module 210b may independently record the access in the database 214. In some examples, the hardware security module 210a and the hardware security module 210b may record separate log entries 212 in separate databases 214. In some examples, recovery system 200 includes multiple (separate) databases 214, such as a first database that records access to computing device 220 and a second database that records access to computing device 220. In some examples, hardware security module 210a may record log entries 212 in the first database. In some examples, hardware security module 210b may record log entries 212 in the second database.

[0069] Log entry 212 may include information regarding access to computing device 220. For example, log entry 212 may include the time, date, identity of computing device 220, and / or identity of the person, the person's role, and / or organization that gained access to computing device 220. In some examples, database 214 is a database whose records are publicly available. In some examples, database 214 is a public ledger.

[0070] The decryption unit 232 on the computing device 220 may then use the first key part 230, the second key part 231, and the third key part 233 to recover the decryption key 234, which is used to decrypt the encrypted data 236a. In some examples, the first key part 230, the second key part 231, and the third key part 233 are combined to decrypt the decryption key 234, which is used to decrypt the encrypted data 236a. In some examples, the first key part 230, the second key part 231, and the third key part 233 are used to form a wrapping key (e.g., a symmetric wrapping key), which is used to cover the decryption key 234.

[0071] In some examples, the recovery system 200 can securely provide access to the encrypted data 236a when the user has changed their password, the user does not have access to their password, and the user has possession of the computing device 220. The user may be authenticated in other ways (e.g., using a recovery method such as an old password, email, or phone verification). In some examples, the user has forgotten their previous password to gain access to the encrypted data 236a, but the user has their own login password for an authentication system associated with the computing device 220. In some examples, if the user has forgotten their password for the authentication system, the server computer 202a may optionally reset the password and authenticate the user in some manner so that the user can initiate the recovery process to gain access to the encrypted data 236a. Once authenticated, the cryptographic processor 226 may trigger a recovery service, for example, by communicating with hardware security module 210a (in the same manner as described above) to obtain the second key portion 231 and communicating with hardware security module 210b to obtain the third key portion 233, at least one of the second key portion 231 or the third key portion 233 being disclosed to the cryptographic processor 226 after the log entry 212 is recorded in the database 214.

[0072] FIG. 3 illustrates a flowchart 300 showing an example operation of a recovery system according to one embodiment. Although the flowchart 300 of FIG. 3 illustrates operations in a sequential order, it will be understood that this is merely an example and that additional or alternative operations may be included. Additionally, the operations of FIG. 3 and related operations may be performed in an order different from that shown, or in a parallel or overlapping manner. Although the flowchart 300 is described with reference to the recovery system 100 of FIGS. 1A-1C, the flowchart 300 may be performed according to any of the systems described herein, including the recovery system 200 of FIG. 2.

[0073] The flowchart 300 may be executable by the recovery system 100 of FIGS. 1A-1C. In some examples, the flowchart 300 may be executable by the recovery system 200 of FIG. 2. In some examples, the flowchart 300 illustrates operations performed by the computing device 120. For example, in recovering the encrypted data 136, the computing device 120 may perform the operations of FIG. 3. The operations of FIG. 3 may be applicable when a third party 103 is attempting to access the computing device 120 and the third party 103 owns the computing device 120. The operations of FIG. 3 may also be applicable when a user 101 owns the computing device 120 but the user's current authentication credentials 138 are unknown to the user 101. In other words, the user's authentication credentials 138 for accessing the encrypted data 136a are unknown to the user.

[0074] Act 302 includes receiving authentication credentials 138 for recovery access to computing device 120, where authentication credentials 138 are different from authentication credentials used to access encrypted data 136a on computing device 120. In some examples, authentication credentials 138 are associated with a third party 103 that owns or controls computing device 120. In some examples, authentication credentials 138 are associated with a user 101 of computing device 120. For example, a user may be authenticated in a number of different ways. A password to access encrypted data 136a may be lost or forgotten, but computing device 120 may receive authentication credentials 138 different from the password used to access encrypted data 136a, and the authentication credentials 138 are used to authenticate user 101.

[0075] Operation 304 includes obtaining the first key portion 130 stored on the computing device in response to receiving the authentication credential 138. In some examples, the first key portion 130 is stored on the cryptographic processor 126 of the computing device 120. In some examples, the first key portion 130 is obtained (e.g., disclosed) when the authentication credential 138 is authenticated. In some examples, the first key portion 130 is obtained when the authentication credential 138 is authenticated and the third party 103 is included in the enrollment data 128. Operation 306 includes sending a request to receive the second key portion 131 over the network 150. In some examples, the second key portion 131 is stored on the hardware security module 110 at the server computer 102. Operation 308 includes receiving a response over the network 150 including the second key portion 131. In some examples, the hardware security module 110 returns the second key portion 131 after the log entry 112 is recorded in the database 114. In some examples, the hardware security module 110 returns the second key portion 131 if the hardware security module 110 independently authenticates the authentication credential 138 and / or determines that the third party 103 is included on the enrollment data 128. Operation 310 includes recovering the decryption key 134 using the first key portion 130 and the second key portion 131. Operation 312 includes decrypting the encrypted data 136a on the computing device 120 using the decryption key 134.

[0076] FIG. 4 illustrates a flowchart 400 showing an example operation of a recovery system according to another embodiment. Although the flowchart 400 of FIG. 4 illustrates operations in a sequential order, it will be understood that this is merely an example and that additional or alternative operations may be included. Additionally, the operations of FIG. 4 and related operations may be performed in an order different from that shown, or in a parallel or overlapping manner. Although the flowchart 400 is described with reference to the recovery system 100 of FIGS. 1A-1C, the flowchart 400 may be performed according to any of the systems described herein, including the recovery system 200 of FIG. 2.

[0077] The flowchart 400 may be executable by the recovery system 100 of FIGS. 1A-1C. In some examples, the flowchart 400 may be executable by the recovery system 200 of FIG. 2. In some examples, the flowchart 400 illustrates operations performed by the server computer 102 (e.g., the recovery service module 108). For example, in recovering the encrypted data 136, the server computer 102 may perform the operations of FIG. 4. The operations of FIG. 4 may be applicable when a third party 103 is attempting to access the computing device 120 and the third party 103 owns the computing device 120. The operations of FIG. 4 may also be applicable when a user 101 owns the computing device 120 but the user's authentication credentials for accessing the encrypted data 136a are unknown to the user 101.

[0078] Operation 402 includes receiving, over network 150, a first request from computing device 120 to receive second key portion 131, the second key portion 131 configured to be combined with first key portion 130 stored on computing device 120 to recover decryption key 134 for decrypting encrypted data 136a. Operation 404 includes sending a second request to database 114 to record a log entry 112 in database 114 regarding the first request. Operation 406 includes sending second key portion 131 to computing device 120 after log entry 112 is recorded in database 114. In some examples, recording access in database 114 may increase transparency, which may prevent insider attacks since access may be discoverable.

[0079] FIG. 5 illustrates a flowchart 500 illustrating an example operation of a recovery system according to another embodiment. Although the flowchart 500 of FIG. 5 illustrates operations in a sequential order, it will be understood that this is merely an example and that additional or alternative operations may be included. Additionally, the operations of FIG. 5 and related operations may be performed in an order different from that shown, or in a parallel or overlapping manner. Although the flowchart 500 is described with reference to the recovery system 100 of FIGS. 1A-1C, the flowchart 500 may be performed according to any of the systems described herein, including the recovery system 200 of FIG. 2.

[0080] The flowchart 500 may be executable by the recovery system 100 of FIGS. 1A-1C. In some examples, the flowchart 500 may be executable by the recovery system 200 of FIG. 2. In some examples, the flowchart 500 illustrates operations performed by the computing device 120. For example, in recovering the encrypted data 136, the computing device 120 may perform the operations of FIG. 5. The operations of FIG. 5 may be applicable when a third party 103 is attempting to access the computing device 120 and the third party 103 is in possession of the computing device 120. The operations of FIG. 5 may also be applicable when a user 101 is in possession of the computing device 120, but the user's authentication credentials for accessing the encrypted data 136a are unknown to the user 101.

[0081] Operation 502 includes receiving an authentication credential 138 associated with the computing device 120, the authentication credential 138 being different than an authentication credential used to access the encrypted data 136a on the computing device 120. Operation 504 includes retrieving the first key portion 130 stored on the computing device 120 in response to receiving the authentication credential 138. Operation 506 includes transmitting a request to receive the second key portion 131 over the network 150, the request to receive the second key portion 131 being configured to initiate recording of the log entry 112 in the database 114. Operation 508 includes receiving a response including the second key portion 131 after the log entry 112 is entered into the database 114. Operation 510 includes recovering the decryption key 134 using the first key portion 130 and the second key portion 131. Operation 512 includes decrypting the encrypted data 136a using the decryption key 134.

[0082] 6 illustrates an example of a general purpose computing device 600 and a general purpose mobile computing device 650 that may be used with the techniques described herein. Computing device 600 is intended to represent various forms of digital computers, such as laptops, desktops, tablets, workstations, personal digital assistants, televisions, servers, blade servers, mainframes, and other suitable computing devices. Computing device 650 is intended to represent various forms of mobile devices, such as personal digital assistants, cellular phones, smartphones, and other similar computing devices. The components shown here, their connections and relationships, and their functions are intended to be merely illustrative and are not intended to limit the implementation of the subject matter described and / or claimed in this document.

[0083] The computing device 600 includes a processor 602, a memory 604, a storage device 606, a high-speed interface 608 connecting to the memory 604 and a high-speed expansion port 610, and a low-speed interface 612 connecting to a low-speed bus 614 and the storage device 606. The processor 602 can be a semiconductor-based processor. The memory 604 can be a semiconductor-based memory. Each of the components 602, 604, 606, 608, 610, and 612 are interconnected using various buses and may be implemented on a common motherboard or in other manners as desired. The processor 602 processes instructions, including instructions stored in the memory 604 or on the storage device 606, for execution within the computing device 600 and can display graphical information for a GUI on an external input / output device, such as a display 616 coupled to the high-speed interface 608. In other implementations, multiple processors and / or multiple buses may be used along with multiple memories and various types of memories as desired. Also, multiple computing devices 600 may be connected (eg, as a server bank, a group of blade servers, or a multi-processor system) with each device providing a portion of the required operations.

[0084] The memory 604 stores information within the computing device 600. In one implementation, the memory 604 is a volatile memory unit or units. In another implementation, the memory 604 is a non-volatile memory unit or units. The memory 604 may also be another form of computer-readable medium, such as a magnetic or optical disk.

[0085] The storage device 606 has the capability of providing mass storage for the computing device 600. In one implementation, the storage device 606 may be or include a computer-readable medium, such as a floppy disk device, a hard disk device, an optical disk device, or an array of devices, including a tape device, a flash memory or other similar solid-state memory device, or a device in a storage area network or other configuration. A computer program product may be tangibly embodied in an information carrier. The computer program product may also include instructions that, when executed, perform one or more methods, such as those described above. The information carrier is a computer or machine-readable medium, such as the memory 604, the storage device 606, or a memory on the processor 602.

[0086] The high-speed controller 608 manages bandwidth-intensive operations for the computing device 600, while the low-speed controller 612 manages less bandwidth-intensive operations. This allocation of functionality is merely exemplary. In one implementation, the high-speed controller 608 is coupled to the memory 604, the display 616 (e.g., through a graphics processor or accelerator), and a high-speed expansion port 610, which may accept various expansion cards (not shown). In this implementation, the low-speed controller 612 is coupled to the storage device 606 and the low-speed expansion port 614. The low-speed expansion port, which may include various communication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet), may be coupled to one or more input / output devices, such as a keyboard, pointing device, scanner, etc., or to a networking device, such as a switch or router, for example, through a network adapter.

[0087] The computing device 600 may be implemented in many different forms, as shown in the figure. For example, it may be implemented as a standard server 620, or multiple times in the form of a group of such servers. It may also be implemented as part of a rack server system 624. In addition, it may be implemented in the form of a personal computer, such as a laptop computer 622. Alternatively, components from the computing device 600 may be combined with other components (not shown) in a mobile device, such as device 650. Each such device may contain one or more computing devices 600, 650, and the entire system may be made up of multiple computing devices 600, 650 in communication with each other.

[0088] Computing device 650 includes, among other components, a processor 652, a memory 664, an input / output device such as a display 654, a communication interface 666, and a transceiver 668. Device 650 may also be provided with a storage device, such as a microdrive or other device, to provide additional storage. Each of components 650, 652, 664, 654, 666, and 668 are interconnected using various buses, and some of the components may be implemented on a common motherboard or in other manners as desired.

[0089] The processor 652 can execute instructions in the computing device 650, including instructions stored in the memory 664. The processor can be implemented as a chipset of chips including separate and multiple analog and digital processors. The processor can provide coordination of other components of the device 650, such as, for example, control of a user interface, applications executed by the device 650, and wireless communications by the device 650.

[0090] The processor 652 may communicate with a user through a control interface 658 and a display interface 656 coupled to a display 654. The display 654 may be, for example, a TFT LCD (Thin-Film-Transistor Liquid Crystal Display) or OLED (Organic Light Emitting Diode) display, or other suitable display technology. The display interface 656 may include appropriate circuitry for driving the display 654 to present graphical and other information to the user. The control interface 658 may receive commands from the user and convert them for transmission to the processor 652. Additionally, an external interface 662 may be provided in communication with the processor 652 to enable near area communication of the device 650 with other devices. The external interface 662 may provide, for example, wired communication in some implementations or wireless communication in other implementations, and multiple interfaces may also be used.

[0091] The memory 664 stores information within the computing device 650. The memory 664 may be implemented as one or more of a computer-readable medium or media, a volatile memory unit or units, or a non-volatile memory unit or units. Also, an expansion memory 674 may be provided and connected to the device 650 through an expansion interface 672, which may include, for example, a SIMM (Single In Line Memory Module) card interface. Such expansion memory 674 may provide extra storage space for the device 650 or may also store applications or other information for the device 650. In particular, the expansion memory 674 may include instructions for implementing or supplementing the processes described above, and may also include secure information. Thus, for example, the expansion memory 674 may be provided as a security module for the device 650 and may be programmed with instructions that enable secure use of the device 650. In addition, secure applications may be provided via the SIMM card, such as placing identifying information on the SIMM card in an unhackable manner, along with additional information.

[0092] The memory may include, for example, flash memory and / or NVRAM memory, as described below. In one implementation, a computer program product is tangibly embodied in an information carrier. The computer program product contains instructions that, when executed, perform one or more methods, such as those described above. The information carrier is, for example, a computer or machine-readable medium, such as memory 664, expansion memory 674, or memory on processor 652, which may be received through transceiver 668 or external interface 662.

[0093] The device 650 may communicate wirelessly through a communication interface 666, which may include digital signal processing circuitry if necessary. The communication interface 666 may provide for communication under various modes or protocols, such as GSM voice calls, SMS, EMS, or MMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others. Such communication may occur, for example, through a radio frequency transceiver 668. In addition, short-range communication may occur, such as using Bluetooth, Wi-Fi, or other such transceivers (not shown). In addition, a Global Positioning System (GPS) receiver module 670 may provide the device 650 with additional navigation and location-related wireless data that may be used as needed by applications executing on the device 650.

[0094] Device 650 may also communicate verbally using a voice codec 660, which may receive speech information from a user and convert it into usable digital information. Voice codec 660 may likewise generate audible sound for the user, such as through a speaker in a handset of device 650. Such sound may include sound from a voice call, may include recorded sound (e.g., voice messages, music files, etc.), and may include sound generated by applications running on device 650.

[0095] The computing device 650 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as a cellular telephone 680. It may also be implemented as part of a smartphone 682, a personal digital assistant, or another similar mobile device.

[0096] Thus, various implementations of the systems and techniques described herein may be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and / or combinations thereof. These various implementations may include implementations in the form of one or more computer programs executable and / or interpretable on a programmable system including at least one programmable processor, which may be special purpose or general purpose, coupled to receive data and instructions from and transmit data and instructions to a storage system, at least one input device, and at least one output device.

[0097] These computer programs (also known as programs, software, software applications or codes) contain machine instructions for a programmable processor and may be implemented in high-level procedural and / or object-oriented programming languages ​​and / or in assembly / machine languages. As used herein, the terms "machine-readable medium" and "computer-readable medium" refer to any computer program product, apparatus and / or device used to provide machine instructions and / or data to a programmable processor (e.g., magnetic disks, optical disks, memory, programmable logic devices (PLDs)), including a machine-readable medium that receives machine instructions as a machine-readable signal. The term "machine-readable signal" refers to any signal used to provide machine instructions and / or data to a programmable processor.

[0098] To provide for interaction with a user, the systems and techniques described herein may be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user, as well as a keyboard and pointing device (e.g., a mouse or trackball) by which the user can provide input to the computer. Other types of devices may also be used to provide for interaction with a user, for example, feedback provided to the user may be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback), and input from the user may be received in any form, including acoustic, speech, or tactile input.

[0099] The systems and techniques described herein can be implemented in a computing system that includes back-end components (e.g., as a data server), or includes middleware components (e.g., an application server), or includes front-end components (e.g., a client computer having a graphical user interface or web browser through which a user can interact with an implementation of the systems and techniques described herein), or includes any combination of such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communications network). Examples of communications networks include a local area network ("LAN"), a wide area network ("WAN"), and the Internet.

[0100] A computing system may include clients and servers. Clients and servers are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.

[0101] Additionally, the logic flows depicted in the figures do not require the particular order shown, or sequence, to achieve desired results. Additionally, other steps may be provided or steps may be excluded from the above described flows, and other components may be added to or removed from the above described systems. Accordingly, other implementations are within the scope of the appended claims.

[0102] It will be understood that the implementations described above that have been specifically described are merely examples or possible implementations, and that there are many other combinations, additions, or alternatives that may be included.

[0103] Also, the particular designations, capitalizations of terms, attributes, data structures, or any other programming or structural aspects of components are not required or important, and mechanisms implementing the subject matter of this disclosure or its features may have different names, formats, or protocols. Furthermore, the system may be implemented through a combination of hardware and software, as described above, or entirely in the form of hardware elements. Also, the particular division of functionality among various system components described herein is merely exemplary and not required, and functions performed by a single system component may instead be performed by multiple components, and functions performed by multiple components may instead be performed by a single component.

[0104] Some portions of the above description are characterized in terms of algorithms and symbolic representations of operations on information. These algorithmic descriptions and representations may be used by those skilled in the data processing arts to effectively convey the substance of their work to others skilled in the art. It will be understood that these operations, while described functionally or logically, are implemented by computer programs. Further, it has proven convenient at times to refer to these arrangements of operations as modules or by functional names, without loss of generality.

[0105] Unless otherwise specifically stated, and as will be apparent from the above description, throughout this description, descriptions utilizing terms such as "processing," or "computing," or "calculating," or "determining," or "displaying," or "providing," or the like, are understood to refer to the actions and processes of a computer system, or similar electronic computing device, that manipulate and transform data, which is represented as physical (electronic) quantities in the memory or registers of the computer system, or other such information storage, transmission, or display device.

Claims

1. 1. A method for accessing a computing device, the method comprising: receiving, via a user interface of a user device managed by an organization, a first authentication credential associated with an administrator of the organization, the first authentication credential being different from a second authentication credential, the second authentication credential being associated with a user assigned to the user device and being used to access encrypted data on the user device; The method comprises: obtaining a first key portion stored in a memory device of the user device in response to successful authentication of the first authentication credential; Sending a request over a network to receive a second key portion; receiving a response over the network, the response including the second key portion; recovering a decryption key using the first key portion and the second key portion; decrypting the encrypted data on the user device using the decryption key; The method further comprising:

2. The method of claim 1 , wherein the request to receive the second key portion triggers the recording of a log entry in a database, the log entry including information regarding access to the user device by the administrator.

3. The method described in claim 2, wherein the second key portion is received at the user device after recording the log entry in the database.

4. combining the first key part and the second key part to form a wrapping key; decrypting the decryption key using the wrapping key; The method of claim 1 further comprising:

5. obtaining registration data identifying at least one authorized user account; determining whether the first authentication credential corresponds to the at least one authorized user account; sending the request to receive the second key portion in response to the first authentication credential corresponding to the at least one authorized user account; The method of claim 1 further comprising:

6. 2. The method of claim 1, wherein the first key part is stored in a cryptographic processor of the user device, and the request to receive the second key part is sent to a security module configured to store the second key part.

7. 7. The method of claim 6, further comprising storing enrollment data on at least one of the cryptographic processor or the security module, the enrollment data identifying at least one authorized user account corresponding to the first authentication credential.

8. receiving an authentication success response in response to the first authentication credential being authenticated by the authentication system; Further comprising: The method of claim 1 , wherein the first key portion is obtained in response to the authentication success response.

9. An apparatus comprising: At least one processor; and a non-transitory computer-readable medium storing executable instructions, the executable instructions configuring the at least one processor to: receiving, via a user interface of a user device managed by an organization, a first authentication credential associated with an administrator of the organization, the first authentication credential being different from a second authentication credential, the second authentication credential being associated with a user assigned to the user device and used to access encrypted data on the user device; obtaining a first key portion stored in a memory device of the user device in response to successful authentication of the first authentication credential; Sending a request over a network to receive a second key portion; receiving a response over the network, the response including the second key portion; recovering a decryption key using the first key portion and the second key portion; decrypting the encrypted data on the user device using the decryption key; The apparatus further comprises:

10. The apparatus of claim 9, wherein the request to receive the second key portion triggers the recording of a log entry in a database, the log entry including information regarding access to the user device by the administrator.

11. The apparatus of claim 10, wherein the second key portion is received at the user device during or after the recording of the log entry to the database.

12. The executable instructions for said at least one processor: combining the first key part and the second key part to form a wrapping key; decrypting the decryption key using the wrapping key; 10. The apparatus of claim 9, further comprising instructions to:

13. The executable instructions for said at least one processor: obtaining registration data identifying at least one authorized user account; determining whether the first authentication credential corresponds to the at least one authorized user account; sending the request to receive the second key portion in response to the first authentication credential corresponding to the at least one authorized user account; 10. The apparatus of claim 9, further comprising instructions to:

14. The apparatus of claim 9, wherein the first key portion is stored in a cryptographic processor of the user device, and the request to receive the second key portion is sent over the network to security circuitry configured to store the second key portion.

15. The device of claim 14, further comprising storing registration data on at least one of the cryptographic processor or the security circuitry, the registration data identifying at least one authorized user account corresponding to the first authentication credential.

16. The executable instructions for the at least one processor: receiving an authentication success response in response to the first authentication credential being authenticated by an authentication system; The apparatus of claim 9 , wherein the first key portion is obtained in response to the authentication success response.

17. A program comprising executable instructions for causing at least one processor to execute a method according to any one of claims 1 to 8.

Citation Information

Patent Citations

  • Duplicated key management system in cryptographic system

    JP1988151238A

  • Data management device, data management method, and data management program

    JP2009098889A

  • Encrypting file system and method

    US20020019935A1