Software Used - wizardofhoms/risks GitHub Wiki

TOOL FEATURES
luks provides encrypted filesystem
tomb an encryption-manager using LUKS
gpg unequivocally identifies a user, encrypts files and messages
pass common Linux script for managing credentials and password-files
spectre manages multiple credentials using just one password
fscrypt Encrypts the identities' graveyard directories one step further
gpg-split a technique used in Qubes Os to protect GPG
steghide a technique for embedding secret text inside a digital picture
risks A single CLI to automate and simplify the workflow

Luks

LUKS is the standard for Linux hard disk encryption.

By providing a standard on-disk-format, it does not only facilitate compatibility among distributions, but also provides secure management of multiple user passwords. LUKS stores all necessary setup information in the partition header, enabling to transport or migrate data seamlessly.

Tomb

Tomb generates encrypted storage folders to be opened and closed using their associated key-files, which are also protected with a password chosen by the user.

A tomb-file is like a locked folder that can be safely transported and hidden in a filesystem; its keys can be kept separate, for instance keeping the tomb file on your computer harddisk and the key files on a USB stick.

GPG

GPG is a cross-platform tool used for:

  1. identifying someone or something
  2. encrypting/decrypting files

GPG is a generic purpose encryption tool with a long history and it's used by a variety of other softwares like file managers, email clients, chat software and password managers.

Pass

Since long time Linux relies on pass for password management.

Although mostly used for storing websites credentials, pass stores any kind of private information in GPG encrypted text files.

pass awesomeness sits in its simplicity: it's a bash script supporting extensions, it uses no database, has no hierarchical constraints, has native git support and uses GPG for encrypting/decrypting data.

On top of this it features a reliable history and a supporting community.

This is an example of a decrypted pass-file.

pass website--com

1Pe4Hpz-sc637tsaKk
---
username: [email protected]

The first line is the password and below it any kind of information can be stored.

This content is stored in .gpg file inside the directory ~/.password-store which looks like this:

/home/user/.password-store/
├── website--com.gpg
├── addons.example.com.gpg
├── anyname-any_format.IwantHere.gpg

pass supports git and this means that the content of ~/.password-store can be versioned and distributed on different machines.

Considering the protection provided by GPG, pass-files can be synchronized on the cloud. This activity raises some concerns but spectre can be used to add an additional layer of security and make the distribution much safer.

Additionally pass has:

Spectre

Spectre is a single-password password-manager.

Master-password based management

The key feature of spectre is an algorithm which takes some parameters (the url of a website and the username) and a master password as input and creates a unique password which is stored nowhere. The master password is stored in human memory. The algorithm is idempotent meaning that whenever it's fed with the same inputs it returns the same password. A slight change in the input generates a different output. The output password is then used for websites credentials or other purposes.

Use for obfuscating files and directories

Note that all files in the hush device and in the ~/.graveyard directory are obfuscated, that is, their names are replaced with a deterministically determined name with the spectre tool.

This is so that, although this measure is still quite weak, an inactive identity will not leave traces in the vault, and the only way for an attacker to infer which identites are present in a vault would be to bruteforce names in the hope of matching one.

This security measure is quite weak, since one might legitimately assume that an attacker that would manage to get access to your vault would also have an idea of which identities he is looking for, and thus would have a list of names against which to test the obfuscated files.

fscrypt

fscrypt is a high-level filesystem encryption tool for Linux operating systems. It is used in risks to encrypt the entire graveyard directory of an identity, so that none other than this identity can be able to read its contents.