Signal under fire for storing encryption keys in plaintext
stackdiary.com
external-link
Popular encrypted messaging app Signal is facing criticism over a security issue in its desktop application. Researchers and app users are raising

Whatever its stores and however it stores it doesn’t matter to me: I moved its storage space to my ~/.Private encrypted directory. Same thing for my browser: I don’t use a master password or rely on its encryption because I set it up so it too saves my profile in the ~/.Private directory.

See here for more information. You can essentially secure any data saved by any app with eCryptfs - at least when you’re logged out.

Linux-only of course. In Windows… well, Windows.

@uis@lemm.ee
link
fedilink
32M

Or ext4 encrytion. Which is overpowered. You can have different keys for different files and directories.

Couldn’t they set up a 2fa, where it sends a notification to your mobile Signal (since you must have that anyway, to use desktop)? If you want to decrypt your Desktop Signal, you need to allow it on your Mobile Signal.

Borna Punda
link
fedilink
58
edit-2
2M

The backlash is extremely idiotic. The only two options are to store it in plaintext or to have the user enter the decryption key every time they open it. They opted for the more user-friendly option, and that is perfectly okay.

If you are worried about an outsider extracting it from your computer, then just use full disk encryption. If you are worried about malware, they can just keylog you when you enter the decryption key anyways.

A better thing to be worried about IMO is that Signal contains proprietary code. Also to my knowledge nobody is publicly verifying the supposed “reproducible builds” if they even still exist.

The third option is to use the native secret vault. MacOS has its Keychain, Windows has DPAPI, Linux has has non-standardized options available depending on your distro and setup.

Full disk encryption does not help you against data exfil, it only helps if an attacker gains physical access to your drive without your decryption key (e.g. stolen device or attempt to access it without your presence).

Even assuming that your device is compromised by an attacker, using safer storage mechanisms at least gives you time to react to the attack.

Linux has the secret service API that has been a freedesktop.org standard for 15 years.

@uis@lemm.ee
link
fedilink
22M

Secret service API. Damn. That’s how FSB knows what it knows.

The alternative is safeStorage, which uses the operating system’s credential management facility if available. On Mac OS and sometimes Linux, this means another process running in the user’s account is prevented from accessing it. Windows doesn’t have a protection against that, but all three systems do protect the credentials if someone copies data offline.

Signal should change this, but it isn’t a major security flaw. If an attacker can copy your home directory or run arbitrary code on your device, you’re already in big trouble.

I have three things to say:

  1. Everyone, please make sure you’ve set up sound disk encryption
  2. That’s not a suprise (for me at least)
  3. It’s not much different on mobile (db is unecrypted) - check out molly (signal fork) if you want to encrypt it. However encrypted db means no messages until you decrypt it.
Mubelotix
link
fedilink
612M

Sure, I was aware. You have the same problem with ssh keys, gpg keys and many other things

Mr. Satan
link
fedilink
102M

However, you can save encrypted ssh, gpg keys and save that encryption key in the OS keyring.

@uis@lemm.ee
link
fedilink
32M

Yes, but you STILL need to enter password on every reboot.

Is it possible to seamlessly integrate, so when something requests those keys you’ll get a prompt?

With SSH at least you can password protect the key itself so that you always get a prompt.

Nice, didn’t know, I’ll look into it

You are telling me this has been going on for almost a decade now, and no one ever noticed ?

So we trust open source apps under the premise that if malicious code gets added to the code, at least one person will notice ? Here it shows that years pass before anyone notices and millions of people’s communications could have been compromised by the world’s most trusted messaging app.

I don’t know which app to trust after this, if any?

Why is this a shock? Someone would need to have already compromised your device. Even if it was encrypted with a password they still could install a key logger

It is easier to compromise a device than to try and compromise encrypted communications.

Matrix. You can host any version you want, and when you have to update, just do a version diff between you current and latest versions and check yourself.

Mubelotix
link
fedilink
192M

Everyone knew that already tbh

There is just no excuse for not even salting or SOMETHING to keep the secrets out of plaintext. The reason you don’t store in plaintext is because it can lead to even incidental collection. Say you have some software, perhaps spyware, perhaps it’s made by a major corporation so doesn’t get called that and it crawls around and happens to upload a copy of a full or portion of the file containing this info, now it’s been uploaded and compromised potentially not even by a malicious actor successfully gaining access to a machine but by poor practices.

No it can’t stop a sophisticated malware specifically targeting Signal to steal credentials and gain access but it does mean casual malware that hasn’t taken the time out to write a module to do that is out of luck and increases the burden on attackers. No it won’t stop the NSA but it’s still something that it stops someone’s 17 year old niece who knows a little bit about computers but is no malware author from gaining access to your signal messages and account because she could watch a youtube video and follow along with simple tools.

The claims Signal is an op or the runner is under a national security letter order to compromise it look more and more plausible in light of weird bad basic practices like this and their general hostility. I’ll still use it and it’s far from the worst looking thing out there but there’s something unshakably weird about the lead dev, their behavior and practices that can’t be written off as being merely a bit quirky.

@uis@lemm.ee
link
fedilink
12M

for not even salting

Wrong secret

I mean combined with any kind of function, even a trivial kind. A salt derived from some machine state data (a random install id generated on install, a hash of computer name, etc) plus a rot13 or something would still be better than leaving it plaintext.

@uis@lemm.ee
link
fedilink
12M

Malware has access to it.

If fs is not encrypted, then malicious hardware(FSB agent’s laptop) also has access to it. If encrypted, then it we are back to statement many people told here about encrypting fs.

plus a rot13

That’s not salting.

To encrypt it you would need to store a encryption key

It’s plaintext all the way down.

The irony

Wire does this too :/

Don’t use Wire as it isn’t good for privacy or security

Don’t use signal as its not good for anonymity

Possibly linux
link
fedilink
1
edit-2
2M

It is better than Wire and cryptography wise it is very solid

Wire has equal cryptography, but it also has anonymity. I don’t understand why anyone uses signal.

For the Sticker emojis, I guess

Neither encrypts keys on desktop. They really are both about equal with regard to crypto

What is Wire?

southsamurai
link
fedilink
42M

A different encrypted messaging service. Decent, but hasn’t taken off despite using email for accounts rather than phone bonkers numbers

Mubelotix
link
fedilink
02M

deleted by creator

southsamurai
link
fedilink
32M

I mean, not really.

Which standard are they going to be forced to use? What infrastructure? What encryption? Are they going to be forced to develop apps for every platform?

The best you can hope to expect is apps using the same standard being compatible. Xmpp, matrix, whisper, whatever. Even matrix bridges don’t really fix compatibility across standards very well.

It’s nice to think that anyone anywhere, could expect to install any app and communicate with anyone else and maintain encryption as well as full privacy. But as far as anyone I’ve ever seen talk about it that’s actually trained in the technology behind it all, it isn’t possible unless there’s a single, enforced standard in use.

Does it suck to have to deal with multiple apps? Hell yes. But I also don’t like the idea of being forced to use whatever compromise protocol would make it realistic. I’d rather have a dozen apps with no single gatekeeper between them.

Isn’t this going to be enforced by the EU 3 months ago?

Can we please all just acknowledge that desktop operating systems absolutely suck (in regards to security)?

This is what flatpak brings to the table

How is a Desktop OS any different from a mobile one? This is where you need to be more specific.

@thayer@lemmy.ca
link
fedilink
7
edit-2
2M

There are too many differences for me to list here, but unlike mobile operating systems, Windows and most Linux desktops do not provide sandboxed environments for userspace apps by default. Apps generally have free reign over the whole system; reading/writing data from/to other apps without restriction or notification. There are virtually no safeguards against malicious actors.

Mobile operating systems significantly restrict system-level storage space, making key areas read-only to prevent data access or manipulation. They also protect app storage, so one app can’t arbitrarily access or modify data stored for a different app.

Mobile operating systems also follow an image-based update model, wherein updates are atomic. System software updates are generally applied successfully all at once or not at all, helping to ensure your phone is never left in a partial or unusable state after a system update.

For desktop users, macOS, and atomic Linux distros combined with Flatpak are the closest comparisons.

Bruh windows and linux have a secrets vault (cred manager and keyring respectively, iirc) for this exact purpose.

Even Discord uses it on both OSs no problem

Ah yes, another prime example that demonstrates that Lemmy is no different than Reddit. Everyone thinks they are a professional online.

Nothing sensitive should ever lack encryption especially in the hands of a third party company managing your data claiming you are safe and your privacy is protected.

No one is invincible and it’s okay to criticize the apps we hold to high regards. If your are pissed people are shitting on Signal you should be pissed Signal gave people a reason to shit on them.

@uis@lemm.ee
link
fedilink
12M

lack encryption especially in the hands of a third party company managing your data

Are we still talking about local-only keys?

If your device gets compromised, it’s no longer the company’s problem.

deleted by creator

Where are you going to store the encryption key? At the end of the day the local machine is effectively pwded anyway

especially in the hands of a third party company managing your data claiming you are safe and your privacy is protected.

Yeah, especially in this specific situation that isn’t relevant to this situation.

I presume keys are already sort of encrypted?

Nope. Your presumption is wrong.

dawg what the shitfuck

@x1gma@lemmy.world
link
fedilink
87
edit-2
2M

How in the fuck are people actually defending signal for this, and with stupid arguments such as windows is compromised out of the box?

You. Don’t. Store. Secrets. In. Plaintext.

There is no circumstance where an app should store its secrets in plaintext, and there is no secret which should be stored in plaintext. Especially since this is not some random dudes random project, but a messenger claiming to be secure.

Edit: “If you got malware then this is a problem anyway and not only for signal” - no, because if secure means to store secrets are used, than they are encrypted or not easily accessible to the malware, and require way more resources to obtain. In this case, someone would only need to start a process on your machine. No further exploits, no malicious signatures, no privilege escalations.

“you need device access to exploit this” - There is no exploiting, just reading a file.

All your session cookies are stored in plaintext.

Chrome cookies are encrypted, for exactly the reasons stated. If malware gains access to your system and compromises it in a way that DPAPI calls can be replicated in the way Chrome does it, then your sessions will also be compromised. But this is way harder to do, and at least prevents trivial data exfiltration.

@uis@lemm.ee
link
fedilink
62M

You. Don’t. Store. Secrets. In. Plaintext.

Ok. Enter password at every launch.

If someone has access to your machine you are screwed anyway. You need to store the encryption key somewhere

@x1gma@lemmy.world
link
fedilink
-1
edit-2
2M

Yes, in your head, and in your second factor, if possible, keeping derived secrets always encrypted at rest, decrypting at the latest possible moment and not storing (decrypted) secrets in-memory for longer than absolutely necessary at use.

lemmyvore
link
fedilink
422M

You. Don’t. Store. Secrets. In. Plaintext.

SSH stores the secret keys in plaintext too. In a home dir accessible only by the owning user.

I won’t speak about Windows but on Linux and other Unix systems the presumption is that if your home dir is compromised you’re fucked anyway. Effort should be spent on actually protecting access to the home personal files not on security theater.

@uis@lemm.ee
link
fedilink
02M

SSH has encrypted keys

Kinda expected the SSH key argument. The difference is the average user group.

The average dude with a SSH key that’s used for more than their RPi knows a bit about security, encryption and opsec. They would have a passphrase and/or hardening mechanisms for their system and network in place. They know their risks and potential attack vectors.

The average dude who downloads a desktop app for a messenger that advertises to be secure and E2EE encrypted probably won’t assume that any process might just wire tap their whole “encrypted” communications.

Let’s not forget that the threat model has changed by a lot in the last years, and a lot of effort went into providing additional security measures and best practices. Using a secure credential store, additional encryption and not storing plaintext secrets are a few simple ones of those. And sure, on Linux the SSH key is still a plaintext file. But it’s a deliberate decision of you to keep it as plaintext. You can at least encrypt with a passphrase. You can use the actual working file permission model of Linux and SSH will refuse to use your key with loose permissions. You would do the same on Windows and Mac and use a credential store and an agent to securely store and use your keys.

Just because your SSH key is a plaintext file and the presumption of a secure home dir, you still wouldn’t do a ~/passwords.txt.

Not true, SSH keys need their passphrase to be used. If you don’t set one, that’s on you.

lemmyvore
link
fedilink
22M

If someone gets access they can delete your keys, or set up something that can intercept your keys in other ways.

The security of data at rest is just one piece of the puzzle. In many systems the access to the data is considered much more important than whether the data itself is encrypted in one particular scenario.

Mubelotix
link
fedilink
17
edit-2
2M

Come on, 95% of users don’t set passwords on their ssh keys

idunnololz
link
fedilink
52M

Where are these stays from lmao.

Mubelotix
link
fedilink
52M

Counting my friends

You can count me too

Well yes, but also how would users react if they had to type in their passphrase every time they open the app? This is also exactly what we’re giving up everywhere else by clicking ‘remember this device’.

How in the fuck are people actually defending signal for this

Probably because Android (at least) already uses file-based encryption, and the files stored by apps are not readable by other apps anyways.

And if people had to type in a password every time they started the app, they just wouldn’t use it.

@uis@lemm.ee
link
fedilink
22M

AFAIK Android encrypts entire fs with one key. And ACL is not encryption.

Liz
link
fedilink
212M

Popular encrypted messaging app Signal is facing criticism over a security issue in its desktop application.

Emphasis mine.

I think the point is the developers might have just migrated the code without adjustments since that is how it was implemented before. Similar to how PC game ports sometimes run like shit since they are a close 1-1 of the original which is not always the most optimized or ideal, but the quickest to output.

Been a few days since using electron, but AFAIK electron can’t be used as a wrapper for android apps, or can it? Or is their android app a web app wrapped into a “native” android app too?

Also, since this seems to be an issue since 2018, 6 years should be plenty to rewrite using a native secure storage…

Brayd
link
fedilink
12M

Does anyone know how iMessage handles this on desktop (on Macs) as they (as far as I know) upgraded their encryption recently?

It’s handled through keyring I think.

Signal has so many red flags that I’m beginning to wonder if it is a honeypot.

Got some sources for that, chief?

What other red flags do you have in mind?

Signal is actively hostile to alternative clients, or decoupling from Google.

Back when the Signal org used to be called Open Whisper Systems it received grants and auditing from the Open Technology Fund which, at the time, was still a part of Radio Free Asia.

https://web.archive.org/web/20150521181458/https://www.opentechfund.org/project/open-whisper-systems

So tldr, since you didn’t finish your thought, is that they got a grant like 3+ layers down, from the US government.

I have some news for you, or perhaps I can offer you a bridge.

People are free to draw their own conclusions from it. Do you have anything material to contribute, or will you just be putting more smarmy words in my mouth from here on out?

Attack the argument, not the person.

You didn’t explain the implications of what radio free Asia is, I did. I don’t know what words I’m putting in your mouth.

Create a post

A place to discuss privacy and freedom in the digital world.

Privacy has become a very important issue in modern society, with companies and governments constantly abusing their power, more and more people are waking up to the importance of digital privacy.

In this community everyone is welcome to post links and discuss topics related to privacy.

Some Rules

  • Posting a link to a website containing tracking isn’t great, if contents of the website are behind a paywall maybe copy them into the post
  • Don’t promote proprietary software
  • Try to keep things on topic
  • If you have a question, please try searching for previous discussions, maybe it has already been answered
  • Reposts are fine, but should have at least a couple of weeks in between so that the post can reach a new audience
  • Be nice :)

Related communities

Chat rooms

much thanks to @gary_host_laptop for the logo design :)

  • 0 users online
  • 57 users / day
  • 383 users / week
  • 1.5K users / month
  • 5.7K users / 6 months
  • 1 subscriber
  • 2.8K Posts
  • 70.1K Comments
  • Modlog