IP Library Granted Patent US 12,647,429
Granted Patent B2
US 12,647,429 · App. 18/575,463 · Granted Jun 2, 2026

Privacy-preserving location attestation

Inventors: Alex Jacobson (Mountain View, CA); Nicholas Sabatino (Mountain View, CA); Sudhi Herle (Mountain View, CA)
Assignee: GOOGLE LLC
H04L63/107G06F9/547
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 12,647,429
App. No.
18/575,463
Granted
Jun 2, 2026
Kind
B2
Abstract

A non-transitory computer-readable medium stores instructions that implement an application programming interface (API). When invoked by a software entity executing on a computing device, the API is configured to receive, from the application, an indication of a geographic location ( 304 ); obtain, from an operating system of the computing device, an indication of a general geographic area associated with a home location of a user, wherein the operating system prevents the software entity from accessing the indication of the general geographic area ( 306 ); and provide, to the software entity, an indication of whether the geographic location is within the general geographic area ( 308 ).

Claims (36)

1 . A non-transitory computer-readable medium storing thereon instructions that implement an application programming interface (API) on a portable device which, when invoked by a software application executing on the portable device, is configured to:

receive, from the software application, an indication of a current geographic location of the portable device;

obtain, from an operating system of the portable device, an indication of a general geographic area including a home location of the portable device, wherein the operating system prevents the software application from accessing the indication of the general geographic area; and

provide, to the software application, an indication of whether the current geographic location is within the general geographic area.

2 . The non-transitory computer-readable medium of claim 1 , wherein to obtain the indication of the general geographic area, the API is configured to access a privileged region of a memory of the portable device, wherein the privileged region of the memory is inaccessible to the software application.

3 . The non-transitory computer-readable medium of claim 1 , wherein the general geographic area is determined based on periodic readings of one or more sensors of the portable device.

4 . The non-transitory computer-readable medium of claim 1 , wherein the general geographic area is received from a user via a user interface of the portable device.

5 . The non-transitory computer-readable medium of claim 1 , wherein the API is further configured to:

receive, from the software application, a level of desired coarseness of the general geographic location,

and wherein the API compares the current geographic location to the general geographic area according to the level of coarseness.

6 . The non-transitory computer-readable medium of claim 5 , wherein the level of coarseness corresponds to one of country or continent.

7 . The non-transitory computer-readable medium of claim 1 , wherein the API is further configured:

determine an S2 cell based on the indication of the current geographic location; and

provide the indication that the current geographic location is within the general geographic area if the determined S2 cell is within, or coincides with, an S2 cell corresponding to the general geographic area including the home location of the portable device.

8 . The non-transitory computer-readable medium of claim 1 , wherein the API is further configured to:

return an error code in response to determining that the software application invoked the API more than N times during a predetermined period of time.

9 . The non-transitory computer-readable medium of claim 1 wherein the software application is a non-native software application configured to execute the operating system of the portable device.

10 . The non-transitory computer-readable medium of claim 1 , wherein the software application is a script configured to execute in a native browsing application on the portable device.

11 . A method implemented in an operating system of a portable device, the method comprising:

determining, by one or more processors, a general geographic area including a home location of the portable device;

storing, by the one or more processors, an indication of the general geographic area in a privileged region of a memory of the portable device; and

restricting, by the one or more processors, access to the indication, including:

preventing, by the one or more processors, software application executing on the portable device from accessing the indication of the general geographic area, and

granting, by the one or more processors, access to the indication to an API exposed to the software application and configured to operate on the indication without revealing the indication to the software application.

12 . The method of claim 11 , wherein determining the general geographic area includes performing periodic readings of one or more sensors of the portable device.

13 . The method of claim 11 , wherein determining the general geographic area includes performing receiving an indication of the general geographic area via a user interface of the portable device.

14 . A portable device comprising:

one or more processors;

a non-transitory computer-readable medium storing instructions which, when executed by the one or more processors, cause the portable device to:

determine a general geographic area including a home location of the portable device;

store an indication of the general geographic area in a privileged region of a memory of the portable device; and

restrict access to the indication, including:

preventing software application executing on the portable device from accessing the indication of the general geographic area, and

granting access to the indication to an API exposed to the software application and configured to operate on the indication without revealing the indication to the software application.

15 . The portable device of claim 14 , wherein determining the general geographic area includes performing periodic readings of one or more sensors of the portable device.

16 . The portable device of claim 14 , wherein determining the general geographic area includes performing receiving an indication of the general geographic area via a user interface of the portable device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 16, 2024
From: JACOBSON, ALEX; SABATINO, NICHOLAS; HERLE, SUDHI
To: GOOGLE LLC
Reel/Frame 066133/0732 →
Continuity (1)
Related Publication 20240333725A1 · Oct 3, 2024
References Cited (80)
US 8473729B2 · Trethewey · 2013 [cited by examiner]
US 8880047B2 · Konicek · 2014 [cited by examiner]
US 9253198B2 · Hughes, Jr. · 2016 [cited by examiner]
US 9491183B1 · Dippenaar · 2016 [cited by examiner]
US 9754255B1 · Ma · 2017 [cited by examiner]
US 9832648B2 · Vanderhulst · 2017 [cited by examiner]
US 9934386B2 · Trethewey · 2018 [cited by examiner]
US 10387487B1 · Svendsen · 2019 [cited by examiner]
US 10498766B1 · Yu · 2019 [cited by examiner]
US 10555178B1 · Bach et al. · 2020 [cited by applicant]
US 10638305B1 · Chu · 2020 [cited by examiner]
US 10929443B2 · Grochocki, Jr. · 2021 [cited by examiner]
US 10999299B2 · Yang et al. · 2021 [cited by applicant]
US 11044610B2 · Korrapati et al. · 2021 [cited by applicant]
US 11146537B1 · Kennedy · 2021 [cited by examiner]
US 11523282B2 · Buck · 2022 [cited by examiner]
US 20050060575A1 · Trethewey · 2005 [cited by examiner]
US 20060136297A1 · Willis · 2006 [cited by examiner]
US 20060266830A1 · Horozov · 2006 [cited by examiner]
US 20080165961A1 · Lerouge · 2008 [cited by examiner]
US 20090323972A1 · Kohno · 2009 [cited by examiner]
US 20120203663A1 · Sinclair et al. · 2012 [cited by applicant]
US 20120276926A1 · Pitt · 2012 [cited by applicant]
US 20130081120A1 · DeLuca · 2013 [cited by examiner]
US 20140045450A1 · Ballantyne · 2014 [cited by examiner]
US 20140080457A1 · Agrawal · 2014 [cited by examiner]
US 20140090023A1 · Hu · 2014 [cited by examiner]
US 20140096215A1 · Hessler · 2014 [cited by examiner]
US 20150067880A1 · Ward et al. · 2015 [cited by applicant]
US 20150358812A1 · Poiesz · 2015 [cited by examiner]
US 20160117525A1 · Arunachalam · 2016 [cited by examiner]
US 20170012996A1 · Hu · 2017 [cited by examiner]
US 20170026345A1 · Salek · 2017 [cited by examiner]
US 20170195874A1 · DeLeeuw · 2017 [cited by examiner]
US 20170244565A1 · Bronk · 2017 [cited by examiner]
US 20170357425A1 · Smith · 2017 [cited by examiner]
US 20170359189A1 · Smith · 2017 [cited by examiner]
US 20170359191A1 · Smith · 2017 [cited by examiner]
US 20170359193A1 · Smith · 2017 [cited by examiner]
US 20180004747A1 · Smith · 2018 [cited by examiner]
US 20180019986A1 · Manohar · 2018 [cited by examiner]
US 20180091942A1 · Chakra · 2018 [cited by examiner]
US 20180100742A1 · Greenwood · 2018 [cited by examiner]
US 20180100747A1 · Greenwood · 2018 [cited by examiner]
US 20180109914A1 · Kernan · 2018 [cited by examiner]
US 20180342869A1 · Zhang · 2018 [cited by examiner]
US 20190005224A1 · Oliver · 2019 [cited by examiner]
US 20190041223A1 · Yang et al. · 2019 [cited by applicant]
US 20200120480A1 · Chu · 2020 [cited by examiner]
US 20200304993A1 · Connell · 2020 [cited by examiner]
US 20200382912A1 · Dancie · 2020 [cited by examiner]
US 20200410798A1 · Raduchel · 2020 [cited by examiner]
US 20210132179A1 · Jones et al. · 2021 [cited by applicant]
US 20210243595A1 · Buck · 2021 [cited by examiner]
US 20210400624A1 · Driscoll · 2021 [cited by examiner]
US 20220108575A1 · Raduchel · 2022 [cited by examiner]
US 20220141041A1 · Parikh · 2022 [cited by examiner]
US 20230118306A1 · Kotsogiannis · 2023 [cited by examiner]
US 20230185939A1 · Cam-Winget · 2023 [cited by examiner]
US 20230254305A1 · Miel · 2023 [cited by examiner]
US 20230315277A1 · Sun · 2023 [cited by examiner]
US 20240259428A1 · Verma · 2024 [cited by examiner]
US 20240333725A1 · Jacobson · 2024 [cited by examiner]
US 20250260565A1 · Abdelsamie · 2025 [cited by examiner]
EP 1220510A2 · 2002 [cited by applicant]
EP 3863318A1 · 2021 [cited by applicant]
JP H05241810A · 1993 [cited by applicant]
JP 2011512574A · 2011 [cited by applicant]
JP 2016004307A · 2016 [cited by applicant]
JP 2021008756A · 2021 [cited by applicant]
KR 102851435B1 · 2025 [cited by examiner]
WO WO2018201109A1 · 2018 [cited by applicant]
Myles et al., Preserving Privacy in Environments with Location-Based Applications, IEEE, 2003. [cited by examiner]
Arunkumar et al., Location attestation and access control for mobile devices using GeoXACML, Nov. 2016, Elsevier. [cited by examiner]
Vila Tena et al., Privacy challenges of open APIs: case Location Based Services, IEEE, 2011. [cited by examiner]
Zhu et al., Applaus: A Privacy-Preserving Location Proof Updating System for Location-based Services, IEEE, 2011. [cited by examiner]
Xie et al., A Unified Location Sharing Service With End User Privacy Control, Bell Labs Journal, 2011. [cited by examiner]
Canlar et al., Crepuscolo: a Collusion Resistant Privacy Preserving Location Verification System, IEEE, 2013. [cited by examiner]
Japanese Patent Application No. 2024-525902, Notice of Refusal, dated Apr. 8, 2025. [cited by applicant]
International Search Report and Written Opinion for Application No. PCT/US2021/064088, dated Aug. 8, 2022. [cited by applicant]