IP Library Granted Patent US 8,631,106
Granted Patent B2
US 8,631,106 · App. 11/761,865 · Granted Jan 14, 2014

Secure handle for intra- and inter-processor communications

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,631,106
App. No.
11/761,865
Granted
Jan 14, 2014
Kind
B2
Abstract

A protocol element referred to as a secure handle is described which provides an efficient and reliable method for application-to-application signaling in multi-process and multi-computer environments. The secure handle includes an absolute memory reference which allows the kernel to more quickly and efficiently associate a network data packet with an application's communication context in the kernel.

Claims (63)

1. A computer-implemented method for enabling communication of data from a kernel of an operating system to a client, comprising the steps of:

providing a context object that includes the data to be accessible to the client;

providing the kernel with a secure object handle, the secure object handle including an actual address of the context object and being particular to the context object;

sending the secure object handle from the kernel to the client over a bidirectional interface;

receiving, from the client, the secure object handle over the bidirectional interface, indicating that the client requires access to the data in the context object, and

checking an integrity of the secure object handle in the kernel and allowing access to the data by the client if the integrity check is successful and disallowing access to the data by the client if the integrity check is unsuccessful.

2. The method of claim 1 , wherein the context object providing step is carried out with the context object including a unique allocation stamp and wherein the secure object handle includes a field configured to store a value of the allocation stamp.

3. The method of claim 1 , wherein the secure object handle includes a signature and wherein the secure handle integrity check includes a step of verifying an integrity of the signature.

4. The method of claim 1 , wherein the context object providing step is carried out with the context object including a unique allocation stamp and the secure object handle includes a field configured to store a value of the allocation stamp and wherein the secure object handle includes a signature and the secure handle integrity check includes a step of verifying an integrity of the signature.

5. The method of claim 4 , wherein the secure object handle providing step includes generating the signature as a predetermined function of a value of the unique allocation stamp and the address of the context object.

6. The method of claim 1 wherein, when the integrity check is successful, the method further includes a step of the client accessing the data at the address of the context object in the received secure object handle.

7. The method of claim 3 , wherein the signature integrity checking step includes a step of the kernel computing a temporary variable and comparing the computed temporary variable to the signature in the secure object handle received from the client and disallowing access to the data by the client if the computed temporary variable does not match the signature.

8. The method of claim 2 , wherein the integrity checking step includes a step of disallowing access to the data by the client when the value of the allocation stamp in the secure object handle received from the client does not match the unique allocation stamp in the context object.

9. The method of claim 2 , further including a step of making the data unavailable to the client by changing the unique allocation stamp.

10. The method of claim 3 , wherein the secure object handle providing step is carried out by incorporating at least the address of the context object and the signature in a header of a packet configured according to a predetermined communication protocol.

11. The method of claim 1 , wherein the integrity checking step includes at least one Boolean Exclusive OR (XOR) operation.

12. The method of claim 1 , wherein the integrity checking step includes a Cyclic Redundancy Check (CRC).

13. The method of claim 1 , wherein only the kernel carries out the integrity checking step.

14. The method of claim 10 , wherein the communication protocol is a connection-oriented protocol.

15. The method of claim 10 , wherein the communication protocol includes TCP.

16. A non-transitory machine-readable medium having data stored thereon representing sequences of instructions which, when executed by a kernel of an operating system, causes the kernel to enable communication of data from the kernel to a client, by performing the steps of:

providing a context object that includes the data to be accessible to the client;

providing the kernel with a secure object handle, the secure object handle including an address of the context object and being particular to the context object;

sending the secure object handle from the kernel to the client over a bidirectional interface;

receiving, from the client, the secure object handle over the bidirectional interface, indicating that the client requires access to the data in the context object, and

checking an integrity of the secure object handle in the kernel and allowing access to the data by the client if the integrity check is successful and disallowing access to the data by the client if the integrity check is unsuccessful.

17. The non-transitory machine-readable medium of claim 16 , wherein the context object providing step is carried out with the context object including a unique allocation stamp and wherein the secure object handle includes a field configured to store a value of the allocation stamp.

18. The non-transitory machine-readable medium of claim 16 , wherein the secure object handle includes a signature and wherein the secure handle integrity check includes a step of verifying an integrity of the signature.

19. The non-transitory machine-readable medium of claim 16 , wherein the context object providing step is carried out with the context object including a unique allocation stamp and the secure object handle includes a field configured to store a value of the allocation stamp and wherein the secure object handle includes a signature and the secure handle integrity check includes a step of verifying an integrity of the signature.

20. The non-transitory machine-readable medium of claim 19 , wherein the secure object handle providing step includes generating the signature as a predetermined function of a value of the unique allocation stamp and the address of the context object.

21. The non-transitory machine-readable medium of claim 17 wherein, when the integrity check is successful, the method further includes a step of the client accessing the data at the address of the context object in the received secure object handle.

22. The non-transitory machine-readable medium of claim 18 , wherein the signature integrity checking step includes a step of the kernel computing a temporary variable and comparing the computed temporary variable to the signature in the secure object handle received from the client and disallowing access to the data by the client if the computed temporary variable does not match the signature.

23. The non-transitory machine-readable medium of claim 17 , wherein the integrity checking step includes a step of disallowing access to the data by the client when the value of the allocation stamp in the secure object handle received from the client does not match the unique allocation stamp in the context object.

24. The non-transitory machine-readable medium of claim 18 , further including a step of making the data unavailable to the client by changing the unique allocation stamp.

25. The non-transitory machine-readable medium of claim 18 , wherein the secure object handle providing step is carried out by incorporating at least the address of the context object and the signature in a header of a packet configured according to a predetermined communication protocol.

26. The non-transitory machine-readable medium of claim 18 , wherein the signature integrity checking step includes at least one Boolean Exclusive OR (XOR) operation.

27. The non-transitory machine-readable medium of claim 18 , wherein the signature integrity checking step includes a Cyclic Redundancy Check (CRC).

28. The non-transitory machine-readable medium of claim 18 , wherein only the kernel carries out the signature integrity checking step.

29. The non-transitory machine-readable medium of claim 25 , wherein the protocol is a connection oriented protocol.

30. The non-transitory machine-readable medium of claim 25 , wherein the protocol includes TCP.

31. A computer system configured to securely enable communication of data from a kernel of an operating system to a client, the computer system comprising:

at least one processor;

at least one data storage device coupled to the at least one processor;

a plurality of processes spawned by the at least one processor, the processes including processing logic for:

providing a context object that includes the data to be accessible to the client;

providing the kernel with a secure object handle, the secure object handle including an actual address of the context object and being particular to the context object;

sending the secure object handle from the kernel to the client over a bidirectional interface;

receiving, from the client, the secure object handle from the client over the bidirectional interface, indicating that the client requires access to the data in the context object, and

checking an integrity of the secure object handle in the kernel and allowing access to the data by the client if the integrity check is successful and disallowing access to the data by the client if the integrity check is unsuccessful.

32. The computer system of claim 31 , wherein the context object providing step is carried out with the context object including a unique allocation stamp and wherein the secure object handle includes a field configured to store a value of the allocation stamp.

33. The computer system of claim 31 , wherein the secure object handle includes a signature and wherein the secure handle integrity check includes a step of verifying an integrity of the signature.

34. The computer system of claim 31 , wherein the context object providing step is carried out with the context object including a unique allocation stamp and the secure object handle includes a field configured to store a value of the allocation stamp and wherein the secure object handle includes a signature and the secure handle integrity check includes a step of verifying an integrity of the signature.

35. The computer system of claim 34 , wherein the secure object handle providing step includes generating the signature as a predetermined function of a value of the unique allocation stamp and the address of the context object.

36. The computer system of claim 31 wherein, when the integrity check is successful, the method further includes a step of the client accessing the data at the address of the context object in the received secure object handle.

37. The computer system of claim 33 , wherein the signature integrity checking step includes a step of the kernel computing a temporary variable and comparing the computed temporary variable to the signature in the secure object handle received from the client and disallowing access to the data by the client if the computed temporary variable does not match the signature.

38. The computer system of claim 32 , wherein the integrity checking step includes a step of disallowing access to the data by the client when the value of the allocation stamp in the secure object handle received from the client does not match the unique allocation stamp in the context object.

39. The computer system of claim 32 , further including a step of making the data unavailable to the client by changing the unique allocation stamp.

40. The computer system of claim 32 , wherein the secure object handle providing step is carried out by incorporating at least the address of the context object and the signature in a header of a packet configured according to a predetermined communication protocol.

41. The computer system of claim 33 , wherein the signature integrity checking step includes at least one Boolean Exclusive OR (XOR) operation.

42. The computer system of claim 33 , wherein the signature integrity checking step includes a Cyclic Redundancy Check (CRC).

43. The computer system of claim 33 , wherein only the kernel carries out the signature integrity checking step.

44. The computer system of claim 40 , wherein the protocol is a connection oriented protocol.

45. The computer system of claim 40 , wherein the protocol includes TCP.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2019
From: III HOLDINGS 3, LLC
To: SEAGATE TECHNOLOGY LLC
Reel/Frame 048167/0414 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 5, 2018
From: III HOLDINGS 1, LLC
To: III HOLDINGS 3, LLC
Reel/Frame 046274/0626 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 6, 2014
From: UNISTAR TECHNOLOGIES, LLC
To: III HOLDINGS 1, LLC
Reel/Frame 032159/0741 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 22, 2013
From: DOYLE SALEWSKI INC. SOLELY AS PRIVATELY APPOINTED RECEIVER FOR LIQUID COMPUTING CORPORATION
To: UNISTAR TECHNOLOGIES, LLC
Reel/Frame 031663/0122 →
CORRECTIVE ASSIGNMENT TO CORRECT THE STATE OF INCORPORATION FROM DELAWARE TO CANADA PREVIOUSLY RECORDED ON REEL 019586 FRAME 0112. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Feb 6, 2008
From: HUANG, KAIYUAN; KEMP, MICHAEL F.; MUNTER, ERNST
To: LIQUID COMPUTING CORPORATION
Reel/Frame 020472/0649 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 20, 2007
From: HUANG, KAIYUAN; KEMP, MICHAEL F.; MUNTER, ERNST
To: LIQUID COMPUTING CORPORATION
Reel/Frame 019586/0112 →