IP Library Granted Patent US 7,424,739
Granted Patent B2
US 7,424,739 · App. 10/977,400 · Granted Sep 9, 2008

On-machine communication verification

Assignee: Microaoft 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,424,739
App. No.
10/977,400
Granted
Sep 9, 2008
Kind
B2
Abstract

The present invention provides for validating that one or more modules reside on the same machine. When a second module wishes to establish communication with a first module, a shared memory that is accessible by the modules—but inaccessible by modules outside the machine—is used to store random data. The first module listens on a transport address corresponding to the random data for communication activity. The second module retrieves the random data from the shared memory, and then uses this data for determining the appropriate transport address to send information to when establishing the communication with the first module.

Claims (29)

1. In a computing device, a method of efficiently establishing a secure communication used for receiving information from one or more modules on the computing device by utilizing a secure shared memory in determining a transport address to be used for the secure communication, the method comprising:

generating first random data by a listener module, wherein the first random data is used to identify a first transport address of the listener module, and the first transport address is used to verify that a connector module resides on the computing device and to establish communicate between the listener module and the connector module;

storing the first random data by the listener module in the secured shared memory, the first random data identifying the first transport address, the secured shared memory being accessible by the listener and the connector modules, but inaccessible to modules outside the computing device;

the listener module listening for communication activity at the transport address identified by the random data;

the listener module receiving at the first transport address the information from the connector module to establish that the connector module resides on the computing device;

generating second random data, by the listen module, the second random data used to further verify that the connector module resides on the computing device;

generating third random data by the connector module, the third random data used to verify that the listener module resides on the computing device;

sending the third random data to the first transport address by the connector module;

storing the third random data in the secure shared memory by the listen module upon receiving the third random data from the connector module; and

retrieving information corresponding to the third random data from the shared memory by the connector module for proving that the listener module resides on the computing device.

2. The method of claim 1 , wherein the first random data is one or more of a string, number, uniform resource identifier or name used to uniquely identify the first transport address.

3. The method of claim 1 , wherein the first random data is a number, the method further including acts of: converting the number to one or more of a string, uniform resource identifier or name for uniquely identifying the first transport address.

4. The method of claim 1 , wherein the information is received via a transport protocol chosen from the list of Named Pipe, TCP/IP, HTTP or UDP.

5. The method of claim 1 , wherein the first random data is hashed using a hash function that transforms the random data for appropriately identifying the first transport address.

6. The method of claim 1 , wherein after a predetermined period of time, listener module discontinues the communication with the connector module over the first transport address.

7. In a computing device, a computer program product comprising a computer readable storage medium having stored thereon computer executable instructions that, when executed by a processor, can cause the messaging system to perform the following:

generating first random data by a listener module, wherein the first random data is used to identify a first transport address of the listener module, and the first transport address is used to verify that a connector module resides on the computing device and to establish communicate between the listener module and the connector module;

storing the first random data by the listener module in the secured shared memory, the first random data identifying the first transport address, the secured shared memory being accessible by the listener and the connector modules, but inaccessible to modules outside the computing device;

the listener module listening for communication activity at the transport address identified by the random data;

the listener module receiving at the first transport address the information from the connector module to establish that the connector module resides on the computing device;

generating second random data, by the listen module, the second random data used to further verify that the connector module resides on the computing device;

generating third random data by the connector module, the third random data used to verify that the listener module resides on the computing device;

sending the third random data to the first transport address by the connector module;

storing the third random data in the secure shared memory by the listen module upon receiving the third random data from the connector module; and

retrieving information corresponding to the third random data from the shared memory by the connector module for proving that the listener module resides on the computing device.

8. The computer program product of claim 7 , wherein the first random data is one or more of a string, number, uniform resource identifier or name used to uniquely identify the first transport address.

9. The computer program product of claim 8 , wherein the first random data is hashed using a hash function that transforms the random data for appropriately identifying the first transport address.

10. The computer program product of claim 7 , wherein the first random data is a number, the computer program product further comprising computer executable instructions for converting the number to one or more of a string, a uniform resource identifier or a name for uniquely identifying the first transport address.

11. The computer program product of claim 7 , wherein the information received is received via a transport protocol chosen from one of a Named Pipe, TCP/IP, HTTP or UDP.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034543/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 7, 2004
From: PESSACH, JANIV
To: MICROSOFT CORPORATION
Reel/Frame 015421/0287 →
Continuity (1)
Related Publication 20060095765A1 · May 4, 2006