Signal under fire for storing encryption keys in plaintext (stackdiary.com)
from neme@lemm.ee to privacy@lemmy.ca on 06 Jul 2024 15:36
https://lemm.ee/post/36402037

#privacy

threaded - newest

gravitas_deficiency@sh.itjust.works on 06 Jul 2024 15:50 next collapse

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

mipadaitu@lemmy.world on 06 Jul 2024 16:02 collapse

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.)

drdiddlybadger@pawb.social on 06 Jul 2024 16:04 next collapse

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.

rolling_resistance@lemmy.world on 06 Jul 2024 16:06 next collapse

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

TheEntity@lemmy.world on 06 Jul 2024 16:47 collapse

What keychain exactly?

AnotherDirtyAnglo@lemmy.ca on 07 Jul 2024 05:04 collapse

On Macs, there is a ‘keychain’ where certificates and passwords are stored encrypted, and there are OS-level controls on access – either an OS prompt for a password, or biometric authentication.

TheEntity@lemmy.world on 07 Jul 2024 12:07 collapse

My point was that apart from the Macs, there is no single system keychain Signal could use. What they do is perfectly normal and expected on a desktop OS.

sugar_in_your_tea@sh.itjust.works on 06 Jul 2024 16:14 next collapse

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.

mp3@lemmy.ca on 06 Jul 2024 19:02 collapse

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.

DebatableRaccoon@lemmy.ca on 06 Jul 2024 15:51 next collapse

You come to expect better but then you can only roll your eyes and face-palm when even “the best” do something this stupid.

alsimoneau@lemmy.ca on 06 Jul 2024 19:21 collapse

To be fair it’s on your own device, not the server.

[deleted] on 06 Jul 2024 16:04 next collapse
.
Greg@lemmy.ca on 06 Jul 2024 20:00 next collapse

This is such a non story

Beaver@lemmy.ca on 07 Jul 2024 01:27 next collapse

Time to switch to matrix

jerkface@lemmy.ca on 07 Jul 2024 15:06 collapse

true but non sequitur

psvrh@lemmy.ca on 07 Jul 2024 15:03 collapse

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.

jerkface@lemmy.ca on 07 Jul 2024 15:09 collapse

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.