Replies: 1 comment 3 replies
-
You can run the JSON RPC service sandboxed using the sample systemd unit and socket unit. This protects other software from signal-cli, though, not the other way around, unless you run all software like this or inside restricted docker containers. |
Beta Was this translation helpful? Give feedback.
3 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Currently signal-cli stores its data (contacts info, received attachments, etc) unencrypted in
~/.local/share/signal-cli/
(or/var/lib/signal-cli/
when run as a system daemon). Should this data be encrypted? Under which conditions does that increase security? How can it be implemented?A full disk encryption prevents unauthorized access at rest when an attacker has a physical access to the disk. However, it does not protect from e.g. compromised programs running in user-space. By default linux programs have access to all the files of a user running it. So an exploit could send all of it to the attacker's server.
One could use something like tomb that would temporarily decrypt the storage while signal-cli is used. However, "temporary" can be a long time, especially if signal-cli daemon is run in the background.
A more secure approach would require modifying signal-cli's code to never store decrypted data on the disk. Maybe some sort of transparent encryption (
fscrypt
?) could be used. The challenge is to limit access to the decrypted data to the signal-cli process alone.Then there are some "compartmentalizing" solutions, e.g. running the signal-cli process under a separate linux user, a la android's apps separation. It does not actually require encryption, but does protect from a threat model described above. (Note that it would be pointless to try to protect from a rogue program with a root access, since it can, among other things, be running a keylogger.) Or SELinux / AppArmor? More involved solutions using containers, virtual machines, etc are, of course, also possible.
Would be curious to know what other people think about this.
Beta Was this translation helpful? Give feedback.
All reactions