IP Library › Granted Patent US 11,949,688
Granted Patent B2
US 11,949,688 · App. 17/426,743 · Granted Apr 2, 2024

Securing browser cookies

Inventors: Gang Wang (Jersey City, NJ); Marcel M. Moti Yung (New York, NY)
Assignee: Google LLC
H04L63/123H04L9/3247
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,949,688
App. No.
17/426,743
Granted
Apr 2, 2024
Kind
B2
Abstract

Methods, systems, and apparatus, including an apparatus for verifying the integrity of requests. In some aspects, a method includes receiving, from an application, a request including an attestation token of the application. The attestation token includes a set of data that includes at least a public key of the application and a token creation time that indicates a time at which the attestation token was created. The attestation also includes a signature of the set of data. The signature is generated using a private key that corresponds to the public key. The integrity of the request is verified using the attestation token. The verification includes determining that the integrity of the request is valid based on a determination that the token creation time is within a threshold duration of the time at which the request was received and a determination that the set of data has not been.

Claims (60)

1. A computer-implement method comprising:

receiving, from an application of a client device, a request including an attestation token of the application, the attestation token including:

a set of data that includes at least a public key of the application and a token creation time that indicates a time at which the attestation token was created;

a signature of the set of data, wherein the signature was generated using a private key that corresponds to the public key; and

a group of encrypted cookie elements that includes, for each of a plurality of recipients of the request, a respective encrypted cookie element that includes an encrypted result from encrypting a cookie of the recipient that is stored on the client device using a public key of the recipient, wherein the respective encrypted cookie element for each recipient is different from the respective encrypted cookie element for each other recipient; and

verifying an integrity of the request using the attestation token, including:

determining whether the token creation time is within a threshold duration of a time at which the request was received;

determining, using the public key and the signature of the set of data generated using the private key, whether the set of data was modified after the attestation token was created; and

determining that the integrity of the request is valid based at least on determination that the token creation time is within the threshold duration of the time at which the request was received and a determination that the set of data has not been modified since the attestation token was created; and

responding to the request in response to determining that the integrity of the request is valid.

2. The method of claim 1 , wherein the application is a web browser.

3. The method of claim 2 , wherein:

the set of data further comprises a browser integrity token that specifies whether integrity of the web browser is valid; and

determining that the integrity of the request is valid comprises determining that the browser integrity token specifies that the integrity of the web browser is valid.

4. The method of claim 1 , wherein the request is for content for delivery to application, the method further comprising providing the content in response to determining that the request is valid.

5. The method of claim 1 , wherein the set of data further comprises a payload that includes data specific to the request.

6. The method of claim 1 , wherein the set of data further comprises a payload that includes data specific to the request, the request comprises a request to delete user data and the payload comprises data specifying an operation to delete the user data.

7. The method of claim 1 , wherein the encrypted result of the respective encrypted cookie element for each recipient includes an encrypted result from encrypting a combination of the cookie of the recipient and the signature of the set of data.

8. The method of claim 7 , wherein determining that the integrity of the request is valid comprises:

decrypting, by a given recipient and using a private key of the given recipient, a given encrypted cookie element to generate a decrypted cookie element;

determining that the decrypted cookie element comprises a first portion that matches the signature of the set of data; and

determining that the decrypted cookie element comprises a second portion that matches a cookie identifier of the given recipient.

9. The method of claim 1 , wherein the encrypted result of the respective encrypted cookie element for each recipient includes an encrypted result from encrypting the cookie of the recipient using the signature of the set of data as an encryption initialization vector.

10. The method of claim 9 , wherein determining that the integrity of the request is valid comprises:

decrypting, by a given recipient and using a private key of the given recipient and the signature of the set of data as the encryption initialization vector, a given encrypted cookie element to generate a decrypted cookie element; and

determining that the decrypted cookie element matches a cookie identifier of the given recipient.

11. The method of claim 1 , further comprising ignoring the request whenever a determination is made that the integrity of the request not valid.

12. A computer-implement method comprising:

generating, at a web browser of a client device, an attestation token having:

a set of data that includes at least (i) a public key of the web browser and (ii) a token creation time that indicates a time at which the attestation token was created;

a signature of the set of data, wherein the signature is generated using a private key that corresponds to the public key; and

a group of encrypted cookie elements that includes, for each of a plurality of recipients, a respective encrypted cookie element that includes an encrypted result from encrypting a cookie of the recipient that is stored on the client device using a public key of the recipient, wherein the respective encrypted cookie element for each recipient is different from the respective encrypted cookie element for each other recipient and

transmitting a request to one or more of the plurality of recipients, the request including the attestation token.

13. The method of claim 12 , wherein:

the set of data further comprises a browser integrity token that specifies whether integrity of the web browser is valid.

14. The method of claim 12 , wherein the set of data further comprises a payload that includes data specific to the request.

15. The method of claim 12 , wherein the set of data further comprises a payload that includes data specific to the request, the request comprises a request to delete user data and the payload comprises data specifying an operation to delete the user data.

16. The method of claim 12 , wherein the encrypted result of the respective encrypted cookie element for each recipient includes an encrypted result from encrypting a combination of the cookie of the recipient and the signature of the set of data.

17. The method of claim 12 , wherein the encrypted result of the respective encrypted cookie element for each recipient includes an encrypted result from encrypting the cookie of the recipient using the signature of the set of data as an encryption initialization vector.

18. A system, comprising:

one or more processors; and

one or more memories having stored thereon computer readable instructions configured to cause the one or more processors to perform operations comprising:

receiving, from an application of a client device, a request including an attestation token of the application, the attestation token including:

a set of data that includes at least a public key of the application and a token creation time that indicates a time at which the attestation token was created;

a signature of the set of data, wherein the signature was generated using a private key that corresponds to the public key; and

a group of encrypted cookie elements that includes, for each of a plurality of recipients of the request, a respective encrypted cookie element that includes an encrypted result from encrypting a cookie of the recipient that is stored on the client device using a public key of the recipient, wherein the respective encrypted cookie element for each recipient is different from the respective encrypted cookie element for each other recipient and

verifying an integrity of the request using the attestation token, including:

determining whether the token creation time is within a threshold duration of a time at which the request was received;

determining, using the public key and the signature of the set of data generated using the private key, whether the set of data was modified after the attestation token was created; and

determining that the integrity of the request is valid based at least on determination that the token creation time is within the threshold duration of the time at which the request was received and a determination that the set of data has not been modified since the attestation token was created; and

responding to the request in response to determining that the integrity of the request is valid.

19. The system of claim 18 , wherein the encrypted result of the respective encrypted cookie element for each recipient includes an encrypted result from encrypting a combination of the cookie of the recipient and the signature of the set of data.

20. The system of claim 18 , wherein determining that the integrity of the request is valid comprises:

decrypting, by a given recipient and using a private key of the given recipient, a given encrypted cookie element to generate a decrypted cookie element;

determining that the decrypted cookie element comprises a first portion that matches the signature of the set of data; and

determining that the decrypted cookie element comprises a second portion that matches a cookie identifier of the given recipient.

21. The system of claim 18 , wherein the encrypted result of the respective encrypted cookie element for each recipient includes an encrypted result from encrypting the cookie of the recipient using the signature of the set of data as an encryption initialization vector.

22. The system of claim 18 , wherein determining that the integrity of the request is valid comprises:

decrypting, by a given recipient and using a private key of the given recipient and the signature of the set of data as the encryption initialization vector, a given encrypted cookie element to generate a decrypted cookie element; and

determining that the decrypted cookie element matches a cookie identifier of the given recipient.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 8, 2021
From: WANG, GANG; YUNG, MARCEL M. MOTI
To: GOOGLE LLC
Reel/Frame 058340/0983 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 19, 2021
From: WANG, GANG; YUNG, MARCEL M. MOTI
To: GOOGLE LLC
Reel/Frame 057225/0989 →
Continuity (2)
Provisional Application 62886195 · Aug 13, 2019
Related Publication 20220166780A1 · May 26, 2022