Signal should change this, but it's typical of the traditional desktop OS security model in which applications running under the user's account are considered trustworthy. Security-oriented software like Signal should take a more hardened approach, but this is not some glaring security hole.
Maybe its time to rethink desktop security. I realize that there is credential manager on windows, keychain on mac, and similar on gnu/linux; even with that it seems for a lot of services "all" you need to do is steal a cookie and all of a sudden you are someone else.
It's actually by design. First of all they shot themselves in the foot by choosing Electron as platform to build desktop applications as Electron has no integration with the rest of the system, at least not as deep as native application has. Both Linux and, I believe, MacOS have secure storage programs for keys and passwords. Windows however does not, at least it didn't back when we got screwed. So this is another reason why they chose to store in clear text, you have to cater to largest audience no matter how dumb the solution is.
In its truest sense this is what a technical debt is. Shitty choice costing you increasingly more as the time goes on and now they are simply too deep to pull out. They are committed to this approach and simply switching would require too much money and effort.
And you are right, it's 100% security hole and a juicy attack vector. FileZilla did the same thing and there's malware out there specifically targeting this software and is using user's servers for propagation. Our systems got infected the same way long time ago because one of employees was retarded enough to use FileZilla and save password in config file even though I said not to. Since password was saved in clear text format and FTP is not terribly hard protocol to implement we got screwed. After that incident when our servers were almost taken down from internet, FTP was banned and any form of password login without two factors.
as Electron has no integration with the rest of the system,
You pretty much can use Electron to build an application and use native OS-specific features. It only requires thinking about it and a bit of work, but technically isn't much harder to do than with anything else. And there are some things useful in windows for that, based on user login credentials.
But ultimately, if the developers didn't care about doing that, it won't happen, regardless of them using Electron or writing fully native apps.
Electron is capable of having just as good integration with the system as native applications. It's just that a lot of people are not optimizing these cross platform apps to have optimal integration with them. Electron has the safeStorage API that allows you to use kwallet or GNOME Keyring to securely store information. I believe both Discord and Spotify use this on Linux.
Signal's desktop app stores encryption keys for chat history in plaintext, making them accessible to any process on the system
Researchers were able to clone a user's entire Signal session by copying the local storage directory, allowing them to access the chat history on a separate device
This issue was previously highlighted in 2018, but Signal has not addressed it, stating that at-rest encryption is not something the desktop app currently provides
Some argue this is not a major issue for the "average user", as other apps also have similar security shortcomings, and users concerned about security should take more extreme measures
However, others believe this is a significant security flaw that undermines Signal's core promise of end-to-end encryption
A pull request was made in April 2023 to implement Electron's safeStorage API to address this problem, but there has been no follow-up from Signal
They're thinking "This doesn't improve shareholder value, so we're not going to put it on a sprint this quarter", same as every other commercial piece of software does.
Also, this quarter becomes "ever" after about six months of it sitting in a backlog waiting.
Researchers were able to clone a user’s entire Signal session by copying the local storage directory, allowing them to access the chat history on a separate device
This has actually been useful for me in the past when reinstalling my OS lmao. In an ideal world we could reverify by entering a code from our phones to unlock the desktop local storage after moving it. My biggest wish for Signal is more seamless message history movement across devices and ecosystems. Fuck even proper back ups would be nice.
My biggest issue with Signal is it being so mobile-oriented. Mobile use seems to be encouraged, and even to register you are directly told to go to the mobile app (and if you register in a VM, you're then stuck using it because it wants you to scan a QR code which is so easy to do in a VM!) No thanks, I don't trust my mobile - they're much harder to make private and "yours" than a desktop. Was it that hard to just add a field for entering the verification code in the desktop client? Sure, I did end up using signal-cli, but it is not mentioned anywhere officially. Point is about how the Signal itself tries to push you onto mobile.
Not having backups here on iOS stresses me out. I like using iOS beta updates, but knowing I’m one bad beta from having to restore my phone (where every other little thing except Signal is backed up and waiting) and lose my conversation history forever really bugs me.
Under normal circumstances I wouldn't expect any privacy between processes on a desktop OS under the same UID.
If you use Chrome's password manager on Windows your password database is unlocked with your password upon login and is available to every process you run.
There's only so much you can do, as an app, to protect against OS deficiencies.
The desktop app on Windows is a sacrifice of security for convenience.
I have a couple problems with it aside from being electron.
On linux, whether it is a native package or flatpak. I have to launch it twice for it to open.
I can't restore chats from my phone to the desktop application which frankly sucks. It makes sense if they don't wanna have to store extra data on their servers, but at least let the backups that I manually take on my phone be usable on the desktop. Not having the majority of your conversations from before you linked the desktop app is a pain in the arse.
Quite-good is stretching it a bit. It's serviceable but it's still Electron with gazillion megabytes of RAM taken for no reason and absolute nightmare on laptops since browsers like waking CPU a lot.
I don't see what the big deal is. I store all kinds of sensitive information in plain text. SSNs, credit card numbers, birthdates and religious and political affiliation information.
The guy I bought it all from said it was okay, he stores it in plain text, too. (I'm joking, of course! Any information about you all that I've bought on the dark web, I'm storing responsibly.)
I trust my computer and operating system. And there are several other keys and credentials stored on that laptop. I think it's better for me to have a file that I can backup and understand how the encryption works, than to do some trickery to hide it mostly from me and maybe a bit from malware, or tie it to some hardware TPM device or something. I'm always not sure if I should rely on those too much.
It has been known and they can't really change it. I think it's only now that people are realizing this is an issue or at least something happened to start the avalanche.
But surely if it was stored encrypted, it would still need a key to unlock that info. Which would be on your PC. And could therefore be used by anything else to unlock your data.
The only safe way would be encrypt it with a password that only you know, and you'd need to enter before getting back into the software. And there couldn't be any "I forgot my password" function either. You lose it, the data is gone.
I told the guy I buy a certain thing that should be legal in this state from that trusting Signal is a bad idea and he should use some coded language if we were going use it. I do anyway, but I doubt that matters.
Yes, you don't understand that the story is about the Mac client and then later it was found out that Linux and Windows are equally affected. Did you even attempt to read it?