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.
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.
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.
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:
You could also start with just one of these
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.
From the person you replied to, emphasis mine:
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:
A password
Access to the password
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:
So its not really an argument against passwords (or passkeys, or passwordless, or whatever marketing want to call them these days).
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.
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.)
If you have me… you win. My technology however will never betray me.
Yo dawg