如何在 Linux 上使用 gocryptfs 加密文件

你想加密重要的文件,而不是你的 Linux 系统的整个硬盘吗?如果是这样,我们推荐 gocryptfs
。您将获得一个目录,该目录实质上可以加密和解密您存储的所有内容。
gocryptfs 提供数据泄露保护
隐私是个大新闻。几乎一周过去了,一个组织或另一个组织不宣布违规行为。公司要么报告最近发生的事件,要么披露一段时间以前发生的违规行为。在这两种情况下,对于那些数据被泄露的人来说都是坏消息。
由于数百万人使用 Dropbox、Google Drive 和 Microsoft OneDrive 等服务,每天都有看似永无止境的数据流被推送到云端。如果您将部分(或全部)数据存储在云中,如果发生泄露,您可以采取什么措施来保护机密信息和私人文档?
当然,数据泄露的形式和规模各不相同,而且不仅限于云端。丢失的记忆棒或被盗的笔记本电脑只是小规模的数据泄露。但规模并不是关键因素。如果数据是敏感的或机密的,那么拥有它的其他人可能会造成灾难性的后果。
一种解决方案是加密您的文档。传统上,这是通过对整个硬盘驱动器进行加密来完成的。这是安全的,但也会稍微减慢您的计算机速度。此外,如果您遭遇灾难性故障,从备份恢复系统的过程可能会变得复杂。
gocryptfs
系统允许您只加密需要保护的目录,避免系统范围内的加密和解密开销。它快速、轻便且易于使用。将加密目录移动到其他计算机也很容易。只要您拥有访问该数据的密码,它就不会在另一台计算机上留下您的文件痕迹。
gocryptfs
系统被构建为一个轻量级的加密文件系统。它也可以由常规的非 root 帐户挂载,因为它使用用户空间中的文件系统 (FUSE) 包。这充当 gocryptfs
和它需要访问的内核文件系统例程之间的桥梁。
安装 gocryptfs
要在 ubuntu 上安装 gocryptfs
,请键入以下命令:
sudo apt-get install gocryptfs

要在 Fedora 上安装它,请输入:
sudo dnf install gocryptfs

在 Manjaro 上,命令是:
sudo pacman -Syu gocryptfs

创建加密目录
gocryptfs
的部分优点在于它使用起来非常简单。原则是:
- 创建一个目录以包含您要保护的文件和子目录。
- 使用
gocryptrfs
初始化该目录。 - 创建一个空目录作为挂载点,然后将加密后的目录挂载到上面。
- 在挂载点中,您可以查看和使用解密文件并创建新文件。
- 完成后卸载加密文件夹。
我们将创建一个名为“vault”的目录来保存加密数据。为此,我们键入以下内容:
mkdir vault

我们需要初始化我们的新目录。此步骤在目录中创建 gocryptfs
文件系统:
gocryptfs -init vault

出现提示时输入密码;你会输入两次以确保它是正确的。选择一个强有力的:包含标点符号、数字或符号的三个不相关的词是一个很好的模板。
您的主密钥已生成并显示。将其复制并保存在安全私密的地方。在我们的示例中,我们在研究机器上创建了一个 gocryptfs
目录,每篇文章写完后该目录都会被清除。
作为示例所必需的,您可以看到该目录的主密钥。你肯定想对你的人保密得多。如果有人获得了您的主密钥,他们就可以访问您的所有加密数据。
如果你切换到新目录,你会看到已经创建了两个文件。输入以下内容:
cd vault
ls -ahl

“gocryptfs.diriv”是一个简短的二进制文件,而“gocryptfs.conf”包含您应该妥善保管的设置和信息。
如果您将加密数据上传到云端或将其备份到小型可移动媒体,请不要包含此文件。但是,如果您备份到仍受您控制的本地媒体,则可以包含此文件。
如果有足够的时间和精力,或许可以从“encrypted key”和“salt”条目中提取您的密码,如下所示:
cat gocryptfs.conf

挂载加密目录
加密目录挂载在挂载点上,挂载点只是一个空目录。我们将创建一个名为“极客”的:
mkdir geek
我们现在可以将加密目录挂载到挂载点上。严格来说,真正挂载的是加密目录下的gocryptfs
文件系统。我们被提示输入密码:
gocryptfs vault geek
挂载加密目录后,我们可以像使用其他目录一样使用挂载点目录。我们在此目录中编辑和创建的任何内容实际上都写入了已安装的加密目录。
我们可以创建一个简单的文本文件,如下所示:
touch secret-notes.txt
我们可以对其进行编辑,向其中添加一些内容,然后保存文件:
gedit secret-notes.txt
我们的新文件已创建:
ls

如果我们切换到我们的加密目录,如下所示,我们会看到一个新文件已创建,其名称已加密。您甚至无法从名称中分辨出它是哪种文件类型:
cd vault
ls -hl

如果我们尝试查看加密文件的内容,我们可以看到它确实被加密了:
less aJGzNoczahiSif_gwGl4eAUnwxo9CvOa6kcFf4xVgYU

我们的简单文本文件(如下所示)现在不容易破译。

卸载加密目录
完成加密目录后,您可以使用 fusermount
命令将其卸载。作为 FUSE 包的一部分,以下命令从挂载点卸载加密目录内的 gocryptfs
文件系统:
fusermount -u geek

如果您键入以下内容来检查您的挂载点目录,您会看到它仍然是空的:
ls

您所做的一切都安全地存储在加密目录中。
简单安全
简单的系统具有使用频率更高的优势,而更复杂的过程往往会被搁置一旁。使用 gocryptfs
不仅简单,而且安全。没有安全性的简单性是不值得的。
您可以根据需要创建任意数量的加密目录,也可以只创建一个来保存所有敏感数据。您可能还想创建一些别名来挂载和卸载您的加密文件系统并进一步简化该过程。
<代码>