12 ms·
That’s a good question I’d like to know, too. Perhaps they hash the phone numbers then compare to their master list for matches?
by spacephysics 7y ago
That’s a good question I’d like to know, too. Perhaps they hash the phone numbers then compare to their master list for matches?
- seemslegit 7y agoThat's hardly helpful if I just don't want people who happen to have my number to know I'm using signal.
- doomrobo 7y agoHow would a messaging app work without contact discovery? You try a friend's number, and see if the message goes through? Well if that's what you want, then you can do this for all your phonebook numbers, and all the ones that go through are on Signal, and all the ones that error are not. Oops, you've reinvented contact discovery.
- seemslegit 7y agoA. You can design it in such a way so that sending a message to a non-user is indistinguishable from having a user see it and not reply/acknowledge it. B. You can exchange identifiers with people whom you want to communicate it just like with any other non-phone-based system: "Hey I'm @username on signal", "Cool, I'm @username2" - composes well with method A.
- doomrobo 7y agoSolution A does not compose well with how Signal does encryption. In order to make this indistinguishable, Signal would basically have to man-in-the-middle all non-existent users. And if one of those users signed up for Signal it would have to stop man-in-the-middling them, causing all the people who were talking with their ghost to observe a key change. It's complicated at best, and sketchy at worst. Solution B ties in to a bigger argument I won't address
- seemslegit 7y agoThere would be no key change because there would be no initial key, signal facilitates contacts anyway the only difference is that the sides have no ability to control with whom it takes place. Messages to non-contacts will not be sent because there would be noone in your contacts to send them to, hence indistinguishable.
- doomrobo 7y agoI don't follow. I'm sending (or trying to send) messages to my contacts. If I know their phone number, I'm going to try to initiate a Signal conversation with them. So I ask the Signal server for a signed prekey. Your argument is that Signal should not respond with "I don't know this person" and should instead respond with something indistinguishable from a "real" response. So they must send me something that looks like a signed prekey, right? Well then I would use that in order to do a key exchange and now we're in the situation I described above.
- seemslegit 7y agoSignal server should respond with "I either don't know this person or they have not approved to be contacted by you". You should only get a prekey if they are in fact a signal user and have opted in to be discoverable by everyone or only by select people including you.
- doomrobo 7y agoAh, ok. So in that case, people would probably be have to be uncontactable by default (otherwise we'd be back to the current universe). Now you'll have to explicitly opt in to being contacted by every new person you meet. This is fine for some, but it's a massive usability tradeoff. Think about all the non-tehcnical people that Signal is intended to be used by, and imagine trying to teach them about Safety Numbers and a necessarily-opt-in contacting scheme.
- seemslegit 7y ago
- lotyrin 7y agoI guess I just don't value "contact discovery" as a feature? I just don't see it as a casual thing the way the target users of these apps apparently do. I want to explicitly control, per any form of communication, each person who is to be made to know that I operate that form of communication and whether or not that form of communication with me is open to them. I do not want to open up a new app and have a large populated list of past acquaintances appear, I absolutely do not want to appear in such a list, I would rather not use a given app than risk having someone show up messaging me uninvited.
- TheAdamAndChe 7y agoThat's great! Signal may not be for you then, which is okay.
- cortesoft 7y agoor....make this an opt in feature?
- UncleMeat 7y agoIn order to do this, the signal server must maintain a list of who is allowed to talk to who, otherwise the list of people available on signal can be obtained through enumeration. This is a privacy trade off. Some services chose to keep this list. Signal chose to use phone numbers.
- andrewzah 7y ago> How would a messaging app work without contact discovery? "Hey, add me on telegram, my username is @andrewzah". This isn't a hard problem. I don't know why we decided apps hoovering up our contact lists in exchange for convenience was so important. For an app that touts itself as private and secure, I still had to explain to my brother why giving it his contact list wasn't a good idea.
- UncleMeat 7y agoThis is a hard problem. The evidence for this is the decades of failed attempts to get people to use pgp and other systems where I need to have a freaking party in order to figure out who I can message and how before I actually start communicating.
- cortesoft 7y agoAt least that requires the other person to have my contact saved, and actively try to reach me. I don't clear out my contact list frequently, so I don't want old contacts to be PROACTIVELY messaged about me joining Signal... if they are looking for me, fine.
- seemslegit 7y agoHow does it require them to actively try to reach you ?
- cortesoft 7y agoBecause it requires the customer to try to send a message to the contact. They would have to continuously do that if they wanted to be notified when I joined. This is very different than Signal doing it automatically when I join.
- leetcrew 7y agopersonally, I have admitted defeat and accepted that most people will not use my favorite messaging app. so I just default to sms and ask people who I talk to often if they have (or would consider installing) my favorite app. at this point, it's only slightly less convenient to exchange usernames. the contact prepopulation isn't even that useful. telegram in particular seems to drop notifications if you don't exclude it from power management on Android. if you don't know the user has notifications turned on and has jumped through the hoops to make them actually work, you may as well send messages into a black hole. this is part of why I never assume it's a good way to contact someone without explicitly asking.
- stubish 7y agoI'm genuinely interested in the rationale for this. I fully understand it is just creepy, and lots of people want the option for this alone. I'm also wondering if it is to do with notifying people you hope think your number is dead that it is very much alive (people you have ghosted). Any other reasons? Perhaps this should not just be an option, but an opt-in one.
- tlb 7y agoHashing phone numbers isn't useful for privacy. You can test the entire space of 10^10 phone numbers against a list of hashes in hours, and you only have to do that step once.
- ajconway 7y agoThey use Intel SGX to keep themselves from being able to access their users' contact lists. Still, one has to possess and reveal a valid phone number to use the service. This must help to grow the user base.
- seemslegit 7y agoThis misses the point, just because someone sometimes added me to their phone contacts and uses signal does not mean I want them notified when I start using signal too.
- Macha 7y agoThis has been my blocker to using Signal or Telegram also.
- 333c 7y agoWith Telegram at least, you do not have to share your contacts with the app. You can build up a Telegram-specific list of contacts based on who you message on the platform.
- Macha 7y agoThis is the inverse of the issue. I don't want everyone that has my phone number to be able to see/add me on telegram. That would require those users not to upload their contacts, which is out of my control.
- gergles 7y agoEveryone can't. You can adjust the privacy settings such that you have to add someone to your Telegram contacts before they can discover you are on Telegram. It's easily done in Telegram's privacy settings. This is a primary reason I prefer it to signal despite the screeching from armchair crypto experts on HN anytime Telegram is mentioned.
- 7y ago
- tialaramex 7y agoSpecifically they use the first ten bytes of SHA1(phoneNumber) where phone number is like +12345553215 for the US phone number 1-234-555-3215 or say +4424061184 for the number I had as a child in a village in England. This form of number is also the one your (mobile) phone actually uses, although they let you type in any sloppy human attempt at a phone number and translate. Signal apps periodically reach out to Signal's servers to do two things: Confirm that this specific user does still have Signal (and so messages to them should be accepted) and optionally upload a set of these hashes for their contacts to see if any of those have Signal and so messages to those numbers can go securely via Signal instead.