UNPKG

arch-wiki-md-repo

Version:

All arch-wiki articles in markdown format, updated every two days.

101 lines (64 loc) 4.27 kB
Related articles * [Disk encryption](/index.php/Disk_encryption "Disk encryption") * [Encfs](/index.php/Encfs "Encfs") From [gocryptfs](https://nuetzlich.net/gocryptfs/): gocryptfs uses file-based encryption that is implemented as a mountable FUSE filesystem. Each file in gocryptfs is stored one corresponding encrypted file on the hard disk. The highlights are: Scrypt password hashing, GCM encryption for all file contents, EME wide-block encryption for file names with a per-directory IV. See the [gocryptfs](https://nuetzlich.net/gocryptfs/) project home for further introduction of its features, benchmarks, etc. See [Disk encryption#Comparison table](/index.php/Disk_encryption#Comparison_table "Disk encryption") for an overview of alternative methods and [EncFS](/index.php/EncFS "EncFS") for the direct alternative. ## Contents * [1 Installation](#Installation) * [2 Usage](#Usage) * [2.1 Example using reverse mode](#Example_using_reverse_mode) * [3 See also](#See_also) ## Installation [Install](/index.php/Install "Install") [gocryptfs](https://aur.archlinux.org/packages/gocryptfs/) or [gocryptfs-git](https://aur.archlinux.org/packages/gocryptfs-git/). As a FUSE filesystem, gocryptfs is fully configurable by the user and stores its configuration files in the user's directory paths. ## Usage See [gocryptfs(1)](https://manned.org/gocryptfs.1) and its examples first. **Warning:** * To achieve its design goal of [authenticated encryption](https://en.wikipedia.org/wiki/Authenticated_encryption "w:Authenticated encryption"), gocryptfs implements a AES-EME encryption mode (for filenames, not the content). While this mode is not widely used/audited yet, it offers integrity protection for the data, a feature not available for direct alternative encryption methods. * See the project's tracking [bug report](https://github.com/rfjakob/gocryptfs/issues/90) regarding findings of the first security audit for more information. **Tip:** Execute `gocryptfs -speed` to test throughput for available encryption methods. Note the slowest `AES-SIV-512-Go` mode is required (and automatically selected) for reverse mode. ### Example using reverse mode A major application for file-based encryption methods are encrypted backups. FUSE-based filesystems are flexible for this, since they allow a wide array of backup destinations using standard tools. For example, a gocryptfs-encrypted FUSE mount point can be easily created directly on a [Samba](/index.php/Samba "Samba")/[NFS](/index.php/NFS "NFS") share or [Dropbox](/index.php/Dropbox "Dropbox") location, synchronized to a remote host with [rsync](/index.php/Rsync "Rsync"), or just be manually copied to a remote backup storage. The [reverse mode](https://nuetzlich.net/gocryptfs/reverse_mode/) of gocryptfs is particularly useful for creating encrypted backups, since it requires virtually no extra storage capacity on the machine to back up. The following shows an example of user *archie* creating a backup of `/home/archie`: First, *archie* creates an empty directory for the encrypted view: ``` $ mkdir /tmp/*crypt.archie* ``` Second, user *archie* creates an encrypted view of the home directory: `/home/archie` ``` $ gocryptfs -reverse /home/*archie* /tmp/*crypt.archie* Password: Decrypting master key Your master key is: ... Filesystem mounted and ready. $ ``` Third, *archie* creates a backup of the encrypted directory, a simple local copy for this example: ``` $ cp -a /tmp/*crypt.archie* /tmp/*backup.archie* ``` and done. The encrypted directory can stay mounted for the user session, or be unmounted manually: ``` $ fusermount -u /tmp/*crypt.archie* $ rmdir /tmp/*crypt.archie* ``` To restore from the encrypted backup, a plain-text view is mounted using gocryptfs's normal mode: ``` $ mkdir /tmp/*restore.archie* $ gocryptfs /tmp/*backup.archie* /tmp/*restore.archie* Password: Decrypting master key ... Filesystem mounted and ready. $ ``` Now the required files can be restored. ## See also * [A first security audit](https://defuse.ca/audits/gocryptfs.htm) of gocryptfs * [RFC5297](https://tools.ietf.org/html/rfc5297) Synthetic Initialization Vector (SIV) Authenticated Encryption Using the Advanced Encryption Standard (AES)