Fueled by the explosive growth in the number of pictures taken using smart phones, people are increasingly using cloud photo storage services. Although many innovative apps have been developed to leverage this collection of photos in the cloud, users are concerned with the privacy of their photos. We have developed Privacy-Preserving Face Finder (P2F2), a system that allows cloud-based photo matching, while preserving the privacy of the photos from the cloud provider. P2F2 stores encrypted photos in the cloud and performs photo matching based on feature vectors extracted from the photos. At its core, P2F2 relies on a novel privacy-preserving protocol for computing the Chi-square distance between the feature vectors of two photos. To achieve its goal, P2F2 extracts two privacy-preserving components from a photo's feature vector and stores them at non-colluding cloud providers. Unlike previous privacy-preserving work, P2F2 is designed to work with feature descriptors that are optimized for face recognition. An authorized querier can match a target face photo with a set of encrypted face photos stored in the cloud and receive the k most similar encrypted photos, which can then be decrypted. We have implemented a prototype of P2F2 and evaluated its performance using smart phones and a small-size cloud. Our security analysis and experimental evaluation show that P2F2 successfully achieves the desired security guarantees and is feasible in practical conditions.