A method for determining proximity between a first device and a second device, the method comprising providing a first device storing a first device private key, the first device having an associated secure first device
certificate storing secured information, the secured information comprising a first device public key corresponding to the first device private key, providing a second device storing a second device private key, the second device having an associated secure second device
certificate storing secured information, the secured information comprising a second device public key corresponding to the second device private key, and a second device
processing delay, providing a copy of the second device
certificate to the first device, establishing a secure authenticated channel between the first device and the second device, sending a proximity challenge from the first device to the second device, the proximity challenge including a numeric challenge value, receiving the proximity challenge at the second device,
processing the proximity challenge at the second device to produce the response to the proximity challenge, and sending the response to the proximity challenge from the second device to the first device, receiving the response to the proximity challenge at the first device, and performing the following at the first device verifying, at the first device, that the response to the proximity challenge is legitimate, determining a gross time between sending the proximity challenge and receiving the response to the proximity challenge, subtracting the second device
processing delay from the gross time to produce a net
response time, and comparing the net
response time to a first threshold and determining whether the first device and the second device are in proximity based on a result of the comparing. Related methods and apparatus are also described.