IP Library Granted Patent US 9,866,375
Granted Patent B2
US 9,866,375 · App. 14/635,489 · Granted Jan 9, 2018

Multi-level key management

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 9,866,375
App. No.
14/635,489
Granted
Jan 9, 2018
Kind
B2
Abstract

A key manager provides a way to separate out the management of encryption keys and policies from application domains. The key manager may create cipher objects that may be used by the domains to perform encryption or decryption, without exposing the keys or encryption/decryption algorithms to the domains. A master key managed by the key manager may be used to encrypt and decrypt the domain keys that are stored under the control of the key manager. The key manager supports the rekeying of both the master key and the domain keys based on policy. Multiple versions of domain keys may be supported, allowing domains to access data encrypted with a previous version of a domain key after a rekeying.

Claims (51)

1. A networked computer system for centrally managing encryption or decryption services, the networked computer system comprising:

a server computer communicatively coupled to one or more computers by a network, the one or more computers executing at least one application, the server computer including:

a key manager configured to manage and store a plurality of domain keys for the at least one application,

wherein the key manager is configured to generate and store a master key on the server computer,

wherein the key manager is configured to encrypt the plurality of domain keys using the master key, the plurality of domain keys including a first domain key corresponding to a first domain of the at least one application, and a second domain key corresponding to a second domain of the at least one application, wherein the first and second domains are different parts of the at least one application that require different cryptography services,

wherein the key manager is configured to store the encrypted domain keys in a key store on the server computer, the key store being an area separate from domain-specific areas of the first domain and of the second domain,

wherein, before the key manager encrypts and stores the first domain key in the key store, the key manager is configured to select an encryption algorithm and key size based on domain-specific policy information, and to generate the first domain key with the selected encryption algorithm and key size, the domain-specific policy information defining an amount of time before the first domain key expires, and a number of versions of the first domain key usable at a particular time,

wherein, in response to a request from the first domain, the key manager is configured to retrieve the encrypted first domain key that corresponds to the first domain, to decrypt the encrypted first domain key with the master key, and to return a first object to the first domain, the first object identifying the selected encryption algorithm and including the first domain key,

wherein the selected encryption algorithm and the first domain key of the first object are not exposed to the first domain other than by invocation of encryption or decryption provided by the first object.

2. The networked computer system of claim 1 , wherein the first domain and the second domain are different parts of the same application that require different cryptography services.

3. The networked computer system of claim 1 , wherein the key manager is configured to obtain a private key and retrieve the encrypted first domain key using the private key.

4. The networked computer system of claim 1 , wherein the first domain defines a set of classes whose instances are granted from a first set of permissions, and the second domain defines a set of classes whose instances are granted from a second set of permissions.

5. The networked computer system of claim 1 , wherein the master key is equal to or stronger than the first domain key.

6. The networked computer system of claim 1 , wherein the key manager is further configured to replace the first domain key by decrypting the encrypted first domain key, generating a new master key, re-encrypting the first domain key with the new master key, and re-storing the re-encrypted first domain key at the key store of the server computer.

7. The networked computer system of claim 1 ,

wherein, in response to a request from the second domain, the key manager is configured to retrieve the encrypted second domain key that corresponds to the second domain, to decrypt the encrypted second domain key with the master key, and to return a second object to the second domain, the second object identifying an encryption algorithm and including the second domain key,

wherein the encryption algorithm and the second domain key of the second object are not exposed to the second domain other than by invocation of encryption or decryption provided by the second object.

8. A method for centrally managing encryption or decryption services, the method comprising:

managing and storing a plurality of domain keys for at least one application, the at least one application executing on one or more computers communicatively coupled to a server computer by a network, including:

generating and storing a master key on the server computer;

selecting an encryption algorithm and key size based on domain-specific policy information;

generating a first domain key corresponding to a first domain of the at least one application with the selected encryption algorithm and key size, the domain-specific policy information defining an amount of time before the first domain key expires, and a number of versions of the first domain key usable at a particular time;

encrypting the plurality of domain keys using the master key, the plurality of domain keys including the first domain key corresponding to the first domain of the at least one application, and a second domain key corresponding to a second domain of the at least one application, wherein the first and second domains are different parts of the at least one application that require different cryptography services;

storing the encrypted domain keys in a key store on the server computer, the key store being an area separate from domain-specific areas of the first domain and of the second domain; and

wherein, in response to a request from the first domain, retrieving the encrypted first domain key that corresponds to the first domain, decrypting the encrypted first domain key with the master key, and returning a first object to the first domain, the first object identifying the selected encryption algorithm and including the first domain key,

wherein the selected encryption algorithm and the first domain key of the first object are not exposed to the first domain other than by invocation of encryption or decryption provided by the first object.

9. The method of claim 8 , wherein the key store stores the domain-specific policy information, wherein the domain-specific policy information identifies a list of encryption algorithms and key lengths permitted by the first domain, and the domain-specific policy information identifies a list of encryption algorithms and key lengths permitted by the second domain.

10. The method of claim 8 , further comprising:

obtaining a private key; and

retrieving the encrypted first domain key using the private key.

11. The method of claim 8 , wherein the first domain and the second domain are different parts of the same application that require different cryptography services.

12. The method of claim 8 , wherein the first domain defines a set of classes whose instances are granted from a first set of permissions, and the second domain defines a set of classes whose instances are granted from a second set of permissions.

13. The method of claim 8 , further comprising:

replacing the first domain key with a new first domain key by changing the encryption algorithm to a new encryption algorithm, generating a new master key with the new encryption algorithm, encrypting the new first domain key with the new master key, and returning a new first object identifying the new encryption algorithm and including the new first domain key.

14. The method of claim 8 ,

wherein, in response to a request from the second domain, retrieving the encrypted second domain key that corresponds to the second domain, decrypting the encrypted second domain key with the master key, and returning a second object to the second domain, the second object identifying an encryption algorithm and including the second domain key,

wherein the encryption algorithm and the second domain key of the second object are not exposed to the second domain other than by invocation of encryption or decryption provided by the second object.

15. A non-transitory computer-readable medium storing instructions that when executed cause at least one processor to centrally manage encryption or decryption services, the instructions comprising instructions to:

manage and store a plurality of domain keys for at least one application, the at least one application executing on one or more computers communicatively coupled to a server computer by a network, including:

generate and store a master key on the server computer;

select an encryption algorithm and key size based on domain-specific policy information;

generate a first domain key corresponding to a first domain of the at least one application with the selected encryption algorithm and key size, the domain-specific policy information defining an amount of time before the first domain key expires, and a number of versions of the first domain key usable at a particular time;

encrypt the plurality of domain keys using the master key, the plurality of domain keys including the first domain key corresponding to the first domain of the at least one application, and a second domain key corresponding to a second domain of the at least one application, wherein the first and second domains are different parts of the at least one application that require different cryptography services;

store the encrypted domain keys in a key store on the server computer, the key store being an area separate from domain-specific areas of the first domain and of the second domain;

in response to a request from the first domain, retrieve the encrypted first domain key that corresponds to the first domain, decrypt the encrypted first domain key with the master key, and return a first object to the first object, the first object identifying the selected encryption algorithm and including the first domain key,

wherein the selected encryption algorithm and the first domain key of the first object are not exposed to the first domain other than by invocation of encryption or decryption provided by the first object.

16. The non-transitory computer-readable medium of claim 15 , further comprising:

re-key the first domain key with a different master key at regular intervals.

17. The non-transitory computer-readable medium of claim 15 ,

wherein, in response to a request from the second domain, retrieving the encrypted second domain key that corresponds to the second domain, decrypting the encrypted second domain key with the master key, and returning a second object to the second domain, the second object identifying an encryption algorithm and including the second domain key,

wherein the encryption algorithm and the second domain key of the second object are not exposed to the second domain other than by invocation of encryption or decryption provided by the second object.

Assignments (14)
CHANGE OF NAME Recorded Jan 10, 2025
From: BLADELOGIC, INC.
To: BMC HELIX, INC.
Reel/Frame 069870/0796 →
GRANT OF FIRST LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0628 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0568 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052854/0139) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0617 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052844/0646) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0408 →
OMNIBUS ASSIGNMENT OF SECURITY INTERESTS IN PATENT COLLATERAL Recorded Mar 4, 2024
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS RESIGNING COLLATERAL AGENT
To: GOLDMAN SACHS BANK USA, AS SUCCESSOR COLLATERAL AGENT
Reel/Frame 066729/0889 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 1, 2024
From: ALTER DOMUS (US) LLC
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 066567/0283 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Sep 30, 2021
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 057683/0582 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052844/0646 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052854/0139 →
RELEASE OF PATENTS Recorded Oct 5, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.; BMC ACQUISITION L.L.C.
Reel/Frame 047198/0468 →
SECURITY INTEREST Recorded Oct 2, 2018
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE, AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047185/0744 →
SECURITY INTEREST Recorded Jul 27, 2017
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 043351/0231 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 2, 2015
From: REILLY, PAUL A.; BIRGER, CHET; KNJAZIHHIN, DENIS
To: BLADELOGIC, INC.
Reel/Frame 035067/0451 →