IP Library Granted Patent US 10,505,902
Granted Patent B2
US 10,505,902 · App. 15/701,196 · Granted Dec 10, 2019

Securely identifying a device using a DNS-controlled proxy

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 10,505,902
App. No.
15/701,196
Granted
Dec 10, 2019
Kind
B2
Abstract

Systems and methods for identifying a device identifier of a computing device using a browser. A proxy executing on a computing device holds open a connection request from a browser and establishes a secure connection between the proxy and a web server. The proxy sends the first user identifier and the device identifier to a web server. The web server stores the first user identifier and the device identifier as an entry in a cache. The proxy then connects with the browser and establishes a secure connection between the browser and the web server via the proxy. The proxy receives and forwards a second user identifier from the browser to the web server. The web server determines that the second user identifier matches the first user identifier, extracts the associated device identifier, and sends the device identifier to the browser via the proxy.

Claims (55)

1. A method of determining a device identifier, the method comprising:

at a proxy, retrieving a first user identifier and a device identifier associated with a computing device from a cache of the computing device and sending the first user identifier and the device identifier over a first secure network connection in a first encrypted message to a web server, wherein the web server decrypts the first encrypted message and stores the first user identifier and the device identifier as an entry in a cache of the web server;

responsive to receiving an acknowledgement at the proxy from the web server, establishing a second secure network connection between a browser and the web server via the proxy;

at the proxy, receiving a second encrypted message from the browser comprising a second user identifier and forwarding the second encrypted message to the web server over the second secure network connection, wherein the web server decrypts the second encrypted message, determines that the second user identifier matches the first user identifier stored in the cache of the web server, and extracts the device identifier associated with the first user identifier from the cache of the web server; and

at the proxy, receiving a third encrypted message comprising the device identifier from the web server over the second secure network connection and forwarding the third encrypted message to the browser over the second secure network connection, wherein the browser decrypts the third encrypted message to obtain the device identifier and sends the device identifier to a web site hosted by the web server, and wherein the device identifier is accessible to the web server via the browser and indicates, to the web server an installation state of a software application on the computing device.

2. The method of claim 1 , wherein the first encrypted message is a first encrypted HTTP request and the second encrypted message is a second encrypted HTTP request.

3. The method of claim 1 , further comprising:

receiving, at the proxy, a request from the browser to establish a secure connection via the proxy between the browser and a first subdomain of the web site,

wherein retrieving the first user identifier is performed without acknowledging the request from the browser.

4. The method of claim 3 , wherein establishing the second secure network connection is performed in response to receiving an acknowledgment of the second encrypted message.

5. The method of claim 3 , wherein the browser resolves an address of the first subdomain with a Domain Name Server and the Domain Name Server returns an address of the proxy to redirect the request from the browser to the proxy.

6. The method of claim 1 , wherein the first user identifier corresponds to a in to a desktop application running on the computing device; and

wherein the second user identifier corresponds to a login to a website hosted on the web server.

7. The method of claim 1 , wherein

wherein determining by the web server that the second user identifier matches the first user identifier stored in the cache of the web server indicates that the browser is executing on the computing device.

8. The method of claim 1 , wherein security settings of the browser prevent the browser from retrieving the device identifier directly from the cache of the computing device.

9. The method of claim 1 , wherein a machine state of the computing device is included in both the first encrypted message and the third encrypted message.

10. A system comprising:

a web server;

a proxy comprising:

a processing device; and

a non-transitory computer-readable medium having program code stored thereon that, when executed by the processing device, cause the processing device to perform operations comprising:

receiving a connection request from a browser executing on a computing device;

while holding open the connection request from the browser, establishing a fir secure network connection to the web server via a network;

retrieving a first user identifier and a device identifier associated with the computing device from a cache of the computing device and sending the first user identifier and the device identifier over the fir secure network connection in a first encrypted message to the web server;

responsive to receiving an acknowledgement at the proxy from the web server, establishing a second secure network connection between the browser and the web server via the proxy;

receiving a second encrypted message from the browser comprising a second user identifier and forwarding the second encrypted message to the web server over the second secure network connection; and

receiving a third encrypted message comprising the device identifier from the web server over the second secure network connection and forwarding the third encrypted message to the browser over the second secure network connection, wherein

the web server is configured to:

receive, from the proxy, the first user identifier and the device identifier;

store the first user identifier in a cache of the web server;

send the acknowledgement to the proxy;

decrypt the second encrypted message;

determine that the second user identifier matches the first user identifier stored in the cache of the web server;

extract the device identifier associated with the first user identifier from the cache of the web server; and

send the third encrypted message comprising the device identifier to the browser.

11. The system of claim 10 , wherein the proxy establishes the second secure network connection using a second address resolved from a second Uniform Resource Locator associated with a second subdomain of a top level domain.

12. The system of claim 10 , wherein the first user identifier corresponds to a login to a desktop application running on the computing device;

wherein the second user identifier corresponds to a login to a website hosted by the web server using the browser; and

wherein determining that the second user identifier matches the first user identifier stored in the cache of the web server indicates that both the browser and the desktop application are executing on the computing device.

13. The system of claim 10 , wherein a machine state of the computing device is included in both the first encrypted message and the third encrypted message.

14. A non-transitory computer-readable storage medium storing computer-executable program instructions, wherein when executed by a processing device the computer-executable program instructions cause the processing device to perform a method comprising:

a step for retrieving, at a proxy, a first user identifier and a device identifier associated with a computing device using a browser, from a cache of the computing device and sending the first user identifier and the device identifier over a first secure network connection in a first encrypted message to a web server, wherein the web server decrypts the first encrypted message and stores the first user identifier and the device identifier as an entry in a cache of the web server;

a step for establishing, responsive to receiving an acknowledgement at the proxy from the web server, a second secure network connection between the browser and the web server via the proxy;

a step for receiving, at the proxy, a second encrypted message from the browser comprising a second user identifier and forwarding the second encrypted message to the web server over the second secure network connection, wherein the web server decrypts the second encrypted message, determines that the second user identifier matches the first user identifier stored in the cache of the web server, and extracts the device identifier associated with the first user identifier from the cache of the web server; and

a step for receiving, at the proxy, a third encrypted message comprising the device identifier from the web server over the second network secure connection and forwarding the third encrypted message to the browser over the second secure network connection, wherein the browser decrypts the third encrypted message to obtain the device identifier.

15. The non-transitory computer-readable storage medium of claim 14 , wherein the computer-executable program instructions cause the processing device to further perform:

a step for receiving, at the proxy, a connection request from the browser; and

a step for establishing the first secure network connection between the proxy and the web server without acknowledging the connection request from the browser.

16. The non-transitory computer-readable storage medium of claim 15 , wherein the web server hosts a subdomain of a web site.

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

wherein determining by the web server that the second user identifier matches the first user identifier stored in the cache of the web server indicates that the browser is executing on the computing device.

18. The non-transitory computer-readable storage medium of claim 14 , wherein the computer-executable program instructions cause the processing device to further perform a step for receiving a connection request from the browser, and

wherein the browser generates the connection request by resolving an address of a first subdomain with a Domain Name Server and the Domain Name Server returns an address of the proxy to redirect the connection request from the browser to the proxy.

19. The non-transitory computer-readable storage medium of claim 14 , wherein a machine state of the computing device is included in both the first encrypted message and the third encrypted message.

Assignments (2)
CHANGE OF NAME Recorded Mar 6, 2019
From: ADOBE SYSTEMS INCORPORATED
To: ADOBE INC.
Reel/Frame 048525/0042 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 11, 2017
From: KUMAR, KANUJ; PATIDAR, MANSUKH
To: ADOBE SYSTEMS INCORPORATED
Reel/Frame 043549/0056 →