CROSS-REFERENCEThis application claims priority to U.S. Provisional Application Ser. No. 62/835,234, filed on Apr. 17, 2019, which is hereby incorporated herein by reference.
TECHNICAL FIELDThis disclosure relates generally to electronic devices. More specifically, this disclosure relates to a system and associated methods to enable user account recovery using an accessory device.
BACKGROUNDMany users of computing devices have multiple accounts that require the user to provide one or more credentials to gain access to them. Because of this, it is quite common for one person to have multiple passwords for multiple different accounts. With the increasing number of passwords, users typically forget the passwords that they use for their different accounts. Various types of account recovery techniques can be used to enable a user to recover an account with a forgotten password. Some techniques make use of a recovery key or passcode that is previously generated by the user or provided to the user. Other techniques may make use of a one-time key or code that is generated in real time and provided to the user via an out-of-band communication channel.
SUMMARYEmbodiments described herein enable a user to bypass the use of one-time keys or account recovery codes by providing techniques for accessory assisted account recovery. In various embodiments, accessory assisted account recovery makes use of an accessory device of a user, where the accessory device can be any device having a secure processor, cryptographic engine, public key accelerator, or is otherwise able to accelerate cryptographic operations or perform cryptographic operations in a secure execution environment.
One embodiment provides for an electronic device comprising a memory coupled with the network interface and at least one application processor coupled with the memory, the at least one processor to execute instructions stored in the memory, wherein the at least one application processor is to split an account recovery key into multiple key portions, wherein the account recovery key is to enable recovery of an account associated with the electronic device, receive an encryption key from an accessory device associated with the electronic device, encrypt a portion of the account recovery key using cryptographic material derived from the encryption key, and provide an encrypted portion of the account recovery key to a server associated with the user account.
One embodiment provides for a method comprising, at an accessory device having a processor and memory, the accessory device to facilitate recovery of a user account, receiving a first randomized value, generating a second randomized value, computing a cryptographic seed based on the first randomized value and the second randomized value, the cryptographic seed for use in generating a key pair for use in encrypting a portion of an account recovery key, and storing the cryptographic seed to storage on the accessory device.
One embodiment provides for a non-transitory machine-readable medium storing instructions to cause one or more processors on an electronic device to perform operations comprising receiving an encrypted portion of an account recovery key, wherein the encrypted portion of the account recovery key is a first portion of the account recovery key, transmitting the encrypted portion of the account recovery key to an accessory device associated with the electronic device, receiving the first portion of the account recovery key from the accessory device, the first portion of the account recovery key having been decrypted from the encrypted portion of the account recovery key, and generating the account recovery key using at least the first portion of the account recovery key.
Other features of the present embodiments will be apparent from the accompanying drawings and from the detailed description, which follows.
BRIEF DESCRIPTION OF THE DRAWINGSEmbodiments of the disclosure are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings in which like reference numerals refer to similar elements, and in which:
FIG.1 is a block diagram of an example network operating environment for mobile devices, according to an embodiment;
FIG.2 is a diagram illustrating a system for securely storing data items for synchronization and exchange, according to an embodiment;
FIG.3A-3B illustrate an accessory device and a primary device, according to embodiments;
FIG.4 illustrates a method of accessory assisted account recovery setup, according to an embodiment;
FIG.5 illustrates a method of performing accessory assisted account recovery, according to an embodiment;
FIG.6 illustrates a method of revoking a recovery key used for accessory assisted recovery, according to an embodiment;
FIG.7 illustrates a computing system including a secure processor, according to an embodiment;
FIG.8 is a block diagram of a device architecture for a mobile or embedded device, according to an embodiment; and
FIG.9 is a block diagram of a computing system, according to an embodiment.
DETAILED DESCRIPTIONShould a user lose access to or forget the account credentials used to access the network services and storage, an account recovery process may be used to recover the account credentials. Embodiments described herein enable a user to bypass the use of one-time keys or account recovery codes by providing techniques for accessory assisted account recovery. In various embodiments, accessory assisted account recovery makes use of an accessory device of a user, where the accessory device can be any device having a secure processor, cryptographic engine, public key accelerator, or is otherwise able to accelerate cryptographic operations or perform cryptographic operations in a secure execution environment.
The accessory device can be configured to be uniquely capable of decrypting a portion of a recovery key. The encrypted portion of the recovery key can be held in escrow for the user within an online or cloud storage container to which a cloud service provider has access. Although the cloud service provider has access to the encrypted portion of the recovery key, the cloud service provider will not hold the keys used to decrypt the encrypted portion. Instead, upon authentication with the cloud service provider via an alternate mechanism than the lost or inaccessible account credentials which the user is attempting to recover, the cloud service provider can provide the encrypted recovery key portion to a user device of the user, which can decrypt the encrypted recovery key portion on behalf of the user device and enabled the user device to combine the portions of the account recovery key to recover the account recovery key. The account recovery key can then be used by the user device to recover access to one or more user accounts.
Data associated with a user account may be stored in encrypted containers to which the account provider does not have access, as the account provider may not retain the keys used to decrypt those containers. The account recovery technique described herein enables a user to recover access to a user account without giving the provider access to the recovered encrypted data of the account. This technique differs from hardware-based signature generators or token devices that allow a user to prove themselves to a provider in order to recover lost account credentials, as such mechanisms do not allow the user to recover a secret to which the provider does not have access.
Reference in the specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in conjunction with the embodiment can be included in at least one embodiment of the invention. The appearances of the phrase “in one embodiment” in various places in the specification do not necessarily all refer to the same embodiment. The processes depicted in the figures that follow are performed by processing logic that comprises hardware (e.g. circuitry, dedicated logic, etc.), software (as instructions on a non-transitory machine-readable storage medium), or a combination of both hardware and software. Reference will be made in detail to various embodiments, examples of which are illustrated in the accompanying drawings. In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be apparent to one of ordinary skill in the art that the present invention may be practiced without these specific details. In other instances, well-known methods, procedures, components, circuits, and networks have not been described in detail so as not to unnecessarily obscure aspects of the embodiments.
It will also be understood that, although the terms first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first contact could be termed a second contact, and, similarly, a second contact could be termed a first contact, without departing from the scope of the present invention. The first contact and the second contact are both contacts, but they are not the same contact.
The terminology used in the description of the invention herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used in the description of the invention and the appended claims, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that the term “and/or” as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
As used herein, the term “if” may be construed to mean “when” or “upon” or “in response to determining” or “in response to detecting,” depending on the context. Similarly, the phrase “if it is determined” or “if [a stated condition or event] is detected” may be construed to mean “upon determining” or “in response to determining” or “upon detecting [the stated condition or event]” or “in response to detecting [the stated condition or event],” depending on the context.
Embodiments of computing devices, user interfaces for such devices, and associated processes for using such devices are described. In some embodiments, the computing device is a portable communications device such as a mobile telephone that also contains other functions, such as PDA and/or music player functions. Exemplary embodiments of portable multifunction devices include, without limitation, the iPhone®, iPad®, and Apple Watch® devices from Apple Computer, Inc. of Cupertino, California.
A portion of this disclosure contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever. Copyright 2018 Apple Inc.
In the discussion that follows, a computing device that includes a touch-sensitive display is described. It should be understood, however, that the computing device may include one or more other physical user-interface devices, such as a separate display, physical keyboard, a mouse, and/or a joystick. Electronic devices described herein support a variety of applications, such as one or more of the following: a note taking application, a drawing application, a presentation application, a word processing application, a website creation application, a disk authoring application, a spreadsheet application, a gaming application, a telephone application, a video-conferencing application, an e-mail application, an instant messaging application, a fitness application, a photo management application, a digital camera application, a digital video camera application, a web browsing application, a digital music player application, a digital video player application, and/or a home automation application.
The various applications that may be executed on the device may use at least one common physical user-interface device, such as the touch-sensitive surface. One or more functions of the touch-sensitive surface as well as corresponding information displayed on the device may be adjusted and/or varied from one application to the next and/or within a respective application. In this way, a common physical architecture (such as the touch-sensitive surface) of the device may support the variety of applications with user interfaces that are intuitive and transparent.
Some processes are described below in terms of some sequential operations. However, it should be appreciated that some of the operations described may be performed in a different order. Moreover, some operations may be performed in parallel rather than sequentially.
A user account as described herein can be a device specific account, an online server or services account, and/or a device specific account that is linked with an online account. Example services that can be accessed via an online account described herein are shown inFIG.1 andFIG.2 below.
FIG.1 is a block diagram of an examplenetwork operating environment100 for mobile devices, according to an embodiment.Mobile device102A andmobile device102B can, for example, communicate over one or more wired and/orwireless networks110 to perform data communication. For example, awireless network112, e.g., a cellular network, can communicate with a wide area network (WAN)114, such as the Internet, by use of agateway116. Likewise, anaccess device118, such as a mobile hotspot wireless access device, can provide communication access to thewide area network114.
In some implementations, both voice and data communications can be established over thewireless network112 and/or theaccess device118. For example,mobile device102A can place and receive phone calls (e.g., using VoIP protocols), send and receive e-mail messages (e.g., using POP3 protocol), and retrieve electronic documents and/or streams, such as web pages, photographs, and videos, over thewireless network112,gateway116, and wide area network114 (e.g., using TCP/IP or UDP protocols). In some implementations,mobile device102A can place and receive phone calls, send and receive e-mail messages, and retrieve electronic documents over theaccess device118 and thewide area network114. In some implementations,mobile device102A ormobile device102B can be physically connected to theaccess device118 using one or more cables, for example, where theaccess device118 is a personal computer. In this configuration,mobile device102A ormobile device102B can be referred to as a “tethered” device. In one embodiment,mobile device102A can communicate withmobile device102B via a wireless peer-to-peer connection120. The wireless peer-to-peer connection120 can be used to synchronize data between the devices.
Mobile device102A ormobile device102B can communicate with one or more services, such as atelephony service130, amessaging service140, amedia service150, and astorage service160 over the one or more wired and/orwireless networks110. For example, thetelephony service130 can enable telephonic communication betweenmobile device102A andmobile device102B, or between a mobile device and a wired telephonic device. Thetelephony service130 can route voice over IP (VoIP) calls over thewide area network114 or can access a cellular voice network (e.g., wireless network112). Themessaging service140 can, for example, provide e-mail and/or other messaging services. Themedia service150 can, for example, provide access to media files, such as song files, audio books, movie files, video clips, and other media data. Astorage service160 can provide network storage capabilities tomobile device102A andmobile device102B to store documents and media files. Other services can also be provided, including a software update service to update operating system software or client software on the mobile devices. In one embodiment, themessaging service140,media service150, andstorage service160 can each be associated with a cloud service provider.
FIG.2 is a diagram illustrating asystem200 for securely storing data items for synchronization and exchange, according to an embodiment. Thesystem200 includes afirst device202, asecond device204, athird device206, and aremote storage location208. Thefirst device202,second device204,third device206, andremote storage location208 are communicatively coupled together using one ormore networks210. The one ormore networks210 can include both wired and wireless networks. Thenetwork210 can be, for example, part of a local area network, wide area network, or the Internet.
Thefirst device202, thesecond device204, and thethird device206 can include, for example, desktop or laptop computing devices, mobile devices, tablet devices, personal data assistants, wearable devices, television or television set top boxes, smart speaker devices, or other computing devices. In particular, each of thefirst device202 and thesecond device204 can be associated with a first user oruser account212. Similarly, thethird device206, and one or more other devices not shown can be associated with a second user oruser account214. Theremote storage location208 can additionally be coupled to many other devices, not shown, that are associated with one or more different users or different user accounts.
In one embodiment the devices can be associated with the respective users or user accounts by forming an association between a unique or quasi-unique device key or device identifier for each device with a unique or quasi-unique account key or account identifier for each account. For example, a key or device identifier for thefirst device202 andsecond device204 can be associated with a key or account identifier for user oruser account212. A key or device identifier for thethird device206 can be associated with a key or user account identifier for user oruser account214. Such association can be used to enable authenticated access to account-based storage on theremote storage location208. Unique keys or identifiers may be guaranteed to be unique by the use of a central account authority, while a quasi-unique key or identifier may be, for example, a universally unique identifier (UUID) or a globally unique identifier (QUID) that is mathematically likely to be unique.
Theremote storage location208 can be a single storage location or multiple storage locations. For example, a server, a network addressed storage location, a collection of computing devices, or as part of a cloud storage system presenting virtualized network storage. Theremote storage location208 includes separate logical containers for storing data from different users/user accounts and application combinations. In some examples, a logical container could be a directory in a file system, a data structure, a database, or another kind of data organizational unit. For example, the first user oruser account212 can havecontainers216 on theremote storage location208, one for each individual application associated with the user or user account. Similarly, the second user oruser account214 can havecontainers218 for respective applications. Application data items received from individual devices (e.g., the first device202) are stored in respective containers for that application. Depending on the intended usage, somecontainers216,218 can be encrypted using encryption keys that that are held only by the user or user accounts212,214, while other containers can be encrypted using keys that are held by the provider of theremote storage location208. Theremote storage location208 can include a storage manager that can create and manage containers as well as generate notifications for devices.
Thefirst device202 includes one ormore applications220, adata synchronization manager222, and anaccess manager224. The one ormore applications220 can include various types of applications such as productivity applications, system applications, games, etc. Each application can be associated with a unique key or other identifier that can be used to identify the application and to identify particular access permissions of that application. In some implementations, one ormore applications220 are sandboxed such that each application is isolated from each other application.
Thedata synchronization manager222 manages sending data items to theremote storage location208 and receiving information (e.g., data items or notifications) from theremote storage location208. Theaccess manager224 presents available data items to particular applications of theapplications220 in response to a query from the respective applications. Theaccess manager224 applies one or more access policies to determine what data items will be visible to a particular application of theapplications220. In some embodiments thedata synchronization manager222 and theaccess manager224 can reside in the form of logic instructions in the memory that are executable on one or more of the processors of the electronic devices. In one embodiment thedata synchronization manager222 andaccess manager236 can also be implemented as logic executable on an embedded microcontroller within thefirst device202.
Thesecond device204 similarly includes one ormore applications226, asynchronization manager228, and anaccess manager230. Theapplications220 andapplication226 can include one or more of the same applications. Thethird device206 similarly includes one ormore applications232, asynchronization manager234, and anaccess manager236. The illustrated elements of thesecond device204 andthird device206 can function in a manner similar to the elements described with respect to thefirst device202.
Access to the network services and storage mechanism illustrated inFIG.1 andFIG.2 can be gated by account credentials of an online or device account associated with the services and storage servers. A user can recover access to such accounts and associated data using accessory assisted recovery techniques described below.
FIG.3A-3B illustrate anaccessory device310 and aprimary device320, according to embodiments.FIG.3A illustrates anaccessory device310 that can be used to assist account recovery.FIG.3B illustrates aprimary device320 that can be used to recover a user account and keys, including one or more keys not available to the account provider. Theaccessory device310 can be any wired or wireless accessory or secondary device described herein, such as wireless headphones, a smart power delivery device, an storage accessory, such as a detachable storage device, a Bluetooth beacon, a near-field communication (NFC) tag, a media player, a secondary smartphone or tablet device, or any other accessory device having a secure processor or, at the least, a public key accelerator, cryptographic engine, and/or a storage device having an onboard encryption or key accelerator. Theprimary device320 can be, for example a smart phone device or smart computing device having a secure processor and secured or encrypted storage.
As shown inFIG.3A, in one embodiment anaccessory device310 includes aprocessor311,memory312, a publickey accelerator313, an I/O interface314,firmware315, one ormore hardware keys316, astorage controller317, andnon-volatile storage318. In various embodiments, other components that are not shown may also be included. The components of theaccessory device310 can be communicatively coupled via a bus or interconnect fabric319. The bandwidth and throughput of the bus or interconnect fabric319 can vary based on the complexity of theaccessory device310.
Theprocessor311 can be one of a variety of processors, from a low power processor for low power accessory devices, to general-purpose application processors, where the accessory device is a full-featured computing device. In various embodiments, theprocessor311 can support one or more of a variety of instruction set architectures. In one embodiment, the processor can be a microcontroller. Thememory312 can be random-access memory that stores instructions for execution by the processor.
The publickey accelerator313 can be an application specific integrated circuit that is configured to perform public key acceleration operations described herein. In one embodiment the publickey accelerator313 has an associated chip identifier and attestation key that is registered with a manufacturer of theaccessory device310. In one embodiment, the publickey accelerator313 includes hardware logic to accelerate public key operations such as Diffie-Hellman operations, including elliptic-curve Diffie-Hellman operations. In some embodiments, the publickey accelerator313 can be replaced with a secure processor that includes more advanced cryptographic acceleration functionality. The I/O interface314 can be or include a wired and/or a wireless interface. For example, the I/O interface314 can include or couple with a universal serial bus (USB) controller and one or more USB connectors. The I/O interface314 can also include or couple with one or more network interfaces, which can include one or more wired (e.g., Ethernet) or wireless (e.g., Bluetooth, Wi-Fi) interfaces.
In one embodiment theaccessory device310 includesfirmware315, which includes a store of instructions that are executed by theprocessor311. In one embodiment thefirmware315 is updatable. Thefirmware315 can be used to control low level functionality of theaccessory device310 and, in one embodiment, enable some high-level operations of theaccessory device310.
Theaccessory device310 can additionally include one ormore hardware keys316, which may be stored in immutable memory that is separate from thenon-volatile storage318 of theaccessory device310. For example, in one embodiment thehardware keys316 may be stored in a programmable read only memory (PROM), although other types of memory may be used. In one embodiment, one or more of thehardware keys316 may be stored innon-volatile storage318 and encrypted by a cryptographic engine within thestorage controller317 or within a secure processor within the accessory device. One or more of thehardware keys316 can be used to verify the authenticity or to enable attestation of theaccessory device310. In one embodiment an attestation server is provided by the vendor of the accessory device to enable firmware of software on theaccessory device310 andprimary device320 to determine that theaccessory device310 is a genuine accessory device that is provided by the purported vendor of the accessory device.
As shown inFIG.3B, theprimary device320 can include components that are similar to those of theaccessory device310, although the components of theprimary device320 may be higher power and/or higher performance components. Theprimary device320 can include one ormore processors321,memory322, asecure processor323, an I/O interface324, anetwork interface325, one ormore hardware keys326, astorage controller327, andnon-volatile storage328. The components of theaccessory device310 can be communicatively coupled via a bus or interconnect fabric329, which may be of significantly higher bandwidth and throughput than the bus or interconnect fabric319 of theaccessory device310.
In one embodiment the one ormore processors321 of theprimary device320 may be multi-core processors, or processors having a heterogenous micro-architecture or instruction set architecture. For example, theprocessors321 can include one or more high-performance cores that operate in conjunction with one or more high-efficiency cores. Additionally, the one ormore processors321 can be graphics processors, sensor processors, neural network processors, or other types of processors that can be used to perform or accelerate operations on the primary device. Thememory322 can store instructions that are executed by the one ormore processors321. The memory can be random access memory (RAM) having one of a variety of memory designs.
Thesecure processor323 can be one of a variety of different types of secure processors that provide an execution environment that is separate from the execution environment of the one ormore processors321 that are used to execute general-purpose application instructions on theprimary device320. For example, in one embodiment thesecure processor323 is a secure enclave processor (SEP), although other types of secure processors and/or secure or trusted processors or execution environments may be used.
Theprimary device320 can have a separate I/O interface324 andnetwork interface325, although additional network interfaces may be connected with the I/O interface324. The I/O interface324 can be a wired interface, such as a USB interface having one or more USB connectors. The network interface can include network processors and physical layer interfaces to enable the primary device to communicate over one or more wired or wireless networks, such as Ethernet, Wi-Fi, Bluetooth, NFC, etc.). Theprimary device320 and theaccessory device310 can communicate and exchange data using corresponding I/O and/or network interfaces.
In one embodiment, theprimary device320 can include one ormore hardware keys326, which may be stored in immutable memory that is separate from thenon-volatile storage328 of theaccessory device310. For example, in one embodiment thehardware keys326 may be stored in PROM. In one embodiment, one or more of thehardware keys326 may be stored innon-volatile storage328 and encrypted by a cryptographic engine within thesecure processor323 and/orstorage controller327. In one embodiment, one or more of thehardware keys326 can be used to verify or attest to the validity and authenticity of theaccessory device310 to determine that theaccessory device310 is a genuine accessory device that is provided by the purported vendor of the accessory device.
FIG.4 illustrates a method of enabling accessory assisted account recovery setup, according to an embodiment. In one embodiment, an accessory device can be configured to be uniquely capable of decrypting one or more portions of a split recovery key. One or more encrypted portions of the recovery key can be held in escrow for the user within an online or cloud storage container to which a cloud service provider has access. In one embodiment the method ofFIG.4 can be jointly implemented by aprimary device320 and anaccessory device310 shown inFIG.3A-3B.
In one embodiment the primary device can generate a recovery key on a primary device for use to recover credentials for a user account associated with the primary device (block402). Alternatively, the primary device can receive a recovery key RK that was generated by another device. In one embodiment the recovery key can be generated by a server associated with an online service for which the user account is associated.
The primary device can then split the generated or received recovery key RK into multiple portions (block404). In one embodiment the primary device can perform a key split on RK to split RK into two secrets, RK1 and RK2, such that RK=F (RK1, RK2). Function F may be a logical operation, for example, RK=RK1⊕ RK2 is used in one embodiment. In other embodiments, function F is a more complex function or cryptographic operation. Knowledge of either RK1 or RK2 alone does not allow a user or attacker to recover RK. Instead, both RK1 and RK2 are provided to function F to generate a correct RK. While two key portions will be described, embodiments are not limited to any specific number of key portions.
Accessory assisted account recovery setup can then continue at an accessory device, with the accessory device generating a hardware key pair. The accessory device can generate an encryption seed on an accessory device based on randomized data, where the encryption seed can be entangled with a hardware key of the accessory device to generate a key pair (block406). To generate the encryption seed, firmware on the accessory device can use a random number generator on the accessory device to generate a random secret (RS). The random secret RS can be combined with an optional randomized recovery value (RR), which can be provided by the primary device, to compute an ECseed, where ECseed=KDF (RR, RS) and KDF is a key derivation function. The ECseedcan be cryptographically entangled with a private device key that is unique to the accessory device, such as a private hardware key for the device, to produce a key pair {dRK, PRK}.
Public key PRKcan be signed by the device attestation key. The device attestation key is a device specific key that is associated with a chip ID of the accessory device and/or the public key accelerator on the accessory device. Tying in the attested key of the device provides a cryptographic mechanism to secure the recovery key system against attacks via unauthorized or counterfeit devices. Attestation for a device can be enabled using an attestation key pair for the device that is associated with and/or tied to a chip identifier for the accessory device during assembly or factory provisioning. A private hardware key for the device can be stored in fused memory on the device, such as a PROM. The public attestation key can be stored to an attestation server for use during attestation. The public attestation key may also be stored on the accessory device.
In one embodiment, during initial setup, ECseedis generated and stored in non-volatile memory of the accessory device (block408). The key pair {dRK, PRK} may be generated dynamically when needed, with public key PRKbeing signed by the device attestation key before being transmitted off of the accessory device. When the key pair {dRK, PRK} is generated dynamically when needed, key revocation at the accessory device can be performed by erasing the ECseed.
The accessory device can generate a key pair based on the ECseedand transfer public key PRKof the key pair to primary device (block410). When public key PRKis signed, the primary device can validate the signature of PRKto verify the authenticity of the accessory device. In one embodiment, the primary device can communicate with an attestation server to confirm the authenticity of PRKto confirm that the accessory device is genuine.
The primary device can then encrypt one or more of multiple key portions using key material derived from at least the public key (e.g., PRK) received from the accessory device (block412). In one embodiment, the primary device can apply one or more of multiple possible encryption schemes to encrypt recovery key RK1 using PRKto generate CRK1. Although other encryption schemes may be applied, in some embodiments an elliptic curve integrated encryption scheme (ECIES) is used. In one embodiment, encryption proceeds as follows. The primary device can generate an ephemeral key pair {e, Pe}. The primary device can the compute Z=ECDH(e, PRK), where ECDH is an elliptic curve Diffie-Hellman key agreement protocol. The primary device also computes K=KDF(Z, Pe). The cryptographic value K and recovery key portion RK1 can be provided to an authenticated encryption protocol to generate cryptographic values Ce, Te, such that Ce, Te=AE(K, RK). Ciphertext CRK1can then be generated, such that CRK1={Pe, Ce,Te}.
In one embodiment the primary device can then provide one or more encrypted key portions to a server associated with the user account to be held for use in recovering the user account (block414). For example, the primary device can store ciphertext CRK1and recovery key portion RK2 in a data storage container, which can be an encrypted cloud-based storage container that may be accessed by the cloud storage provider. The storage container can be synchronized with a server of the cloud storage provider. The cloud storage provider can then store ciphertext CRK1and recovery key portion RK2 in escrow for the user until and unless account recovery is required.
FIG.5 illustrates a method of performing accessory assisted account recovery, according to an embodiment. In one embodiment, the accessory device, having previously been configured with an ECseed, can be used to decrypt one or more portions of a split recovery key that have been held in escrow for the user within an online or cloud storage container to which a cloud service provider has access. In one embodiment the method ofFIG.5 can be jointly implemented by aprimary device320 and anaccessory device310 shown inFIG.3A-3B.
In one embodiment, the method ofFIG.5 can include for a primary device to receive at least one portion of the recovery key from a server associated with a user account to be recovered (block502). The primary device can also receive at least one encrypted portion of the recovery key from the server associated with a user account to be recovered (block504). For example, primary device can receive RK2 and CRK1from a server that was holding those keys in escrow for the user. In one embodiment the primary device can receive the keys via a cloud storage container that is synchronized with the server.
Before the primary device receives either of RK2 or CRK1from the server, the user may be requested or required to perform some action or operation on or with the accessory device to demonstrate possession of the accessory device and an intent to perform an account recovery. In one embodiment, the action can be tapping the accessory device to the primary device to initiate a data transfer via near-field communication (NFC). Other actions or operations can also be performed in other embodiments, such as a physical button press or a selection of an element on a graphical user interface presented on the accessory device. In one embodiment, during the actions or operation performed on or with the accessory device, a nonce can be selected by the accessory device and transmitted to the cloud service provider. The cloud service provider can then sign one or more of CRK1and RK2 using a key or certificate associated with the cloud service provider and/or the accessory device selected nonce before providing CRK1and RK2.
The primary device can transfer the at least one encrypted portion of the recovery key to the accessory device (block506). For example, in one embodiment the primary device can receive CRK1and RK2 and then transmit CRK1to the accessory device. In one embodiment, the cloud service provider can transmit CRK1directly to the wireless accessory when the wireless accessory can establish a data connection to the cloud service provider. The accessory device and the primary device can communicate via a data channel. The data channel can be a wired or wireless communication channel. For example, the accessory device can be connected to the primary device via a USB connector. The accessory device can additionally or alternatively communicate with the primary device via one or more wireless communication protocols (e.g., Bluetooth, Wi-Fi, NFC).
The accessory device can then validate the authenticity of the at least one encrypted portion of the recovery key (block508). For example, the accessory device, having received CRK1can validate a signature applied to CRK1to determine that CRK1was legitimately provided by the cloud service provider and/or is legitimately associated with the accessory device. If the signature is valid, the accessory device can proceed to decrypt CRK1. The decryption process can include for the accessory device to load the encryption seed from non-volatile storage on the accessory device (block510). The accessory device can load the ECseedstored on the accessory device into the public key accelerator of the accessory device. The public key accelerator can then compute Z=ECDH(dRK, Pe). Firmware on the accessory device can compute K=KDF(Z, Pe).
The accessory device can then decrypt the at least one encrypted portion of the recovery key using key material generated based on the encryption seed and a hardware identifier of the accessory device (block512). For example, in one embodiment, the accessory device can perform an authenticated decryption operation to recover RK1, such that RK1=AE (K, Ce,Te).
The accessory device can then transfer one or more decrypted portions of the recovery key to the primary device (block514). For example, the recovery key portion RK1 can be provided to the primary device. The primary device can then recover the recovery key using the multiple key portions, the multiple key portions including one or more decrypted portions received from the accessory device (block516). For example, the primary device can recover the account recovery key RK, where RK=F (RK1, RK2). The primary device can then use recovery key RK to reset or recover account credentials associated with the user account. The primary device can then send confirmation of successful account recovery to the accessory device. The accessory device, upon receiving confirmation of successful account recovery, can erase the locally stored ECseed. In one embodiment, to enable subsequent account recovery, a new RK can be generated and split, as the old keys cannot be reused. If revocation is to be performed prior to use of a generated and split RK, the accessory device can erase the locally stored ECseedand the cloud service provider can erase one of more of the stored CRK1or RK2 from the cloud storage container that is held by the cloud service provider.
FIG.6 illustrates a method of revoking a recovery key used for accessory assisted recovery, according to an embodiment. Revocation of a recovery key can occur after a successful recovery or upon a demonstration of user intent to discard existing recovery data.
In one embodiment, a primary device can receive a message to revoke a recovery key (block602). The primary device can send a revocation message to accessory device (block604). The accessory device can then erase the encryption seed (e.g., ECseed) stored on the accessory device (block606). Additionally, the primary device can request to erase one or more of an encrypted portion and/or an unencrypted portion of the recovery key stored on a server associated with the user account (block608). For example, erasing either CRK1or RK2 from the cloud storage container that is held by the cloud service provider can prevent the recovery of the user account using the existing set of credentials. The user may then re-create new recovery keys to re-enable accessory assistant recovery.
FIG.7 illustrates acomputing system700 including a secure processor, according to an embodiment. The illustrated secure processor is a secure enclave processor, although other types of secure processors may be used by embodiments described herein. Thecomputing system700 can enable a device to perform secure accelerated cryptographic operations and provide secure storage for private keys. Thecomputing system700 includes anapplication processor721 that is communicably coupled with asecure processor703 via asecure interface719. Thecomputing system700 can be a portion of any of the client devices described herein. Additionally, thecomputing system700 can be included into one or more of the servers described herein. In one embodiment, thesecure processor703 can be implemented as a system on chip. In another embodiment, theapplication processor721 and thesecure processor703 can be implemented on a system on chip and include one or more processors and memory controllers and other components on a single integrated circuit.
Thesecure processor703 can perform cryptographic operations as described herein, as well as other system security operations such as encrypting user files or verifying code signatures, processing user passcodes, or performing other security operations. The cryptographic operations can be performed in part by thesecure processor core715 by executing software stored asfirmware711 in thesecure processor703. Thesecure processor715 can also be coupled to asecure ROM713 which can be trusted software that can validate the software in thefirmware711 before allowing that firmware to execute by checking a code signature of the firmware and verifying that the signature code indicates that the firmware is valid and has not been corrupted before allowing the firmware to be executed by thesecure processor core715.
Thesecure processor703 can also include a cryptographic accelerator such ascryptographic accelerator707 which can perform asymmetric cryptography as well as symmetric cryptography using a hardware accelerator. Thecryptographic accelerator707 can be coupled tomemory705, which in one embodiment is non-volatile and immutable memory that can store, in a secure manner, a device identifier or a set of device identifiers and a set of one or more certificates and private keys which are not readable by the rest of the system. Thecryptographic accelerator707 has access to the private keys and other data within thememory705 and access to thememory705 is not allowed for components outside of thesecure processor703. In one embodiment, thecryptographic accelerator707 can be coupled to anaccelerator memory709 which can be a scratch pad memory used to perform the cryptographic operations that are performed by thecryptographic accelerator707. Theapplication processor721 can be coupled to one ormore buses723 which are coupled to one or more input and output (I/O)devices727, such as a touchscreen display and a Bluetooth radio, etc. Other input and output devices can be included. Theapplication processor721 is also coupled to anapplication processor ROM725, which provides software to boot up the application processor. Similarly, thesecure ROM713 provides code to boot up thesecure processor core715.
FIG.8 is a block diagram of adevice architecture800 for a mobile or embedded device, according to an embodiment. Thedevice architecture800 includes amemory interface802, aprocessing system804 including one or more data processors, image processors and/or graphics processing units, and aperipherals interface806. As used herein, the term “processor” means any type of computational element, such as but not limited to, a microprocessor, a microcontroller, a complex instruction set computing (CISC) microprocessor, a reduced instruction set (RISC) microprocessor, a very long instruction word (VLIW) microprocessor, or any other type of processor or processing circuit. The various components can be coupled by one or more communication buses or signal lines. The various components can be separate logical components or devices or can be integrated in one or more integrated circuits, such as in a system on a chip integrated circuit. Thememory interface802 can be coupled tomemory850, which can include high-speed random-access memory such as static random-access memory (SRAM) or dynamic random-access memory (DRAM) and/or non-volatile memory, such as but not limited to flash memory (e.g., NAND flash, NOR flash, etc.).
Sensors, devices, and subsystems can be coupled to the peripherals interface806 to facilitate multiple functionalities. For example, amotion sensor810, alight sensor812, and aproximity sensor814 can be coupled to the peripherals interface806 to facilitate the mobile device functionality. One or more biometric sensor(s)815 may also be present, such as a fingerprint scanner for fingerprint recognition or an image sensor for facial recognition.Other sensors816 can also be connected to theperipherals interface806, such as a positioning system (e.g., GPS receiver), a temperature sensor, or other sensing device, to facilitate related functionalities. Acamera subsystem820 and anoptical sensor822, e.g., a charged coupled device (CCD) or a complementary metal-oxide semiconductor (CMOS) optical sensor, can be utilized to facilitate camera functions, such as recording photographs and video clips.
Communication functions can be facilitated through one or morewireless communication subsystems824, which can include radio frequency receivers and transmitters and/or optical (e.g., infrared) receivers and transmitters that can be configured receive or transmit data packets and/or data streams from a remote source. The specific design and implementation of thewireless communication subsystems824 can depend on the communication network(s) over which a mobile device is intended to operate. For example, a mobile device including the illustrateddevice architecture800 can includewireless communication subsystems824 designed to operate over a GSM network, a CDMA network, an LTE network, a Wi-Fi network, a Bluetooth network, or any other wireless network. In particular, thewireless communication subsystems824 can provide a communications mechanism over which a media playback application can retrieve resources from a remote media server or scheduled events from a remote calendar or event server.
Anaudio subsystem826 can be coupled to aspeaker828 and amicrophone830 to facilitate voice-enabled functions, such as voice recognition, voice replication, digital recording, and telephony functions. In smart media devices described herein, theaudio subsystem826 can be a high-quality audio system including support for virtual surround sound.
The I/O subsystem840 can include atouch screen controller842 and/or other input controller(s)845. For computing devices including a display device, thetouch screen controller842 can be coupled to a touch sensitive display system846 (e.g., touch-screen). The touchsensitive display system846 andtouch screen controller842 can, for example, detect contact and movement and/or pressure using any of a plurality of touch and pressure sensing technologies, including but not limited to capacitive, resistive, infrared, and surface acoustic wave technologies, as well as other proximity sensor arrays or other elements for determining one or more points of contact with a touchsensitive display system846. Display output for the touchsensitive display system846 can be generated by adisplay controller843. In one embodiment, thedisplay controller843 can provide frame data to the touchsensitive display system846 at a variable frame rate.
In one embodiment, asensor controller844 is included to monitor, control, and/or processes data received from one or more of themotion sensor810,light sensor812,proximity sensor814, orother sensors816. Thesensor controller844 can include logic to interpret sensor data to determine the occurrence of one of more motion events or activities by analysis of the sensor data from the sensors.
In one embodiment, the I/O subsystem840 includes other input controller(s)845 that can be coupled to other input/control devices848, such as one or more buttons, rocker switches, thumb-wheel, infrared port, USB port, and/or a pointer device such as a stylus, or control devices such as an up/down button for volume control of thespeaker828 and/or themicrophone830.
In one embodiment, thememory850 coupled to thememory interface802 can store instructions for anoperating system852, including portable operating system interface (POSIX) compliant and non-compliant operating system or an embedded operating system. Theoperating system852 may include instructions for handling basic system services and for performing hardware dependent tasks. In some implementations, theoperating system852 can be a kernel.
Thememory850 can also storecommunication instructions854 to facilitate communicating with one or more additional devices, one or more computers and/or one or more servers, for example, to retrieve web resources from remote web servers. Thememory850 can also includeuser interface instructions856, including graphical user interface instructions to facilitate graphic user interface processing.
Additionally, thememory850 can storesensor processing instructions858 to facilitate sensor-related processing and functions;telephony instructions860 to facilitate telephone-related processes and functions; messaginginstructions862 to facilitate electronic-messaging related processes and functions;web browser instructions864 to facilitate web browsing-related processes and functions;media processing instructions866 to facilitate media processing-related processes and functions; location services instructions including GPS and/ornavigation instructions868 and Wi-Fi based location instructions to facilitate location based functionality;camera instructions870 to facilitate camera-related processes and functions; and/orother software instructions872 to facilitate other processes and functions, e.g., security processes and functions, and processes and functions related to the systems. Thememory850 may also store other software instructions such as web video instructions to facilitate web video-related processes and functions; and/or web shopping instructions to facilitate web shopping-related processes and functions. In some implementations, themedia processing instructions866 are divided into audio processing instructions and video processing instructions to facilitate audio processing-related processes and functions and video processing-related processes and functions, respectively. A mobile equipment identifier, such as an International Mobile Equipment Identity (MEI)874 or a similar hardware identifier can also be stored inmemory850.
Each of the above identified instructions and applications can correspond to a set of instructions for performing one or more functions described above. These instructions need not be implemented as separate software programs, procedures, or modules. Thememory850 can include additional instructions or fewer instructions. Furthermore, various functions may be implemented in hardware and/or in software, including in one or more signal processing and/or application specific integrated circuits.
FIG.9 is a block diagram of acomputing system900, according to an embodiment. The illustratedcomputing system900 is intended to represent a range of computing systems (either wired or wireless) including, for example, desktop computer systems, laptop computer systems, tablet computer systems, cellular telephones, personal digital assistants (PDAs) including cellular-enabled PDAs, set top boxes, entertainment systems or other consumer electronic devices, smart appliance devices, or one or more implementations of a smart media playback device. Alternative computing systems may include more, fewer and/or different components. Thecomputing system900 can be used to provide the computing device and/or a server device to which the computing device may connect.
Thecomputing system900 includes bus935 or other communication device to communicate information, and processor(s)910 coupled to bus935 that may process information. While thecomputing system900 is illustrated with a single processor, thecomputing system900 may include multiple processors and/or co-processors. Thecomputing system900 further may includememory920, which can be random-access memory (RAM) or other dynamic storage device coupled to the bus935. Thememory920 may store information and instructions that may be executed by processor(s)910. Thememory920 may also be used to store temporary variables or other intermediate information during execution of instructions by the processor(s)910.
Thecomputing system900 may also include read only memory (ROM)930 and/or anotherdata storage device940 coupled to the bus935 that may store information and instructions for the processor(s)910. Thedata storage device940 can be or include a variety of storage devices, such as a flash memory device, a magnetic disk, or an optical disc and may be coupled tocomputing system900 via the bus935 or via a remote peripheral interface.
Thecomputing system900 may also be coupled, via the bus935, to adisplay device950 to display information to a user. Thecomputing system900 can also include analphanumeric input device960, including alphanumeric and other keys, which may be coupled to bus935 to communicate information and command selections to processor(s)910. Another type of user input device includes acursor control970 device, such as a touchpad, a mouse, a trackball, or cursor direction keys to communicate direction information and command selections to processor(s)910 and to control cursor movement on thedisplay device950. Thecomputing system900 may also receive user input from a remote device that is communicatively coupled via one or more network interface(s)980.
Thecomputing system900 further may include one or more network interface(s)980 to provide access to a network, such as a local area network. The network interface(s)980 may include, for example, a wireless networkinterface having antenna985, which may represent one or more antenna(e). Thecomputing system900 can include multiple wireless network interfaces such as a combination of Bluetooth®, near field communication (NFC), and/or cellular telephony interfaces. The network interface(s)980 may also include, for example, a wired network interface to communicate with remote devices vianetwork cable987, which may be, for example, an Ethernet cable, a coaxial cable, a fiber optic cable, a serial cable, or a parallel cable.
In one embodiment, the network interface(s)980 may provide access to a local area network, for example, by conforming to IEEE 802.11 standards, and/or the wireless network interface may provide access to a personal area network, for example, by conforming to Bluetooth standards. Other wireless network interfaces and/or protocols can also be supported. In addition to, or instead of, communication via wireless LAN standards, network interface(s)980 may provide wireless communications using, for example, Time Division, Multiple Access (TDMA) protocols, Global System for Mobile Communications (GSM) protocols, Code Division, Multiple Access (CDMA) protocols, Long Term Evolution (LTE) protocols, and/or any other type of wireless communications protocol.
Thecomputing system900 can further include one ormore energy sources905 and one or moreenergy measurement systems945.Energy sources905 can include an AC/DC adapter coupled to an external power source, one or more batteries, one or more charge storage devices, a USB charger, or other energy source. Energy measurement systems include at least one voltage or amperage measuring device that can measure energy consumed by thecomputing system900 during a predetermined period of time. Additionally, one or more energy measurement systems can be included that measure, e.g., energy consumed by a display device, cooling subsystem, Wi-Fi subsystem, or other frequently used or high-energy consumption subsystem.
In some embodiments, the hash functions described herein can utilize specialized hardware circuitry (or firmware) of the system (client device or server). For example, the function can be a hardware-accelerated function. In addition, in some embodiments, the system can use a function that is part of a specialized instruction set. For example, the can use an instruction set which may be an extension to an instruction set architecture for particular a type of microprocessors. Accordingly, in an embodiment, the system can provide a hardware-accelerated mechanism for performing cryptographic operations to improve the speed of performing the functions described herein using these instruction sets.
In addition, the hardware-accelerated engines/functions are contemplated to include any implementations in hardware, firmware, or combination thereof, including various configurations which can include hardware/firmware integrated into the SoC as a separate processor, or included as special purpose CPU (or core), or integrated in a coprocessor on the circuit board, or contained on a chip of an extension circuit board, etc.
It should be noted that the term “approximately” or “substantially” may be used herein and may be interpreted as “as nearly as practicable,” “within technical limitations,” and the like. In addition, the use of the term “or” indicates an inclusive or (e.g. and/or) unless otherwise specified.
In the foregoing description, example embodiments of the disclosure have been described. It will be evident that various modifications can be made thereto without departing from the broader spirit and scope of the disclosure. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense. The specifics in the descriptions and examples provided may be used anywhere in one or more embodiments. The various features of the different embodiments or examples may be variously combined with some features included and others excluded to suit a variety of different applications. Examples may include subject matter such as a method, means for performing acts of the method, at least one machine-readable medium including instructions that, when performed by a machine cause the machine to perform acts of the method, or of an apparatus or system according to embodiments and examples described herein. Additionally, various components described herein can be a means for performing the operations or functions described herein.
Embodiments described herein enable a user to bypass the use of one-time keys or account recovery codes by providing techniques for accessory assisted account recovery. In various embodiments, accessory assisted account recovery makes use of an accessory device of a user, where the accessory device can be any device having a secure processor, cryptographic engine, public key accelerator, or is otherwise able to accelerate cryptographic operations or perform cryptographic operations in a secure execution environment.
One embodiment provides for an electronic device comprising a memory coupled with the network interface and at least one application processor coupled with the memory, the at least one processor to execute instructions stored in the memory, wherein the at least one application processor is to split an account recovery key into multiple key portions, wherein the account recovery key is to enable recovery of an account associated with the electronic device, receive an encryption key from an accessory device associated with the electronic device, encrypt a portion of the account recovery key using cryptographic material derived from the encryption key, and provide an encrypted portion of the account recovery key to a server associated with the user account.
One embodiment provides for a method comprising, at an accessory device having a processor and memory, the accessory device to facilitate recovery of a user account, receiving a first randomized value, generating a second randomized value, computing a cryptographic seed based on the first randomized value and the second randomized value, the cryptographic seed for use in generating a key pair for use in encrypting a portion of an account recovery key, and storing the cryptographic seed to storage on the accessory device.
One embodiment provides for a non-transitory machine-readable medium storing instructions to cause one or more processors on an electronic device to perform operations comprising receiving an encrypted portion of an account recovery key, wherein the encrypted portion of the account recovery key is a first portion of the account recovery key, transmitting the encrypted portion of the account recovery key to an accessory device associated with the electronic device, receiving the first portion of the account recovery key from the accessory device, the first portion of the account recovery key having been decrypted from the encrypted portion of the account recovery key, and generating the account recovery key using at least the first portion of the account recovery key.
Other features of the present embodiments will be apparent from the accompanying drawings and from the detailed description above. Accordingly, the true scope of the embodiments will become apparent to the skilled practitioner upon a study of the drawings, specification, and following claims.