IP Library Granted Patent US 8,311,225
Granted Patent B2
US 8,311,225 · App. 12/542,662 · Granted Nov 13, 2012

Scalable key archival

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 8,311,225
App. No.
12/542,662
Granted
Nov 13, 2012
Kind
B2
Abstract

A solution for scalable key archival includes, at a network device, determining whether a key management device that is not part of a current key management device configuration has been newly added to a network. The method also includes, if the key management device has been newly added to the network, determining whether the network device has a first application program interface (API) or device driver for communicating with the key management device. The method also includes, if the network device does not have the first API, obtaining the API. The method also includes creating a binding between a virtual device driver of the network device and the key management device via the first API, the network device having a second API for communications between the virtual device driver and a security processor of the network device. The security processor communicates with the key management device using the second API.

Claims (108)

1. A method comprising:

at a network device configured with, for each key management system that is part of a current key management device configuration, a device driver and associated application programming interface (API) for communicating with the respective key management system, determining whether a key management device that is not part of the current key management device configuration has been newly added to a network;

if the key management device has been newly added to the network, determining whether the network device has a first API for communicating with the key management device;

if the network device does not have the first API, obtaining the first API; and

creating a binding between a virtual device driver of the network device and the key management device via the first API, the network device having a second API for communications between the virtual device driver and a security processor of the network device,

wherein the security processor communicates with each key management device that is part of the current key management device configuration using the second API.

2. The method of claim 1 wherein the security processor communicates with the key management device using the second API to:

send one or more data encryption keys to one or more key management devices for storage on the one or more key management devices; and

obtain one or more data encryption keys from a first available key management device.

3. The method of claim 1 wherein the network device comprises a network switch.

4. The method of claim 1 wherein the network device comprises host bus adapter of a host server.

5. The method of claim 1 wherein the network device comprises storage device.

6. The method of claim 1 wherein the second API comprises:

a first primitive for establishing a connection with a key management device;

a second primitive for disconnecting a connection with a key management device;

a third primitive for storing a key on a key management device; and

a fourth primitive for retrieving a key from a key management device.

7. The method of claim 6 wherein the second API further comprises:

a fifth primitive for deleting a key on a key management device; and

a sixth primitive for deleting a plurality of keys on a key management device.

8. The method of claim 7 wherein the second API further comprises:

a seventh primitive for obtaining information about all open key vault sessions;

an eighth primitive for obtaining a new key ID; and

a ninth primitive for obtaining a list of most recently created keys.

9. The method of claim 8 wherein the second API further comprises:

a tenth primitive for disconnecting connections with all key management devices; and

an eleventh primitive for disconnecting connections with all key management devices.

10. The method of claim 9 wherein the second API further comprises:

a twelfth primitive for establishing a shared secret for communications with a key management device; and

a thirteenth primitive for discarding a shared secret for communications with a key management device.

11. The method of claim 1 wherein the first API further comprises:

a first primitive for initializing the first API;

a second primitive for establishing a connection with a key management device;

a third primitive for determining a current status of a key management device;

a fourth primitive for disconnecting a connection with a key management device;

a fifth primitive for disconnecting connections with all key management devices;

a sixth primitive for reserving a new key ID;

a seventh primitive for storing a key on a key management device;

an eighth primitive for obtaining a key from a key management device;

a ninth primitive for obtaining a list of most recently created keys;

a tenth primitive for establishing a shared secret for communications with a key management device; and

a eleventh primitive for discarding a shared secret for communications with a key management device;

a twelfth primitive for obtaining one or more key management device characteristics.

12. The method of claim 1 , further comprising determining whether a key management device that is not part of the current key management device configuration has been newly added to a network by periodically checking the network for the presence of a key management device that is not part of the current key management device configuration.

13. The method of claim 1 , further comprising determining whether a key management device that is not part of the current key management device configuration has been newly added to a network by examining a broadcast message sent by the newly added key management device.

14. A network device comprising:

for each key management system that is part of a current key management device configuration, a device driver and associated application programming interface (API) for communicating with the respective key management system

a memory; and

one or more processors configured to:

determine whether a key management device that is not part of the current key management device configuration has been newly added to a network;

if the key management device has been newly added to the network, determining whether the network device has a first API for communicating with the key management device;

if the network device does not have the first API, obtain the first API; and

create a binding between a virtual device driver of the network device and the key management device via the first API, the network device having a second API for communications between the virtual device driver and a security processor of the network device,

wherein the security processor communicates with each key management device that is part of the current key management device configuration using the second API.

15. The network device of claim 14 wherein the security processor is configured to communicate with the key management device using the second API to:

send one or more data encryption keys to one or more key management devices for storage on the one or more key management devices; and

obtain one or more data encryption keys from a first available key management device.

16. The network device of claim 14 wherein the network device comprises a network switch.

17. The network device of claim 14 wherein the network device comprises host bus adapter of a host server.

18. The network device of claim 14 wherein the network device comprises storage device.

19. The network device of claim 14 wherein the second API comprises:

a first primitive for establishing a connection with a key management device;

a second primitive for disconnecting a connection with a key management device;

a third primitive for storing a key on a key management device; and

a fourth primitive for retrieving a key from a key management device.

20. The network device of claim 19 wherein the second API further comprises:

a fifth primitive for deleting a key on a key management device; and

a sixth primitive for deleting a plurality of keys on a key management device.

21. The network device of claim 20 wherein the second API further comprises:

a seventh primitive for obtaining information about all open key vault sessions;

an eighth primitive for obtaining a new key ID; and

a ninth primitive for obtaining a list of most recently created keys.

22. The network device of claim 21 wherein the second API further comprises:

a tenth primitive for disconnecting connections with all key management devices; and

an eleventh primitive for disconnecting connections with all key management devices.

23. The network device of claim 22 wherein the second API further comprises:

a twelfth primitive for establishing a shared secret for communications with a key management device; and

a thirteenth primitive for discarding a shared secret for communications with a key management device.

24. The network device of claim 14 wherein the first API further comprises:

a first primitive for initializing the first API;

a second primitive for establishing a connection with a key management device;

a third primitive for determining a current status of a key management device;

a fourth primitive for disconnecting a connection with a key management device;

a fifth primitive for disconnecting connections with all key management devices;

a sixth primitive for reserving a new key ID;

a seventh primitive for storing a key on a key management device;

an eighth primitive for obtaining a key from a key management device;

a ninth primitive for obtaining a list of most recently created keys;

a tenth primitive for establishing a shared secret for communications with a key management device; and

a eleventh primitive for discarding a shared secret for communications with a key management device

a twelfth primitive for obtaining one or more key management device characteristics.

25. The network device of claim 14 , further comprising determining whether a key management device that is not part of the current key management device configuration has been newly added to a network by periodically checking the network for the presence of a key management device that is not part of the current key management device configuration.

26. The network device of claim 14 , further comprising determining whether a key management device that is not part of the current key management device configuration has been newly added to a network by examining a broadcast message sent by the newly added key management device.

27. A nontransitory program storage device readable by a machine, embodying a program of instructions executable by the machine to perform a method, the method comprising:

at a network device configured with, for each key management system that is part of a current key management device configuration, a device driver and associated application programming interface (API) for communicating with the respective key management system, determining whether a key management device that is not part of the current key management device configuration has been newly added to a network;

if the key management device has been newly added to the network, determining whether the network device has a first API for communicating with the key management device;

if the network device does not have the first API, obtaining the first API; and

creating a binding between a virtual device driver of the network device and the key management device via the first API, the network device having a second API for communications between the virtual device driver and a security processor of the network device,

wherein the security processor communicates with each key management device that is part of the current key management device configuration using the second API.

28. A network device comprising:

means for determining whether a key management device that is not part of a current key management device configuration has been newly added to a network;

means for, if the key management device has been newly added to the network, determining whether the network device has a first application program interface (API) for communicating with the key management device;

means for, if the network device does not have the first API, obtaining the first API; and

means for creating a binding between a virtual device driver of the network device and the key management device via the first API, the network device having a second API for communications between the virtual device driver and a security processor of the network device,

wherein the security processor communicates with each key management device that is part of the current key management device configuration using the second API.

29. The method of claim 1 , further comprising:

if the key management device has been newly added to the network, determining high availability capabilities of the newly added key management device and enabling one or more functions to support redundancy in the data at rest encryption module.

30. The network device of claim 14 wherein the one or more processors are further configured to, if the key management device has been newly added to the network, determine high availability capabilities of the newly added key management device and enabling one or more functions to support redundancy in the data at rest encryption module.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2018
From: BROCADE COMMUNICATIONS SYSTEMS LLC
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047270/0247 →
CHANGE OF NAME Recorded Dec 13, 2017
From: BROCADE COMMUNICATIONS SYSTEMS, INC.
To: BROCADE COMMUNICATIONS SYSTEMS LLC
Reel/Frame 044891/0536 →
RELEASE OF SECURITY INTEREST Recorded Jan 22, 2015
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: BROCADE COMMUNICATIONS SYSTEMS, INC.; FOUNDRY NETWORKS, LLC
Reel/Frame 034804/0793 →
SECURITY AGREEMENT Recorded Jan 20, 2010
From: BROCADE COMMUNICATIONS SYSTEMS, INC.; FOUNDRY NETWORKS, LLC; INRANGE TECHNOLOGIES CORPORATION; MCDATA CORPORATION; MCDATA SERVICES CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 023814/0587 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 16, 2009
From: SINGH, JITENDRA KUMAR; SIAO, LYNDON; HESS, NARADA JARED
To: BROCADE COMMUNICATIONS SYSTEMS, INC.
Reel/Frame 023524/0581 →