# US 2018/0323970 A1 · Master password reset in a zero-knowledge architecture

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2018/0323970 A1
- Document ID: US20180323970A1
- Status: Published application
- Kind: A1
- Application number: 15/642,444
- Filed: 2017-07-06
- Published: 2018-11-08
- Earliest claimed: 2017-05-03
- Assignees: Dashlane SAS
- Applicants: Dashlane, Inc.
- Inventors: Guillaume Maron; Frédéric Rivain; Alexis Fogel
- Web page: https://patentgrep.com/patent/US20180323970A1

## CPC

- H04L 9/0891: {Revocation or update of secret information, e.g. encryption key update or rekeying}
- H04L 9/0618: {Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation}
- H04L 9/0822: {using key encryption key}
- H04L 9/0825: {using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates}
- H04L 9/083: {involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]}
- H04L 9/0863: {involving passwords or one-time passwords (network architectures or network communication protocols for using one-time keys in a packet data network H04L63/067)}
- H04L 9/0894: {Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage}
- H04L 9/14: using a plurality of keys or algorithms
- H04L 9/30: Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L 9/3218: {using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Examples of the present disclosure describe systems and methods relating to master password reset in a zero-knowledge architecture. A master password reset may be used to regain access to encrypted user data despite not having access to the master password associated with decrypting the user data. As an example, the user data may be encrypted using a local ciphering key, wherein the key may be encrypted using a master password and stored. A second copy of the key may be stored, wherein the second copy may be encrypted using a recovery key. The recovery key may then be stored by a third party. In a reset scenario in which the master password is forgotten, the recovery key may be retrieved from the third party and used to decrypt the second copy of the local ciphering key, thereby providing access to the encrypted user data without use of the master password.

## Claims

### Claim 1

A system comprising:
at least one processor; and
memory storing instructions that, when executed by the at least one processor, causes the system to perform a set of operations, the set of operations comprising:
obtaining a local ciphering key for encrypting user data;
encrypting, using a recovery key, the local ciphering key to generate an encrypted local ciphering key;
storing the encrypted local ciphering key on a user device;
encrypting, using a server recovery key, the recovery key to generate an encrypted recovery key;
transmitting the encrypted recovery key to a third party;
receiving, at the user device, a reset indication;
decrypting the encrypted local ciphering key using the recovery key; and
decrypting encrypted user data using the decrypted local ciphering key.

### Claim 2 (depends on 1)

The system of claim 1, wherein the set of operations further comprises:
encrypting, using a master password, the local ciphering key to generate a second encrypted local ciphering key;
storing the second encrypted local ciphering key on the user device;
decrypting the second encrypted local ciphering key using a received master password input to generate a decrypted local ciphering key; and
encrypting, using the decrypted local ciphering key, user data of an application.

### Claim 3 (depends on 2)

The system of claim 2, wherein the set of operations further comprises:
receiving a master password input at the user device;
decrypting the second encrypted local ciphering key based on the master password input at the user device to generate a decrypted local ciphering key; and
using the decrypted local ciphering key to access encrypted user data.

### Claim 4 (depends on 1)

The system of claim 1, wherein transmitting the encrypted recovery key to the third party comprises:
encrypting, using a public key of a cryptographic key pair, the encrypted recovery key to generate a protected encrypted recovery key; and
providing the protected encrypted recovery key to a server device for transmission to the third party.

### Claim 5 (depends on 4)

The system of claim 4, wherein the public key of the cryptographic key pair is received by the user device from the third party.

### Claim 6 (depends on 1)

The system of claim 1, wherein the server recovery key is transmitted to a server device in plaintext and is not retained by the user device.

### Claim 7 (depends on 1)

The system of claim 1, wherein decrypting the encrypted local ciphering key comprises:
receiving, from a server device, the server recovery key;
receiving, from the third party, the encrypted recovery key;
decrypting, based on the server recovery key, the encrypted recovery key to determine the recovery key;
accessing the stored encrypted local ciphering key; and
decrypting the local ciphering key from the stored encrypted local ciphering key using the recovery key.

### Claim 8

A method for master password reset, comprising:
receiving, at a user device, a reset indication;
requesting, from a server device, a server recovery key associated with the user device;
receiving the server recovery key from the server device;
requesting, from a third party, an encrypted recovery key associated with the user device, wherein the third party is different from the server device;
receiving the encrypted recovery key from the third party;
decrypting, using the server recovery key, the encrypted recovery key to determine the recovery key;
accessing an encrypted local ciphering key, wherein the encrypted local ciphering key is associated with encrypted user data;
decrypting, based on the recovery key, a local ciphering key from the encrypted local ciphering key; and
accessing, using the local ciphering key, decrypted user data from the encrypted user data.

### Claim 9 (depends on 8)

The method of claim 8, further comprising:
receiving a new master password;
encrypting, using the new master password, the local ciphering key to generate a second encrypted local ciphering key; and
storing the second encrypted local ciphering key on the user device.

### Claim 10 (depends on 8)

The method of claim 8, further comprising at least one of:
receiving an authentication challenge from the server device prior to receiving the server recovery key from the server device; and
receiving an authentication challenge from the third party prior to receiving the encrypted recovery key from the third party.

### Claim 11 (depends on 8)

The method of claim 8, further comprising:
generating an asymmetric cryptographic key pair; and
providing a public key of the asymmetric cryptographic key pair to the third party.

### Claim 12 (depends on 11)

The method of claim 11, wherein the received encrypted recovery key is encrypted using the public key of the asymmetric cryptographic key pair.

### Claim 13 (depends on 8)

The method of claim 8, wherein the server recovery key is received from the server device in plaintext.

### Claim 14

A method for preserving access to user data, comprising:
generating a local ciphering key for encrypting user data;
encrypting, using a recovery key, the local ciphering key to generate an encrypted local ciphering key;
storing the encrypted local ciphering key on a user device;
encrypting, using a server recovery key, the recovery key to generate an encrypted recovery key;
transmitting the encrypted recovery key to a third party;
receiving, at the user device, a reset indication;
decrypting the encrypted local ciphering key using the recovery key; and
decrypting encrypted user data using the decrypted local ciphering key.

### Claim 15 (depends on 14)

The method of claim 14, further comprising:
encrypting, using a master password, the local ciphering key to generate a second encrypted local ciphering key;
storing the second encrypted local ciphering key on the user device;
decrypting the second encrypted local ciphering key using a received master password input to generate a decrypted local ciphering key; and
encrypting, using the decrypted local ciphering key, user data of an application.

### Claim 16 (depends on 15)

The method of claim 15, further comprising:
receiving a master password input at the user device;
decrypting the second encrypted local ciphering key based on the master password input at the user device to generate a decrypted local ciphering key; and
using the decrypted local ciphering key to access encrypted user data.

### Claim 17 (depends on 14)

The method of claim 14, wherein transmitting the encrypted recovery key to the third party comprises:
encrypting, using a public key of a cryptographic key pair, the encrypted recovery key to generate a protected encrypted recovery key; and
providing the protected encrypted recovery key to a server device for transmission to the third party.

### Claim 18 (depends on 17)

The method of claim 17, wherein the cryptographic key pair is received by the user device from the third party.

### Claim 19 (depends on 14)

The method of claim 14, wherein the server recovery key is transmitted to a server device in plaintext and is not retained by the user device.

### Claim 20 (depends on 14)

The method of claim 14, wherein decrypting the encrypted local ciphering key comprises:
receiving, from a server device, the server recovery key;
receiving, from the third party, the encrypted recovery key;
decrypting, based on the server recovery key, the encrypted recovery key to determine the recovery key;
accessing a stored encrypted local ciphering key; and
generating, using the recovery key, a decrypted local ciphering key based on the stored encrypted local ciphering key.
