on desktop devices
Kinda should have been in the headline
It is a super important detail, but it’s still unforgivable for an app that expects privacy to be part of its brand identity.
unforgivable
yeah absolutely agreed
This is a big difference between privacy and security.
Agreed
But you can’t have privacy without security, and any privacy brand must have security in their bones.
You can’t encrypt anything without a key. This is the key. If it wasn’t in plaintext then it would be encrypted. Then you’d need a key for that. Where do you put it?
Phone OSs have mechanisms to solve this. Desktop ones do not.
But… That’s how encryption keys are stored.
No your don’t understand, you’re supposed to encrypt the keys.
Then you encrypt that key
And then that key
Until it’s all encrypted /s
opportunistic TPM integration would be nice.
I.e. use the security chip of the device, if one is found. Otherwise use password.
OR use a Nitrokey etc, which can act as a secure device to store these keys too.
Take that, Windows. You dont need a builtin TPM if you can use a Nitrokey 3 with a secure element, externally.
This same “discovery” gets reported on once or twice a year; it’s starting to feel like a FUD campaign rather than actual research
Yeah but it really shouldn’t be that way. Just add a pin or something, it’s way too easy for people to just grab devices or install malware to leak keys. The current standard for security is that everything is encrypted at rest regardless of whole disk encryption.
Signal is still better that most of the stuff out there but it’s not above well intentioned criticism
Not storing it in plaintext would require setting up some kind of password, right?
Some way to encrypt the decryption key.
This could also mean TPM + Pin. Or using a Nitrokey, externally, which stores the password to decrypt the decryption key.
That is how user account unlocking (on GrapheneOS with Pixel phones) is done.
I just read the full article, and I’m not even that concerned about storing the key in plaintext. I find the possibility of copying the files, and then being able to run the same session simultaneously a lot scarier.
While true I don’t get why this is long known and also news at the same time.
For Signal Backup tools for example this isn’t a bug but a feature and the only way to make long term archival of chats possible.
You could archive chats encrypted too.
Yep, decrypt … export elsewhere to csv txt json … encrypt
Should the encryption keys be… encrypted?
With what? Where would you store the encryption key for the encryption key on a desktop system where it would not be accessible to an attacker?
Perhaps there could be a pin or password that must be entered every time to decrypt it into memory.
As the article states, currently all processes are able to read the file which contains the key. Instead, you could store the key in the macOS Keychain (and Linux/Windows equivalents), which AFAIK is a list of all sorts of sensitive data (think WiFi passwords etc.), encrypted with your user password. I believe the Keychain also only let’s certain processes see certain entries, so the Signal Desktop App could see only its own encryption key, whereas for example iMessage would only see the iMessage encryption key.
There is no single keychain on Linux, and supposedly on Windows too. Signal would need to either support a few dozens of password managers or require a specific one, both options terrible in their own way. This isn’t something that can be done without making broad assumptions about the user’s system.
I’m not too knowledgeable on that topic, but doesn’t Linux store WiFi or smb-share passwords in some keychain?
Edit: missread your comment a little, I’m guessing you meant that there are multiple different keychains on Linux
Either multiple different keychains or even you can have no keychain-like application in your system at all.
The WiFi passwords are usually stored in
/etc/NetworkManager
as plain files. Granted, they are not accessible directly by non-root users as they are being managed by the NetworkManager daemon, but there is nothing generic for such a thing. Signal rolling a similar daemon for itself would be an overkill. The big desktop environments (GNOME, KDE…) usually have their own keychain-like programs that the programs provided by these environments use, but that only solves this problem for the users of these specific environments.To me it’s perfectly expected the Signal encryption keys are readable by my user account.
Wifi passwords are piss easy to read out well at least on windows.
Only if you’re logged in as an Administrator though. A “standard” user account can’t access WiFi passwords on Windows.
Because a non admin account is the default right? Right?
UAC prompts you since vista if you want to let a process elevate it’s rights to be able to do that
Luckily nobody ever just clicks through those.
Something you know, something you have, something you are.
3FA:
- Pin
- Security Key/TPM/Secure element
- fingerprint / iris scan
You could also start with just one of these
fingerprint / iris scan
Nope, I’m out. I’m not giving my unchangeable biological data to the Computer Gods because A) Fuck that and B) the police in my country can compel the use of biometrics to unlock things but cannot compel you to give up your pass as it is protected by the first amendment. Yes I think the bios should be protected too but that isn’t the reality in which I live.
Nope, I’m out.
From the person you replied to, emphasis mine:
You could also start with just one of these
I’m cool with non-biometrics.
(Though “3fa” and “could also” does imply he meant to use all three in concert, but that “just one” would be better than none.)
Yeah that factor may not be wanted. But it is a security factor, because only you have it.
You could hash it securely so the computer gods dont know your fingerprint. And you could only use it in addition to another factor.
Isn’t the idea that not everyone has access to your biometrics?
There’s honestly no need to make computers ask people for piss scans:
something you know
A password
something you have
Access to the password
something you are
The person who knows the password
A password can be cracked and is often very bad.
But that can be said of any of the other such called factors:
A yubikey can be stolen
A fingerprint can be scanned and distributed
So its not really an argument against passwords (or passkeys, or passwordless, or whatever marketing want to call them these days).
My yubikey can be stolen but good luck guessing my PIN in the 3 to 9 tries allowed before it self destructs.
luck? I have a $5* wrench.
* (Actually a $7 wrench. Inflation is murder around here.)
Most people just need to fear their passwords being cracked remotely. In masses.
If your threat model is being known, people stealing your stuff to login to your things, this is very high.
Yo dawg
If your computer is compromised to the point someone can read the key, read words 2-5 again.
This is FUD. Even if Signal encrypted the local data, at the point someone can run a process on your system, there’s nothing to stop the attacker from adding a modified version of the Signal app, updating your path, shortcuts, etc to point to the malicious version, and waiting for you to supply the pin/password. They can siphon the data off then.
Anyone with actual need for concern should probably only be using their phone anyway, because it cuts your attack surface by half (more than half if you have multiple computers), and you can expect to be in possession/control of your phone at all times, vs a computer that is often left unattended.
“if you’ve lost physical security, you’ve lost all security.”
I’ve heard criticism of the desktop app before as well, maybe they’ll finally rework it?
Who is behind Stackdiary, btw?