4 ms·
"Signal uses your existing number, doesn’t require a password, and leverages privacy-preserving contact discovery to immediately display which of your contacts
by hruan 12y ago
"Signal uses your existing number, doesn’t require a password, and leverages privacy-preserving contact discovery to immediately display which of your contacts are reachable with Signal."
How does contact discovery work? What happens when run on a device without a (valid) SIM?
- acdha 12y agoIt looks like it uses bloom filters for the phone number: isCntactRegisteredWithWhisper calls isPhoneNumberRegisteredWithWhisper: https://github.com/WhisperSystems/Signal-iOS/blob/19ff47e278f9f21cf91e919b32d118a44884ed79/Signal/src/contact/ContactsManager.m#L475-L487 https://github.com/WhisperSystems/Signal-iOS/blob/19ff47e278... The implementation is simply checking a bloom filter: https://github.com/WhisperSystems/Signal-iOS/blob/19ff47e278f9f21cf91e919b32d118a44884ed79/Signal/src/phone/signaling/number%20directory/PhoneNumberDirectoryFilter.m#L60-L63 https://github.com/WhisperSystems/Signal-iOS/blob/19ff47e278... … and the filter is periodically downloaded from their servers: https://github.com/WhisperSystems/Signal-iOS/blob/19ff47e278f9f21cf91e919b32d118a44884ed79/Signal/src/phone/signaling/number%20directory/PhoneNumberDirectoryFilter.h#L8-L9 https://github.com/WhisperSystems/Signal-iOS/blob/19ff47e278... https://github.com/WhisperSystems/Signal-iOS/blob/19ff47e278f9f21cf91e919b32d118a44884ed79/Signal/src/phone/signaling/SignalUtil.m#L108-L111 https://github.com/WhisperSystems/Signal-iOS/blob/19ff47e278... which ultimately ends up at: https://master.whispersystems.org:31337/users/directory https://master.whispersystems.org:31337/users/directory
- acdha 12y agoThey've blogged a bit about this challenge in the past: https://whispersystems.org/blog/contact-discovery/ https://whispersystems.org/blog/contact-discovery/
- hruan 12y agoAh, thanks!