IP Library Granted Patent US 12701017
Granted Patent B2
US 12701017 · App. 18/417,228 · Granted Aug 4, 2026

Authentication with cloud-based secure enclave

Inventors: Mohammed Ruhul Islam (Taverny, FR); Ludovic Widmer (Clichy, FR); Guillaume Maron (Paris, FR); Cyril Leclerc (Paris, FR); Corentin Mors (Lyons, FR); Frédéric Rivain (Brooklyn, NY)
Assignee: Dashlane SAS
H04L9/3271H04L9/3073
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12701017
App. No.
18/417,228
Granted
Aug 4, 2026
Kind
B2
Abstract

Examples of the present disclosure provide an authenticator system that protects secret authentication keys associated with relying parties to which a user is authenticating. Present systems and methods allow cross-platform and cross-device WebAuthn usage. Example systems employ a server-based secure enclave and secure tunnel communication between the browser application or mobile application and the secure enclave server. A user of a service provider of the authenticator system owns the secret authentication key, which is stored in an encrypted vault protected by a user secret and hosted by the service provider. Decrypting the secret key may be based on a key arrangement, where keys from the user, the service provider, and the secure enclave are used to successfully decrypt the secret authentication key within the secure enclave.

Claims (99)

1 . A cloud-based secure enclave of an authentication system of a service provider, comprising:

at least one processing unit; and

memory storing instructions that, when executed by the at least one processing unit, cause the cloud-based secure enclave to perform operations comprising:

encrypting an authentication secret key using a user relying party (RP) key;

storing the encrypted authentication secret key;

receiving, from a user computing device, a first authentication challenge and the user RP key;

obtaining the encrypted authentication secret key;

decrypting the encrypted authentication secret key using the user RP key;

signing the first authentication challenge with the authentication secret key; and

providing the signed first authentication challenge to the user computing device;

wherein the encrypting the authentication secret key and the decrypting the authentication secret key further comprise using a combination of the RP key, a service key from the service provider, and an enclave local key from a key management system of a provider of the secure enclave.

2 . The cloud-based secure enclave of claim 1 , wherein prior to encrypting the authentication secret key, the operations further comprise:

receiving, from the user computing device, a second authentication challenge and the user (RP) key;

generating an authentication key pair including the authentication secret key and an authentication public key; and

providing the second authentication challenge and the authentication public key to the user computing device.

3 . The cloud-based secure enclave of claim 2 , wherein prior to receiving the second authentication challenge and the user RP key, the operations further comprise enrolling the user computing device as a trusted device of a user of the service provider using a device-enclave key associated with the user computing device and a user-enclave key associated with the user.

4 . The cloud-based secure enclave of claim 2 , wherein the user computing device is a first user computing device and the operations further comprise:

receiving, from a second user computing device, a third authentication challenge and the user RP key;

obtaining the encrypted authentication secret key;

decrypting the encrypted authentication secret key using the user RP key;

signing the third authentication challenge with the authentication secret key; and

providing the signed third authentication challenge to the second user computing device.

5 . The cloud-based secure enclave of claim 4 , wherein prior to receiving the third authentication challenge and the user RP key from the second user computing device, the operations further comprise enrolling the second user computing device as a trusted device of a user of the service provider using a user-enclave key associated with the user and a device-enclave key associated with the second user computing device signed by a device-enclave key associated with the first user computing device.

6 . The cloud-based secure enclave of claim 5 , wherein the user RP key is stored in a user vault accessible to the first user computing device and the second user computing device and encrypted with a vault secret known by the user.

7 . The cloud-based secure enclave of claim 1 , wherein the operations further comprise receiving the service key from the service provider during bootstrapping of the secure enclave.

8 . The cloud-based secure enclave of claim 1 , wherein the operations further comprise generating an audit notification in response to a triggering event comprising at least one of:

a new device registration with the secure enclave;

authentication key generation;

authentication key signing;

an authentication failure; or

a modification on a distribution list for the notification.

9 . A method, comprising:

at a first time, establishing, by a cloud-based secure enclave of an authentication service of a service provider, a first secure communication channel with a first user computing device;

sending to the first user computing device a first authentication challenge;

receiving, from the first user computing device, the first authentication challenge signed by a first secret device key of a first device key pair;

verifying the first authentication challenge using a first public device key of the first device key pair;

upon successful verification of the first authentication challenge, authenticating the first user computing device as a trusted device of a user of the service provider;

storing the first public device key binding to an identifier of the first user computing device and an identifier of the user;

at a second time, establishing, by the cloud-based secure enclave, a second secure communication channel with a second user computing device;

sending the second user computing device a second authentication challenge;

receiving, from the second user computing device, the second authentication challenge signed by a second secret device key of a second device key pair;

verifying the second authentication challenge using a second public device key of the second device key pair and a stored key bound to the identifier of the user;

upon successful verification of the second authentication challenge, authenticating the second user computing device as another trusted device of the user; and

storing the second public device key bound to an identifier of the second user computing device and the identifier of the user.

10 . The method of claim 9 , wherein:

the stored key bound to the identifier of the user is a public user-enclave key of a user key pair;

the first authentication challenge received from the first user computing device is additionally signed by the first user computing device using a secret user-enclave key of the user key pair; and

the second authentication challenge received from the second user computing device is additionally signed by the second user computing device using the secret user-enclave key.

11 . The method of claim 10 , further comprising:

at the first time:

receiving the public user-enclave key of the user key pair;

verifying the first authentication challenge using the public user-enclave key in addition to the first public device key; and

storing the public user-enclave key bound to the identifier of the user; and

at the second time:

obtaining, from storage, the public user-enclave key; and

verifying the second authentication challenge using the public user-enclave key in addition to the second public device key.

12 . The method of claim 9 , wherein:

the stored key bound to the identifier of the user is the first public device key; and

verifying the second authentication challenge comprises:

after verifying the second authentication challenge using the second public device key and upon verification of the second authentication challenge, sending, to the first user computing device, the second public device key and a request to sign the second public device key with the first secret device key;

receiving, from the first user computing device, the second public device key signed by the first secret device key;

obtaining, from storage, the first public device key; and

verifying the second public device key using the first public device key.

13 . The method of claim 9 further comprising, after authenticating the first user computing device:

receiving, from the first user computing device, a user relying party (RP) key associated with an RP and a first RP challenge from the RP;

generating an authentication key pair including a secret authentication key and a public authentication key;

encrypting the secret authentication key using a combination of keys including the user RP key;

storing the encrypted secret authentication key; and

providing, to the first user computing device, the first RP challenge and the public authentication key.

14 . The method of claim 13 , further comprising, after authenticating the second user computing device:

receiving, from the second user computing device, the user RP key and a second RP challenge from the RP;

obtaining, from storage, the encrypted secret authentication key;

decrypting the secret authentication key using a combination of keys including the user RP key;

signing the second RP challenge with the authentication secret key; and

providing, to the second user computing device, the signed second RP challenge.

15 . The method of claim 14 , further comprising:

receiving, during deployment of the secure enclave and from a key management system of a provider of the secure enclave, an enclave local key; and

using the enclave local key in the combination of keys.

16 . The method of claim 14 , further comprising:

receiving, during deployment of the secure enclave and from the service provider, a service key; and

using the service key in the combination of keys.

17 . A system, comprising:

at least one processing unit; and

memory storing instructions that, when executed by the at least one processing unit, cause the system to:

receive, by a cloud-based secure enclave of an authentication service of a service provider and from a first user computing device, a first authentication challenge and a user relying party (RP) key;

generate an authentication key pair including an authentication secret key and an authentication public key;

encrypt the authentication secret key using a key combination including the user RP key;

cause the encrypted authentication secret key to be stored in a data store;

provide the first authentication challenge and the authentication public key to the first user computing device;

receive, from a second user computing device, a second authentication challenge and the user RP key;

obtain the encrypted authentication secret key from the data store;

decrypt the encrypted authentication secret key using the key combination including the user RP key;

sign the second authentication challenge with the authentication secret key; and

provide the signed second authentication challenge to the second user computing device.

18 . The system of claim 17 , wherein prior to receiving the user RP key, the instructions cause the system to enroll the first user computing device and the second user computing device with the authentication service using an enrollment process comprising one of:

enrolling the first user computing device using a first device-enclave key linked to the first user computing device and a user-enclave key linked to a user; and

enrolling the second user computing device using a second device-enclave key linked to the second user computing device and the user-enclave key, wherein the user is an authenticated user on the first user computing device and the second user computing device; or

enrolling the first user computing device using the first device-enclave key; and

enrolling the second user computing device using the second device-enclave key signed by the first user computing device using the first device-enclave key.