IP Library Granted Patent US 7,702,906
Granted Patent B1
US 7,702,906 · App. 11/190,608 · Granted Apr 20, 2010

Securing kernel metadata communication in environments employing distributed software services

Assignee: Symantec Operating Corporation
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 7,702,906
App. No.
11/190,608
Filed
Jul 27, 2005
Granted
Apr 20, 2010
Kind
B1
Art Unit
2434
USPC
713/164
Abstract

A system for securing kernel metadata communication in environments employing distributed software services includes a first and a second host linked by a network, where a distributed software service stack at each host includes a respective user-mode software layer and a respective kernel-mode software layer. The first host may be configured to establish a user-mode connection with the second host, e.g., using a secure user-mode communication protocol such as SSL (Secure Sockets Layer). The first and the second hosts may then exchange respective security keys over the secure user-mode connection, upload the security keys to the respective kernel-mode software layers, and use the security keys to secure communication over a kernel-mode connection between the two hosts.

Claims (66)

1. A system, comprising:

a first host including a first kernel-mode software layer and a first user-mode software layer of a distributed software service; and

a second host including a second kernel-mode software layer and a second user-mode software layer of the distributed software service;

wherein the first host is configured to initiate a process configured to secure kernel-to-kernel communication between the first host and the second host, wherein said first host is configured to:

establish a user-mode network connection between the first user-mode software layer and the second user-mode software layer, the user-mode network connection being configured to use a secure communication protocol;

transmit a first security key from the first user-mode software layer to the second user-mode software layer over the user-mode network connection;

receive a second security key transmitted from the second user-mode software layer to the first user-mode software layer over the user-mode network connection; and

subsequent to receiving the second security key, initiate establishment of a kernel-mode network connection between the first kernel-mode software layer and the second kernel-mode software layer, wherein the kernel-mode connection is a different connection than the user-mode connection and uses a protocol that does not support said secure communication protocol;

wherein each of the first and second hosts are configured to use the first and second security keys to secure communication between the first kernel-mode software layer and the second kernel-mode software layer over the kernel-mode network connection.

2. The system as recited in claim 1 , wherein said kernel-mode network connection is established using one of a kernel sockets interface, Transport Level Interface, or X/Open Transport Interface.

3. The system as recited in claim 1 , wherein the first and second security keys are public keys, wherein the first host is further configured to:

upload the second security key and a first private key from the first user-mode software layer to the first kernel-mode software layer; and

use the second security key to encrypt a first message sent to the second host over the kernel-mode network connection; and

use the first private key to decrypt a second message received at the first host over the kernel-mode network connection.

4. The system as recited in claim 1 , wherein first host is further configured to:

send a first encoded authentication token to the second host over the kernel-mode network connection; and

wherein the second host is further configured to:

validate the first encoded authentication token using the second security key.

5. The system as recited in claim 1 , wherein the first host is further configured to:

encrypt a message before sending the message over the kernel-mode network connection.

6. The system as recited in claim 1 , wherein the first host is further configured to:

validate a message received over the kernel-mode network connection using a secure sequence number.

7. The system as recited in claim 1 , wherein the first host is further configured to:

validate a message received over the kernel-mode network connection using a checksum.

8. The system as recited in claim 1 , wherein the distributed software service is a storage virtualization service, the first host is a virtual device client and the second host is a virtual device server.

9. The system as recited in claim 8 , further comprising one or more physical storage devices, wherein the virtual device server is further configured to:

aggregate storage within the one or more physical storage devices into a virtual storage device; and

provide metadata for the virtual storage device to the virtual device client over the secure kernel-mode connection.

10. The system as recited in claim 9 , wherein the virtual storage device is a virtual block device.

11. The system as recited in claim 9 , wherein the virtual storage device is a virtual object device.

12. The system as recited in claim 9 , wherein the user-mode network connection and the kernel-mode network connection are established over a first network, wherein the one or more physical storage devices are linked to the virtual device client by a second network, wherein the virtual device client is configured to perform I/O operations on the one or more physical storage devices via the second network.

13. The system as recited in claim 12 , wherein the first network is an Internet Protocol (IP) network and the second network is a fibre-channel network.

14. A method comprising:

a first host initiating a process configured to secure kernel-to-kernel communication between the first host and the second host, wherein said process comprises the first host:

establishing a user-mode network connection between a first user-mode software layer of a distributed software service at the first host and a second user-mode software layer of the distributed software service at a second host, the user-mode network connection being configured to use a secure communication protocol;

transmitting a first security key from the first user-mode software layer of the distributed software service at the first host to the second user-mode software layer of the distributed software service at the second host over the user-mode network connection;

receiving a second security key transmitted from the second user-mode software layer to the first user-mode software layer over the user-mode network connection; and

subsequent to receiving the second security key, initiating establishment of a kernel-mode network connection between a first kernel-mode software layer of the first host and a second kernel-mode software layer of the second host, wherein the kernel-mode connection is a different connection than the user-mode connection and uses a protocol that does not support said secure communication protocol; and

using the first and second security keys to secure communication over the kernel-mode network connection between the first kernel-mode software layer at the first host and the second kernel-mode software layer at the second host.

15. The method as recited in claim 14 , wherein said kernel-mode network connection is established using one of a kernel sockets interface, Transport Level Interface, or X/Open Transport Interface.

16. The method as recited in claim 14 , wherein the first and second security keys are public keys, further comprising:

uploading the second security key and a first private key from the first user-mode software layer to the first kernel-mode software layer at the first host; and

using the second security key to encrypt a first message sent to the second host over the kernel-mode network connection; and

using the first private key to decrypt a second message received at the first host over the kernel-mode network connection.

17. The method as recited in claim 14 , further comprising:

sending a first encoded authentication token from the first host to the second host over the kernel-mode network connection; and

validating the first encoded authentication token at the second host using the second security key.

18. The method as recited in claim 14 , further comprising:

encrypting a message before sending the message over the kernel-mode network connection.

19. A computer accessible medium comprising program instructions, wherein the program instructions are computer-executable to:

initiate a process configured to secure kernel-to-kernel communication between a first host and a second host, wherein said program instructions are executable to cause the first host to:

establish a user-mode network connection between a first user-mode software layer of a distributed software service at the first host and a second user-mode software layer of the distributed software service at a second host, the user-mode network connection being configured to use a secure communication protocol;

transmit a first security key from the first user-mode software layer of the distributed software service at the first host to the second user-mode software layer of the distributed software service at the second host over the user-mode network connection;

receive a second security key transmitted from the second user-mode software layer to the first user-mode software layer over the user-mode network connection; and

subsequent to receiving the second security key, cause the first host to initiate establishment of a kernel-mode network connection between a first kernel-mode software layer of the first host and a second kernel-mode software layer of the second host, wherein the kernel-mode connection is a different connection than the user-mode connection and uses a protocol that does not support said secure communication protocol;

use the first and second security keys to secure communication over the kernel-mode network connection between the first kernel-mode software layer at the first host and the second kernel-mode software layer at the second host.

20. The computer accessible medium as recited in claim 19 , wherein said kernel-mode network connection is established using one of a kernel sockets interface, Transport Level Interface, or X/Open Transport Interface.

21. The computer accessible medium as recited in claim 19 , wherein the first and second security keys are public keys, wherein the program instructions are further computer-executable to:

upload the second security key and a first private key from the first user-mode software layer to the first kernel-mode software layer at the first host; and

use the second security key to encrypt a first message sent to the first host over the kernel-mode network connection; and

use the first private key to decrypt a second message received at the first host over the kernel-mode network connection.

22. The computer accessible medium as recited in claim 19 , wherein the program instructions are further computer-executable to:

send a first encoded authentication token from the first host to the second host over the kernel-mode network connection; and

validate the first encoded authentication token at the second host using the second security key.

23. The computer accessible medium as recited in claim 19 , wherein the program instructions are further computer-executable to:

encrypt a message before sending the message over the kernel-mode network connection.

Assignments (12)
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED ON REEL 019872 FRAME 979. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNEE IS SYMANTEC OPERATING CORPORATION. Recorded Mar 5, 2012
From: VERITAS OPERATING CORPORATION
To: SYMANTEC OPERATING CORPORATION
Reel/Frame 027819/0462 →
CHANGE OF NAME Recorded Sep 26, 2007
From: VERITAS OPERATING CORPORATION
To: SYMANTEC CORPORATION
Reel/Frame 019872/0979 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 27, 2005
From: KARR, RONALD S.; GARG, ANUJ
To: VERITAS OPERATING CORPORATION
Reel/Frame 016825/0380 →
Continuity (1)
Provisional Application 6069565100 · Jun 30, 2005