Apple Find My Protocol
Objective: Understanding the cryptography features of Apple’s ‘Find My’ protocol.
Submission: Answer the following questions within the word doc or create a separate document.
In June 2019, at the Worldwide Developers Conference (WWDC), Apple announced a new iOS and OSX feature called ‘Find My.’ Combining the features of Find My iPhone and Find My Friends into a single application. The summarized steps below are a description of how the protocol functions.
With at least two Apple devices, the user’s Apple devices create a shared private key communicated among them via end-to-end encryption.
Each pair of devices periodically creates a new secret key and public key pair using a deterministic algorithm applied to the previous secret key. This is also referred to as rotation of keys.
If Find My is enabled on a device, it emits its current public key via Bluetooth and other Apple devices nearby can pick up on the broadcast.
A device that has picked up a public key will then check its own location, encrypt the location using the public key, and upload this to Apple’s servers along with a hash of the public key.
With a different Apple device, a user can then query Apple’s servers with hashes of the public keys it has used to get the encrypted location associated with the hashed public key.
Using the original secret key, the user can decrypt and get the location of their lost device.
Read the description of the Find My protocol in the 2021 Apple’s Platform Security Manual (p. 139 – 142) https://manuals.info.apple.com/MANUALS/1000/MA1902/en_US/apple-platform-security-guide.pdf
Read the article explaining further detail of the protocol by The Wired
(https://www.wired.com/story/apple-find-my-cryptography-bluetooth/)
The questions below, consider potential attackers to include someone who has stolen the user’s device, other users who have Apple devices, and Apple employees with Find My database access.
Answer the following questions:
1.) In step 2, why are the public keys periodically updated? What security properties are provided by updating the public key?
2.) For the encryption in step 4, what security properties must the encryption algorithm have for this to be secure?
3.) Can you come up with ways to attack the Find My protocol even assuming that the cryptographic primitives used in the protocol are secure? Some ideas worth considering are who are the trusted parties/ devices in the protocol, and who generates what data in this protocol.