3 ms·
How 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
by doomrobo 7y ago
How 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 agoNothing necessary about it - those people (also all people) would be presented with a screen upon installation asking for their preferred discoverability policy - do they want to be contactable by: everyone in their phone contacts, only specific people from their contacts, only people they approve ad-hoc.
- 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.