This link has already been posted with https://news.ycombinator.com/item?id=50019667 , but that post's title ("Telegram Desktop: one-click account takeover") doesn't say that the vulnerability allowed also any user-accessible file on the disk to be stolen.
This aspect is also not highlighted much in the article, which weirdly mostly focuses on the account takeover.
To me it seems something remarkable enough to warrant reposting the link with a different title.
Somewhat astonishingly, the core of the vulnerability comes from an internal url scheme added to Telegram to... help them publish their releases on their channel.
The Telegram developers saw no better way to do that than adding an internal tool which uploads any file it's told to.
Everyone else publishing their app on Telegram is able to do that with a script, but they had to do it that way.
It's true that it was exploitable only in a somewhat convoluted way, but still, it's an obviously dangerous feature.
Anyhow, yes, clicking on a link in Telegram Desktop was enough to have any user's file exfiltrated and to access or take over their account.
Still we are using it, because UX kills any other app and people that are (probably) behind it will cause almost no harm to casual, not-interesting people :)
And yes, I know that by default chats are not E2E, that phone number has way too many effects on accounts etc. Still, UX and agencies interested in important people are more welcome than data selling, ad-based companies.
"will cause almost no harm to casual, not-interesting people"
Yeah same can be said for Facebook and WhatsApp that Durov vehemently claims should not be trusted with user's data. Maybe it's a ploy for the Mark Zuckerberg of Russia to get the data of people.
Also, Telegram doesn't have to sell it's users if it's an FSB honeypot.
Well, it makes sense from a threat modeling perspective. If you're Russian, you should use Whatsapp because it is unlikely Whatsapp will cooperate with the Russian dictatorship, but in Western countries, you can assume that anything from Meta, Google or Apple that's in any way useful (and even if it's just metadata) can and will end up in the data lakes at the NSA.
Well for a Russian I think there's barely a chance that Russia manages to compromise any of the US giants at large scale, so Meta is a better choice than VK, Telegram or any of the Chinese services.
False dichotomy. Nobody's forcing you to use proprietary messaging app like WhatsApp in the West. FOSS tools like Signal are the norm in privacy circles.
What a bizarre threat model. Why would you rather have your data with who knows who than just your metadata?
And what UX problems exactly is Telegram solving that its many competitors aren’t? I hear this all the time, but I use both Telegram and WhatsApp and I haven’t found anything lacking in the latter, UX wise.
> and I haven’t found anything lacking in the latter, UX wise
I'm sorry if I'll sound condescending, but you probably don't use either frequently enough. With telegram it's the little (and sometimes not so little) things, e.g.:
- voice message transcription
- you can select part of the message via long-press and use it as a quote when responding
- massively more complex formatting possible
- bots as the first class citizens not gated behind some bullshit 'Business' KYC/subscription
- is not crippled by prohibiting system-level phonebook access like whatsapp
- extreme flexibility in managing large groups, mostly due to the bot point above
- and many more
All of the above does not excuse lack of e2e by default, this is almost embarrassing in 2026 now, but Telegram is the most polished IM experience of all the apps I have tried.
I use them daily, so we might just have different priorities.
Bot access is definitely better in Telegram; that’s what I sometimes use it for.
WhatsApp has voice message transcription now, but fortunately I don’t receive many. (I consider it pretty rude to put the effort of messaging on the recipient because the sender can’t be bothered to type or transcribe on their side.)
Everything else you mentioned is a minor inconvenience to me. Knowing the provider can’t mine my message data more than makes up for that.
For me it isn't the UX really. I was sold on it NOT being WhatsApp, etc, and then I stayed for the unlimited free storage for life (have a virtual FS built on it). Definitely ain't nobody else offering that.
I lost access to my WhatsApp history multiple times. This never happened to me anywhere else. This is admittedly an example of WhatsApp UX being terrible, not Telegram UX being great.
It has this feature where it tells you about other users that are on the platform. I mean it's not a huge leak, but right off the bat it's pretty poor security posture. For an app that competes with other chat apps on supposedly being more secure and privacy aware, it does worse than whatsapp on that end.
"For an app that competes with other chat apps on supposedly being more secure and privacy aware"
It mainly competes against facebook and other social media plattforms. The privacy is clearly wrong and only believed by non technical people (which can be amusing, when on TG someone posts a link to FB, or a WhatsApp group and people chime in and lecturing others that they should not use that as it is insecure and owned by a big company who will sell them out).
This!! Signal also had this back in the day, very bizarre for an app thats privacy focussed… sadly have to use it because some contacts refuse to use anything meta etc. Sadly it is only big corp stuff that works reliably where i am somehow..
It was, but most people will believe what their peers (real or parasocial) say over the collective screams of every security researcher on the planet, so here we are.
The main spy feature that is Telegram collecting 100% of content and metadata is the main feature for every intelligence agency who bothers to ask Mythos to find zero days to pwn the servers.
It's not strictly-speaking a Telegram-specific vulnerability. It's a vulnerability of all modern desktop operating systems allowing any user process to read/write any user file. Ideally all programs should be isolated from the underlying filesystem and be able to read only their own files and files from per-program data directory (like downloads for a browser or Telegram-client).
Not all user processes upload those files somewhere surreptitiously.
Of course operating systems should support that isolation (hopefully in some better way than the hell that smartphones are), but it's not like Telegram can blame the OS for this vulnerability.
> Not all user processes upload those files somewhere surreptitiously.
Only if you have access to full source code, can audit it (including each update) and somehow can prove that it has no vulnerabilities. Otherwise one should assume that any application is potentially-harmful and/or vulnerable.
No, that kind of audit is neither necessary nor sufficient. (A firewall works without application source code, and trusting trust means we can hand wave anything even with source.)
If you don't believe it's a vulnerability, then you must believe that tricking Telegram into uploading your messages database to the attacker, leaking all your private conversations, is A-OK? Telegram has access to that file after all.
I didn't say it's not a vulnerability. It is clearly one. But allowing such vulnerabilities to deal damage beyond data of its host application is an OS vulnerability.
That's broadly-speaking a vulnerable design of all OSes, but strictly speaking it is a bug in Telegram that is now fixed at the app level. Though sandboxes / app isolation solutions exist even in the broadly vulnerable OSes, so apps could use them already today to avoid such issues in the future?
Looking at the flatpak manifest it has `share=ipc` but no directories shared.. I'm not sure on flatpaks defaults for what it would actually have access to on the host.
At the same time the mobile operating systems are vulnerable to vendor lock-in due to the absence of this functionality. It is clearly a worse problem that a user can't give their backup system access to the photos stored by other applications (often social media), or for instance reliably capture media streams to use in for instance a remixing application. Bringing custom clients when the software originally used to create the interesting files starts acting against the users by introducing subscriptions or being abandoned is another example of the user dictating what software accesses what files is critical to secure the users operations. Consumers need security against commercial interests infinitely much more than commercial interests need protections against consumers, and it would be unethical to enable commerce at the expense of individuals like the mobile operating systems do.
Sandboxing is great, as long as the user has absolute control of it and final say on what goes in and out of it. No program needs to know what else I run on my system that might go against the program creators interests. Like for instance me running a bot do the grunt work of cancelling a gym membership through their app should not be possible to prevent. Sandboxes where the system, or even worse the application inside, decide that the users wishes aren't worth respecting is an attack (that tragically often succeeds) on the user.
> It's not strictly-speaking a Telegram-specific vulnerability. It's a vulnerability of all modern desktop operating systems allowing any user process to read/write any user file.
No, it's definitely a Telegram specific vulnerability. It might be worse because of poor defense in depth, but without Telegram itself being vulnerable it wouldn't matter.
> Ideally all programs should be isolated from the underlying filesystem and be able to read only their own files and files from per-program data directory
So how will you spam all the group chats you're on with meme gifs downloaded from facebook then? :)
Download an image from Facebook into browser's private downloads directory, copy it using a file-manager application (one of the exceptional applications having full filesystem access) into Telegram's private directory, upload it into chats you need to post it.
The file-manger application managed above is a single point of failure, of course. So, it should be allowed to use only one provided by OS vendor.
Sounds like effort, people don't like effort when spreading memes, so would be enraged if this would be the default now, or nobody would activate it.
There is a lot of middle ground, like having a shared folder for access. "Downloads" might be a good default, if clearly communicated, that anything in there, is accessible by any app.
Yes, and there are many ways for apps to opt into this, to limit their own blast radius in a case like this.
Does Telegram do that, or do they consider themselves beyond bugs, just like they consider themselves too clever and untouchable by anyone to need end-to-end encryption?
Yeah, something like that would not have prevented the account takeover part, though, which relies on Telegram's own files; or the access to cached files.
Imagine if you forgot to update your phone number with your personal bank, and then some random guy was given full access to your account and all of its contents.
And even if you dug through the account options and set a 2FA password (normally disabled) he could still just delete your account outright.
Last I checked, that's exactly how Telegram works by default. It's laughable to consider a service tied to a phone number secure.
I guess that the idea with phone number based services. Imagine if you could not sign up for telegram/ WhatsApp/ whatever because someone used your number before you.
You would still get a notification inside Telegram that someone else logged in (plus it sends the login code to your session first before you can fallback to SMS) and you can log them out. The "attacker" can't delete your account or log out your sessions because he can't use certain features on a fresh login, there is a downtime. But yeah, he can read all your chats. Same should be true for any app that uses phone number login. That's why there is a password feature.
You can delete an account if you have the phone number but not the password, it's on a 7-day timer before the account gets deleted. It can be canceled by a logged-in instance.
That still means you have to check it every 7 days.
You still get notified of a login and multiple times for the deletion request. Opening a chat app once in a week is not something rare and by that time you already changed your phone number inside Telegram.
You cannot change your primary number from the desktop client alone. And because I had no active phone session, I was soft-locked into (now)someone else's phone number. The only 'solution' was to message the random guy, explain and ask him to forward the login verification text message they sent him.
Afterwards I just deleted the account outright myself. anything that desktop-hostile isn't worth my time.
The obvious question is "why not just have a backup logged in phone session to solve this" and the obvious answer is because I don't fucking want it on a phone. And I'm not paying ~50 a year for a burner phone just for telegram.
I don't use Telegram Desktop or Windows. But that's exactly the reason why I run Firefox in a firejail sandbox on Linux. The browser has only access to my Downloads folder. I know that it's considered untrusted and don't keep any files there for a long time.
interesting you mention. because Firefox doesn't have a way to disable the single instance functionality which was used on this telegram vulnerability.
one long time Firefox contributor have been for a couple years now removing every part of the --noremote option. even botching (Ooops!) the console notice that the flag was no-op some time ago.
try it, start with --noremote. you will get the vulnerable rpc/dbus listener. start another "firefox --noremote https://example.com" and it will open on the previous process. ha!
yeah, and you never got a warning about that option going way uh? that's why I'm 80% sure it was malicious. too many convenient mistakes.
That only one instance of Telegram can run at any time.
And if you open a Telegram link it will open in the existing instance.
Windows uri handlers actually always create a new process, though; so if you want this single instance behavior, you have to do some check at the start of the process and communicate the uri to the previously running process (as explained in the article).
Because I do know what this vulnerability was about, and it had nothing to do with Firefox (and I know that you specifically probably didn't mean that Firefox was involved, but even Telegram's desire to be single instance was not what caused the vulnerability).
being a single instance === having a port open somehow (firefox is dbus) that allows full control of the initial process under the assumption the user space is secure.
this is the pattern that was abuses in the telegram hack. and this is what security conscious people implemented --notemote in firefox to close this vector. which is gone.
ff case for example, that channel allows you to open new tabs in a profile. run js in open tabs. thats is already enough for full control as far as a browser use case is concerned.
Or the reason to run Firefox in a FreeBSD jail to get server-grade security. But the question is can an attacker get access to the Firefox profile data? Because you cannot block that from Firefox, obviously.
Sure, to some degree you must trust your browser. In the extreme case you could open a new, non-persistent browser session for every page you visit. Could be slightly inconvenient...
> In the extreme case you could open a new, non-persistent browser session for every page you visit.
This is seamless on Qubes OS: You just click a link and a new empty VM with Firefox opens. You close the browser, and the VM is destroyed. Can't recommend it enough.
You can set it up with FreeBSD's jail as well. You can create several types of jails on the fly too - either ephemeral or thin/thick jails. And with ZFS snapshots everything is very efficient.
You could also use a VM on FreeBSD too, but I would argue that it's very inefficient to boot up a VM for each application instance. A container/jail is virtually the same as a VM, except a VM uses your host's kernel. And kernels are probably the least of worries in terms of security for apps.
I've tried that actually but it was a bit hit and miss to get it working. Console apps work fine in a jail but something like a browser that needs X and sound and ideally gpu acceleration it's a lot harder.
It's pretty easy. Once you set it up, it's set it and forget it. It just works like clock ever after and keeps you secure. It works with Wayland as well.
Yes, it has access to the internal storage mechanisms of the browser.
I used to use Cookie Auto Delete for years. But when I last checked it seemed unmaintained. I log out of all somewhat important services anyway every time I am done.
For important stuff like banking I use Firefox containers.
Yeah, all of them could have their weaknesses and vulnerabilities. I just hope no attacker hits exactly the stack I use...
Personally I only open Firefox on Linux booted from a read only usb. In theory there could be a firmware vulnerability in the CPU that could let it write persistent data to the UEFI firmware, but I hope the possibility is small.
I dont write off software because where the person that made it was born. I personally think thats the same thing as refusing to eat at a black owned resturaunt because of the owners skin color.
Seems like many people do this when it comes to russian tech. Im American and I certainly trust my data in the hands of a foriegn government/entity (which is not even the case for telegram), than my own. Even if it was a russian op (its not the Ukrainian military literally used telegram for years), the russian government cant touch me.
Telegram is a double threat: the company is Russian and the founder was arrested then mysteriously released without any charges in France. Given why France wanted him and arrested him, the fact they released him a few days later with no charge annihilated the little shred of trust I had in this Russian piece of software, personally.
I don't know why anyone is using telegram when there is signal. Also with all the issues around telegram and their founder, you'd probably be safer using whatsapp even... :/
Telegram has channels, which are a one-to-many (thousands or millions of people) chat feature letting you have basically your own social feed. Lots of people follow channels for on the ground news reporting, especially since it's not censored like social media is.
The onboarding experience with Telegram is extremely easy, which is useful when dealing with non-technical audiences who might not even have a social media account (but do have smart phones).
My Bible study class has grown enough that standard SMS/MMS group texts are hitting up against Verizon's carrier limit (I think we have only two people who use Verizon), and RCS isn't an option. Telegram wasn't my first choice, but it was a lot easier for everyone, and it supports tablets out-of-the-box.
No it doesn't. Matrix has large groups, but they are limited:
1. You must join a group to see its contents. This puts a stupid "{user} joined the room" message in the room for everyone to see. Channel membership is anonymous.
2. Channels generate a public feed that doesn't require any special software to read from (see Durov: https://t.me/s/durov). Matrix requires a client of some kind, all clients are clunky at best and none have a public view.
3. Channels support millions of readers. Matrix rooms literally cannot do this, and rooms frequently get out of sync due to federation.
Matrix clients do not allow to even select several messages to delete them at once. Matrix is a superior concept to proprietary Signal, Whatsapp, Telegram etc but the implementation needs some help yet and UI is far behind.
Telegram has way, way more features than Signal. First-class clients on every OS, much better behavior for large groups, far more sophisticated and granular permissions system for admins in groups, voice and video messages, folders for chats, etc.
It also has way more security features too, such as the ability for any session to de-auth any other session, while on Signal, only one mobile device is your "primary", so you're screwed if you lose that. Also tons of detailed permissions for who is allowed to see what information of yours and add you to groups. The only thing Signal actually does better is E2EE for groups. I think it's simplistic and short-sighted that many tech people seem to think that "security" means E2EE and absolutely nothing else.
Except when you enable E2EE, you lose a lot of the features like stickers.
Also, enabling E2EE manually leaks additional metadata about intent to hide content from the service provider. That's insanely valuable even if you can't see the content.
Telegram treats E2EE like a door wreath hung from a nail. Practically all private messengers like Signal treat it like the foundations of the building.
>much better behavior for large groups
Telegram leaks a group as large as the size of 3 members, to the server, always, with ZERO way to opt-out. That's not better behavior. Whatever seasoning you apply on top of a turd, won't change what you're eating.
>far more sophisticated and granular permissions system for admins in groups
Yeah when you remove the "server has no ability to control the group" security feature you can do all sorts of things really easily.
>It also has way more security features too, such as the ability for any session to de-auth any other session
Way more in this case is clearly one. And this is a trade-off. Any of your devices gets stolen and the attacker can lock you out.
>so you're screwed if you lose that.
No you can keep backups in the cloud these days to recover your account. Unlike Telegram, the backups are actually encrypted so that the service provider can't read them.
>Also tons of detailed permissions for who is allowed to see what information of yours and add you to groups.
You mean, it allows you to control to whom the service provider yields the data. But the main privacy issue with Facebook, Telegram and any other surveillance capitalistic platform is the service provider. And Telegram isn't fixing Telegram learning everything about you.
>The only thing Signal actually does better is E2EE for groups.
Signal does EVERY thing better because every feature is private by design. Even if there's UX stuff to fix. You wouldn't claim some Trojan horse malware is really good because the game crack works and you can play a 30 dollar game while it steals your entire digital life or demands random or whatever.
>I think it's simplistic and short-sighted that many tech people seem to think that "security" means E2EE and absolutely nothing else.
In private messaging apps security begins with E2EE. Then you add tons of other features, like forward secrecy (Signal does it better than Telegram), future secrecy (Signal does it better than Telegram), Post-quantum security (Signal has it and Telegram doesn't), cross-platform messages usage (Telegram has no cross-platform E2EE), default security (Telegram has none), and that's just content. There's much more private tools for metadata protection, and on top of that you have advanced issues like endpoint security to deal with. E2EE is the bare minimum for e.g. PrivacyGuides app recommendations, and Telegram can't even cross that bar.
No I mean between your smartphone and desktop clients.
When you can't continue the secret chat on your desktop device, you'll eventually get tired of having to dig your phone from your phone, unlock it, open telegram, navigate to chat, reply, lock phone, put it back to pocket continue work; the alternative of ditching security and just alt-tabbing to insecure chat on desktop client wins.
This is what a modern backdoor would look like. Vendor can't be blamed about introducing a backdoor, when using the backdoor feature is your own fault.
And this is just DMs where E2EE is possible in the first place.
>>I think it's simplistic and short-sighted that many tech people seem to think that "security" means E2EE and absolutely nothing else.
>In private messaging apps security begins with E2EE.
This may be clearer from a product point of view. Your apparent viewpoint, and that of Signal etc, seems to be that protection from the server (and admittedly whoever can coerce whoever owns the server) is the only thing that matters, no matter what other features you have to throw out to get it.
What I am calling out is that this is a fundamentally ideological point of view. You can believe that and act according to it if you want, but general readers should be aware of what they are losing in order to enact this ideology with benefits that seem to be a bit dubious in the real world.
It is well known that Meta is happy to hand over to any legitimate law enforcement agency any content they have. To the best of my knowledge, Telegram never has, and neither has Signal. The fact that Telegram potentially could someday seems more theoretical to me. Again, to the best of my knowledge, all actual leaks of messaging group content have been by various authorities compromising individual devices and/or their owners, which works equally well against Telegram and Signal.
Meanwhile, Telegram gives you a lot more practical security regarding what information to share with other users, and how to manage what other users can do in large chat groups, which seems like a much more real-world concern regarding actual dangers to users than what the company that owns it might potentially do at some future date.
I think for real security, it's better to pay attention to the business model of the company that runs it. Meta's business model is indeed to basically sell your data to advertisers. Telegram does not do this, and shows no signs of wanting to. Instead, you can pay for premium, and they allow advertising as messages in public channels, and they're doing some semi-dubious stuff with cryptocurrency. Signal seems a little weird, they are apparently funded by some sort of donations from unknown parties. It seems to work okay for now, I guess, but is their financial future any more secure?
>>so you're screwed if you lose that.
>No you can keep backups in the cloud these days to recover your account. Unlike Telegram, the backups are actually encrypted so that the service provider can't read them.
I wasn't talking about that, but about the ability to de-auth your mobile device (the one probably most likely to someday get lost) from another device, since no one device is the "primary". Yes, an attacker could potentially lock you out if they get into your Telegram on the compromised device before you get on one of your other devices. But on Signal, you're screwed if it's your mobile, and fine if it's any other device.
Though since you mentioned backups, I think Telegram's way is arguably more secure. Individual user backups, even encrypted, means all your communication security is at the mercy of whoever in your group has the weakest encryption keys and backup storage location. With a centralized system like Telegram, it's never anywhere but their servers.
>is the only thing that matters, no matter what other features you have to throw out to get it.
That's just it, it's not a false dichotomy. Proper privacy engineering can achieve tons of private actually good features. And it's also fine for Telegram to not provide it, but then you can't really market yourself as more private than WhatsApp, "heavily encrypted" etc. There's loads of people who do not know how poor Telegram's security is. Informed consent is what matters much more than dialing every security feature to 11.
>What I am calling out is that this is a fundamentally ideological point of view.
> but general readers should be aware of what they are losing in order to enact this ideology with benefits that seem to be a bit dubious in the real world.
Sounds like you're trying real hard to get people to give up their human right. Why? Do you gain something personally from people using Telegram? Why would you defend such a shit product marketed with lies?
>It is well known that Meta is happy to hand over to any legitimate law enforcement agency any content they have.
Oh so privacy does matter to you when it's Mark Zuckerberg having access to your data but not when its Mark Zuckerberg of Russia having access to your data. The fact is, Telegram looks like an FSB op, or the very least, it doesn't give hard time for nation states to access messages of billion users. Hack the server and you're done.
>To the best of my knowledge, Telegram never has, and neither has Signal.
It shows a bit poor taste to equate these two. Signal doesn't have your data because it end-to-end encrypts all messages. Telegram does the opposite.
>The fact that Telegram potentially could someday seems more theoretical to me.
Their product is now 13 years old. If they cared about user privacy they'd have already hired competent cryptographers to design a protocol that provides the security and the features.
>Again, to the best of my knowledge, all actual leaks of messaging group content have been by various authorities compromising individual devices and/or their owners, which works equally well against Telegram and Signal.
Yeah except Telegram that clearly lacks proper security team wouldn't tell if their servers were compromised. There's nothing they could do to retain user trust at that point. They don't have to care about NSA or FSB or whatever hacking their servers because those agencies aren't boasting. And yeah user endpoint exploitation is obviously out of scope for secure messaging apps as networked TCBs can't be made hardened by some app vendor. I might know something about this topic as I'm the only person who has created messaging system that gets around that issue.
>Meanwhile, Telegram gives you a lot more practical security regarding what information to share with other users, and how to manage what other users can do in large chat groups, which seems like a much more real-world concern regarding actual dangers to users than what the company that owns it might potentially do at some future date.
Telegram IS the threat, not my friends in my closed group where I never need group management. Open groups that require granular permission controls do not require end-to-end encryption. The difference is, Telegram doesn't give you choice for small private groups with friends.
>I think for real security, it's better to pay attention to the business model of the company that runs it
It's SO CUTE that you're trying to control the narrative :D No Telegram has nothing to do with real security.
If Telegram is an FSB op, there is no business model. And if not, nothing prevents selling Teleg...
I don't work for Telegram, I just enjoy pushing back against the cryptography ideologues demanding that we put up with lower-quality apps for benefits that are somewhere between dubious and imaginary. Like all ideologues, they always devolve to personal attacks when you point out how bad their arguments are, which you have done right on cue.
> I might know something about this topic as I'm the only person who has created messaging system that gets around that issue.
And there it is. The only person in this thread "shilling" and "trying to control the narrative" for their own personal benefit is you. I'll refrain from being condescending about it the way you have though.
You're also going into straight conspiracy theory territory here. Telegram is allegedly a FSB op, or maybe NSA or whoever, even though the current Russian government doesn't seem to like Telegram or Durov, their CEO, much. Definitely don't worry at all about Signal's leadership and funding though!
No we just have different idea of what quality means.
>The only person in this thread "shilling" and "trying to control the narrative" for their own personal benefit is you.
Yes a person advocating for other people to have human right to privacy is benefitting from a better society! How selfish of me! It's really cute that you're gaslighting the hell out of your audience.
>You're also going into straight conspiracy theory territory here.
No, I'm stating that I have no proof of it, but that it's Durov's job to disprove that claim with the ubiquitous E2EE. What would you call someone who writes a non-private messenger and markets it as private?
>Telegram is allegedly a FSB op, or maybe NSA or whoever, even though the current Russian government doesn't seem to like Telegram or Durov, their CEO, much.
Yes because everyone would trust Telegram if it was the official recommendation of Russian government and FSB. You not understanding first level of misdirection is the absurd part here.
>Definitely don't worry at all about Signal's leadership and funding though!
For someone who doesn't care at all you sure have every single shill argument nailed. I've had these debates since roughly 2015 and you're no different from every other Telegram shill :)
Personally - I still don’t think I’m interesting enough to even point agents to hack me and the most important… the UI feel and UX. Even WhatsApp UI and UC is better than Signal and such statement can be seen as insulting.
You're sure you're replying to the right message? It doesn't mention any country or nationality...
Anyhow, people don't write off Telegram because it's Russian, but for many legitimate reasons.
There are indications that it could be much closer to the Russian government than they pretend, but that matters not because Russians are bad people, but because the current government of Russia is an aggressive dictatorship.
The Ukrainian military literally used Telegram for years and now literally banned it.
The main reason I consider it suspicious is that they are so adamant about not needing end-to-end encryption.
Even assuming they are fully legitimate today, if this ever changes and somebody gets access to their infrastructure, they immediately get a treasure trove of historical messages.
Telegram hoards messages of over 1,000,000,000 users as of now. Anyone not realizing major nation states have long since pwned the servers to spy on those users is a fool. Even if if the zero days cost 100 BILLION dollars, that access costs like 1-2 hours of intelligence contractor's hourly wage per target. The bang for buck is insane. Telegram is one of the world's biggest intelligence operations, wittingly, or unwittingly.
>I dont write off software because where the person that made it was born.
That's fine. I write it off because it by default leaks all of your content and metadata to the server, and then I ask why, and who is learning all that information and I do not like the answer.
>Seems like many people do this when it comes to russian tech
Yeah as a Finn it's not very hard to distrust Russia.
> Even if it was a russian op (its not the Ukrainian military literally used telegram for years)
You didn't prove anything with this, if anything, the fact that Ukraine banned using Telegram on the state officials devices, speaks the exact opposite: https://www.bbc.com/news/articles/c78dwepw95do
>the russian government cant touch me
If it's a Russian op, they're collecting your entire life, your political opinions, your relationship issues, everything, in search of kompromat that they'd use to coerce you during recruiting.
Is "firejail" a white list (only these things allowed) or black list solution (everything not explicitly disallowed is allowed)? I glanced through the issues and it seemed to me it is very hacky and feels amateur-ish and doesn't make me trust it, so I am starting writing my own, white-list based sandboxes. For example, No-net Sandbox will not allow a single packet out, including DNS query, unless allowed, Proc Sandbox will restrict access to /proc etc.
Wow, that's pretty bad, but imagine if 50% of software allowed this to happen at any time, and it was discovered on December 1st, 2026. What would happen?
Look at who is on the board of Dropbox and ask yourself what the value of a file syncing service having accessibility (and previously kernel extension) privileges on your machine are.
Not to mention that Dropbox has never been E2E protected and had that Lenovo credential free access bug on web not too long ago.
Dropbox should be considered untrustworthy at this point, especially since iCloud Drive offers E2E encryption and so do other competitors.
Don't let yourself be fooled into thinking this is enough. Plenty of examples of, especially through wasm, being able to reach far beyond what they're supposed to.
It gets buttoned up fast and is always getting better, but its absolutely not a silver bullet.
If you enable lockdown mode on your iPhone and Mac, WASM is disabled through Safari. If absolutely needed, an alternative browser like Firefox can be used for those sites.
Except when you want actual end-to-end encryption, in which case web versions fundamentally cannot guarantee it today (and there are no plans to get there).
People using Telegram don't care so much about end-to-end encryption, so there maybe it makes sense to use the web version indeed.
Because when you load a page in your browser, you fundamentally trust that the server is giving you what you expect. And the whole point of end-to-end encryption is that you don't trust the server.
If you download an install a program on your OS, you can e.g. check the hash of that downloaded archive and compare it to others, ideally making sure that you are running an audited version of the program. You don't have that guarantee when loading code in a browser: the server could totally serve you a modified version of the code, and you don't have a practical way to check that. Not that the laws of physics prevent it; it's just not how a browser works.
Whether E2EE is implementable or operational has nothing to do with whether you trust the code to actually facilitate it. E2EE can also be trivially circumvented by someone looking over your shoulder. This is not a coherent segmentation for whether E2EE is possible and engaged.
I am not sure what you are trying to say. Let me try an example.
Say you have a device that projects the screen on a skyscraper in Manhattan, visible by tens of thousands of people in real time. You can do all the cryptography you want, I would argue that you fundamentally cannot achieve "privacy" on that device, because "thousands of random people seeing it" means it is not private, by definition. Sure, you can run Signal on that device, and it does actually run sound E2EE maths. But it is not an "end-to-end encrypted deployment", it is a public deployment that happens to be running E2EE cryptography.
What I say is that running E2EE in a browser has that kind of nuance (as far as the comparison goes, obviously). In that the browser is indeed running E2EE cryptography, but it is not an "end-to-end encrypted deployment", because the user has to trust the server.
> This is not a coherent segmentation for whether E2EE is possible and engaged.
I would argue that it is. Just like E2EE is not "possible and engaged" on the skyscraped in Manhattan, I argue that it cannot be in a browser. The browser is running sound cryptographic code, but what the user gets is not an end-to-end encrypted experience.
That "trusting the code that runs in your browser when you load the website of a messaging webapp to actually facilitate E2EE" is out of scope for the question "is E2EE in a browser possible".
> I would argue that it is.
This is what I very directly disagree with. In both your Manhattan example, your browser example, or in my very own shoulder surfing example, it's not that E2EE isn't in place, it's that it is rendered useless by the circumstances. That is a distinct matter. The same applies to your heavily audited, reproducibly built, hash and signature checked, native, installed application. Worth jack if your phone itself, or the virtual keyboard you're typing on, etc, is compromised.
If this is how you segment things, E2EE cannot exist, hence why this is an incoherent segmentation; it selects for nothing that can actually exist, the label never truly applies. It's a category mistake.
E2EE can technically exist on a web app, but it would be stupid to rely on it, so, yeah, I'd just be careful when using the term for web apps, since you get something way less secure than what the term evokes.
But I feel like you are just nitpicking on the wording. When I say "you cannot have E2EE in the browser", I mean "you don't get what you expect if you expect that you don't have to trust the server". And the reason I say it is that many products advertise themselves as "E2EE", and many users believe that what they get from it is that they don't have to trust the server.
So I feel like the message I am trying to convey is "be careful people, you get less security than you think".
Similarly, I feel like the message you are trying to convey is "your wording is subpar". Sure, I'm not good with words, and I'm usually not taken seriously because of that. I am sorry about it. Story of my life, I'm used to it :-). I just wish eloquent people used their skill to help me convey my point (if they agree with me, obviously) rather than to make it sound like my point is worthless.
> I kind of have an axe to grind with E2EE exactly because of how little it can actually guarantee to begin with
Well then I think this is just wrong. If you do E2EE right, then you have the guarantee that no one in the middle (including the server) can read the data. It does have value, and saying "anyway cryptography is worthless because everything can be hacked" is not a productive argument IMO. Some people do rely on it, and it is important that those people understand when they can and when they cannot.
I don't really care so much about nomenclature and categorisation. I care about the fact that people who need it must understand when they can rely on it. And nitpicking on the wording is not making it clearer for them.
Not OP, but: You can definitely do encryption in the browser, no problem.
What you can’t do is make sure the server giving you the code that does the encryption doesn’t change it out with code that also sends your secret messages to Siberia. Unless you control the server giving you the web page. And you trust DNS.
At that point your trust model is simpler with an auditable local application. It could even be an Electron app - so almost exactly doing E2EE in the ‘browser’.
I find this unconvincing. Isn't this the exact same security posture as a native app with automatic updates turned on?
If your thought is just "disable automatic updates", there's no reason you couldn't do the same by declining new versions of a web app. Unless you built it yourself (as a web app or native app), you need to include the servers and DNS in your trust model.
To me, it seems entirely isomorphic. The only material difference I see is whether automatic updates are on by default (an OS/browser vendor issue, not anything inherent to the tech).
> I find this unconvincing. Isn't this the exact same security posture as a native app with automatic updates turned on?
Mostly. But the alternative shouldn't be a native app that updates itself, but rather a native app that is updated by a package manager. The big difference is traceability and auditability: With a trusted package manager (and even in good app stores) the company can only decide to push an update to everyone or to no-one. There is no way to push an update just to the pesky journalist or whistle blower. A covert attack is really hard to accomplish this way.
* The cryptography must be sound. That's the obvious one, if it's not encrypted then it's not "end-to-end" encrypted.
* There must be a practical way for the user to "verify" (with some definition of verifying) the client they are running.
A web browser doesn't provide that at all. It does not mean that everything else provides it: there are many ways to provide a Desktop app that break E2EE, but that is a different discussion. My point is that fundamentally, the web browser does not provide that. It's not that the laws of physics prevent it, it's just that the web browser never chose to provide that.
> it's just that the web browser never chose to provide that.
Yes, this exactly. If we wanted ‘verifiable’ app distribution via browser, then we’d need browsers to implement some way to cross check the code downloaded vs a publicly published list somewhere - similar to certificate transparency or what WhatsApp is trying to do with an extension [1]. Workout that, web apps are left working with a weaker threat model.
> or what WhatsApp is trying to do with an extension
I remember looking into it, and while it is interesting, I think what it allows to verify is that the intermediary (Cloudflare, I believe) didn't tamper with the code being served. Which in the end allows the user to verify that the code they run comes... from the server they trust.
It would, but at this point, do you need a browser really? Like the big advantage of the web is that users load the latest version of whatever you serve, and they don't have to care about updates. In many cases that's desirable. But it fundamentally doesn't work for E2EE.
I am not trying to say "browsers should not exist, everything should be a desktop app". I guess I am more defending "some use-cases work better in a browser, others work better as desktop apps". And I have the strong feeling that over the last years (decades?) there has been a very strong push by web people to say "everything should run in the browser".
I wouldn't really say that the advantage of the web is that users load the latest version, there's plenty other real advantages of the web.
A browser allows you to run an app on any device (to a degree), so it definetely seems useful to me.
I'm actually not a fan of web apps, JavaScript and anything that came after XHTML, but it sure is/would be convenient to be able to run the same software on every device, without even having to recompile it.
The single reason I dislike browser "apps" is what we've been discussing here, that you can't check what you're running (well, also that it's hard to control their internet access).
Same here, I personally like to load "websites" in my browser, and to download "apps"... like as "desktop apps".
> but it sure is/would be convenient to be able to run the same software on every device
Oh yeah that's for sure. I can't help but to think that with a fraction of the resources that went into supporting webapps in browsers, it could have improved native systems a lot.
But even then, Kotlin MultiPlatform (KMP) is making me optimistic. With Compose MultiPlatform (CMP) I am hoping that it will make its way to desktop apps, too.
> without even having to recompile it.
If recompiling is the price to pay to have diversity, I'm fine with it. If 100% of the computers ran the exact same OS, it would simplify many things, but that one OS would certainly not be what I want to run.
> The single reason I dislike browser "apps" is what we've been discussing here, that you can't check what you're running (well, also that it's hard to control their internet access).
I dislike the fact that they force me to have a modern browser at all. I like having control over my OS, it's not for being forced to run everything in Google Chrome.
> I dislike the fact that they force me to have a modern browser at all
Yeah that's true
> But even then, Kotlin MultiPlatform (KMP) is making me optimistic. With Compose MultiPlatform (CMP) I am hoping that it will make its way to desktop apps, too
I personally hate Kotlin, but yeah it's one more option ;)
It depends on how the automatic updates are handled.
App updates can be cryptographically signed with a key that’s kept offline and only held by a few people. Your trust in the app can be equal to your trust in those people, multiplied by your trust in the technology that keeps those offline keys safe from compromise.
Your trust in a web app will be equal to your trust in the people running the server multiplied by your trust that the server isn’t compromised. Since the server is necessarily always online, that trust will be much lower.
> Isn't this the exact same security posture as a native app with automatic updates turned on?
It's not, I don't think so. For instance, if you install Signal on your Android, the apk was signed by Signal, sent to Google and distributed by Google. Google cannot modify it, because Signal has to sign it. So in order to make you install a "malevolent" version of Signal, Google has to collude with Signal.
Of course you can download and install the apk from Signal's website, in which case Signal may give you personally a malevolent version. But you can easily compare that file to someone else's. On Android there are verifier apps that allow you to check that.
Finally if E2EE does matter a lot to you, you can compile Signal yourself from the sources, and even go as far as auditing those sources yourself.
You don't get to do any of that on the web. When you load ProtonMail in your browser, you don't have any practical way to verify that the code your browser is running is the same as everybody else who is running it around that time. You have to trust Proton that they give you code that prevents them from reading your emails. It is better than nothing or course, but it still means that you have to trust Proton.
> if you install Signal on your Android, the apk was signed by Signal, sent to Google and distributed by Google. Google cannot modify it, because Signal has to sign
I'd stress that for specifically Signal this seems to indeed still be true, but almost apps on Google Play are now signed by Google (with keys either generated by them or provided to them), and even customized by Google for your specific system.
Google requires it for all apps created after August 2021. *
---
> On Android there are verifier apps that allow you to check that.
If you mean Accrescent, it only checks the app's signature, not the hash of the individual versions.
I only know APK redistributors such as apkmirror that might let you check the individual app version, but they don't have API access and only host some apps.
And again, now almost apps on Google Play are signed by Google and customized on the fly for your device, so you typically can't really confront them.
---
* Except that apparently, since a couple months ago Google allows you to use their HSMs?
Even this magnanimous concession though is “strictly for enterprise organizations with mandatory compliance, regulatory, or policy requirements to retain key custody in an external Google Cloud KMS instance” (https://developers.google.com/android-publisher/api-ref/rest...).
There's some chance that they can't access these keys; but the app needs to be compiled on their servers, so yeah, plenty of ways for them to meddle with it, and probably even to issue signing requests.
This seems to have been introduced in July, it's the first time I hear of it
> but almost apps on Google Play are now signed by Google (with keys either generated by them or provided to them),
Yes! Google's goddamn "bundles" seem to be enforced to everybody. I guess part of Google "not being evil" and all. Another reason why initiatives like EU's Digital Markets Act are needed, I guess.
And yet another reason to use GrapheneOS, of course.
> If you mean Accrescent, it only checks the app's signature, not the hash of the individual versions.
No, there is an app called "AppVerifier" actually. That's the one I meant.
Theoretically you can download a single HTML file and open it in the browser. However many web features require HTTPS (including JS Modules, yes) so this would be poor developer experience. I want to write simple apps and prototypes in local HTML files but W3C does not let me.
You can't meaningfully audit a local application any more than you could audit the code of a web app. Developers frequently send updates which you have no way of verifying any more than you can verify web app updates. Your only choices are to accept the updates or refuse them, and the latter is a bad choice when the updates are security fixes, as they often are.
In practice the only E2EE app that would meet your bar is Signal, with reproducible builds that users can verify from source code, and then in theory they could audit the source code too. But making and verifying a reproducible build requires a ton of tools and hardly anyone does it, so in practice even Signal users don't meet your bar. Furthermore, there's nothing stopping anyone using tools to verify a web build too. There's nothing fundamentally better about native apps for this purpose.
> Furthermore, there's nothing stopping anyone from using tools to verify a web build too.
Feels like you haven't really thought that through. It's one thing to say it, it's another to actually try. It's not that the laws of the universe make it theoretically impossible for a browser to allow that. It's just that browsers do not allow anything remotely practical in that sense, because they are just not made for that.
> There's nothing fundamentally better about native apps for this purpose.
What's fundamentally better about apps is that it is actually practical. It is possible right now, and I do it.
Which E2EE messaging apps other than Signal provide auditable source and reproducible builds? Without those auditing the security of anything distributed by an app store is hopeless.
> Without those auditing the security of anything distributed by an app store is hopeless.
It's not. People have to realise that security is a gradient. Not everyone's enemy is the NSA. Some examples:
* With apps, you can verify that you are running the same build as random people on the Internet. In the browser you can't.
* With apps, you can verify that you are running a build signed by the same entity as random people on the Internet. In the browser you can't, and WhatsApp even has a browser extension just to allow you to check that Cloudflare didn't tamper with the code served by Meta (because obviously you trust Meta but not Cloudflare :-) ).
* You can compile an app from sources. You cannot do that in the browser.
* You can get an open source app that was compiled by someone you trust. You cannot do that in the browser.
> With apps, you can verify that you are running the same build as random people on the Internet
Not on iOS. You can't verify an iOS app at all. You technically could on Android but only by using developer tools and a separate PC.
> With apps, you can verify that you are running a build signed by the same entity as random people on the Internet
On the web every resource is signed with the certificate of the publisher. For all iOS apps and most Android apps you are required to trust the app store in addition to the publisher, which would be analogous to Cloudflare on the web, with the major difference being Cloudflare is optional and app stores are not!
> * You can compile an app from sources. You cannot do that in the browser.
Bullshit. You can absolutely have a reproducible web build that allows auditing that the assets you receive have not been tampered with.
> You can get an open source app that was compiled by someone you trust
Not on iOS, you have to trust Apple didn't modify it. On the web you can verify the certificate of someone you trust and know that what you're downloading is signed by them.
> E2EE is not limited to messaging apps.
So you concede that Signal, and only on Android, is the only messaging app that meets the bar of being auditable. Both web and native are auditable in theory. In reality the "E2EE" native apps people actually use are not any more auditable than browser apps.
> You can absolutely have a reproducible web build that allows auditing that the assets you receive have not been tampered with
What does that even mean? Show me how I can run ProtonMail on my browser today and verify that what my browser is running is the code they have open sourced? Or find me any example where they actually open source the code (not sure Proton does?).
> Not on iOS
So your argument against "web is fundamentally not built to allow that" is "but some app systems are closed"? Are you really trying to argue that "because some app systems are closed, all app systems are closed" or something?
> So you concede that...
Can you please not invent stuff?
> Both web and native are auditable in theory
So we agree somewhere: there are no laws of physics that say web cannot do it. Web is just not built for that, so in practice it's not there.
> In reality the "E2EE" native apps people actually use are not any more auditable than browser apps.
I don't know if you are consciously manipulative or if you don't realise it. My point is that if someone cares about E2EE, they can actually get some level of guarantee with apps. They can't realistically hope to get that with web.
I am not saying "all apps are 100% perfect, secure, auditable, E2EE" or whatever you may want to consider I conceded.
E2EE fundamentally exists for situations where we don't want to trust the server. That's the whole idea of E2EE, right?
Of course it's not black or white, security is a gradient. But if you want to check today that you are running the legit client of ProtonMail in your browser, you do not have a practical way to do it. It is theoretically feasible, I guess (?), but far from practical. But I can walk you through the steps needed to do it today with Signal, for instance.
I think I put my limit there: it's not enough to run cryptography. Verifying the client has to be practical for the user. The way ProtonMail works in the browser is a nice way for Proton to minimise the data they collect, but it's not E2EE, because even as an advanced user I cannot practically verify the client they serve me. In other words, E2EE means (to me) that there can be some kind of guarantee if you put a reasonable amount of effort into verifying it.
IMHO, the web should be to load websites (obviously) and small webapps that don't require E2EE or any kind of auditing. As soon as those are desirable, it shouldn't be a webapp anymore.
I find it nice to be able to load websites in my browser, instead of installing one program per website.
Don't most things people use day-to-day for both work and entertainment require use of the actual app these days, or at least make it very difficult to do so?
Pavlov took once pride in how he only had one developer for the complete development lifecycle of the ios client (that was pre-ai). That's when i realized security shit is going to happen sooner or later.
Does its official desktop client support "Secret Chats" (E2EE) yet? Last time I used Telegram before moving to more reliable IM platforms that feature was officially unsupported on desktop and there was even some community effort¹ to make a pull request with paid contributions totally ignored by Pavel Durov and his team
This is really good to know. Telegram is my primary means of communication, and a bunch of other things, and even though I'm not exactly exposed (I have password set, and only a few people can yank me into a group), I'm running a bit of a custom-method install that I don't update much.
Flatpak has "classic mode" which means no sandbox, which you will never guess if you did not read the docs, because why tell the users the truth when you can use marketing speak. Also, Flatpak allows reading identifiers from /proc and /sys.
All big companies pull these kind of tricks. Another variation is to retire the old setting and introduce a new one with a deceptive name that is default on again.
A lot of companies do this but I always get a ton of hate for saying this: Telegram is the worst offender I've seen. If you start digging through their apps, you see a ton of security practices that are anything but secure. And one of the hundreds of reasons I treat Telegram as the plague: get it away from me and burn it with fire.
Signal is legit. The entire stack is open source, and messages are E2EE.
Telegram is connected to Eastern European and the Middle Eastern countries and not in a good way, and the server-side components are closed source. There is no E2EE by default.
The phone number is only required to create an account, and is never used again IIRC. The rationale for it was to prevent abuse/spam, but I believe there is now the option to purchase an account for a small fee without needing a phone number.
Purchase can be done only through Apple/Google Pay which require a phone number and a bank card on top of that. Do not be deceived by marketing people.
My family uses it to communicate on devices that don't support iMessage (mainly Windows and Linux installs) because it's one of the precious few cross-platform messengers that doesn't treat desktop users as second class or as an afterthought.
There's a few communities that use Telegram because it seems to be one of the few that is both generally usable by the average person and by default has at least a little respect for separating your online identity from your real life identity. Which is sad because I agree it's a bit of a dumpster fire when it comes to security and privacy beyond that.
Maybe that's regional but here in Spain it's very popular for clubs. We use it for our makerspace and also for several other clubs. The moderation and access tools are way better than WhatsApp's.
It's not end to end encrypted but for big group channels that anyone can join that doesn't really matter.
Here it's all WhatsApp and Telegram. iMessage isn't really a thing at all except for expats.
Can you please tell me what settings get auto re-enabled? I use Telegram as my primary messenger app. I just want to make a more informed decision if I should switch to Signal or something.
Note there’s no info on that page on which settings get reenabled, only general list of grievances with telegram, mainly from a privacy/security perspective.
Is not Signal inferior? In Telegram you can communicate with strangers without disclosing a phone number, in Western messengers until recently you had to disclose it so that your contacts can conveniently find you and punch you in the face if you are a man or just annoy you with indecent messages if you are a woman (probably not scary in a country where everyone has a gun and every home is a castle, but not all world is like this). What Western genius thought of such a feature, displaying a phone number in a group chat?
Telegram also allows to delete any chat in one click. Telegram has support for HTTP, SOCKS, MTPROTO and WEB proxies to evade censorship, Western messengers do not. Telegram is written in C++. Although it is a piece of proprietary garbage and might be connected to the government, at least it is well made piece.
Also it became difficult to register in Telegram, I tried several numbers from black market and with every number it asked me to pay 1 EUR with a card to prove I am not a spammer (after doing this it would probably blacklist my black market card as well). What a garbage.
> What Western genius thought of such a feature, displaying a phone number in a group chat?
Well, most of those apps try to inject themselves in between you and the rest of the world, by "helpfully" offering to be your SMS handler and phone call replacement.
I am not sure what you mean by "Western messengers" exactly. If it's Whatsapp, then I don't think it's any better than Telegram, even though Whatsapp claims to provide E2EE. The entire stack is closed source, and in any case it leaks huge amounts of metadata.
And no, Signal is not inferior. If you are really concerned about the phone number issue, use a burner eSIM or purchase a Signal account. Last time I checked though, payment was tied to Apple/Google, inexplicably.
In the distant past this meant more. Vendors shipped one option for everyone. Now with things like A/B testing and other application 'smart' behavior which ends up meaning we all have different experiences.
324 comments
[ 1.1 ms ] story [ 28.7 ms ] threadThis aspect is also not highlighted much in the article, which weirdly mostly focuses on the account takeover.
To me it seems something remarkable enough to warrant reposting the link with a different title.
Somewhat astonishingly, the core of the vulnerability comes from an internal url scheme added to Telegram to... help them publish their releases on their channel.
The Telegram developers saw no better way to do that than adding an internal tool which uploads any file it's told to.
Everyone else publishing their app on Telegram is able to do that with a script, but they had to do it that way.
It's true that it was exploitable only in a somewhat convoluted way, but still, it's an obviously dangerous feature.
Anyhow, yes, clicking on a link in Telegram Desktop was enough to have any user's file exfiltrated and to access or take over their account.
Like any number of articles like this: https://hackernoon.com/7-reason-why-telegram-is-insecure-by-...
The Most Backdoor-Looking Bug I’ve Ever Seen - https://words.filippo.io/telegram-ecdh/
And yes, I know that by default chats are not E2E, that phone number has way too many effects on accounts etc. Still, UX and agencies interested in important people are more welcome than data selling, ad-based companies.
Yeah same can be said for Facebook and WhatsApp that Durov vehemently claims should not be trusted with user's data. Maybe it's a ploy for the Mark Zuckerberg of Russia to get the data of people.
Also, Telegram doesn't have to sell it's users if it's an FSB honeypot.
And what UX problems exactly is Telegram solving that its many competitors aren’t? I hear this all the time, but I use both Telegram and WhatsApp and I haven’t found anything lacking in the latter, UX wise.
I'm sorry if I'll sound condescending, but you probably don't use either frequently enough. With telegram it's the little (and sometimes not so little) things, e.g.:
All of the above does not excuse lack of e2e by default, this is almost embarrassing in 2026 now, but Telegram is the most polished IM experience of all the apps I have tried.Bot access is definitely better in Telegram; that’s what I sometimes use it for.
WhatsApp has voice message transcription now, but fortunately I don’t receive many. (I consider it pretty rude to put the effort of messaging on the recipient because the sender can’t be bothered to type or transcribe on their side.)
Everything else you mentioned is a minor inconvenience to me. Knowing the provider can’t mine my message data more than makes up for that.
It mainly competes against facebook and other social media plattforms. The privacy is clearly wrong and only believed by non technical people (which can be amusing, when on TG someone posts a link to FB, or a WhatsApp group and people chime in and lecturing others that they should not use that as it is insecure and owned by a big company who will sell them out).
technically, this is one agency burning the feature of another agency.
yeah fsb et al have access to what you post, but they also had access to any file you Don't post. Which was the feature they closed now.
Not all user processes upload those files somewhere surreptitiously.
Of course operating systems should support that isolation (hopefully in some better way than the hell that smartphones are), but it's not like Telegram can blame the OS for this vulnerability.
Only if you have access to full source code, can audit it (including each update) and somehow can prove that it has no vulnerabilities. Otherwise one should assume that any application is potentially-harmful and/or vulnerable.
Uhm, OpenBSD would like a word, buddy.
https://man.openbsd.org/unveil
[1]: https://github.com/containers/bubblewrap#usage
[2]: https://man.archlinux.org/man/bwrap.1
[3]: https://wiki.archlinux.org/title/Bubblewrap#Usage_examples
[4]: https://wiki.archlinux.org/title/Bubblewrap/Examples#p7zip
No, it's definitely a Telegram specific vulnerability. It might be worse because of poor defense in depth, but without Telegram itself being vulnerable it wouldn't matter.
So how will you spam all the group chats you're on with meme gifs downloaded from facebook then? :)
The file-manger application managed above is a single point of failure, of course. So, it should be allowed to use only one provided by OS vendor.
There is a lot of middle ground, like having a shared folder for access. "Downloads" might be a good default, if clearly communicated, that anything in there, is accessible by any app.
Does Telegram do that, or do they consider themselves beyond bugs, just like they consider themselves too clever and untouchable by anyone to need end-to-end encryption?
not true on macos.
Last I checked, that's exactly how Telegram works by default. It's laughable to consider a service tied to a phone number secure.
That still means you have to check it every 7 days.
Afterwards I just deleted the account outright myself. anything that desktop-hostile isn't worth my time.
The obvious question is "why not just have a backup logged in phone session to solve this" and the obvious answer is because I don't fucking want it on a phone. And I'm not paying ~50 a year for a burner phone just for telegram.
one long time Firefox contributor have been for a couple years now removing every part of the --noremote option. even botching (Ooops!) the console notice that the flag was no-op some time ago.
What's this now? I'm using that to handle multiple profiles and haven't noticed anything breaking
try it, start with --noremote. you will get the vulnerable rpc/dbus listener. start another "firefox --noremote https://example.com" and it will open on the previous process. ha!
yeah, and you never got a warning about that option going way uh? that's why I'm 80% sure it was malicious. too many convenient mistakes.
Telegram wanting to be single instance means that it has to use some serialization, and it not escaping semicolons enables a part of the attack.
And if you open a Telegram link it will open in the existing instance.
Windows uri handlers actually always create a new process, though; so if you want this single instance behavior, you have to do some check at the start of the process and communicate the uri to the previously running process (as explained in the article).
so why answer?
this is the pattern that was abuses in the telegram hack. and this is what security conscious people implemented --notemote in firefox to close this vector. which is gone.
If you only want to make a software single-instance, you typically simply use a named mutex on Windows.
In general it only requires *a way* of communicating *some* information, not to "fully control" the other process or to have a port open.
What was abused in the Telegram hack is a hidden feature that shouldn't have existed, and it was even only vulnerable because of a lack of escaping.
ff case for example, that channel allows you to open new tabs in a profile. run js in open tabs. thats is already enough for full control as far as a browser use case is concerned.
Not sure how that partitions the files on disk though, would probably need some code changes to work with some kind of firejail setup.
This is seamless on Qubes OS: You just click a link and a new empty VM with Firefox opens. You close the browser, and the VM is destroyed. Can't recommend it enough.
[0] https://forum.qubes-os.org/t/qsb-116-multiple-xen-issues-xsa...
You could also use a VM on FreeBSD too, but I would argue that it's very inefficient to boot up a VM for each application instance. A container/jail is virtually the same as a VM, except a VM uses your host's kernel. And kernels are probably the least of worries in terms of security for apps.
> but I would argue that it's very inefficient to boot up a VM for each application instance
https://doc.qubes-os.org/en/latest/introduction/faq.html#doe...
> A container/jail is virtually the same as a VM
No, it's not, https://hn.algolia.com/?q=container+escape
Also Qubes doesn't just use VMs but enforces virtualization with hardware (VT-d).
I used to use Cookie Auto Delete for years. But when I last checked it seemed unmaintained. I log out of all somewhat important services anyway every time I am done.
For important stuff like banking I use Firefox containers.
Yeah, all of them could have their weaknesses and vulnerabilities. I just hope no attacker hits exactly the stack I use...
Seems like many people do this when it comes to russian tech. Im American and I certainly trust my data in the hands of a foriegn government/entity (which is not even the case for telegram), than my own. Even if it was a russian op (its not the Ukrainian military literally used telegram for years), the russian government cant touch me.
My Bible study class has grown enough that standard SMS/MMS group texts are hitting up against Verizon's carrier limit (I think we have only two people who use Verizon), and RCS isn't an option. Telegram wasn't my first choice, but it was a lot easier for everyone, and it supports tablets out-of-the-box.
1. You must join a group to see its contents. This puts a stupid "{user} joined the room" message in the room for everyone to see. Channel membership is anonymous.
2. Channels generate a public feed that doesn't require any special software to read from (see Durov: https://t.me/s/durov). Matrix requires a client of some kind, all clients are clunky at best and none have a public view.
3. Channels support millions of readers. Matrix rooms literally cannot do this, and rooms frequently get out of sync due to federation.
It also has way more security features too, such as the ability for any session to de-auth any other session, while on Signal, only one mobile device is your "primary", so you're screwed if you lose that. Also tons of detailed permissions for who is allowed to see what information of yours and add you to groups. The only thing Signal actually does better is E2EE for groups. I think it's simplistic and short-sighted that many tech people seem to think that "security" means E2EE and absolutely nothing else.
Except when you enable E2EE, you lose a lot of the features like stickers.
Also, enabling E2EE manually leaks additional metadata about intent to hide content from the service provider. That's insanely valuable even if you can't see the content.
Telegram treats E2EE like a door wreath hung from a nail. Practically all private messengers like Signal treat it like the foundations of the building.
>much better behavior for large groups
Telegram leaks a group as large as the size of 3 members, to the server, always, with ZERO way to opt-out. That's not better behavior. Whatever seasoning you apply on top of a turd, won't change what you're eating.
>far more sophisticated and granular permissions system for admins in groups
Yeah when you remove the "server has no ability to control the group" security feature you can do all sorts of things really easily.
>It also has way more security features too, such as the ability for any session to de-auth any other session
Way more in this case is clearly one. And this is a trade-off. Any of your devices gets stolen and the attacker can lock you out.
>so you're screwed if you lose that.
No you can keep backups in the cloud these days to recover your account. Unlike Telegram, the backups are actually encrypted so that the service provider can't read them.
>Also tons of detailed permissions for who is allowed to see what information of yours and add you to groups.
You mean, it allows you to control to whom the service provider yields the data. But the main privacy issue with Facebook, Telegram and any other surveillance capitalistic platform is the service provider. And Telegram isn't fixing Telegram learning everything about you.
>The only thing Signal actually does better is E2EE for groups.
Signal does EVERY thing better because every feature is private by design. Even if there's UX stuff to fix. You wouldn't claim some Trojan horse malware is really good because the game crack works and you can play a 30 dollar game while it steals your entire digital life or demands random or whatever.
>I think it's simplistic and short-sighted that many tech people seem to think that "security" means E2EE and absolutely nothing else.
In private messaging apps security begins with E2EE. Then you add tons of other features, like forward secrecy (Signal does it better than Telegram), future secrecy (Signal does it better than Telegram), Post-quantum security (Signal has it and Telegram doesn't), cross-platform messages usage (Telegram has no cross-platform E2EE), default security (Telegram has none), and that's just content. There's much more private tools for metadata protection, and on top of that you have advanced issues like endpoint security to deal with. E2EE is the bare minimum for e.g. PrivacyGuides app recommendations, and Telegram can't even cross that bar.
> Telegram has no cross-platform E2EE
If you mean between an Android and an Apple device, that is supported, to my knowledge.
Telegram's E2EE is acceptable only for limited use cases, though, it's crippled beyond belief.
When you can't continue the secret chat on your desktop device, you'll eventually get tired of having to dig your phone from your phone, unlock it, open telegram, navigate to chat, reply, lock phone, put it back to pocket continue work; the alternative of ditching security and just alt-tabbing to insecure chat on desktop client wins.
This is what a modern backdoor would look like. Vendor can't be blamed about introducing a backdoor, when using the backdoor feature is your own fault.
And this is just DMs where E2EE is possible in the first place.
The only purpose of the private chats feature at this point is to be able to claim that Telegram can do E2EE
>In private messaging apps security begins with E2EE.
This may be clearer from a product point of view. Your apparent viewpoint, and that of Signal etc, seems to be that protection from the server (and admittedly whoever can coerce whoever owns the server) is the only thing that matters, no matter what other features you have to throw out to get it.
What I am calling out is that this is a fundamentally ideological point of view. You can believe that and act according to it if you want, but general readers should be aware of what they are losing in order to enact this ideology with benefits that seem to be a bit dubious in the real world.
It is well known that Meta is happy to hand over to any legitimate law enforcement agency any content they have. To the best of my knowledge, Telegram never has, and neither has Signal. The fact that Telegram potentially could someday seems more theoretical to me. Again, to the best of my knowledge, all actual leaks of messaging group content have been by various authorities compromising individual devices and/or their owners, which works equally well against Telegram and Signal.
Meanwhile, Telegram gives you a lot more practical security regarding what information to share with other users, and how to manage what other users can do in large chat groups, which seems like a much more real-world concern regarding actual dangers to users than what the company that owns it might potentially do at some future date.
I think for real security, it's better to pay attention to the business model of the company that runs it. Meta's business model is indeed to basically sell your data to advertisers. Telegram does not do this, and shows no signs of wanting to. Instead, you can pay for premium, and they allow advertising as messages in public channels, and they're doing some semi-dubious stuff with cryptocurrency. Signal seems a little weird, they are apparently funded by some sort of donations from unknown parties. It seems to work okay for now, I guess, but is their financial future any more secure?
>>so you're screwed if you lose that.
>No you can keep backups in the cloud these days to recover your account. Unlike Telegram, the backups are actually encrypted so that the service provider can't read them.
I wasn't talking about that, but about the ability to de-auth your mobile device (the one probably most likely to someday get lost) from another device, since no one device is the "primary". Yes, an attacker could potentially lock you out if they get into your Telegram on the compromised device before you get on one of your other devices. But on Signal, you're screwed if it's your mobile, and fine if it's any other device.
Though since you mentioned backups, I think Telegram's way is arguably more secure. Individual user backups, even encrypted, means all your communication security is at the mercy of whoever in your group has the weakest encryption keys and backup storage location. With a centralized system like Telegram, it's never anywhere but their servers.
That's just it, it's not a false dichotomy. Proper privacy engineering can achieve tons of private actually good features. And it's also fine for Telegram to not provide it, but then you can't really market yourself as more private than WhatsApp, "heavily encrypted" etc. There's loads of people who do not know how poor Telegram's security is. Informed consent is what matters much more than dialing every security feature to 11.
>What I am calling out is that this is a fundamentally ideological point of view.
Privacy is a human right: https://en.wikipedia.org/wiki/Right_to_privacy Just because some people sell it for pennies and convenience doesn't erode that fact.
> but general readers should be aware of what they are losing in order to enact this ideology with benefits that seem to be a bit dubious in the real world.
Sounds like you're trying real hard to get people to give up their human right. Why? Do you gain something personally from people using Telegram? Why would you defend such a shit product marketed with lies?
>It is well known that Meta is happy to hand over to any legitimate law enforcement agency any content they have.
Oh so privacy does matter to you when it's Mark Zuckerberg having access to your data but not when its Mark Zuckerberg of Russia having access to your data. The fact is, Telegram looks like an FSB op, or the very least, it doesn't give hard time for nation states to access messages of billion users. Hack the server and you're done.
>To the best of my knowledge, Telegram never has, and neither has Signal.
It shows a bit poor taste to equate these two. Signal doesn't have your data because it end-to-end encrypts all messages. Telegram does the opposite.
>The fact that Telegram potentially could someday seems more theoretical to me.
Their product is now 13 years old. If they cared about user privacy they'd have already hired competent cryptographers to design a protocol that provides the security and the features.
>Again, to the best of my knowledge, all actual leaks of messaging group content have been by various authorities compromising individual devices and/or their owners, which works equally well against Telegram and Signal.
Yeah except Telegram that clearly lacks proper security team wouldn't tell if their servers were compromised. There's nothing they could do to retain user trust at that point. They don't have to care about NSA or FSB or whatever hacking their servers because those agencies aren't boasting. And yeah user endpoint exploitation is obviously out of scope for secure messaging apps as networked TCBs can't be made hardened by some app vendor. I might know something about this topic as I'm the only person who has created messaging system that gets around that issue.
>Meanwhile, Telegram gives you a lot more practical security regarding what information to share with other users, and how to manage what other users can do in large chat groups, which seems like a much more real-world concern regarding actual dangers to users than what the company that owns it might potentially do at some future date.
Telegram IS the threat, not my friends in my closed group where I never need group management. Open groups that require granular permission controls do not require end-to-end encryption. The difference is, Telegram doesn't give you choice for small private groups with friends.
>I think for real security, it's better to pay attention to the business model of the company that runs it
It's SO CUTE that you're trying to control the narrative :D No Telegram has nothing to do with real security.
If Telegram is an FSB op, there is no business model. And if not, nothing prevents selling Teleg...
> I might know something about this topic as I'm the only person who has created messaging system that gets around that issue.
And there it is. The only person in this thread "shilling" and "trying to control the narrative" for their own personal benefit is you. I'll refrain from being condescending about it the way you have though.
You're also going into straight conspiracy theory territory here. Telegram is allegedly a FSB op, or maybe NSA or whoever, even though the current Russian government doesn't seem to like Telegram or Durov, their CEO, much. Definitely don't worry at all about Signal's leadership and funding though!
No we just have different idea of what quality means.
>The only person in this thread "shilling" and "trying to control the narrative" for their own personal benefit is you.
Yes a person advocating for other people to have human right to privacy is benefitting from a better society! How selfish of me! It's really cute that you're gaslighting the hell out of your audience.
>You're also going into straight conspiracy theory territory here.
No, I'm stating that I have no proof of it, but that it's Durov's job to disprove that claim with the ubiquitous E2EE. What would you call someone who writes a non-private messenger and markets it as private?
>Telegram is allegedly a FSB op, or maybe NSA or whoever, even though the current Russian government doesn't seem to like Telegram or Durov, their CEO, much.
Yes because everyone would trust Telegram if it was the official recommendation of Russian government and FSB. You not understanding first level of misdirection is the absurd part here.
>Definitely don't worry at all about Signal's leadership and funding though!
For someone who doesn't care at all you sure have every single shill argument nailed. I've had these debates since roughly 2015 and you're no different from every other Telegram shill :)
Anyhow, people don't write off Telegram because it's Russian, but for many legitimate reasons.
There are indications that it could be much closer to the Russian government than they pretend, but that matters not because Russians are bad people, but because the current government of Russia is an aggressive dictatorship.
The Ukrainian military literally used Telegram for years and now literally banned it.
Maybe in part for this Ukrainian article: https://texty.org.ua/articles/112347/eight-signsof-danger-te...
Even assuming they are fully legitimate today, if this ever changes and somebody gets access to their infrastructure, they immediately get a treasure trove of historical messages.
> There are indications that it could be much closer to the Russian government than they pretend
Can you give more details, please? I'm using telegram a lot and want to know if there is something...
https://kyivindependent.com/kremlingram-investigation-durov/
despite endless claims he's in exile
https://www.google.com/search?q=durov+exile
So I'm just gonna assume you work for Internet Research Agency and tell you to maybe bugger off.
That's fine. I write it off because it by default leaks all of your content and metadata to the server, and then I ask why, and who is learning all that information and I do not like the answer.
>Seems like many people do this when it comes to russian tech
Yeah as a Finn it's not very hard to distrust Russia.
> Even if it was a russian op (its not the Ukrainian military literally used telegram for years)
You didn't prove anything with this, if anything, the fact that Ukraine banned using Telegram on the state officials devices, speaks the exact opposite: https://www.bbc.com/news/articles/c78dwepw95do
>the russian government cant touch me
If it's a Russian op, they're collecting your entire life, your political opinions, your relationship issues, everything, in search of kompromat that they'd use to coerce you during recruiting.
(Yes, I know they're technically Dubai based now)
https://news.ycombinator.com/item?id=12463338
> - We never see or store your admin password. The dialog box you see is a native OS X API (i.e. made by Apple).
Not to mention that Dropbox has never been E2E protected and had that Lenovo credential free access bug on web not too long ago.
Dropbox should be considered untrustworthy at this point, especially since iCloud Drive offers E2E encryption and so do other competitors.
It gets buttoned up fast and is always getting better, but its absolutely not a silver bullet.
Except when you want actual end-to-end encryption, in which case web versions fundamentally cannot guarantee it today (and there are no plans to get there).
People using Telegram don't care so much about end-to-end encryption, so there maybe it makes sense to use the web version indeed.
If you download an install a program on your OS, you can e.g. check the hash of that downloaded archive and compare it to others, ideally making sure that you are running an audited version of the program. You don't have that guarantee when loading code in a browser: the server could totally serve you a modified version of the code, and you don't have a practical way to check that. Not that the laws of physics prevent it; it's just not how a browser works.
Say you have a device that projects the screen on a skyscraper in Manhattan, visible by tens of thousands of people in real time. You can do all the cryptography you want, I would argue that you fundamentally cannot achieve "privacy" on that device, because "thousands of random people seeing it" means it is not private, by definition. Sure, you can run Signal on that device, and it does actually run sound E2EE maths. But it is not an "end-to-end encrypted deployment", it is a public deployment that happens to be running E2EE cryptography.
What I say is that running E2EE in a browser has that kind of nuance (as far as the comparison goes, obviously). In that the browser is indeed running E2EE cryptography, but it is not an "end-to-end encrypted deployment", because the user has to trust the server.
> This is not a coherent segmentation for whether E2EE is possible and engaged.
I would argue that it is. Just like E2EE is not "possible and engaged" on the skyscraped in Manhattan, I argue that it cannot be in a browser. The browser is running sound cryptographic code, but what the user gets is not an end-to-end encrypted experience.
That "trusting the code that runs in your browser when you load the website of a messaging webapp to actually facilitate E2EE" is out of scope for the question "is E2EE in a browser possible".
> I would argue that it is.
This is what I very directly disagree with. In both your Manhattan example, your browser example, or in my very own shoulder surfing example, it's not that E2EE isn't in place, it's that it is rendered useless by the circumstances. That is a distinct matter. The same applies to your heavily audited, reproducibly built, hash and signature checked, native, installed application. Worth jack if your phone itself, or the virtual keyboard you're typing on, etc, is compromised.
If this is how you segment things, E2EE cannot exist, hence why this is an incoherent segmentation; it selects for nothing that can actually exist, the label never truly applies. It's a category mistake.
Agree to disagree, I guess.
But I feel like you are just nitpicking on the wording. When I say "you cannot have E2EE in the browser", I mean "you don't get what you expect if you expect that you don't have to trust the server". And the reason I say it is that many products advertise themselves as "E2EE", and many users believe that what they get from it is that they don't have to trust the server.
So I feel like the message I am trying to convey is "be careful people, you get less security than you think".
Similarly, I feel like the message you are trying to convey is "your wording is subpar". Sure, I'm not good with words, and I'm usually not taken seriously because of that. I am sorry about it. Story of my life, I'm used to it :-). I just wish eloquent people used their skill to help me convey my point (if they agree with me, obviously) rather than to make it sound like my point is worthless.
Well then I think this is just wrong. If you do E2EE right, then you have the guarantee that no one in the middle (including the server) can read the data. It does have value, and saying "anyway cryptography is worthless because everything can be hacked" is not a productive argument IMO. Some people do rely on it, and it is important that those people understand when they can and when they cannot.
I don't really care so much about nomenclature and categorisation. I care about the fact that people who need it must understand when they can rely on it. And nitpicking on the wording is not making it clearer for them.
What you can’t do is make sure the server giving you the code that does the encryption doesn’t change it out with code that also sends your secret messages to Siberia. Unless you control the server giving you the web page. And you trust DNS.
At that point your trust model is simpler with an auditable local application. It could even be an Electron app - so almost exactly doing E2EE in the ‘browser’.
If your thought is just "disable automatic updates", there's no reason you couldn't do the same by declining new versions of a web app. Unless you built it yourself (as a web app or native app), you need to include the servers and DNS in your trust model.
To me, it seems entirely isomorphic. The only material difference I see is whether automatic updates are on by default (an OS/browser vendor issue, not anything inherent to the tech).
Mostly. But the alternative shouldn't be a native app that updates itself, but rather a native app that is updated by a package manager. The big difference is traceability and auditability: With a trusted package manager (and even in good app stores) the company can only decide to push an update to everyone or to no-one. There is no way to push an update just to the pesky journalist or whistle blower. A covert attack is really hard to accomplish this way.
* The cryptography must be sound. That's the obvious one, if it's not encrypted then it's not "end-to-end" encrypted.
* There must be a practical way for the user to "verify" (with some definition of verifying) the client they are running.
A web browser doesn't provide that at all. It does not mean that everything else provides it: there are many ways to provide a Desktop app that break E2EE, but that is a different discussion. My point is that fundamentally, the web browser does not provide that. It's not that the laws of physics prevent it, it's just that the web browser never chose to provide that.
Yes, this exactly. If we wanted ‘verifiable’ app distribution via browser, then we’d need browsers to implement some way to cross check the code downloaded vs a publicly published list somewhere - similar to certificate transparency or what WhatsApp is trying to do with an extension [1]. Workout that, web apps are left working with a weaker threat model.
[1] https://engineering.fb.com/2022/03/10/security/code-verify
> or what WhatsApp is trying to do with an extension
I remember looking into it, and while it is interesting, I think what it allows to verify is that the intermediary (Cloudflare, I believe) didn't tamper with the code being served. Which in the end allows the user to verify that the code they run comes... from the server they trust.
And even that is not super practical, I find.
I am not trying to say "browsers should not exist, everything should be a desktop app". I guess I am more defending "some use-cases work better in a browser, others work better as desktop apps". And I have the strong feeling that over the last years (decades?) there has been a very strong push by web people to say "everything should run in the browser".
A browser allows you to run an app on any device (to a degree), so it definetely seems useful to me.
I'm actually not a fan of web apps, JavaScript and anything that came after XHTML, but it sure is/would be convenient to be able to run the same software on every device, without even having to recompile it.
The single reason I dislike browser "apps" is what we've been discussing here, that you can't check what you're running (well, also that it's hard to control their internet access).
Same here, I personally like to load "websites" in my browser, and to download "apps"... like as "desktop apps".
> but it sure is/would be convenient to be able to run the same software on every device
Oh yeah that's for sure. I can't help but to think that with a fraction of the resources that went into supporting webapps in browsers, it could have improved native systems a lot.
But even then, Kotlin MultiPlatform (KMP) is making me optimistic. With Compose MultiPlatform (CMP) I am hoping that it will make its way to desktop apps, too.
> without even having to recompile it.
If recompiling is the price to pay to have diversity, I'm fine with it. If 100% of the computers ran the exact same OS, it would simplify many things, but that one OS would certainly not be what I want to run.
> The single reason I dislike browser "apps" is what we've been discussing here, that you can't check what you're running (well, also that it's hard to control their internet access).
I dislike the fact that they force me to have a modern browser at all. I like having control over my OS, it's not for being forced to run everything in Google Chrome.
Yeah that's true
> But even then, Kotlin MultiPlatform (KMP) is making me optimistic. With Compose MultiPlatform (CMP) I am hoping that it will make its way to desktop apps, too
I personally hate Kotlin, but yeah it's one more option ;)
I wouldn't mind if it was Rust, but the KMP story seems a lot more mature in that regard, IMO. And Compose is my favourite way of doing UI.
App updates can be cryptographically signed with a key that’s kept offline and only held by a few people. Your trust in the app can be equal to your trust in those people, multiplied by your trust in the technology that keeps those offline keys safe from compromise.
Your trust in a web app will be equal to your trust in the people running the server multiplied by your trust that the server isn’t compromised. Since the server is necessarily always online, that trust will be much lower.
It's not, I don't think so. For instance, if you install Signal on your Android, the apk was signed by Signal, sent to Google and distributed by Google. Google cannot modify it, because Signal has to sign it. So in order to make you install a "malevolent" version of Signal, Google has to collude with Signal.
Of course you can download and install the apk from Signal's website, in which case Signal may give you personally a malevolent version. But you can easily compare that file to someone else's. On Android there are verifier apps that allow you to check that.
Finally if E2EE does matter a lot to you, you can compile Signal yourself from the sources, and even go as far as auditing those sources yourself.
You don't get to do any of that on the web. When you load ProtonMail in your browser, you don't have any practical way to verify that the code your browser is running is the same as everybody else who is running it around that time. You have to trust Proton that they give you code that prevents them from reading your emails. It is better than nothing or course, but it still means that you have to trust Proton.
I'd stress that for specifically Signal this seems to indeed still be true, but almost apps on Google Play are now signed by Google (with keys either generated by them or provided to them), and even customized by Google for your specific system.
Google requires it for all apps created after August 2021. *
---
> On Android there are verifier apps that allow you to check that.
If you mean Accrescent, it only checks the app's signature, not the hash of the individual versions.
I only know APK redistributors such as apkmirror that might let you check the individual app version, but they don't have API access and only host some apps.
And again, now almost apps on Google Play are signed by Google and customized on the fly for your device, so you typically can't really confront them.
---
* Except that apparently, since a couple months ago Google allows you to use their HSMs?
Even this magnanimous concession though is “strictly for enterprise organizations with mandatory compliance, regulatory, or policy requirements to retain key custody in an external Google Cloud KMS instance” (https://developers.google.com/android-publisher/api-ref/rest...).
There's some chance that they can't access these keys; but the app needs to be compiled on their servers, so yeah, plenty of ways for them to meddle with it, and probably even to issue signing requests.
This seems to have been introduced in July, it's the first time I hear of it
Yes! Google's goddamn "bundles" seem to be enforced to everybody. I guess part of Google "not being evil" and all. Another reason why initiatives like EU's Digital Markets Act are needed, I guess.
And yet another reason to use GrapheneOS, of course.
> If you mean Accrescent, it only checks the app's signature, not the hash of the individual versions.
No, there is an app called "AppVerifier" actually. That's the one I meant.
https://github.com/soupslurpr/AppVerifier , right? It only checks the signature (the certificate)
> And yet another reason to use GrapheneOS, of course.
Which always recommended to use the Play Store, though
But supports alternative stores nicely.
Most of my apps I can get through the Play Store. It's not like I need end-to-end encryption on my banking app.
Inconvenient truth, but it is so to a degree. I am disturbed by the lack of attention to that by many security gurus.
One difference is that with web apps you're practically updating them every single time you launch them.
It is possible to make E2EE that the user can rely on with apps, is my point. It is not in a browser.
Many E2EE apps meet my bar.
> Furthermore, there's nothing stopping anyone from using tools to verify a web build too.
Feels like you haven't really thought that through. It's one thing to say it, it's another to actually try. It's not that the laws of the universe make it theoretically impossible for a browser to allow that. It's just that browsers do not allow anything remotely practical in that sense, because they are just not made for that.
> There's nothing fundamentally better about native apps for this purpose.
What's fundamentally better about apps is that it is actually practical. It is possible right now, and I do it.
> Without those auditing the security of anything distributed by an app store is hopeless.
It's not. People have to realise that security is a gradient. Not everyone's enemy is the NSA. Some examples:
* With apps, you can verify that you are running the same build as random people on the Internet. In the browser you can't.
* With apps, you can verify that you are running a build signed by the same entity as random people on the Internet. In the browser you can't, and WhatsApp even has a browser extension just to allow you to check that Cloudflare didn't tamper with the code served by Meta (because obviously you trust Meta but not Cloudflare :-) ).
* You can compile an app from sources. You cannot do that in the browser.
* You can get an open source app that was compiled by someone you trust. You cannot do that in the browser.
Not on iOS. You can't verify an iOS app at all. You technically could on Android but only by using developer tools and a separate PC.
> With apps, you can verify that you are running a build signed by the same entity as random people on the Internet
On the web every resource is signed with the certificate of the publisher. For all iOS apps and most Android apps you are required to trust the app store in addition to the publisher, which would be analogous to Cloudflare on the web, with the major difference being Cloudflare is optional and app stores are not!
> * You can compile an app from sources. You cannot do that in the browser.
Bullshit. You can absolutely have a reproducible web build that allows auditing that the assets you receive have not been tampered with.
> You can get an open source app that was compiled by someone you trust
Not on iOS, you have to trust Apple didn't modify it. On the web you can verify the certificate of someone you trust and know that what you're downloading is signed by them.
> E2EE is not limited to messaging apps.
So you concede that Signal, and only on Android, is the only messaging app that meets the bar of being auditable. Both web and native are auditable in theory. In reality the "E2EE" native apps people actually use are not any more auditable than browser apps.
What does that even mean? Show me how I can run ProtonMail on my browser today and verify that what my browser is running is the code they have open sourced? Or find me any example where they actually open source the code (not sure Proton does?).
> Not on iOS
So your argument against "web is fundamentally not built to allow that" is "but some app systems are closed"? Are you really trying to argue that "because some app systems are closed, all app systems are closed" or something?
> So you concede that...
Can you please not invent stuff?
> Both web and native are auditable in theory
So we agree somewhere: there are no laws of physics that say web cannot do it. Web is just not built for that, so in practice it's not there.
> In reality the "E2EE" native apps people actually use are not any more auditable than browser apps.
I don't know if you are consciously manipulative or if you don't realise it. My point is that if someone cares about E2EE, they can actually get some level of guarantee with apps. They can't realistically hope to get that with web.
I am not saying "all apps are 100% perfect, secure, auditable, E2EE" or whatever you may want to consider I conceded.
Of course it's not black or white, security is a gradient. But if you want to check today that you are running the legit client of ProtonMail in your browser, you do not have a practical way to do it. It is theoretically feasible, I guess (?), but far from practical. But I can walk you through the steps needed to do it today with Signal, for instance.
I think I put my limit there: it's not enough to run cryptography. Verifying the client has to be practical for the user. The way ProtonMail works in the browser is a nice way for Proton to minimise the data they collect, but it's not E2EE, because even as an advanced user I cannot practically verify the client they serve me. In other words, E2EE means (to me) that there can be some kind of guarantee if you put a reasonable amount of effort into verifying it.
I'm going to go out on a limb and say that it is on purpose, and not a good purpose. The trust model of the web is fundamentally broken.
IMHO, the web should be to load websites (obviously) and small webapps that don't require E2EE or any kind of auditing. As soon as those are desirable, it shouldn't be a webapp anymore.
I find it nice to be able to load websites in my browser, instead of installing one program per website.
But sometimes I want a program.
Reported 25 June
Fixed 16 September
I wonder why it took them so long?
Wait till they find out about web browsers. /s
[1] https://github.com/marcovelon/tdesktop/blob/NoSecretChats/RE...
You wouldn't ignore a zero-day announcement either because the formatting is ugly.
I did skim over the important bits though.
TIL I'm not a legit good hearted person.
Guess I'll remove myself from the organ donation registry.
I prefer to keep the contents of my message secure from the panopticon.
Telegram is connected to Eastern European and the Middle Eastern countries and not in a good way, and the server-side components are closed source. There is no E2EE by default.
Especially because they have their own crypto coin right there in the app so why not allow payments with that?
It's not end to end encrypted but for big group channels that anyone can join that doesn't really matter.
Here it's all WhatsApp and Telegram. iMessage isn't really a thing at all except for expats.
Yes
https://news.ycombinator.com/item?id=48923935
Some of us aren't paranoid and don't care, and instead just enjoy a messenger that works and doesn't throw bullshit limitations at you.
If you want to vomit your entire digital social life to some random company in Dubai and to every party who hacks their servers, you do you.
Telegram also allows to delete any chat in one click. Telegram has support for HTTP, SOCKS, MTPROTO and WEB proxies to evade censorship, Western messengers do not. Telegram is written in C++. Although it is a piece of proprietary garbage and might be connected to the government, at least it is well made piece.
Also it became difficult to register in Telegram, I tried several numbers from black market and with every number it asked me to pay 1 EUR with a card to prove I am not a spammer (after doing this it would probably blacklist my black market card as well). What a garbage.
Well, most of those apps try to inject themselves in between you and the rest of the world, by "helpfully" offering to be your SMS handler and phone call replacement.
No thanks.
And no, Signal is not inferior. If you are really concerned about the phone number issue, use a burner eSIM or purchase a Signal account. Last time I checked though, payment was tied to Apple/Google, inexplicably.
“Any sufficiently complex input format is indistinguishable from bytecode; the code receiving it is indistinguishable from a vir- tual machine.”
https://en.wikipedia.org/wiki/Weird_machine