IP Library › Granted Patent US 10,586,057
Granted Patent B2
US 10,586,057 · App. 15/815,239 · Granted Mar 10, 2020

Processing data queries in a logically sharded data store

Inventors: Gleb Keselman (Hod-Hasharon, IL); Ernesto Nebel (San Diego, CA); Jeffery Weber (San Diego, CA); Noah Kauhane (San Diego, CA); Vinu Somayaji (San Diego, CA); Yaron Sheffer (Hod-Hasharon, IL)
Assignee: INTUIT INC.
G06F21/602G06F16/245G06F16/278G06F21/6227H04L9/08H04L9/0869H04L9/0891H04L9/0894
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 10,586,057
App. No.
15/815,239
Granted
Mar 10, 2020
Kind
B2
Abstract

The present disclosure relates to processing data queries on a logically sharded data store. An example method generally includes receiving, from a client device, a query. The query generally comprises one or more data items and wherein at least one of the one or more data items comprises sensitive data. A query processor obtains, from a key management server, a cryptographic key to use to encrypt the record based on data derived from the one or more data items comprising sensitive data and a type of the sensitive data. The query processor generates an encrypted query based on the query and the obtained cryptographic key and executes the encrypted query against the logically sharded database.

Claims (59)

1. A method for executing queries against a logically sharded database, comprising:

receiving, from a client device, a query, wherein the query comprises one or more data items and wherein at least one of the one or more data items comprises sensitive data;

obtaining, from a key management server, a cryptographic key to use to encrypt a record based on data derived from the one or more data items comprising sensitive data and a type of the sensitive data;

generating an encrypted query based on the query and the obtained cryptographic key; and

executing the encrypted query against the logically sharded database.

2. The method of claim 1 , wherein obtaining the cryptographic key comprises:

invoking a key derivation process at a key management server by transmitting a truncated hash and the type of the sensitive data; and

receiving the cryptographic key from the key management server.

3. The method of claim 1 , wherein the query comprises a write query, and wherein generating the encrypted query comprises encrypting the at least one of the one or more data items using the obtained cryptographic key.

4. The method of claim 1 , wherein the query comprises a search query.

5. The method of claim 4 , wherein obtaining the cryptographic key comprises:

determining, based on a flag associated with the type of the sensitive data and a truncated version of the derived data, that a key rotation procedure is executing on records associated with the truncated version of the derived data;

requesting a first cryptographic key associated with a current base key and a second cryptographic key associated with a replacement base key; and

receiving the first and second cryptographic keys from the key management server.

6. The method of claim 5 , wherein generating the encrypted query comprises generating a query including a first parameter comprising a value of the sensitive data encrypted using the first cryptographic key and a second parameter comprising a value of the sensitive data encrypted using the second cryptographic key.

7. The method of claim 6 , further comprising:

receiving an encrypted search result in response to the encrypted query;

upon determining that the encrypted search result is encrypted using the first cryptographic key, decrypting the encrypted search result using the first cryptographic key; and

upon determining that the encrypted search result is encrypted using the second cryptographic key, decrypting the encrypted search result using the second cryptographic key.

8. The method of claim 4 , further comprising:

receiving an encrypted search result in response to executing the encrypted query;

decrypting the encrypted search result using the cryptographic key; and

transmitting the decrypted search result to the client device.

9. A system, comprising:

a processor; and

a memory having instructions stored thereon which, when executed by the processor, performs an operation for executing queries against a logically sharded database, the operation comprising:

receiving, from a client device, a query, wherein the query comprises one or more data items and wherein at least one of the one or more data items comprises sensitive data;

obtaining, from a key management server, a cryptographic key to use to encrypt a record based on data derived from the one or more data items comprising sensitive data and a type of the sensitive data;

generating an encrypted query based on the query and the obtained cryptographic key; and

executing the encrypted query against the logically sharded database.

10. The system of claim 9 , wherein obtaining the cryptographic key comprises:

invoking a key derivation process at a key management server by transmitting a truncated hash and the type of the sensitive data; and

receiving the cryptographic key from the key management server.

11. The system of claim 9 , wherein the query comprises a write query, and wherein generating the encrypted query comprises encrypting the at least one of the one or more data items using the obtained cryptographic key.

12. The system of claim 9 , wherein the query comprises a search query.

13. The system of claim 12 , wherein obtaining the cryptographic key comprises:

determining, based on a flag associated with the type of the sensitive data and a truncated version of the derived data, that a key rotation procedure is executing on records associated with the truncated version of the derived data;

requesting a first cryptographic key associated with a current base key and a second cryptographic key associated with a replacement base key; and

receiving the first and second cryptographic keys from the key management server.

14. The system of claim 13 , wherein generating the encrypted query comprises generating a query including a first parameter comprising a value of the sensitive data encrypted using the first cryptographic key and a second parameter comprising a value of the sensitive data encrypted using the second cryptographic key.

15. The system of claim 14 , wherein the operations further comprise:

receiving an encrypted search result in response to the encrypted query;

upon determining that the encrypted search result is encrypted using the first cryptographic key, decrypting the encrypted search result using the first cryptographic key; and

upon determining that the encrypted search result is encrypted using the second cryptographic key, decrypting the encrypted search result using the second cryptographic key.

16. The system of claim 12 , further comprising:

receiving an encrypted search result in response to executing the encrypted query;

decrypting the encrypted search result using the cryptographic key; and

transmitting the decrypted search result to the client device.

17. A non-transitory computer-readable medium having instructions stored thereon which, when executed by a processor, performs an operation for executing queries against a logically sharded database, the operation comprising:

receiving, from a client device, a query, wherein the query comprises one or more data items and wherein at least one of the one or more data items comprises sensitive data;

obtaining, from a key management server, a cryptographic key to use to encrypt record based on data derived from the one or more data items comprising sensitive data and a type of the sensitive data;

generating an encrypted query based on the query and the obtained cryptographic key; and

executing the encrypted query against the logically sharded database.

18. The non-transitory computer-readable medium of claim 17 , wherein the query comprises a write query, and wherein generating the encrypted query comprises encrypting the at least one of the one or more data items using the obtained cryptographic key.

19. The non-transitory computer-readable medium of claim 17 , wherein the query comprises a search query, and wherein obtaining the cryptographic key comprises:

determining, based on a flag associated with the type of the sensitive data and a truncated version of the derived data, that a key rotation procedure is executing on records associated with the truncated version of the derived data;

requesting a first cryptographic key associated with a current base key and a second cryptographic key associated with a replacement base key; and

receiving the first and second cryptographic keys from the key management server.

20. The non-transitory computer-readable medium of claim 19 , wherein generating the encrypted query comprises generating a query including a first parameter comprising a value of the sensitive data encrypted using the first cryptographic key and a second parameter comprising a value of the sensitive data encrypted using the second cryptographic key.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 16, 2017
From: KESELMAN, GLEB; NEBEL, ERNESTO; WEBER, JEFFERY; KAUHANE, NOAH; SOMAYAJI, VINU; SHEFFER, YARON
To: INTUIT, INC.
Reel/Frame 044154/0986 →
Continuity (1)
Related Publication 20190147170A1 · May 16, 2019
Cited By (2)
US 12,243,057 US 12,244,693