IP Library Granted Patent US 12,450,385
Granted Patent B2
US 12,450,385 · App. 18/124,326 · Granted Oct 21, 2025

Integration of identity access management infrastructure with zero-knowledge services

Inventors: Ludovic Widmer (Paris, FR); Corentin Mors (Lyons, FR); Cyril Leclerc (Paris, FR); Tony Oreglia (Lisbon, PT); Guillaume Maron (Paris, FR); Frédéric Rivain (Brooklyn, NY)
Assignee: Dashlane SAS
G06F21/6245H04L9/0894H04L9/3213H04L9/3218
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 12,450,385
App. No.
18/124,326
Granted
Oct 21, 2025
Kind
B2
Abstract

A system and method for protecting user data using a key escrow service. The key escrow service may be hosted by a service provider to integrate Identity Access Management (IAM) solutions, such as Single-Sign-On (SSO) and/or System for Cross-domain Identity Management (SCIM), with a zero-knowledge service, such as a password manager or other service handling sensitive user data. In examples, secure enclave technology may be used to allow the service provider to host and manage the key escrow service without being able to access any cryptographic key used and/or stored within a secure enclave. Accordingly, in some aspects, the service provider may have the ability to store users' secret keys for SSO and sharing keys for SCIM in a trusted, secure storage location without breaking the zero-knowledge principles of the infrastructure.

Claims (102)

1. A method for protecting user data, comprising:

establishing a secure enclave on a parent server;

receiving, at the secure enclave, an enclave local key;

storing the enclave local key;

establishing a channel between a client application and the secure enclave;

receiving, at the secure enclave and from the client application, proof of authentication for a user;

verifying, by the secure enclave, the proof of authentication;

decrypting, by the secure enclave, a domain master key for a domain of the user using the enclave local key;

determining, by the secure enclave, a user's secret data based on the domain master key; and

providing to the client application the user's secret data via the channel.

2. The method of claim 1 , wherein determining, by the secure enclave, the user's secret data comprises:

retrieving the user's secret data from storage, wherein the user's secret data is encrypted; and

decrypting the user's secret data based on the domain master key.

3. The method of claim 1 , wherein determining, by the secure enclave, the user's secret data comprises:

generating the user's secret data;

encrypting the user's secret data based on the domain master key; and

storing the encrypted user's secret data.

4. The method of claim 1 , wherein receiving, at the secure enclave, the enclave local key comprises:

requesting, by the secure enclave, the enclave local key from a key management service;

establishing a secure channel between the key management service and the secure enclave;

receiving the enclave local key from the key management service via the secure channel; and

receiving an encrypted enclave local key, wherein the encrypted enclave local key is encrypted based on an enclave master key stored by the key management service.

5. The method of claim 4 , wherein storing the enclave local key comprises:

requesting, by the secure enclave, storage of the encrypted enclave local key on a data store external the secure enclave.

6. The method of claim 1 , wherein verifying, by the secure enclave, the proof of authentication comprises:

receiving, in the proof of authentication, an Identity Provider (IdP) certificate and domain associated with an Identity Access Management (IAM) system;

accessing a stored IdP certificate and domain associated with the IAM system; and

verifying the proof authentication using the stored IdP certificate and domain associated with the IAM system.

7. The method of claim 6 , further comprising verifying a signature of the signed IdP certificate and domain based on the enclave local key.

8. The method of claim 1 , further comprising:

receiving, at the secure enclave, a set of System for Cross-domain Identity Management (SCIM) sharing keys including a bearer token and a signature key;

storing the bearer token and signature key;

establishing a secure channel between a client application and the secure enclave;

receiving, at the secure enclave and from the IAM system, a request to sign a user or group event;

verifying, by the secure enclave, a token included in the request using the bearer token; and

signing the user or group event using the signature key.

9. A system for protecting user data, wherein the system includes:

at least one processor; and

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

establish a secure enclave on a parent server;

receive, at the secure enclave, an enclave local key;

store the enclave local key;

establish a channel between a client application and the secure enclave;

receive, at the secure enclave and from the client application, proof of authentication for a user;

verify, by the secure enclave, the proof of authentication;

decrypt, by the secure enclave, a domain master key for a domain of the user using the enclave local key;

determine, by the secure enclave, a user's secret data based on the domain master key; and

provide to the client application the user's secret data via the channel.

10. The system of claim 9 , wherein in determining, by the secure enclave, the user's secret data, the instructions cause the system to:

retrieve the user's secret data from storage, wherein the user's secret data is encrypted; and

decrypt the user's secret data based on the domain master key.

11. The system of claim 9 , wherein in determining, by the secure enclave, the user's secret data, the instructions cause the system to:

generate the user's secret data;

encrypt the user's secret data based on the domain master key; and

store the encrypted user's secret data.

12. The system of claim 9 , wherein in receiving, at the secure enclave, the enclave local key, the instructions cause the system to:

request, by the secure enclave, the enclave local key from a key management service;

establish a secure channel between the key management service and the secure enclave;

receive the enclave local key from the key management service via the secure channel; and

receive an encrypted enclave local key, wherein the encrypted enclave local key is encrypted based on an enclave master key stored by the key management service.

13. The system of claim 12 , wherein in storing the enclave local key, the instructions cause the system to:

request, by the secure enclave, storage of the encrypted enclave local key on a data store external the secure enclave.

14. The system of claim 9 , wherein in verifying, by the secure enclave, the proof of authentication, the instructions cause the system to:

receive, in the proof of authentication, an Identity Provider (IdP) certificate and domain associated with an Identity Access Management (IAM) system;

access a stored IdP certificate and domain associated with the IAM system; and

verify the proof authentication using the stored IdP certificate and domain associated with the IAM system.

15. The system of claim 14 , wherein the instructions further cause the system to verify a signature of the signed IdP certificate and domain based on the enclave local key.

16. The system of claim 9 , wherein the instructions further cause the system to:

receive, at the secure enclave, a set of System for Cross-domain Identity Management (SCIM) sharing keys including a bearer token and a signature key;

store the bearer token and signature key;

establish a secure channel between a client application and the secure enclave;

receive, at the secure enclave and from the IAM system, a request to sign a user or group event;

verify, by the secure enclave, a token included in the request using the bearer token; and

sign the user or group event using the signature key.

17. A non-transitory computer-storage medium including instructions that, when executed by a computing device, cause the computing device to:

establish a secure enclave on a parent server;

receive, at the secure enclave, an enclave local key;

store the enclave local key;

establish a channel between a client application and the secure enclave;

receive, at the secure enclave and from the client application, proof of authentication for a user;

verify, by the secure enclave, the proof of authentication;

decrypt, by the secure enclave, a domain master key for a domain of the user using the enclave local key;

determine, by the secure enclave, a user's secret data based on the domain master key; and

provide to the client application the user's secret data via the channel.

18. The non-transitory computer-storage medium of claim 17 , wherein in determining, by the secure enclave, the user's secret data, the instructions cause the computing device to:

retrieve the user's secret data from storage, wherein the user's secret data is encrypted; and

decrypt the user's secret data based on the domain master key; or

generate the user's secret data;

encrypt the user's secret data based on the domain master key; and

store the encrypted user's secret data.

19. The non-transitory computer-storage medium of claim 17 , wherein in receiving, at the secure enclave, the enclave local key, the instructions cause the computing device to:

request, by the secure enclave, the enclave local key from a key management service;

establish a secure channel between the key management service and the secure enclave;

receive the enclave local key from the key management service via the secure channel; and

receive an encrypted enclave local key, wherein the encrypted enclave local key is encrypted based on an enclave master key stored by the key management service.

20. The non-transitory computer-storage medium of claim 17 , wherein the instructions further cause the computing device to:

receive, at the secure enclave, a set of System for Cross-domain Identity Management (SCIM) sharing keys including a bearer token and a signature key;

store the bearer token and signature key;

establish a secure channel between a client application and the secure enclave;

receive, at the secure enclave and from the IAM system, a request to sign a user or group event;

verify, by the secure enclave, a token included in the request using the bearer token; and

sign the user or group event using the signature key.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 21, 2023
From: WIDMER, LUDOVIC; MORS, CORENTIN; LECLERC, CYRIL; OREGLIA, TONY; MARON, GUILLAUME; RIVAIN, FREDERIC
To: DASHLANE SAS
Reel/Frame 063049/0498 →
Continuity (2)
Provisional Application 63358713 · Jul 6, 2022
Related Publication 20240012933A1 · Jan 11, 2024
References Cited (50)
US 5434918A · Kung et al. · 1995 [cited by applicant]
US 5495533A · Linehan et al. · 1996 [cited by applicant]
US 5560008A · Johnson et al. · 1996 [cited by applicant]
US 5684951A · Goldman et al. · 1997 [cited by applicant]
US 6044155A · Thomlinson et al. · 2000 [cited by applicant]
US 8006280B1 · Hildebrand et al. · 2011 [cited by applicant]
US 8028329B2 · Whitcomb · 2011 [cited by applicant]
US 8059818B2 · Asokan et al. · 2011 [cited by applicant]
US 8601600B1 · Shankar · 2013 [cited by applicant]
US 10546142B2 · Hakhinian · 2020 [cited by applicant]
US 11240007B1 · Higgins · 2022 [cited by examiner]
US 20020122553A1 · Kao · 2002 [cited by applicant]
US 20030177401A1 · Arnold · 2003 [cited by applicant]
US 20050222963A1 · Johnson · 2005 [cited by applicant]
US 20060235796A1 · Johnson et al. · 2006 [cited by applicant]
US 20080104709A1 · Averyt et al. · 2008 [cited by applicant]
US 20080155276A1 · Chen et al. · 2008 [cited by applicant]
US 20090055642A1 · Myers · 2009 [cited by applicant]
US 20090235346A1 · Steinberg · 2009 [cited by applicant]
US 20090287935A1 · Aull · 2009 [cited by applicant]
US 20100017616A1 · Nichols et al. · 2010 [cited by applicant]
US 20100083358A1 · Govindarajan et al. · 2010 [cited by applicant]
US 20100100945A1 · Ozzie et al. · 2010 [cited by applicant]
US 20100172504A1 · Allen · 2010 [cited by applicant]
US 20100174911A1 · Isshiki · 2010 [cited by applicant]
US 20110252243A1 · Brouwer · 2011 [cited by applicant]
US 20120072979A1 · Cha et al. · 2012 [cited by applicant]
US 20120209735A1 · Subramanian · 2012 [cited by applicant]
US 20130111217A1 · Kopasz et al. · 2013 [cited by applicant]
US 20130144786A1 · Tong · 2013 [cited by applicant]
US 20130145447A1 · Maron · 2013 [cited by applicant]
US 20130205360A1 · Novak · 2013 [cited by applicant]
US 20130227047A1 · Dolce · 2013 [cited by applicant]
US 20160148201A1 · Kadaster · 2016 [cited by applicant]
US 20160380985A1 · Chhabra · 2016 [cited by examiner]
US 20170093805A1 · Proulx · 2017 [cited by applicant]
US 20180013562A1 · Haider · 2018 [cited by applicant]
US 20180183777A1 · Guillory et al. · 2018 [cited by applicant]
US 20180323970A1 · Maron · 2018 [cited by applicant]
US 20190149332A1 · Rivain et al. · 2019 [cited by applicant]
US 20190268156A1 · Delmas et al. · 2019 [cited by applicant]
US 20190356649A1 · Alwen · 2019 [cited by applicant]
US 20200280452A1 · Pahl · 2020 [cited by applicant]
US 20230008003A1 · Damiano · 2023 [cited by examiner]
US 20230076420A1 · Fytraki · 2023 [cited by examiner]
WO WO2024228951A1 · 2024 [cited by examiner]
Apple Technical White Paper (Best Practices for Deploying FileVault 2, Aug. 2012, 42 pages) (Year: 2012). [cited by applicant]
“LastPass Gets the Green Light from Security Now!'s Steve Gibson”, LastPass Blog, (http://blog.lastpass.com/2010/07/lastpass-gets-green-light-from-security.html), Jul. 21, 2010, 11 pages. [cited by applicant]
Dashlane Security Whitepaper, Nov. 2011, https://www.dashlane.com/download/Security-Whitepaper-Final-Nov-2011.pdf., 9 pages. [cited by applicant]
Encryption—How does LastPass store my passwords on their website?, Stack Exchange, (http://webapps.stackexchange.com/questions/11361/how-does-lastpass-store-my-passwords-on-their-website), Jan. 16, 2011, 2 pages. [cited by applicant]