IP Library Granted Patent US 11,570,144
Granted Patent B2
US 11,570,144 · App. 17/694,533 · Granted Jan 31, 2023

Protecting client privacy during browsing

Inventors: Brian James Buck (Livermore, CA); Stephen Lind (El Cerrito, CA); Brian Sullivan (Jamaica Plain, MA)
Assignee: Lookout, Inc.
H04L61/4511H04L61/5007H04L63/0407H04L63/0428H04L63/10
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 11,570,144
App. No.
17/694,533
Granted
Jan 31, 2023
Kind
B2
Abstract

Methods and systems provide for receiving an assessment of a full uniform resource locator (URL) in a browser session in advance of the browser accessing the URL, maintaining client privacy in the process using a proxy between the client device and an assessment component on a server. The proxy receives the client identity and a URL. After substituting an arbitrary query identifier for the client identity in the assessment request, the proxy forwards the anonymized assessment request to the assessment component. In return the proxy receives classification data regarding the URL associated with the arbitrary query identifier, which the proxy associates with the client identity and subsequently forwards the classification data to the client.

Claims (102)

1. A method for classifying a full uniform resource locator (URL) comprising:

receiving, by a first security component executing on a first server, a query from a client device, the query including a full URL and a request for classification data associated with the full URL, the full URL having been obtained, by a second security component embedded in an operating system or a browser executing on the client device, in advance of the browser accessing the URL;

modifying, by the first security component, the query by removing from the query identification of the client device and adding a query identifier;

associating, by the first security component, the query identifier with the client device in a query database;

sending, by the first security component, the modified query to an assessment component executing on a second server;

receiving, by the first security component from the assessment component, a response including the query identifier and classification data associated with the full URL, the assessment component having:

accessed a classification data database;

compared the full URL to classification data stored in the database;

retrieved any associated classification data; and

included the retrieved associated classification data and the query identifier in the response;

retrieving, by the first security component, the identity of the client device from the query database; and

evaluating the retrieved classification data to determine whether to allow the browser to access the URL.

2. The method of claim 1 , wherein the evaluating the classification data to determine whether to allow the browser to access the URL, includes:

sending, by the first security component, the retrieved classification data to the second security component, the second security component evaluating the classification data to determine whether to allow the browser to access the URL.

3. The method of claim 1 , wherein the evaluating the classification data to determine whether to allow the browser to access the URL, includes:

the first security component evaluating the classification data to determine whether to allow the browser to access the URL, the method further including:

sending, by the first security component to the second security component, an assessment or command regarding whether to allow the browser to access the URL.

4. The method of claim 1 , wherein the evaluating the classification data to determine whether to allow the browser to access the URL, includes:

the first security component evaluating the classification data to determine whether to allow the browser to access the URL, the method further including:

when the evaluation of the classification data results in a determination regarding whether to allow the browser to access the URL, sending, by the first security component to the second security component, an assessment or command regarding whether to allow the browser to access the URL, or

when the evaluation of the classification data does not result in a determination regarding whether to allow the browser to access the URL, sending, by the first security component, the retrieved classification data to the second security component, the second security component evaluating the classification data to determine whether to allow the browser to access the URL.

5. The method of claim 1 , wherein:

the full URL is an encrypted full URL;

the assessment component having compared the full URL to classification data stored in the database includes the assessment component having decrypted the encrypted full URL and having compared the decrypted full URL to classification data stored in the database; and

the retrieving, by the first security component, the identity of the client device from the query database includes retrieving, by the first security component using the query identifier in the response, the identity of the client device from the query database.

6. The method of claim 5 , wherein:

the query further includes an encrypted client public key;

the assessment component having included the retrieved associated classification data and the query identifier in the response includes the assessment component having:

decrypted the encrypted client public key;

encrypted the retrieved associated classification data using the client public key; and

included the encrypted retrieved associated classification data in the response.

7. The method of claim 6 , wherein the evaluating the retrieved classification data to determine whether to allow the browser to access the URL, includes:

sending, by the first security component, the encrypted retrieved associated classification data to the second security component, the second security component decrypting the encrypted retrieved associated classification data and evaluating the decrypted classification data to determine whether to allow the browser to access the URL.

8. A system for classifying a full uniform resource locator (URL) comprising:

a first server including at least one processor and memory storing first instructions;

a second server including at least one processor and memory storing second instructions and a client device including at least one processor and memory storing third instructions, the first, second, and third instructions configured to cause the first server, the second server, or the client device, respectively, to:

receive, by a first security component executing on the first server according to the first instructions, a query from the client device, the query including a full URL and a request for classification data associated with the full URL, the full URL having been obtained, by a second security component embedded in an operating system or a browser executing on the client device according to the third instructions, in advance of the browser accessing the URL;

modify, by the first security component, the query by removing from the query identification of the client device and adding a query identifier;

associate, by the first security component, the query identifier with the client device in a query database;

send, by the first security component, the modified query to an assessment component executing on the second server according to the second instructions;

receive, by the first security component from the assessment component, a response including the query identifier and classification data associated with the full URL, the assessment component having:

accessed a classification data database;

compared the full URL to classification data stored in the database;

retrieved any associated classification data; and

included the retrieved associated classification data and the query identifier in the response;

retrieve, by the first security component, the identity of the client device from the query database; and

evaluate, by the first security component or the second security component, the retrieved classification data to determine whether to allow the browser to access the URL.

9. The system of claim 8 , wherein the evaluate, by the first security component or the second security component, the retrieved classification data to determine whether to allow the browser to access the URL, includes:

sending, by the first security component, the retrieved classification data to the second security component, the second security component evaluating the classification data to determine whether to allow the browser to access the URL.

10. The system of claim 8 , wherein the evaluate, by the first security component or the second security component, the retrieved classification data to determine whether to allow the browser to access the URL, includes:

the first security component evaluating the classification data to determine whether to allow the browser to access the URL, the method further including:

sending, by the first security component to the second security component, an assessment or command regarding whether to allow the browser to access the URL.

11. The system of claim 8 , wherein the evaluate, by the first security component or the second security component, the retrieved classification data to determine whether to allow the browser to access the URL includes:

the first security component evaluating the classification data to determine whether to allow the browser to access the URL, the method further including:

when the evaluation of the classification data results in a determination regarding whether to allow the browser to access the URL, sending, by the first security component to the second security component, an assessment or command regarding whether to allow the browser to access the URL, or

when the evaluation of the classification data does not result in a determination regarding whether to allow the browser to access the URL, sending, by the first security component, the retrieved classification data to the second security component, the second security component evaluating the classification data to determine whether to allow the browser to access the URL.

12. The system of claim 8 , wherein:

the full URL is an encrypted full URL;

the assessment component having compared the full URL to classification data stored in the database includes the assessment component having decrypted the encrypted URL and having compared the decrypted full URL to classification data stored in the database; and

the retrieving, by the first security component, the identity of the client device from the query database includes retrieving, by the first security component using the query identifier in the response, the identity of the client device from the query database.

13. The system of claim 12 , wherein:

the query further includes an encrypted client public key;

the assessment component having included the retrieved associated classification data and the query identifier in the response includes the assessment component having:

decrypted the encrypted client public key;

encrypted the retrieved associated classification data using the client public key; and

included the encrypted retrieved associated classification data in the response.

14. The system of claim 13 , wherein the evaluating the retrieved classification data to determine whether to allow the browser to access the URL, includes:

sending, by the first security component, the encrypted retrieved associated classification data to the second security component, the second security component decrypting the encrypted retrieved associated classification data and evaluating the decrypted classification data to determine whether to allow the browser to access the URL.

15. A non-transitory storage medium storing computer-readable instructions, which when executed, cause a first security component executing on a first server to:

receive a query from a client device, the query including a full URL and a request for classification data associated with the full URL, the full URL having been obtained, by a second security component embedded in an operating system or a browser executing on the client device, in advance of the browser accessing the URL;

modify the query by removing from the query identification of the client device and adding a query identifier;

associate the query identifier with the client device in a query database;

send the modified query to an assessment component executing on the second server according to the second instructions;

receive, from the assessment component, a response including the query identifier and classification data associated with the full URL, the assessment component having:

accessed a classification data database;

compared the full URL to classification data stored in the database;

retrieved any associated classification data; and

included the retrieved associated classification data and the query identifier in the response;

retrieve the identity of the client device from the query database; and

one or more from the following:

evaluate the retrieved classification data to determine whether to allow the browser to access the URL, or

send the retrieved classification data to the second security component.

16. The storage medium of claim 15 , the instructions further causing the first security component to:

send, to the second security component, an assessment or command regarding whether to allow the browser to access the URL.

17. The storage medium of claim 15 , wherein the one or more from the following:

evaluate the retrieved classification data to determine whether to allow the browser to access the URL, or

send the retrieved classification data to the second security component, includes:

evaluate the retrieved classification data to determine whether to allow the browser to access the URL, and the instructions further causing the first security component to:

when the evaluation of the retrieved classification data results in a determination regarding whether to allow the browser to access the URL, send, to the second security component, an assessment or command regarding whether to allow the browser to access the URL, or

when the evaluation of the retrieved classification data does not result in a determination regarding whether to allow the browser to access the URL, send the retrieved classification data to the second security component for the second security component to evaluate to determine whether to allow the browser to access the URL.

18. The storage medium of claim 15 , wherein:

the full URL is an encrypted full URL;

the assessment component having compared the full URL to classification data stored in the database includes the assessment component having decrypted the encrypted full URL and having compared the decrypted full URL to classification data stored in the database; and

the retrieve the identity of the client device from the query database includes retrieving, by the first security component using the query identifier in the response, the identity of the client device from the query database.

19. The storage medium of claim 18 , wherein:

the query further includes an encrypted client public key;

the assessment component having included the retrieved associated classification data and the query identifier in the response includes the assessment component having:

decrypted the encrypted client public key;

encrypted the retrieved associated classification data using the client public key; and

included the encrypted retrieved associated classification data in the response.

20. The storage medium of claim 19 , wherein the evaluate the retrieved classification data to determine whether to allow the browser to access the URL includes:

sending the encrypted retrieved associated classification data to the second security component for the second security component to decrypt the encrypted retrieved associated classification data and evaluate the decrypted classification data to determine whether to allow the browser to access the URL.

Assignments (4)
SECURITY INTEREST Recorded Oct 7, 2025
From: LOOKOUT, INC.
To: MIDCAP FINANCIAL TRUST
Reel/Frame 073028/0189 →
SECURITY INTEREST Recorded Oct 2, 2025
From: LOOKOUT, INC.
To: CRESCENT COVE OPPORTUNITY LENDING, LLC, AS AGENT
Reel/Frame 072989/0675 →
SECURITY INTEREST Recorded Aug 10, 2024
From: LOOKOUT, INC.
To: MIDCAP FINANCIAL TRUST
Reel/Frame 068538/0177 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 16, 2022
From: BUCK, BRIAN JAMES; LIND, STEPHEN; SULLIVAN, BRIAN
To: LOOKOUT, INC.
Reel/Frame 059287/0159 →