As opposed to what? Encrypt them with a key that’s stored elsewhere on the device? Without user prompting (which any malicious app could also do, of course) storing these keys encrypted is very hard. You could use whatever key chain API your platform provides, but that’s just plain text passwords with extra steps. On Windows and Linux it wouldn’t improve security in any way, on macOS it might also not (I don’t know how Keychain access is done on macOS but I doubt it’s impossible to get the key from there if you have local file execution).

Desktop applications aren’t sandboxed, and the ones that are will only be protected against other sandboxed applications. I’m not sure if encrypting local message databases protects anyone in practice. It just adds half an hour of chatgpt aided programing to the job of the malware devs while the users lose access to their own data.

permalink
report
reply
10 points

This is such a non story

permalink
report
reply
8 points

Wow that is actually pretty egregious for such a generally security-conscious organization.

permalink
report
reply
33 points

Aside from needing a passkey/passphrase every time you open Signal, what would be the solution? If the user can read the unencrypted messages, then so can malware running as the user.

Heck, even if you required some sort of authentication to open the messages, malware could just capture that.

It’s the same problem with browser credential stealing, you can grab all the cookies from an authenticated browser session and copy it to a new system.

Really, the biggest issue is that Signal doesn’t detect multiple instances running of the same session, but that’s also extremely difficult to do without malware being able to work around it.

Not saying there’s no solution here, but there is not a simple solution aside from trusting your computer and cancelling sessions if you suspect someone compromised your system (or just not using a desktop app.)

permalink
report
parent
reply
14 points
*

malware could just capture that

From the article:

This means that while a keylogger might require admin access to install, any app or script with sufficient permissions could access these plaintext keys.

Malware to capture input would require privilege escalation as well, whereas this just requires being able to run code/copy files.

there is not a simple solution

But there are:

  • use the system keyring
  • store unencrypted key in memory in a background process (I.e. DIY keyring)

Essentially, force malware to either copy keystrokes or memory, both of which require admin privileges on most systems.

permalink
report
parent
reply
11 points

Storing the encryption keys in the Credentials Manager (Windows) or the Keychain (macOS, Linux) would be a better choice than a plaintext file.

And using Bitlocker / VeraCrypt / Filevault / LUKS will at least protect the data at rest.

But as you said, it’s game over if the machine is compromised.

permalink
report
parent
reply
6 points

It’s right there in the article. Local keychain.

permalink
report
parent
reply
1 point

What keychain exactly?

permalink
report
parent
reply
4 points

Agreed. If your system is compromised you have other issues and ultimately that falls on you. And on Linux you could very well set permissions yourself for those directories.

permalink
report
parent
reply
3 points

Doesn’t… doesn’t then OpenSSH client store keys in text files?

I’m trying to figure out how this is an issue, other than maybe Signal should be using an OS level keystore.

permalink
report
reply
1 point

They are text files but they are not “plaintext”. They are (optionally) encrypted with a user-supplied password. That is why you need ssh-agent to stay sane.

permalink
report
parent
reply
3 points

Time to switch to matrix

permalink
report
reply
1 point

true but non sequitur

permalink
report
parent
reply

privacy

!privacy@lemmy.ca

Create post

Big tech and governments are monitoring and recording your eating activities. c/Privacy provides tips and tricks to protect your privacy against global surveillance.

Partners:

Community stats

  • 1.1K

    Monthly active users

  • 181

    Posts

  • 1.2K

    Comments