Skip to main content


There's a "Signal deanonymized" thing going around:
gist.github.com/hackermondev/4…

Stay calm. Deep breaths.

👉 while this is a real consideration, the only thing the attacker gets from this is a very rough (kilometers or tens of kilometers radius) location

👉 other communication platforms that use any kind of caching CDN to deliver attachments are just as affected

👉 you almost certainly should continue to use Signal, unless you specifically know that this is a big problem for you.

#Signal #InfoSec

This entry was edited (11 months ago)
in reply to Michał "rysiek" Woźniak · 🇺🇦

In other words, it's not great that this is possible, but nowhere near an immediate and present danger to anyone except a very very small group of people doing very very specific things.

If you're in that group, you'd already known you are. You'd have someone to ask about this. And you'd almost certainly be using some other tools to anonymize yourself anyway.

If that's not the case, then this is almost certainly not something to lose sleep over. Signal remains a safe choice of a secure IM. 👍

in reply to Michał "rysiek" Woźniak · 🇺🇦

If you are still worried about this, my read of it is that these things might make the attack more difficult:

👉 turn off automatic downloading of media files

This makes this attack rely on you clicking the image to download it, making it very difficult for the attacker to know when to check for the cached status of the resource.

This is important, because for each attachment the attacker can only ask this question once per the period Cloudflare caches these resources (not sure exactly).

in reply to Michał "rysiek" Woźniak · 🇺🇦

You can also:

👉 turn of push notifications – this makes the attack rely on you clicking the chat to download the image

👉 turn off read notifications – again, this makes it more difficult for the attacker to know when to ask the question they can only ask once per a specific period of time

👉 use Signal over Tor or a VPN to obscure your actual location – the attacker would get the rough location of the exit node

This entry was edited (11 months ago)
in reply to Michał "rysiek" Woźniak · 🇺🇦

Technical details tl;dr:

- Signal (and other communication platforms) uses Cloudflare with caching enabled for media

- one can check on which Cloudflare endpoints a given attachment URL got cached (one can use a VPN for this), giving them the ability to roughly geolocate users whose Signal downloaded the file

- a patched version of Signal (or whatever app) allows the attacker to send the message with an image, and extract the attachment URL to know what URL to check for having been cached

in reply to Michał "rysiek" Woźniak · 🇺🇦

- images usually get downloaded automatically (and thus get cached on Cloudflare side)

- push notifications make this a 0-click thing, as the targeted user doesn't even have to click on a conversation to have the image downloaded

I believe this technique would work against any communication app that uses any global CDN that does endpoint caching and provides the caching status in HTTP headers of the response.

This entry was edited (11 months ago)
in reply to Michał "rysiek" Woźniak · 🇺🇦

I'd like to hear what @signalapp has to say about all this. There is a claimed response from Signal in that gist file, but I'd like to see it come directly from Signal before I form an opinion.
in reply to Michał "rysiek" Woźniak · 🇺🇦

You can set a proxy to be used by Signal. I would expect that in this case request to download the attachment from CDN goes through the proxy. And the best the attacker will get is the ip address of the proxy.

However, I will reveal my ip to the proxy. That's why trusted.

in reply to Agnieszka R. Turczyńska

@agturcz Use @torproject or better yet, #XMPP+#OMEMO with an #OnionService aka. #Server on a .onion domain...

in reply to Kevin Karhan

@kkarhan I ran and hosted a bunch of XMPP servers a while back. It was a pain to use, and it was easy for users to make mistakes and accidentally send messages in the clear.

You are making people les safe. Last time: please stop doing this in my mentions and replies.

@agturcz @torproject

in reply to Michał "rysiek" Woźniak · 🇺🇦

@kkarhan @agturcz An awful lot of people say they've used #XMPP "a while back". But they're often unaware of the best of XMPP, and have an unfairly negative view of it.

Did you happen to try...

...#Snikket for hosting?
snikket.org

...apps like #Quicksy and #Prav which use phone numbers for easy onboarding, same as #Signal #WhatsApp or #Telegram?
quicksy.im
prav.app

...featureful clients like #Cheogram #MonoclesChat #Gajim #Movim etc?

in reply to contrapunctus ✊🏳️‍🌈🏳️‍⚧️

@contrapunctus @agturcz yes, I am aware of all these. I am also aware of Simplex, Briar, and whole slew of completely decentralized IMs. And I made a long ranty talk about shortcomings of Signal that one time, got pretty popular on media.ccc.de.

And I still react badly to unnecessarily alarmist hot takes that can lead regular folks to make bad technological decisions.

in reply to Michał "rysiek" Woźniak · 🇺🇦

@agturcz Then, I confess to being confused about what you mean.

Why did you find it to be "a pain to use"?

Some clients don't have end-to-end encryption enabled by default - I hope that will change some day, but I never found that to be a dealbreaker. If someone sends cleartext, me and my friends immediately ask them to enable OMEMO.

Still, no feature or convenience is worth using a centralized silo. Reddit, Twitter, and Meta are proof enough.

in reply to contrapunctus ✊🏳️‍🌈🏳️‍⚧️

@contrapunctus @agturcz first of all, please don't explain centralization to me, I was talking about it before it was cool:
media.ccc.de/v/30C3_-_5319_-_e…

Secondly, "some clients don't support X" is a deal breaker. Because now regular folks need to track and think about whether or not their contact's server supports a safety feature they rely on.

Third, "if someone sends a cleartext…" is not anywhere near being acceptable for a communication tool like that. Sending cleartext should not be *possible*.

in reply to Michał "rysiek" Woźniak · 🇺🇦

@contrapunctus @agturcz I had worked with people reporting on Panama Papers, I had worked with people working with sources whose threat model included men with guns who were trained and willing to use them.

This kind of "no biggie if someone sends cleartext, we can ask them to enable OMEMO" stuff is what can get people killed. Advocating for tools like that is putting real people in real danger.

I am glad XMPP is improving, but it is simply nowhere near a Signal replacement yet.

in reply to Michał "rysiek" Woźniak · 🇺🇦

@agturcz Sounds like @snikket_im is your best bet, then. All Snikket clients have OMEMO enabled by default. And this way you actually can actually trust the operator, i.e. yourself, and control exactly what cloud services are used (including "none").

And Signal is seemingly not the perfect solution it's being made out to be, either.

troet.cafe/@pixelschubsi/11380…

troet.cafe/@pixelschubsi/11380…

This entry was edited (11 months ago)
in reply to contrapunctus ✊🏳️‍🌈🏳️‍⚧️

@contrapunctus you seem to be ignoring what I and others are telling you about how dangerous what you're doing – promoting XMPP into a space it has no business being in in its current state – is.

I am done with this conversation.

@agturcz @snikket_im

in reply to Michał "rysiek" Woźniak · 🇺🇦

I still have to disagree that Signal is better than XMPP in general. Signal has these terrible qualities of using a phone number for registration and being a centralized service. It's also not (afaik) really free software, and they might not be telling us everything. I do think it's nice that Signal proxies cleverly hide traffic using HTTPS. Ultimately XMPP is the wiser choice, and who sends messages in plaintext? All traffic to the server is encrypted with TLS.
in reply to Benjamin Kwiecień 🇵🇸

In any case, whether it's Signal, XMPP, or Delta Chat, you would have to take some configuration steps to hide the fact that you are using them. Delta Chat is pretty easy to hide and sneak through firewalls because e-mail is generally treated as innocuous. Choosing the right server with Delta Chat probably your safest route.
in reply to Michał "rysiek" Woźniak · 🇺🇦

in reply to Kevin Karhan

@kkarhan Sorry but no, the correct solution is to push for easy to use solutions that are at the same time private and secure. Hiding privacy and security behind a veil of "you need to know" is discrimination of people that are not able (either mentally, physically or monetary) to gain that knowledge.

The correct move here is for @signalapp and any other service to fix this and for legislators to enact laws enforcing proper security and privacy by design.

in reply to Max L.

in reply to Max L.

@max @kkarhan please point me at a system with a better ratio of security gained to effort spent than @signalapp ? Bonus points if it's actually used by people.
in reply to Claudius

in reply to Michał "rysiek" Woźniak · 🇺🇦

I don't think people should be using #Signal, besides this problem, it is a centralized service which means it is vulnerable to enshitification and it requires phone numbers to register which sucks a hell lot

I use #DeltaChat, decentralized, anonymous, no data required for registration, and it doesn't have this deanonymization attack problem

This entry was edited (11 months ago)
in reply to adb

@adbenitez I was ready to boost in the first paragraph, and then I saw the #DeltaChat recommendation 😅

I haven't heard good things about DeltaChat UX. #XMPP allows you to self-host, register on public servers without even providing an email address, and ask non-geek contacts to install Quicksy or Prav (so they can register using phone numbers). It's got AV calls and other features expected in modern chat.

And XMPP is actually made for chat from the ground up.

This entry was edited (11 months ago)
in reply to contrapunctus ✊🏳️‍🌈🏳️‍⚧️

@contrapunctus
I find it very strange to recommend #XMPP in response to this issue. Modern XMPP clients transmit media out-of-band by uploading the files to HTTP server using xmpp.org/extensions/xep-0363.h… and then sending the URL: docs.modernxmpp.org/client/pro…. XMPP clients then get an https:// URL and have to download directly from it exposing their IP to the server. It is trivial to setup a server logging IP addresses, upload an image there and send the URL to the victim.
@adbenitez @rysiek
in reply to l

@link2xt @contrapunctus @adbenitez Yes, except that XMPP clients do not auto-download images from random untrusted URLs and thus somewhat mitigate this problem.
in reply to JoinJabber

yes, but as many pointed out in many other parts of this thread, while XMPP clients might happen to not be affected by this very specific issue, they happen to be affected by a slew of other way more serious issues that make them effectively not an option for most people.

I am not going to repeat what these issues are, I am sure if you really want to know you can read through the thread.

@link2xt @contrapunctus@en.osm.town @adbenitez

@adb @l
This entry was edited (11 months ago)
in reply to adb

@adbenitez I would love people to use decentralized tools. I did a talk/rant about things that annoy me in Signal at MCH2022. This included the phone numbers thing:
media.ccc.de/v/mch2022-196-sig…

That does not mean that Signal has no value. If somebody is already using Signal, they're in a way, way better position, than if using any of the corporate apps (like WhatsApp), or any of the shady crap (like Telegram).

It's a question of harm reduction.

@adb
in reply to Michał "rysiek" Woźniak · 🇺🇦

Three big problems with Signal — for me:

1. No first class client for my OS (#Debian, #Mobian), only Google Android and Apple iOS.

2. Still requires a phone number to register.

3. Worst: No choice of server, no #digitalSovereignty.

in reply to Benjamin Kwiecień 🇵🇸

I think they're saying lack of first class client because it's an electron program.

It's also difficult to get a signal client for Debian on ARM.

in reply to R.L. Dane 🍵

@rl_dane @ben
Yes, Electron is horrible, but also the app did not work for me back then, because it additionally required the Android app. Maybe that is fixed now?

PS: For a daily driver messaging app, I require "sudo apt install whatever" from Debian main. YMMV, of course.

This entry was edited (11 months ago)
in reply to Debacle

Yes, Signal still requires an Android or iOS device to be the main.
in reply to R.L. Dane 🍵

@rl_dane @ben
I wonder why a desktop or console client can't be the main/only client for Signal… What is so difficult, that only Android or iOS can handle it?
in reply to Debacle

forcing the user to disclose a phone number to sell, most likely
in reply to mirabilos

I don't think they're selling the numbers, but I still am not fond of the requirement.
in reply to R.L. Dane 🍵

Yeah I would not believe Signal sells them. It's just a mechanism for people's convenience
in reply to Michał "rysiek" Woźniak · 🇺🇦

all the people in this thread recommending things like deltachat and xmpp instead because of this scare me