Patent ID: 9742737
Date: 2017-08-22
CPC Classifications: G01S,H04K,H04L,H04W

Claim:
1. A non-transitory computer-readable medium storing computer-executable instructions which causes a processor to execute the stored instructions to perform operations comprising: receiving, from a server, a plurality of public keys via a secured network connection, wherein each of the plurality of public keys corresponds to a respective private key associated with an access point; initiating a time of flight (ToF) measurement protocol with one or more access points by transmitting: to at least one first access point of the one or more access points a first message comprising a first token, and to at least one second access point of the one or more access points a third message comprising a second token; receiving at least one of a first acknowledgment message from the at least one first access point of the one or more access points, wherein the first acknowledgment message comprises an acknowledgment of the first message, and a third acknowledgment message from the at least one second access point of the one or more access points, wherein the third acknowledgment message comprises an acknowledgment of the third message; receiving a: second message, wherein the second message comprises the first token and at least one first timer, and the at least one first timer is based at least in part on a first difference between a time of departure of the second message, from the at least one first access point of the one or more access points, and a time of arrival of the first message at the at least one first access point of the one or more access points, and fourth message, wherein the fourth message comprises the second token and at least one second timer, and the at least one second timer is based at least in part on a second difference between a time of departure of the fourth message, from the at least one second access point of the one or more access points, and a time of arrival of the third message at the at least one second access point of the one or more access points: transmitting to: the first access point of the one or more access points a second acknowledgment message, wherein the second acknowledgment message comprises an acknowledgment of the second message, and the second access point of the one or more access points a fourth acknowledgment message, wherein the fourth acknowledgment message comprises an acknowledgment of the fourth message; authenticating the one or more access points based at least in part on the plurality of public keys; determining a: first curve of a first location of a user device based at least in part on first received data, wherein the first received data comprises the at least one first timer, the time of departure of the second message, the time of arrival of the first message, and a time of arrival of the second message, and second curve of a second location of the user device based at least in part on second received data, wherein the second received data comprises the at least one second timer, the time of departure of the fourth message, the time of arrival of the third message, and a time of arrival of the fourth message; and determining a location of the user device based at least in part on an intersection of the first curve and the second curve; wherein the second message is signed using a private key associated with the at least one of the one or more access points and corresponds to a public key of the plurality of public keys.