Stanford Security Research

Location Privacy via Private Proximity Testing

We study privacy-preserving tests for proximity: Alice can test if she is close to Bob without either party revealing any other information about each other's location. We describe several secure protocols that support private proximity testing at various levels of granularity. We introduce the concept of location tags generated from the physical environment in order to strengthen the security of proximity testing. We implemented our system on the Android platform and report on its effectiveness. Our system uses a social network (Facebook) to manage user public keys. We argue that for proximity testing, social networks are better suited for managing user keys than traditional PKI.

This page contains prototype code for the location privacy protocol described in the paper below. We have provided both the server and the client side code. The server was implemented in Java using Servlet technology, and the client was implemented for the Android platform. The code uses Facebook to manage keys but does not use location tags.

Paper website (include a link to a pdf version of the paper): Location Privacy

Note: The following source code was developed in Eclipse, and instructions to using the code are only provided for Eclipse. Readme files are included in the source code, and all files are commented.

Client source code (Android): .zip

Server source code (Java): .zip

Download Android Application .apk

Contributors: Arvind Narayanan, Narendran Thiagarajan, Mugdha Lakhani, Michael Hamburg, Dan Boneh, Frank Wang, and Kina Winoto

Privately Calculating Location Statistics

In a related project we study how a location based service can determin the popularity of a given set of locations (e.g. bars or theatres). The naive solution, often used today, tracks all users and determines how many are in each of the locations being measured.

We show that the location statistics problem can be efficiently solved without tracking. The service learns how many people are at each of the meadured locations, but does not learn who is at these locations.

More information is available on the project site.