Signal vs Session: The Phone Number Is the Whole Argument
Both encrypt your messages so that no one in the middle can read them. That part is settled, and it is not where they differ.
The difference is in what each one knows about you while doing it, and the whole argument comes down to a single field: the phone number.
What Signal knows, and why
Signal identifies you by your phone number. That means the service knows a number is registered, and anyone who has your number can find you on it.
In exchange, it gets things that matter every day: you already have your contacts, the network effect is real, delivery is fast, and the protocol is the most examined in the field. Signal has also spent years shrinking what it stores around the messages, so the amount it can hand over when asked is famously small.
Signal’s bet is that a small, audited, well-run central service is an acceptable trade for reliability and reach. For most threat models, that bet is sound.
What Session removes, and what it costs
Session takes the opposite route. No phone number, no email, no account. You get a long random identifier, and that string is your whole identity. There is no central server holding a registry either: messages travel across a network of nodes, in layers, so that no single relay knows both who sent a message and where it is going.

A stack of plain white envelopes tied with green twine. Nothing on the outside says who wrote them or who receives them, which is the property Session is built for and the one Signal does not claim: not the secrecy of the contents, but the absence of a name on the envelope.
What it costs is not hidden, and you should count it before switching.
Nobody can find you. Your identifier is a long string you have to transmit some other way. There is no directory, and that is the point, but it makes group formation and casual contact genuinely harder.
Delivery is slower and less predictable. Routing through relays instead of one server has a price, and it shows on large media and on flaky mobile connections.
The ecosystem is smaller. Fewer users, fewer clients, fewer eyes on the code. That last point is not a detail: the confidence anyone can have in a messaging system is roughly proportional to how many competent people have attacked it.
The question that decides
It is not “which is more secure”, because both encrypt contents properly. It is:
Is the fact that you talk to someone, at all, the thing you need to hide?
If the answer is no, and it is no for the great majority, Signal is the better tool. You get strong encryption, a service that stores very little, and an application your contacts already have. Anonymity you do not need costs you reliability you do.
If the answer is yes, and it genuinely is for some people, then the phone number is disqualifying no matter how well the rest is built, and Session addresses exactly that. Sources, some researchers, and people whose contact graph is itself sensitive are in this case.
⚠️ A warning that applies to the second answer. An anonymous messenger does not make you anonymous. If you use it from your usual device, on your usual network, at your usual hours, and mention things only you would know, the identifier being random changes very little. Anonymity is a property of the whole situation, not of one application, which is why it belongs in a wider threat model rather than in a choice of software.
What neither of them fixes
The other end. A message read over someone’s shoulder, or on a phone that gets unlocked, is not protected by any protocol. That is a device problem, and it is why full disk encryption and a proper lock screen belong in the same conversation as the messenger.
Backups. A chat exported to an unencrypted backup leaves the protected space entirely.
What the other person does. Screenshots exist, and no cryptography survives someone who wants to keep a copy.
The short version
- Both encrypt contents well. That is not the axis on which they differ.
- Signal identifies you by phone number, keeps a small central service, and is fast and widely used.
- Session removes the number and the central server, at the cost of discoverability, speed and ecosystem size.
- The deciding question is whether the existence of the conversation is what must stay hidden.
- An anonymous messenger does not make you anonymous. The rest of your setup decides that.