IP Library Granted Patent US 11,895,227
Granted Patent B1
US 11,895,227 · App. 18/322,265 · Granted Feb 6, 2024

Distributed key management system with a key lookup service

Inventors: Derek Chamorro (Austin, TX); Michael Pak (Denver, CO)
Assignee: CLOUDFLARE, INC.
H04L9/0825H04L9/0827
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 11,895,227
App. No.
18/322,265
Granted
Feb 6, 2024
Kind
B1
Abstract

A first intermediate key management system (KMS) server of a distributed KMS receives a key lookup service (KLS) query from a KMS client for determining an identity of KMS server(s) that are capable of performing a first operation with a first managed key. The first intermediate KMS server is one of the intermediate KMS servers of the distributed KMS. The first KMS server determines the identity of one or more of the KMS servers that are capable of performing the first operation with the first managed key. The first KMS server transmits a KLS response to the KMS client that includes the identity of the KMS server(s) that are capable of performing the first operation with the first managed key.

Claims (68)

1. A method, comprising:

receiving, at a first intermediate key management system (KMS) server of a distributed KMS, a first key lookup service (KLS) query from a KMS client for determining an identity of one or more of a plurality of KMS servers that are capable of performing a first operation with a first managed key, wherein the first intermediate KMS server is one of the plurality of intermediate KMS servers of the distributed KMS;

determining the identity of one or more of the plurality of KMS servers that are capable of performing the first operation with the first managed key;

transmitting a first KLS response to the KMS client that includes the identity of one or more of the plurality of KMS servers that are capable of performing the first operation with the first managed key, wherein the first intermediate KMS server is not one of the one or more of the plurality of KMS servers that are capable of performing the first operation with the first managed key;

receiving, at the first intermediate KMS server, a second KLS query from the KMS client for determining an identity of one or more of the plurality of KMS servers that are capable of performing a second operation with a second managed key, wherein the second operation is different from the first operation;

determining the identity of one or more of the plurality of KMS servers that are capable of performing the second operation with the second managed key; and

transmitting a second KLS response to the KMS client that includes the identity of one or more of the plurality of KMS servers that are capable of performing the second operation with the second managed key, wherein the first intermediate KMS server is not one of the one or more of the plurality of KMS servers that are capable of performing the second operation with the second managed key.

2. The method of claim 1 , further comprising:

receiving, at the first intermediate KMS server, a plurality of managed keys;

receiving, at the first intermediate KMS server, a third KLS query from a second KMS client for determining an identity of one or more of a plurality of key management system (KMS) servers that are capable of performing a third operation with a third managed key;

determining the identity of one or more of the plurality of KMS servers that are capable of performing the third operation with the third managed key;

transmitting a third KLS response to the second KMS client that includes the identity of one or more of the plurality of KMS servers that are capable of performing the third operation with the third managed key, wherein the first intermediate KMS server is one of the one or more of the plurality of KMS servers that are capable of performing the third operation with the third managed key;

receiving, at the first intermediate KMS server from the second KMS client, a first KMS service request that requests the third operation with the third managed key;

performing, at the first intermediate KMS server, the third operation using the third managed key; and

transmitting, from the first intermediate KMS server to the second KMS client, a response to the first KMS service request that includes a result of the performed third operation using the third managed key.

3. The method of claim 2 , wherein the plurality of managed keys are received from a second intermediate KMS server of the distributed KMS.

4. The method of claim 2 , further comprising:

receiving, at the first intermediate KMS server, a plurality of policies associated with the plurality of managed keys respectively; and

enforcing the one of the plurality of policies that is associated with the second managed key prior to performing the second operation requested in the first KMS service request using the second managed key.

5. The method of claim 1 , wherein the first KLS response provides a ranking that denotes an estimated response and/or transaction time among the one or more of the plurality of KMS servers that are capable of performing the first operation with the first managed key.

6. The method of claim 1 , wherein determining the identity of one or more of the plurality of KMS servers that are capable of performing the first operation with the first managed key includes transmitting a third KLS query to another one of the plurality of KMS servers and receiving a third KLS response that includes the identity of the one or more of the plurality of KMS servers that are capable of performing the first operation with the first managed key.

7. The method of claim 1 , wherein determining the identity of one or more of the plurality of KMS servers that are capable of performing the first operation with the first managed key includes determining that the one or more of the plurality of KMS servers are permitted by policy to perform the first operation with the first managed key.

8. A non-transitory machine-readable storage medium that provides instructions that, when executed by a processor, cause operations to be performed comprising:

receiving, at a first intermediate key management system (KMS) server of a distributed KMS, a first key lookup service (KLS) query from a KMS client for determining an identity of one or more of a plurality of KMS servers that are capable of performing a first operation with a first managed key, wherein the first intermediate KMS server is one of the plurality of intermediate KMS servers of the distributed KMS;

determining the identity of one or more of the plurality of KMS servers that are capable of performing the first operation with the first managed key;

transmitting a first KLS response to the KMS client that includes the identity of one or more of the plurality of KMS servers that are capable of performing the first operation with the first managed key, wherein the first intermediate KMS server is not one of the one or more of the plurality of KMS servers that are capable of performing the first operation with the first managed key;

receiving, at the first intermediate KMS server, a second KLS query from the KMS client for determining an identity of one or more of the plurality of KMS servers that are capable of performing a second operation with a second managed key, wherein the second operation is different from the first operation;

determining the identity of one or more of the plurality of KMS servers that are capable of performing the second operation with the second managed key; and

transmitting a second KLS response to the KMS client that includes the identity of one or more of the plurality of KMS servers that are capable of performing the second operation with the second managed key, wherein the first intermediate KMS server is not one of the one or more of the plurality of KMS servers that are capable of performing the second operation with the second managed key.

9. The non-transitory machine-readable storage medium of claim 8 , wherein the operations further comprise:

receiving, at the first intermediate KMS server, a plurality of managed keys;

receiving, at the first intermediate KMS server, a third KLS query from a second KMS client for determining an identity of one or more of a plurality of key management system (KMS) servers that are capable of performing a third operation with a third managed key;

determining the identity of one or more of the plurality of KMS servers that are capable of performing the third operation with the third managed key;

transmitting a third KLS response to the second KMS client that includes the identity of one or more of the plurality of KMS servers that are capable of performing the third operation with the third managed key, wherein the first intermediate KMS server is one of the one or more of the plurality of KMS servers that are capable of performing the third operation with the third managed key;

receiving, at the first intermediate KMS server from the second KMS client, a first KMS service request that requests the third operation with the third managed key;

performing, at the first intermediate KMS server, the third operation using the third managed key; and

transmitting, from the first intermediate KMS server to the second KMS client, a response to the first KMS service request that includes a result of the performed third operation using the third managed key.

10. The non-transitory machine-readable storage medium of claim 9 , wherein the plurality of managed keys are received from a second intermediate KMS server of the distributed KMS.

11. The non-transitory machine-readable storage medium of claim 9 , wherein the operations further include:

receiving, at the first intermediate KMS server, a plurality of policies associated with the plurality of managed keys respectively; and

enforcing the one of the plurality of policies that is associated with the second managed key prior to performing the second operation requested in the first KMS service request using the second managed key.

12. The non-transitory machine-readable storage medium of claim 8 , wherein the first KLS response provides a ranking that denotes an estimated response and/or transaction time among the one or more of the plurality of KMS servers that are capable of performing the first operation with the first managed key.

13. The non-transitory machine-readable storage medium of claim 8 , wherein determining the identity of one or more of the plurality of KMS servers that are capable of performing the first operation with the first managed key includes transmitting a third KLS query to another one of the plurality of KMS servers and receiving a third KLS response that includes the identity of the one or more of the plurality of KMS servers that are capable of performing the first operation with the first managed key.

14. The non-transitory machine-readable storage medium of claim 8 , wherein determining the identity of one or more of the plurality of KMS servers that are capable of performing the first operation with the first managed key includes determining that the one or more of the plurality of KMS servers are permitted by policy to perform the first operation with the first managed key.

15. A first intermediate key management system (KMS) server of a plurality of intermediate KMS servers of a distributed KMS, comprising:

a processor; and

a non-transitory machine-readable storage medium that provides instructions that, when executed by the processor, will cause the first intermediate KMS server to carry out operations including:

receiving, at the first KMS server of the distributed KMS, a first key lookup service (KLS) query from a KMS client for determining an identity of one or more of a plurality of KMS servers that are capable of performing a first operation with a first managed key;

determining the identity of one or more of the plurality of KMS servers that are capable of performing the first operation with the first managed key;

transmitting a first KLS response to the KMS client that includes the identity of one or more of the plurality of KMS servers that are capable of performing the first operation with the first managed key, wherein the first intermediate KMS server is not one of the one or more of the plurality of KMS servers that are capable of performing the first operation with the first managed key;

receiving, at the first intermediate KMS server, a second KLS query from the KMS client for determining an identity of one or more of the plurality of KMS servers that are capable of performing a second operation with a second managed key, wherein the second operation is different from the first operation;

determining the identity of one or more of the plurality of KMS servers that are capable of performing the second operation with the second managed key; and

transmitting a second KLS response to the KMS client that includes the identity of one or more of the plurality of KMS servers that are capable of performing the second operation with the second managed key, wherein the first intermediate KMS server is not one of the one or more of the plurality of KMS servers that are capable of performing the second operation with the second managed key.

16. The first KMS server of claim 15 , wherein the operations further comprise:

receiving, at the first intermediate KMS server, a plurality of managed keys;

receiving, at the first intermediate KMS server, a third KLS query from a second KMS client for determining an identity of one or more of a plurality of key management system (KMS) servers that are capable of performing a third operation with a third managed key;

determining the identity of one or more of the plurality of KMS servers that are capable of performing the third operation with the third managed key;

transmitting a third KLS response to the second KMS client that includes the identity of one or more of the plurality of KMS servers that are capable of performing the third operation with the third managed key, wherein the first intermediate KMS server is one of the one or more of the plurality of KMS servers that are capable of performing the third operation with the third managed key;

receiving, at the first intermediate KMS server from the second KMS client, a first KMS service request that requests the third operation with the third managed key;

performing, at the first intermediate KMS server, the third operation using the third managed key; and

transmitting, from the first intermediate KMS server to the second KMS client, a response to the first KMS service request that includes a result of the performed third operation using the third managed key.

17. The first KMS server of claim 16 , wherein the plurality of managed keys are received from a second intermediate KMS server of the distributed KMS.

18. The first KMS server of claim 16 , wherein the operations further comprise:

receiving, at the first intermediate KMS server, a plurality of policies associated with the plurality of managed keys respectively; and

enforcing the one of the plurality of policies that is associated with the second managed key prior to performing the second operation requested in the first KMS service request using the second managed key.

19. The first KMS server of claim 15 , wherein the first KLS response provides a ranking that denotes an estimated response and/or transaction time among the one or more of the plurality of KMS servers that are capable of performing the first operation with the first managed key.

20. The first KMS server of claim 15 , wherein determining the identity of one or more of the plurality of KMS servers that are capable of performing the first operation with the first managed key includes transmitting a third KLS query to another one of the plurality of KMS servers and receiving a third KLS response that includes the identity of the one or more of the plurality of KMS servers that are capable of performing the first operation with the first managed key.

21. The first KMS server of claim 15 , wherein determining the identity of one or more of the plurality of KMS servers that are capable of performing the first operation with the first managed key includes determining that the one or more of the plurality of KMS servers are permitted by policy to perform the first operation with the first managed key.

Assignments (2)
SECURITY INTEREST Recorded May 20, 2024
From: CLOUDFLARE, INC.
To: CITIBANK, N.A.
Reel/Frame 067472/0246 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 23, 2023
From: CHAMORRO, DEREK; PAK, MICHAEL
To: CLOUDFLARE, INC.
Reel/Frame 063733/0704 →
Cited By (2)
US 12,524,561 US 12,621,522