signalapp / Signal-Desktop

A private messenger for Windows, macOS, and Linux.
https://signal.org/download
GNU Affero General Public License v3.0
14.68k stars 2.68k forks source link

Messages are stored in plain text and not encrypted locally #1017

Closed GopianiS closed 7 years ago

GopianiS commented 7 years ago

I noticed that signal-desktop does not encrypt messages stored locally and therefore compromise the users privacy if someone had access to the machine. I'd suggest encrypting locally stored messages and then decryption them on handshake with linked device.

Dyras commented 7 years ago

This has been up before. It's a won't fix because you can always use FDE or store portable Chrome on an encrypted VeraCrypt partition. https://github.com/WhisperSystems/Signal-Desktop/issues/452#issuecomment-162622211

MrSuttonmann commented 7 years ago

That's a non-solution.

You're avoiding the very issue that Signal is leaving plain-text messages in an accessible location. You're also avoiding the fact that it may not even be possible to use FDE or use Portable Chrome due to software/hardware restriction policies. It should not be a requirement to fully encrypt my hard drive in order to use Signal securely.

Signal should at the very least only be storing encrypted messages, and only decrypting them in memory when the Signal app is open and the linked device is reachable - using the key from the linked device. If Whatsapp is capable of this, then Signal certainly should be.

I'm not sure I trust Signal to be as secure as it's advertised anymore.

ruicruzpt commented 7 years ago

I agree with @lightswitchr that this sould be an issue to be fixed.

But Signal Desktop, for me at least, is an extention of a core product: the mobile platform. That that is AFAIK secure.

GopianiS commented 7 years ago

Nothing wrong with the mobile platform but for me, who sits at a computer (more than 1) for 8+ hours a day, having it stored in plain text pretty much defeats the reason for using the Signal app.

liliakai commented 7 years ago

dupe #452

MrSuttonmann commented 7 years ago

@liliakai I fail to see how this is a duplicate. #452 is asking for an application lock, such as a PIN. This thread is about stored decrypted messages - which to me (and apparently 18 other people who've upvoted my comment) is unacceptable.

ruicruzpt commented 7 years ago

This is not a duplicate.

Re-open this...

liliakai commented 7 years ago

Encryption is also discussed in 452, and the answer remains the same

We're not going to be adding any local access control or protection. You can use Chrome profiles, full disk encryption, and a screenlock.

MrSuttonmann commented 7 years ago

@liliakai It seems a bit strange that a company so focused on security and encryption can also be so against the use of encryption in its own software. You could at least provide us with a useful reason why you won't fix this?

AFAIK Signal for Android doesn't store decrypted messages, yet Android has user profiles, disk encryption and screenlocks. Why should Signal for Desktop be any different?

smichel17 commented 7 years ago

@lightswitchr this has been discussed many times in the past. Encryption is present on Signal-android because android's FDE is not usable enough, in Moxie's opinion (you can't set separate unlock and FDE pins, so people set really insecure ones). If/when android fixes this, signal-android will stop encrypting its database, too. Just like signal-desktop and signal-iOS.

You may disagree with that decision (I'm not sure I agree with it, myself), but please don't harass the developers for not providing information that is a matter of public record.

sala91 commented 7 years ago

Great success on attitude. Uninstalling Signal, removing all clients, and reccomending all my friends to do the same. Moving to wire it is then.

MrSuttonmann commented 7 years ago

@sala91 I have done the same. I'm done with Signal. If they were really about security they wouldn't be relying on other third-party systems to keep users data secure. Their arguments also don't make sense: they encrypt messages on Android, even though it has disk encryption as standard, but they won't encrypt messages on desktop which doesn't have disk encryption as standard! This is a complete contradiction. Also, if they think a completely valid bug report and subsequent questions is harassment then I think they've never even seen harassment!

GopianiS commented 7 years ago

@sala91 Done the same, Wire is amazing, has a few more features and also a nicer UI. The only thing missing is emojis on desktop app.

moxie0 commented 7 years ago

@sala91 @lightswitchr It seems like both of you are reacting to a comment from an unaffiliated person on GitHub who has decided to post in this issue, just like you two.

If you're looking for discussion, I hope you can understand that it's not possible for us to use GitHub issues as a discussion forum. We use them as an issue tracker, and keep discussion to the mailing list or online community forum. If you'd like to talk about disk encryption, that's the place to do it. Thanks.

GopianiS commented 7 years ago

Isn't @liliakai employed by OWS?

moxie0 commented 7 years ago

@GopianiS No, she's volunteering her time here. The comments from @sala91 and @lightswitchr referenced the comment from @smichel17, which is what I assumed they were reacting to.

However, either way, I'm afraid that if you're looking for discussion about anything OWS related, you're not going to find it on GitHub. This is a place where we track issues. For discussing potential new directions, asking questions, or talking about ideas, please checkout the online forums linked from the README in this repository. Thanks in advance.

moxie0 commented 7 years ago

I still don't feel great about this, so I want to provide a little more context to help clarify why we've tried to organize things this way. First, issues are really important to us. If someone reports something concerning Signal, we want to know about it. Every time someone posts on GitHub, that generates an email for everyone that works on Signal. We all read every single post to every OWS repository, because issues are important.

In this case, @lightswitchr has strong opinions about a decision we've made. However, they have some fundamental misunderstandings about how Signal Desktop works. It's not "device routing," like WhatsApp, but an app that functions independently of your mobile device's connectivity. Retrieving an encryption secret from your mobile device isn't possible, because the desktop app isn't necessarily in contact with your mobile device.

I don't expect @lightswitchr to know every detail of how everything Signal-related works, so that's OK, but it means that a longer conversation is required in order to explain how the app actually functions before even getting to the conversation about this specific functionality.

There aren't many full time developers, so we don't always have the time to have that full conversation, but fortunately there's a community of people who are very familiar with Signal who can. That's a big help to us developers, but doing all of that over GitHub generates more email mixed in with actual issues, which makes it harder for us to keep up with issues. So we try to keep the two things separate, issues here, discussion in the forums or on the mailing list. Hope that makes sense.

sala91 commented 7 years ago

This is a bug, not a feature.

Having unencrypted stuff on my drive allows other admin users to steal and access my data. So if I have a shared computer at work with multiple admins then my data is at risk. Not to mention other use cases, where computer sharing might be case.

Dyras commented 7 years ago

@sala91 Take that to the forums please. https://whispersystems.discoursehosting.net/

nimarb commented 7 years ago

@smichel17 the message database on Signal-iOS is encrypted, in addition to the filesystem being encrypted and the encrypted message database not being backupped to encrypted iPhone backups due to security considerations. Only the attachments received are stored not again encrypted on the encrypted iPhone disk.

Therefore, on iOS it is only possible to access the database outside of the Signal app when the iPhone is in an "unencrypted" state (read: unlocked) and you have root on the device (eg jailbroken) to access the encryption keys provided by the secure enclave to decrypt the Signal message database.

That is very difficult to achieve, much more so than just reading the desktop database..

smichel17 commented 7 years ago

@likyng I'll continue this conversation on the forums if anybody wants to post there.

ruicruzpt commented 7 years ago

If any of you guys tart the conversation in the forum, please provide the link here for anyone who wants to follow up - as I do.

Thank you.

rainerzufall commented 7 years ago

@ruicruzpt See Dyras' comment above:

Take that to the forums please. https://whispersystems.discoursehosting.net/

patlecat commented 6 years ago

Also the new standalone desktop Signal won't encrypt and isolate what is sent and received over it. And what makes matters worse is that the desktop app still insists to download (sometimes) over 1'000 old messages and stores them unencrypted on disk. And this even though on both clients (sender + receiver) the messages have been deleted manually and/or by timeout! This is not even configurable. That's still as outrageous as it was from the start of the desktop client.

The OS also tracks what each program does and keeps data in hard to access temporary storage locations either online or locally. A user can't be expected to secure everything around the Signal app just to circumvent the inherent insecure design flaws of it! Not all users are seasoned system admins!

scottnonnenberg commented 6 years ago

I'm locking this conversation because the conversation has clearly run its course. Any continued discussion can happen on the forums.