Elektrine lite

← Feed

@david_chisnall@infosec.exchange

Post #4501554

2026-08-11 14:19 UTC

Today's instalment of 'people who criticise #Signal should understand why Signal made specific choices and provide better solutions to those problems': Signal uses a phone number to sign up (boo, PII!). This serves three primary purposes: The one I don't really like is that it limits account-creation rate for antispam purposes. This is largely a problem because Signal conflates identifiers (your phone number or username) with capabilities: anyone who has your identity can contact you, there's no way of saying 'this person may add me but does not have any token that allows them to pass on the ability to contact me'. And this is a thing that should be table stakes for any messenger, but isn't something I've seen done well anywhere. More importantly, it enables discovery. In a world where most people used SMS, WhatsApp grew rapidly by reusing this identifier. If you had a contact list of people you used SMS to talk to, WhatsApp would automatically create a contact list with everyone who was already in your contact list. That's how WhatsApp grew to a billion users in a few years. Apple's iMessage copied this flow. Signal added some attempt at making this privacy preserving (though the space of valid phone numbers is so small that it's not hard to exhaustively enumerate it) and ideally they'd have some protocol so that you could find people by phone number only if you, specifically, were allowed to (some kind of zero-knowledge system that checked that both of you had the other in their contacts). This isn't just a marketing things. Growing the network rapidly is important for privacy. Privacy cares a lot about the concept of an anonymity set: the set of users that might be mistaken for you. If you're using something like XMPP, with a one-user server, your anonymity set is just you: any message from your server comes from you. If you're using a server with a hundred users, it's fairly easy to correlate messages sent from a client to the server with messages sent from the server elsewhere (even if they're end-to-end encrypted) because normal humans don't send messages all of the time and so there will be moderately long periods (seconds, if not minutes) where you're the only one sending messages. If you're on a server with a million users, there will be very few times when you're the only person sending a message and so this kind of correlation is hard. But, since Snowden, we know that at least one (and I would be shocked if it is exactly one) nation state is routinely running this kind of correlation, so this is something that any private messenger needs to consider in scope. What about other identifiers? The theory with XMPP was that email providers would also offer XMPP and you'd use the same identifier for both. Yay! Except most email providers didn't (except, briefly, gmail), so now you had two different identifiers that looked the same for reaching you. And here's the sad fact: most people don't have email addresses in their systemwide address book. They have mail clients that remember people they've contacted before. Unless they give your app access to their email account (and they absolutely should not be encouraged to give messenger apps access to their email), you can't get a list of email addresses for contacts (and, if you do, it will also include a load of companies and probably spammers). So it doesn't work as a discovery mechanism. The final one is recovery. If you can't log into Signal, you can reacquire the account with a SIM and a passcode. Getting a replacement SIM is normally easy. You could do this with email but most people have free email from a single provider. A phone number is something that you pay for but the free emails come with no guarantee of service and can be cancelled at any time without giving reason. Email-based recovery is nice to have as an alternative option but for most people it's strictly worse (in fact, their email address probably has an SMS-based recovery flow!). So, if you want to criticise Signal for using phone numbers, please do! I don't like it. I think there are better solutions to these things. But don't pitch your favourite messenger as better than Signal because it doesn't need a phone number unless you come with an explanation of how you solve those problems. And if you do have a better solution to those problems, don't bother comparing to Signal, tell me about why your messenger is amazing because it has good solutions to those problems!

Replies (0)

No replies.