Attesting for geographic locations of communication devices

Techniques for a location service to determine geographic locations (or “geolocations”) of user devices connected to a telecommunications network, and provide signed certificates that attest to the user devices being at geolocations at particular times. The location service may calculate, or receive, geolocations of user devices that have been determined using network-based localization techniques for telecommunications networks where the network infrastructure is used to determine the geolocations. Because user devices cannot fake or spoof these geolocations, the location service may populate certificates with indications of geolocations of user devices at different times. Additionally, the location service may act as a certificate authority by digitally signing these certificates and issuing digitally signed certificates that attest to geolocations of user devices. These digitally signed certificates can be presented with the guarantee that they have not been modified since they were issued, and that the information in the signed certificate is trustworthy.

BACKGROUND

Modern user devices provide many useful services to users via applications that are installed on their devices. User simply download these applications onto their devices and the users are able to access many different, useful services. For instance, users can download various location applications that provide different forms of location services, such as applications that provide users with directions or maps, applications that help users locate lost devices, applications that allow third parties to monitor the movement of other devices (e.g., parents monitoring their children's movements), and so forth. To provide these services, these applications harness Global Positioning System (GPS) receivers in the user devices to determine geographic locations (or “geolocations”) of the user devices. Generally, GPS is a radio navigation system that uses radio waves communicated between satellites and GPS receivers within the user devices to enable the user devices to calculate their respective geolocations.

While it is not an issue for these applications on user devices to harness these on-board GPS receivers to calculate the geolocation of the devices, geolocations determined locally on the user devices cannot be relied upon by third parties as trustworthy assertions of geolocations of the user devices. Specifically, because the GPS receivers on user devices are used to calculate the geolocations locally on the devices, the user devices can be configured to fake their GPS locations, and this has degraded the ability of third parties to trust user devices that share geolocation data to prove where the user devices were at certain times.

DETAILED DESCRIPTION

The present disclosure relates to systems and techniques for a location service to determine geographic locations (or “geolocations”) of user devices connected to a telecommunications network, and provide digitally signed certificates that attest to the user devices being at the geolocations at particular times. Many user devices use Global Positioning System (GPS) receivers to calculate geolocations of the devices, but these geolocations or timestamp data can be faked due to them being calculated locally on the devices. The location system may calculate, or receive, geolocations of user devices that have been determined using network-based localization techniques for telecommunications networks where the network infrastructure is used to determine the geolocations, and not the user device. Because user devices cannot fake or spoof these geolocations, the location service can rely on this information and may populate certificates with this geolocation information indicating geolocations of user devices at different times. Additionally, the location service may act as a certificate authority by digitally signing these certificates and issuing digitally signed certificates that attest to geolocations of user devices at different times. These digitally signed certificates can be presented to various users or entities with the guarantee that they have not been modified since they were issued, and that the information in the signed certificates is trustworthy.

The location service may be provided by, or managed by, a service provider that acts as a Trust Service Provider (TSP) of digital certificates that attest to the truthfulness of user devices being at geolocations at specified times. The service provider may offer additional services as well, including cloud-based services that may support the location service. As described herein, the location service may be a computing device, or a system of computing devices, that include and execute components configured to perform the operations described herein for attesting to geolocations of user devices. Additionally, the location service monitors or determines the geolocation of user devices that have registered for, or opted in for, use of the location service.

To determine geolocations of user devices, the location service may receive network data, or geolocation data, from a telecommunications network. The telecommunications network may generally be any network over which user devices communicate, and where the networking infrastructure is primarily responsible for determining the geolocation of user devices in the network. For instance, the telecommunications network may be a cellular network, or mobile network, such as a fifth-generation (5G) cellular network, a fourth-generation (4G) cellular network, a 4G Long Term Evolution (LTE) cellular network, and so forth. User devices send signals to radio towers and/or other network devices in telecommunications networks by pinging devices in the network infrastructure to determine their location, or simply by communicating over the network infrastructure (e.g., phone calls, text messages, etc.). There are many techniques used by telecommunications networks to determine geographic locations or positions of the user devices relative to the network devices, such as using Received Signal Strength Indicators (RSSIs) or other power measurements for communicated signals, round-trip-time (RTT) or latency of signals, difference of arrival (DOA) measurements for signals, beamforming techniques, triangulation techniques and/or various other techniques. To determine locations of user devices, the user devices are generally needed to communicate signals with devices in the telecommunications network infrastructure, but the actual calculating or determining of the geolocations for user devices is performed by devices of the telecommunications network (and/or control plane systems).

Accordingly, the location service may receive network data and/or geolocation data from telecommunications networks to determine geolocations of user devices. In some instances, the telecommunications networks may be owned, managed, and/or operated by a same service provider as the location service. However, the telecommunications network may be owned, managed, and/or operated by a different service provider that provides the data or information to the location service. Depending on the use case, the location service may periodically, continuously, or on an on-demand basis, obtain network data and/or geolocation data from the telecommunications network. In some examples, the location service may simply receive geolocation data indicating a geolocation of a user device that as already calculated by the telecommunications network (e.g., longitudinal/latitudinal coordinates, physical addresses, etc.). Additionally, or alternatively, the telecommunications network may provide the location service with the raw network data that the location service can then use to calculate or determine geolocations of user devices. The network data may include various information, such as RTT or latency measurements of signals, power measurements (e.g., RSSIs), DOA measurements, locations of networking infrastructure, and/or other information usable to calculate the geolocations of user devices connected to a telecommunications network.

Once the location service has received, and/or calculated, the geolocation of a user device, the location network may then populate a certificate (or any piece of data) with an indication of the geolocation of the user device, and optionally the time at which the user device was at the geolocation. Additionally, the location service may populate the certificate with various other information, such as image data associated with an image, video, and/or picture provided by the user device that was generated by a camera associated with the user device at the geolocation. For instance, a user of the user device may desire that an image, video, and/or picture created using their user device is included in a digitally signed certificate to prove that the image data was in fact generated by the user device at the geolocation that is depicted in the image data. In some instances, other types of metadata may be additionally, or alternatively, placed in the certificate by the location service. For instance, the user device may provide a fingerprint of the user, a digital fingerprint or device identifier (ID) of the user device, and/or other information or metadata that is to be included in the certificate.

In some examples, the location service may receive requests from users to track the geolocations of a user device over a period of time. In such examples, the location service may periodically, or continuously, receive and/or determine geolocation data indicating different geolocations of the user device during the period of time. The location service may provide the tracked geolocations to requesting users in various ways, such as a plot of a map of the area in which the user device moved. The tracked geolocations and associated times (or timestamps) may be placed in one or more certificates. That is, the tracked geolocations and associated times may be provided in a single signed certificate, or multiple signed certificates.

Once the requested certificate(s) are generated and populated with the appropriate information (e.g., geolocation(s), associated time(s), optional metadata, etc.), the location service may sign the certificate(s) with a private key to create a digitally signed certificate. The service provider that manages the location service may additionally own and/or manage a certificate authority (CA), or work in conjunction with a CA, in order to sign and issue digitally signed certificates. Once the certificate(s) are signed with the private key, users or third-party entities that are presented the digitally signed certificate can verify that the signed certificates have not been modified since they were issued and, using a public key, that the information in the signed certificates is trustworthy based on their trust in the service provider (e.g., TSP).

There are various mechanisms through which users may interact with the location service to request and obtain signed certificates. For instance, the users may download an application provided by the location service onto their user devices through which the users may submit requests to the location service, and/or receive signed certificates attesting to geolocations of their (or other user's) user devices. The signed certificates may then be sent to the user device and accessible for viewing, sharing, and/or downloading at the user device. As another example, the location service may provide an Application Programming Interface (API) that is accessible to allowed entities. As a specific example, a municipal court may desire to monitor people who have been given bail by the court, but who are not allowed to leave the city. In that case, the municipal court may be given access to APIs that provide periodic or continuous assertions of geolocations of the people being tracked at different times to ensure compliance. As another example, a third-party courier may deliver goods to customers, and may subscribe to these APIs for their vehicles and use signed geolocation certificates to ensure a trustful method for proving that the company did attempt to deliver goods that were not successfully delivered to a customer.

This application describes techniques that are rooted in computing technology to overcome problems arising in computing technology. As noted above, geolocations computed locally on client devices using GPS cannot be relied upon by third parties as trustworthy assertions of geolocations of the user devices. However, according to the techniques described herein, geolocations of devices can be determined and asserted as authentic by components within the network of service providers, rather than by the device itself, in order to enable various use cases that were not previously possible. Accordingly, the techniques described herein improve upon existing techniques for localization of computing devices. While the techniques described herein are with respect to signing certificates, the data may be placed in a data structure or data file that can be signed using a private key. Also, while the techniques are described with respect to user devices, the techniques are applicable for any communication devices that can move to different geographic locations.

While the techniques described herein are applicable for various types of networks, technologies, protocols, etc., some implementations may require a precise enough level of positioning information that the location service is part of a 5G network, rather than an earlier generation of cellular network. For example, unlike 4G, 5G operates through MIMO (Multi-user Multiple Input Multiple Output) antennas, which provide precise orientation of the signal in one specific direction, instead of a multidirectional broadcast as provided by 4G antennas. Such MIMO antennas generate narrower radio beams which allow for more precise positioning than in earlier generations of cellular networks, for example using time of flight and angular resolution. 5G mmWave networks can offer comparable coverage to 4G networks if the 5G radio access nodes are deployed at a range of around 100 meters to 200 meters apart, which can be around double the density of 4G antenna deployments. Density of antenna deployment may be increased in some urban areas to accommodate a larger number of connected devices. With some moderate densities of deployments, the 5G network can be capable of achieving a positioning accuracy of 10 meters or below: Inside buildings (e.g., using private 5G networks, also referred to as standalone 5G networks) and in dense urban areas, the 5G network can be capable of achieving a positioning accuracy of 1 meter or below.

FIG.1illustrates a system-architecture diagram of an example environment100in which a service provider network102provides a location service104that determines geolocations of user devices106at different times, signs certificates that include the geolocations and times, and provides the signed certificates to various entities to attest that the devices106were at particular geolocations at particular times.

The service provider network102may be operated and/or managed by a service provider and may provide various services to users, including the location service104. For instance, the location service104may be offered alongside a suite of cloud-based services that are provided by the service provider. Generally, users may operate user devices106in order to register for use of the services of the service provider network102. The service provider network102may provide the location service104, but in some examples, the location service104may be offered by a different entity or organization.

The location service104may be provided by, or managed by, the service provider that acts as a Trust Service Provider (TSP) of digital certificates that attest to the truthfulness of user devices106being at geolocations at specified times. The service provider may offer additional services as well, including cloud-based services that may support the location service. As described herein, the location service may be a computing device, or a system of computing devices, that include and execute components configured to perform the operations described herein for attesting to geolocations of user devices. The location service104may be either centralized, or distributed, and be supported by one or more computing devices. Additionally, the location service104may monitor or determine the geolocation of user devices106that have registered for, or opted in for use of, the location service104.

At “1A,” a user of a user device106may send a request to the location service104for a geolocation of their respective user device106. Additionally, or alternatively, at “1B” a third-party entity112may send a request to the location service104for a geolocation of the user device106. In some instances, the request(s) sent may be for one geolocation at a particular time, but it also could be request(s) for the location service104to track the user device106over a period of time. The request(s) may be submitted to the location service104via various techniques such as API request(s), request(s) submitted via applications running on the devices, and so forth.

Generally, the user devices106may be any kind of device that can be mobile and communicate over one or more telecommunication networks108and/or any other networks (e.g., WANs, PANS, LANs, etc.). The user devices106may comprise any type of computing device such as mobile phones, tablets, laptop computers, desktop computers, televisions, servers, and/or any other type of computing device. The telecommunications network(s)108may be a cellular network, or mobile network, such as a 5G cellular network, a 4G cellular network, a 4G LTE cellular network, and so forth. User devices106generally send signals to radio towers110and/or other network devices in telecommunications network108by pinging devices in the network infrastructure to determine their location, or simply by communicating over the network infrastructure (e.g., phone calls, text messages, etc.). There are many techniques used by the telecommunications network108to determine geographic locations or positions of the user devices106relative to the radio towers110and/or other network devices, such as using RSSIs or other power measurements for communicated signals, RTT or latency of signals, DOA measurements for signals, beamforming techniques, triangulation techniques and/or various other techniques. To determine locations of user devices106, the user devices106are generally needed to communicate signals with devices in the telecommunications network108infrastructure, but the actual calculating or determining of the geolocations for user devices is performed by devices of the telecommunications network108and/or the location service104(and/or control plane systems).

To determine geolocations of the user device106, the location service104may, at “2,” receive network data (and/or geolocation data) from the telecommunications network108. In some instances, the telecommunications networks108may be owned, managed, and/or operated by a same service provider as the location service104. However, the telecommunications network108may be owned, managed, and/or operated by a different service provider that provides the data or information to the location service104. Depending on the use case, the location service104may periodically, continuously, or on an on-demand basis, obtain network data and/or geolocation data from the telecommunications network108. In some examples, the location service104may simply receive geolocation data indicating a geolocation of a user device106that as already calculated by the telecommunications network108(e.g., longitudinal/latitudinal coordinates, physical addresses, etc.). Additionally, or alternatively, the telecommunications network108may provide the location service104with the raw network data that the location service104can then use to calculate or determine geolocations of user devices.

In such examples, at “3,” the location service104may calculate the geolocation of the user device106using the network data. The network data may include various information, such as RTT or latency measurements of signals, power measurements (e.g., RSSIs), DOA measurements, locations of networking infrastructure, and/or other information usable to calculate the geolocations of user devices106connected to a telecommunication network108.

In some instances, rather than receiving raw network data at “2” and calculating the geolocation at “3,” the location service104may receive geolocation data from the telecommunications network108that already indicates the geolocation of the user device106. That is, the telecommunications network108may calculate the geolocation of the user device106using the network data and provide the geolocation to the location service104. In some examples, the telecommunications network108may provide the location service104with geolocations in real-time or near real-time such that the location service104may timestamp the geolocations and be confident that the timestamp is indicative of the exact or approximate time the user device106was at the geolocation.

In some instances, the location service104may continuously, or periodically, obtain geographic data for the user devices106indicating their geolocations, timestamp the geolocations, and store the geolocation data and timestamps in one or more databases of the service provider network. Then, if a user or third-party requests a signed certificate for a past geolocation, the location service104may obtain the requested geolocation(s) and timestamp(s), produce a signed certificate, and provide the signed certificate to the requesting user.

At “4,” the location service104may generate a certificate114and populate the certificate (or any piece of electronic data, such as a file) with an indication of the geolocation of the user device106, and optionally the time at which the user device106was at the geolocation. In some examples, the location service104may populate the certificate114with various other information, such as image data associated with an image, video, and/or picture provided by the user device106that was generated by a camera associated with the user device106at the geolocation. For instance, a user of the user device106may desire that an image, video, and/or picture created using their user device106is included in a digitally signed certificate114to prove that the image data was in fact generated by the user device106at the geolocation that is depicted in the image data. In some instances, other types of metadata may be additionally, or alternatively, placed in the certificate114by the location service104. For instance, the user device106may provide a fingerprint of the user, a digital fingerprint or ID of the user device106, and/or other information or metadata that is to be included in the certificate114.

In some examples, the location service104may receive requests from users to track the geolocations of a user device106over a period of time. In such examples, the location service104may periodically, or continuously, receive and/or determine geolocation data indicating different geolocations of the user device106during the period of time. The location service104may provide the tracked geolocations to requesting users in various ways, such as a plot of a map of the area in which the user device106moved. The tracked geolocations and associated times (or timestamps) may be placed in one or more certificates114.

Once the requested certificate(s)114are generated and populated with the appropriate information (e.g., geolocation(s), associated time(s), optional metadata, etc.), the location service104may, at “5,” may sign the certificate114with a private key116to create a digitally signed certificate118. The service provider that manages the location service104may additionally own and/or manage a certificate authority (CA), or work in conjunction with a CA, in order to sign and issue digitally signed certificates118. Once the certificate(s)114are signed with the private key116, the location service104may provide the user or third-party entity112with access to the digitally signed certificate118and the users/entities can verify that the signed certificate118have not been modified since they were issued and, using a public key, that the information in the signed certificates is trustworthy based on their trust in the service provider.

In some examples, the service provider network102may be or comprise a cloud provider network. A cloud provider network (sometimes referred to simply as a “cloud”) refers to a pool of network-accessible computing resources (such as compute, storage, and networking resources, applications, and services), which may be virtualized or bare-metal. The cloud can provide convenient, on-demand network access to a shared pool of configurable virtual computing resources that can be programmatically provisioned and released in response to user commands. These virtual computing resources can be dynamically provisioned and reconfigured to adjust to variable load. Cloud computing can thus be considered as both the applications delivered as services over a publicly accessible network (e.g., the Internet, a cellular communication network) and the hardware and software in cloud provider data centers that provide those services.

The service provider network102may include or be a cloud provider network formed as a number of regions, where a region is a separate geographical area in which the cloud provider clusters data centers. Each region can include two or more availability zones connected to one another via a private high-speed network, for example a fiber communication connection. An availability zone (also known as an availability domain, or simply a “zone”) refers to an isolated failure domain including one or more data center facilities with separate power, separate networking, and separate cooling from those in another availability zone. A data center refers to a physical building or enclosure that houses and provides power and cooling to servers of the cloud provider network. Preferably, availability zones within a region are positioned far enough away from one other that the same natural disaster should not take more than one availability zone offline at the same time. Users can connect to availability zones of the cloud provider network via a publicly accessible network (e.g., the Internet, a cellular communication network) by way of a transit center (TC). TCs can be considered as the primary backbone locations linking users to the cloud provider network, and may be collocated at other network provider facilities (e.g., Internet service providers, telecommunications providers) and securely connected (e.g., via a VPN or direct connection) to the availability zones. Each region can operate two or more TCs for redundancy. Regions are connected to a global network which includes private networking infrastructure (e.g., fiber connections controlled by the cloud provider) connecting each region to at least one other region. The cloud provider network may deliver content from points of presence outside of, but networked with, these regions by way of edge locations and regional edge cache servers. This compartmentalization and geographic distribution of computing hardware enables the cloud provider network to provide low-latency resource access to users on a global scale with a high degree of fault tolerance and stability.

By using the service provider network, instead of buying, owning, and maintaining their own data centers and servers, organizations can acquire technology such as compute power, storage, databases, and other services on an as-needed basis. The service provider network102can provide on-demand, scalable computing services to users through a network, for example allowing users to have at their disposal scalable “virtual computing devices” via their use of the compute servers and block store servers. These virtual computing devices have attributes of a personal computing device including hardware (various types of processors, local memory, random access memory (“RAM”), hard-disk and/or solid state drive (“SSD”) storage), a choice of operating systems, networking capabilities, and pre-loaded application software. Each virtual computing device may also virtualize its console input and output (“I/O”) (e.g., keyboard, display, and mouse). This virtualization allows users106to connect to their virtual computing device using a computer application such as a browser, application programming interface, software development kit, or the like, in order to configure and use their virtual computing device just as they would a personal computing device. Unlike personal computing devices, which possess a fixed quantity of hardware resources available to the user, the hardware associated with the virtual computing devices can be scaled up or down depending upon the resources the user requires. Users can choose to deploy their virtual computing systems to provide network-based services for their own use and/or for use by their customers or client.

Generally, the location service104may be a scalable service that can spin up or down instances to accommodate demand from users of the location service104. In some instances, the location service104may be hosted on or otherwise associated with a cloud provider network. However, in some examples the location service104may be owned, managed, and/or operated by a provider of the telecommunications network108. In various examples, the service provider network102may provide at least one telecommunications network108as a service as well.

FIG.2illustrates a component diagram of an example location service102that provides digitally signed certificates118that attest to user devices106being at particular geolocations at particular times.

As illustrated, the location service102may include one or more hardware processors202(processors), one or more devices, configured to execute one or more stored instructions. The processor(s)202may comprise one or more cores. Further, the location service102may include one or more network interfaces204configured to provide communications between the location service102and other devices, such as the user device(s)106, third-party entities112with computing devices, and/or other systems or devices in the service provider network102and/or remote from the service provider network102. The network interfaces204may include devices configured to couple to personal area networks (PANs), wired and wireless local area networks (LANs), wired and wireless wide area networks (WANs), and so forth.

The location service102may also include computer-readable media206that is used to execute various executable components (e.g., software-based components, firmware-based components, etc.). The computer-readable-media206may further execute components to implement functionality described herein. While not illustrated, the computer-readable media206may store one or more operating systems utilized to control the operation of the one or more devices that comprise the location service102. According to one embodiment, the operating system comprises the LINUX operating system. According to another embodiment, the operating system(s) comprise the WINDOWS SERVER operating system from MICROSOFT Corporation of Redmond, Washington. According to further embodiments, the operating system(s) can comprise the UNIX operating system or one of its variants. It should be appreciated that other operating systems can also be utilized.

The location service102may further include and/or interact with various services208with which users may interact and send requests for operations to be performed. Additionally, the service provider network102may include a data store208which may comprise one, or multiple, repositories or other storage locations for persistently storing and managing collections of data such as databases, simple files, binary, and/or any other data. The data store208may include one or more storage locations that may be managed by one or more database management systems.

The computer-readable media (CRM)206may store portions, or components, of the location service104described herein. For instance, the computer-readable media206may store code that is included in the location service104and is supported by computing devices of the location service104. As shown, the computer-readable media206may store a registration component212that tracks what users and/or third-party entities112have opted in to use various services of the location service104. In some instances, the location service104may only be utilized for users that have registered for use of the location service104with the registration component212.

The CRM206may further include and/or help execute a collection component214that collects network data and/or geographic data216from telecommunications networks108. For instance, the collection component214may periodically, continuously, or on an on-demand basis, obtain network data and/or geolocation data216from the telecommunications network108. In some examples, the collection component214may simply receive geolocation data216indicating a geolocation of a user device106that as already calculated by the telecommunications network108(e.g., longitudinal/latitudinal coordinates, physical addresses, etc.). Additionally, or alternatively, the telecommunications network108may provide the collection component214with the raw network data that a geolocation component218can then use to calculate or determine geolocations of user devices106. The network data may include various information, such as RTT or latency measurements of signals, power measurements (e.g., RSSIs), DOA measurements, locations of networking infrastructure, and/or other information usable to calculate the geolocations of user devices106connected to a telecommunications network108.

The geolocation component218may be configured to determine geolocation data216indicating geolocations of user devices106. The geolocation component218may be configured to perform various techniques that are known in the art for localizing, or positioning, user devices106connected to telecommunications networks108.

The CRM206may further store and/or help execute a certificate-metadata component220that obtains additional metadata, or certificate data228, to be included in certificates114. The certificate data228may include data such as image data (e.g., pictures, images, videos, etc.), fingerprints of users, device IDs or device fingerprints of user devices106, and/or any other data.

The CRM206may further store to help execute a certificate-manager component222. The certificate-manager component222may perform various operations traditionally performed by a certificate authority. For instance, the certificate-manager component222may manage private/public key224pairings. The certificate-manager component222may act as the component that, along with the signing component226, helps issue digital geolocation certificates (e.g., signed certificates118asserting a geolocation of a device106). The certificate-manager component222may act as a trusted third party with respect to the user devices106and third-party entities112.

The services208may include a tracking service232by which users and/or third-party entities112may track geolocations of user devices106indicated in signed certificates118, and a geofencing service234that may be used to determine whether user devices106are within or outside of predefined geolocations as indicated in signed certificates118(e.g., parole leaving city limits). Further, the services208may include a mapping service236that can provide instructions and/or directions to users, and a location-based data-restriction service238that may restrict or allow access to various data or resources based on a user device106being within or outside of a defined geographic area based on geolocations indicated in signed certificates118.

To utilize the services208provided by the location service104, users may register for an account with the location service104. For instance, users may utilize a user device106to interact with an identity and access management (IAM) component230that allows the users to create user accounts with the location service104. Generally, the IAM component230may enable the users to manage their preferences and services using their respective accounts.

In some instances, the services provided by the service provider network102and/or location service104may include an authorization/authentication service240that may utilize the signed certificates118described herein. Authorization/authentication services may use geolocation as a factor for authenticating or authorizing a user to utilize services or access data. However, these authorization/authentication service240may be hesitant to use geolocation as a factor for authn/authz due to the ability of being spoofed by user devices106. Accordingly, the authorization/authentication service240may require that users of user devices106provide signed certificates118described herein when attempting to authenticate themselves, gain authorization for various privileges, perform step-up authentications, and so forth. In one example, a user of a user device106may utilize a hardware authentication device as a means to authenticate themselves and/or gain authorizations. The hardware authentication device may support one-time passwords, public-key cryptography, and various hardware-authentication protocols. In some instances, the authorization/authentication service240may require that, when authenticating using the hardware authentication device, the user device106also provide an indication of their geolocation using a signed certificate118as described herein. In this way, the geolocation of the user device may be confidently used in conjunction with the hardware authentication device for multi-factor authentication and/or step-up authentication.

The computer-readable media206may be used to store and retrieve information, such as program modules, data structures, or other data. It should be appreciated by those skilled in the art that computer-readable storage media is any available media that provides for the non-transitory storage of data and that can be accessed by the location service104. In some examples, the operations performed by the location service104, and or any components included therein, may be supported by one or more server devices. Stated otherwise, some or all of the operations performed by the location service104, and or any components included therein, may be performed by one or more computer devices operating in a cloud-based arrangement.

FIG.3Aillustrates an example user interface300of an application through which users of user devices106may request signed certificates118that attest to geolocations of user devices106.

As illustrated, the example interface300may be presented on a user device106and include an option to get a location302of the user device106. The location may be expressed in latitudinal and longitudinal coordinates, in physical street addresses, and/or any other technique for expression geolocations. The interface300may further include an add-my-fingerprint option304that allows a user of a user device106to have their fingerprint included in the signed certificate118. In this way, third-party entities112may be able to determine that the actual user was with the user device106at the geolocation/time indicated by the signed certificate118. The interface300may also include a take picture option306where a user can take a picture/video of the environment at the geolocation and have the picture/image/video be included in the signed certificate118. Even further, the interface300may include an add-my-digital-device signature option308that allows users to include their device ID/signature to the signed certificate118. Once the user has selected the options they would like to use for managing their signed certificate118, the user may select a request certificate option310which sends a request to the location service104for a signed certificate118.

FIG.3Billustrates an example user interface312of an application through which users of user devices106may download, view, and/or share digitally signed certificates118that attest to geolocations of user devices106.

The user interface312may include an option for a user to download a signed Portable Document Format (PDF) file (e.g., a signed certificate118). By selecting this option, the user106can store a signed certificate118locally on their user device106. Further, the user interface312may further include the downloaded signed certificate316icon, as well as an option to open and view318the signed certificate118. Further, the user interface312may include an option to share320the signed certificate118. The share option320may provide the user of the user device106with various avenues for sharing the signed certificate118, such as a text message, an email, social media, a short-range communication protocol exchange, etc.

FIG.4illustrates an example of a signed digital certificate118that includes and attests to a geolocation of a user device106, a time at which the user device106was at the geolocation, user data, and picture data taken at the geolocation.

As shown, there are Quick Response (QR) codes402and404which can be used by users and/or third-party entities112to quickly share the signed certificate118with other entities and to validate the signed certificate118as being signed by the location service104. Further, the signed certificate118in this example can include a main406portion in which an ID of the signed certificate118is listed, the attestation that it was signed by the location service104, the geolocation and time/date on which the user device106was at the geolocation, and the physical address and coordinates representing the geolocation.

The signed certificate118may further include a user data408portion in which information about the user can be included. In some instances, the user data408may further include a fingerprint of the user to provide proof that the user was in fact with the user device106when the user device106was at the geolocation.

The signed certificate118may additionally, and optionally, include a picture data410portion in which a picture and associated metadata can be included. As shown, the picture data includes a picture taken by the user at the particular time and at the geo location, and may further include metadata associated with the picture (e.g., shooting time, format, etc.).

FIG.5illustrates an example user interface500of an application through which the location service104can plot, on a map, tracked geolocations of a user device106that can be, and/or have been, attested to by the location service104through signed certificates118.

As shown, the user interface500may include a tracker option502that a user may select to view; on a map, different geolocations at which the user device106previously moved through. Additionally, there may be a geolocation-digital certificate option504that the user can select in order to request that the location service104generate a signed certificate118. For instance, the user may select a location508on their location trace, and then geolocation-digital certificate option504to send a request to the location service104to generate a signed certificate118attesting to the user device106being at that geolocation at a specific time506.

FIGS.6-8illustrate flow diagrams of example methods600,700, and800that illustrate aspects of the functions performed at least partly by the location service104as described in this disclosure. The logical operations described herein with respect toFIGS.6-8may be implemented (1) as a sequence of computer-implemented acts or program modules running on a computing system and/or (2) as interconnected machine logic circuits or circuit modules within the computing system.

The techniques of methods600,700, and800may be performed, at least partly, by the location service104which may include one or more processors and one or more computer-readable media storing computer-executable instructions that, when executed by the one or more processors, cause the one or more processors to perform the operations of the methods.

FIG.6illustrates a flow diagram of an example method600for a location service104to receive a request for a digitally signed certificate that attests for a geolocation of a user device106, calculates geolocation of the user device106, populates a certificate114with the geolocation and timestamp, and provides the signed certificate118to the user device106. The method600may comprise a method to provide digitally signed certificates that attest for geolocations of user devices106.

At602, a location service may receive a request to provide a digitally signed certificate to attest for a geolocation of a user device. For instance, a user of the user device106, and/or a third-party entity112, may send a request (e.g., via an API, via an application on the device106, etc.) to the location service104to provide a signed certificate118to attest for a geolocation of the user device106.

At604, the location service may receive geolocation data from a telecommunications network that indicates the geolocation of the user device. For instance, the location service104may receive geolocation data such as physical street addresses, coordinates, etc., that indicate the geolocations of user devices106connected to a telecommunications network108.

At606, the location service may generate timestamp data indicating a time at which the user device was at the geolocation. The telecommunications network108may stream the geolocation data in real time, or near real-time, such that timestamps generated by the location service104are associated with geolocations of user devices106.

At608, the location service may populate a certificate with indications of the geolocation of the user device and the timestamp indicating the time at which the user device was at the geolocation. For instance, the location service104may generate and populate a certificate114with a physical address, coordinates, and/or other indications of the user device106and a timestamp indicating when the user device106was at the geolocation.

At610, the location service may sign the certificate using a private key issued by a certificate authority to generate a signed certificate. For instance, the location service104may sign the certificate114using a private key116to generate a signed certificate118that is verifiable by other entities as being signed by the private key116association with the location service104.

At612, the location service may provide the user device with access to the signed certificate. For instance, the location service104may send the signed certificate118to the user device118via any electronic means, make the signed certificate118available for download via an application on the user device106, allow the user device106to call an API to obtain the signed certificate118, and/or use any other method to provide the user device106with access to the signed certificate118.

FIG.7illustrates a flow diagram of an example method700for a location service104to obtain a geolocation of a user device106, populate a certificate114with the geolocation and associated time, sign the certificate114, and output the signed certificate118.

At702, the location service may obtain geolocation data from a telecommunications network that indicates a geolocation of a user device at a particular time. In some instances, the telecommunications network108may calculate the geolocation of the user device106and provide the geolocation and timestamp to the location service. In other examples, the location service104may receive network data from the telecommunications network108, and calculate, using the network data, the geolocation data indicating the geolocation of the user device. Further, the location service104may determine an accuracy value indicating a measure of accuracy of the geolocation of the user device106(e.g., 5 meters, as shown inFIG.4), and populate the certificate114with the accuracy value prior to signing the certificate114.

At704, the location service may populate a certificate with indications of the geolocation of the user device and the time at which the user device was at the geolocation. For instance, the location service104may generate and populate a certificate114with a physical address, coordinates, and/or other indications of the user device106and a timestamp indicating when the user device106was at the geolocation.

At706, the location service may sign the certificate using a private key associated with the location service to generate a signed certificate. For instance, the location service104may sign the certificate114using a private key116to generate a signed certificate118that is verifiable by other entities as being signed by the private key116association with the location service104.

At708, the location service may output the signed certificate to the user device or another computing device. For instance, the location service104may send the signed certificate118to the user device118(and/or third-party entity112) via any electronic means, make the signed certificate118available for download via an application on the user device106(and/or third-party entity112), allow the user device106(and/or third-party entity112) to call an API to obtain the signed certificate118, and/or use any other method to provide the user device106with access to the signed certificate118.

FIG.8illustrates a flow diagram of an example method800for a location service104to receive network data from a telecommunications network108, perform calculations using the network data to determine a geolocation of the user device106, populate a data file with the geolocation and associated time, sign the certificate, and output the signed certificate.

At802, the location service may receive network data from a telecommunications network that represents metrics associated with signals transmitted by a user device in a telecommunications network. For instance, the location service104may receive network data such as RTT or latency measurements of signals, power measurements (e.g., RSSIs), DOA measurements, locations of networking infrastructure, and/or other information usable to calculate the geolocations of user devices106connected to a telecommunications network108.

At804, the location service may determine, using the network data, geolocation data indicating a geolocation of the user device. For instance, the location service104may utilize techniques for positioning and/or localization of communication devices to determine the geolocation.

At806, the location service may populate a data file with indications of the geolocation of the user device and a time at which the user device was at the geolocation. The data file may be any type of data file, including but not limited to a certificate.

At808, the location service may sign the data file using a private key associated with the location service to generate a signed data file. For instance, the location service104may sign the data file using a private key116to generate a signed certificate118that is verifiable by other entities as being signed by the private key116association with the location service104.

At810, the location service may output the signed data file to at least one of the user device or third-party computing device. For instance, the location service104may send the signed certificate118to the user device118(and/or third-party entity112) via any electronic means, make the signed certificate118available for download via an application on the user device106(and/or third-party entity112), allow the user device106(and/or third-party entity112) to call an API to obtain the signed certificate118, and/or use any other method to provide the user device106with access to the signed certificate118.

FIG.9illustrates a component diagram of an example user device that may request digitally signed certificates from a location service where the digitally signed certificates attest to the user device being at particular geolocations at particular times.

As illustrated, the user device106may include one or more hardware processors902(processors), one or more devices, configured to execute one or more stored instructions. The processor(s)902may comprise one or more cores. Further, the user device106may include one or more network interfaces904configured to provide communications between the user device106and other devices, such as the location service104, third-party entities112with computing devices, and/or other systems or devices in the service provider network102and/or remote from the user device106. The network interfaces904may include devices configured to couple to personal area networks (PANs), wired and wireless local area networks (LANs), wired and wireless wide area networks (WANs), and so forth.

The user device106may also include computer-readable media206that is used to execute various executable components (e.g., software-based components, firmware-based components, etc.). The computer-readable-media206may further execute components to implement functionality described herein. While not illustrated, the computer-readable media206may store one or more operating systems utilized to control the operation of the one or more devices that comprise the user device106. According to one embodiment, the operating system comprises the LINUX operating system. According to another embodiment, the operating system(s) comprise the WINDOWS SERVER operating system from MICROSOFT Corporation of Redmond, Washington. According to further embodiments, the operating system(s) can comprise the UNIX operating system or one of its variants. It should be appreciated that other operating systems can also be utilized.

The use device may include one or more input/output (I/O) interfaces906, such as a camera, a Universal Serial Bus Interface, a fingerprint scanner, and so forth. Additional I/O devices906may include (although not illustrated) a mouse, keyboard, one or more displays (e.g., touch screen, Liquid-crystal Display (LCD), Light-emitting Diode (LED) display, organic LED display, plasma display, electronic paper display, etc.), one or more sensors (e.g., accelerometer, magnetometer, etc.), one or more lights, one or more microphones, one or more speakers, and so on.

The CRM908may include a location-service application912configured to interact with the location service104and perform operations described herein as being performed via the user device106. The location-service application912may cause various GUIs to be presented as described herein, such as those described with reference toFIGS.3A,3B,4, and5. Further, the location-service application912may receive input from, and provide output to, a user of the user device106. The location-service application912may enable the user of the user device106to request and receive signed certificates118as described herein. The CRM908may further include a maps application914and a tracking application916that enable the user of the user device106to be provided with mapping services (e.g., directions, find-my-device applications, track my route, etc.) and other services described herein.

The user device106may include an authentication/authorization application918that enables the user to authenticate and/or authorize with services using geolocation via the signed certificates118described herein. For instance, a user can register “approved” geolocations that may be used for authn/authz, MFA, step-up auth, etc. As an example, if a user utilizes a hardware authentication device to interact with the user device106to prove who the user is, the authentication/authorization application918may additionally send a signed certificate118to the authn/authz service to prove that the user device106is at an approved location with a high level of confidence.

The storage910may include various types of data, such as image data920generated by the camera(s)906which represent an environment of the user device106. In some instances, to ensure the image data920represent the geolocation at which the user device106is currently located, the location-service application912may prompt the user to use the camera906to take a picture such that the corresponding image data920may be provided to the location service104to ensure that tampered image data or previously generated image data is not uploaded to the location service104. In such examples, the location—service application912may block access to various storage locations910to ensure that tampered—with image data or previously obtained image data920cannot be provided to the location service104. Additionally, the storage910may include other input data922, such as fingerprint data generated using the fingerprint scanner, which may be sent to the location service104to be included in a signed certificate118. Further, the storage910may include certificate data924, such as signed certificates118, that have been provided to the user devices106for use in attesting that the user device106was at different geolocations at different times. The signed certificates118stored in the storage910may be shared from the user device106using various mechanisms, such as a text message, an email, social media, a short-range communication protocol exchange, etc.

FIG.10shows an example computer architecture for a computer1000capable of executing program components for implementing the functionality described above. The computer architecture shown inFIG.10illustrates a computer1000that may correspond to, or be the same as or similar to, user device, a third-party entity device, and/or a device included in and supporting the location service104described herein.

The computer1000includes a baseboard1002, or “motherboard,” which is a printed circuit board to which a multitude of components or devices can be connected by way of a system bus or other electrical communication paths. In one illustrative configuration, one or more central processing units (“CPUs”)1004operate in conjunction with a chipset1006. The CPUs1004can be standard programmable processors that perform arithmetic and logical operations necessary for the operation of the computer1000.

The chipset1006provides an interface between the CPUs1004and the remainder of the components and devices on the baseboard1002. The chipset1006can provide an interface to a RAM1008, used as the main memory in the computer1000. The chipset1006can further provide an interface to a computer-readable storage medium such as a read-only memory (“ROM”)1010or non-volatile RAM (“NVRAM”) for storing basic routines that help to startup the computer1000and to transfer information between the various components and devices. The ROM1010or NVRAM can also store other software components necessary for the operation of the computer1000in accordance with the configurations described herein.

The computer1000can operate in a networked environment using logical connections to remote computing devices and computer systems through a network, such as the network108. The chipset1006can include functionality for providing network connectivity through a network interface controller (NIC)1012, such as a gigabit Ethernet adapter. The NIC1012is capable of connecting the computer1000to other computing devices over the network108. It should be appreciated that multiple NICs1012can be present in the computer1000, connecting the computer to other types of networks and remote computer systems.

In addition to the storage1014described above, the computer1000can have access to other computer-readable storage media to store and retrieve information, such as program modules, data structures, or other data. It should be appreciated by those skilled in the art that computer-readable storage media is any available media that provides for the non-transitory storage of data and that can be accessed by the computer1000. In some examples, the operations performed by the location service104, and or any components included therein, may be supported by one or more devices similar to computer1000. Stated otherwise, some or all of the operations performed by the location service104, and or any components included therein, may be performed by one or more computer devices1000operating in a network-based arrangement.

The storage1014can store an operating system utilized to control the operation of the computer1000. According to one embodiment, the operating system comprises the LINUX operating system. According to another embodiment, the operating system comprises the WINDOWS SERVER operating system from MICROSOFT Corporation of Redmond, Washington. According to further embodiments, the operating system can comprise the UNIX operating system or one of its variants. It should be appreciated that other operating systems can also be utilized. The storage1014can store other system or application programs and data utilized by the computer1000.

In one embodiment, the storage1014, RAM1008, ROM1010, and/or other computer-readable storage media may be encoded with computer-executable instructions which, when loaded into the computer1000, transform the computer from a general-purpose computing system into a special-purpose computer capable of implementing the embodiments described herein. These computer-executable instructions transform the computer1000by specifying how the CPUs1004transition between states, as described above. According to one embodiment, the computer1000has access to computer-readable storage media storing computer-executable instructions which, when executed by the computer1000, perform the various techniques described above. The computer1000can also include computer-readable storage media having instructions stored thereupon for performing any of the other computer-implemented operations described herein.

The computer1000can also include one or more virtualized input/output controllers1016for receiving and processing input from a number of input devices, such as a virtualized keyboard, a mouse, a touchpad, a touch screen, an electronic stylus, or other type of input device.