当前位置: 首页 > 工具软件 > gocryptfs > 使用案例 >

linux加密文件_如何在Linux上使用Gocryptfs加密文件

张建树
2023-12-01

linux加密文件

Gocryptfs是安装在用户空间(FUSE)中的文件系统文件级加密程序。 FUSE安装意味着将加密文件存储在使用FUSE接口安装的单个目录树中,就像USB密钥一样。 这样一来,任何用户都可以进行挂载-您无需是root用户。 由于gocryptfs在文件级别进行加密,因此复制文件的同步操作可以在每个文件上有效地工作。 这与磁盘级加密相反,在磁盘级加密中,整个磁盘被加密为单个大二进制二进制文件。

在正常模式下使用gocryptfs时,文件以加密格式存储在磁盘上。 但是,挂载加密文件时,您将获得对文件的未加密访问权限,就像计算机上的任何其他文件一样。 这意味着您所有的常规工具和程序都可以使用未加密的文件。 更改,新文件和删除会实时反映在磁盘上存储的文件的加密版本中。

安装gocryptfs

Fedora上安装gocryptfs很容易,因为它是为Fedora 30和Rawhide打包的。 因此, sudo dnf install gocryptfs会完成所有必需的安装工作。 如果您不使用Fedora,则可以在Quickstart中找到有关从源代码,在Debian上或通过Homebrew进行安装的详细信息。

初始化您的加密文件系统

〜/ .sekrit_files,使它们在执行普通ls时不显示。

首先初始化文件系统。 这将要求您选择一个密码。 强烈建议您使用从未在其他任何地方使用过的唯一密码,因为这是解锁文件的关键。 该项目的作者推荐使用64位至128位熵的密码。 假设您使用大小写字母和数字,这意味着您的密码长度应在11到22个字符之间。 如果您使用的是密码管理器,那么使用生成的密码即可轻松实现。

初始化文件系统时,您将看到一个唯一密钥。 将此密钥安全地存储在某个地方,因为如果您需要恢复文件但忘记了密码,它将允许您访问文件。 该密钥无需密码即可使用,因此请保密!

初始化例程如下所示:


   
   
$ mkdir ~ / .sekrit_files
$ gocryptfs -init ~ / .sekrit_files
Choose a password for protecting your files.
Password:
Repeat:

Your master key is:

    XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX-
    XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX

If the gocryptfs.conf file becomes corrupted or you ever forget your password,
there is only one hope for recovery: The master key. Print it to a piece of
paper and store it in a drawer. This message is only printed once.
The gocryptfs filesystem has been created successfully.
You can now mount it using: gocryptfs .sekrit_files MOUNTPOINT

如果查看〜/ .sekrit_files目录,将看到两个文件:一个配置文件和一个唯一的目录级初始化向量。 您无需手动编辑这两个文件。 确保不删除这些文件。

使用您的加密文件系统

要使用加密的文件系统,您需要挂载它。 这需要一个空目录,您可以在其中挂载文件系统。 例如,使用〜/ my_files目录。 从初始化可以看到,安装很容易:


   
   
$ gocryptfs ~ / .sekrit_files ~ / my_files
Password:
Decrypting master key
Filesystem mounted and ready.

如果您检出〜/ my_files目录,您会发现它为空。 配置和初始化向量文件不是数据,因此不会显示。 让我们在文件系统中放入一些数据,看看会发生什么:


   
   
$ cp / usr / share / dict / words ~ / my_files /
$ ls -la ~ / my_files / ~ / .sekrit_files /
~ / my_files / :
.rw-r--r-- 5.0M bexelbie 19 Jul 17 : 48 words

~ / .sekrit_files / :
.r-------- @   402 bexelbie 19 Jul 17 : 39 gocryptfs.conf
.r-------- @   16 bexelbie 19 Jul 17 : 39 gocryptfs.diriv
.rw-r--r-- @ 5.0M bexelbie 19 Jul 17 : 48 xAQrtlyYSFeCN5w7O3-9zg

请注意, 〜/ .sekrit_files目录中有一个新文件。 这是您复制的字典的加密副本(文件名会有所不同)。 随意使用cat和其他工具来检查这些文件,并尝试添加,删除和修改文件。 确保测试一些应用程序,例如LibreOffice。

请记住,这是文件系统安装,因此〜/ my_files的内容不会保存到磁盘。 您可以通过运行mount | grep my_files并观察输出。 仅将加密文件写入磁盘。 FUSE接口正在对文件进行实时加密和解密,并将它们作为文件系统呈现给您的应用程序和外壳程序。

卸载文件系统

文件处理完毕后,可以将其卸载。 这将导致未加密的文件系统不再可用。 〜/ .sekrit_files中的加密文件不受影响。 使用带有fusermount -u〜/ my_files的FUSE挂载程序卸载文件系统。

备份资料

使用文件级加密的gocryptfs的很酷的好处之一是,它使备份加密的数据更加容易。 这些文件可以安全地存储在同步系统上,例如OwnCloud或Dropbox。 关于不同时修改同一文件的标准免责声明适用。 但是,即使已挂载,也可以备份文件。 您还可以通过通常备份文件的任何其他方式保存数据。 您不需要任何特别的东西。

进行备份时,请确保包括gocryptfs.diriv文件。 该文件不是秘密文件,可以与备份一起保存。 但是,您的gocryptfs.conf是一个秘密。 当您控制整个备份链(例如,使用磁带)时,可以将其与其余文件一起备份。 但是,当文件备份到云中或公开备份时,您可能希望忽略此文件。 从理论上讲,如果有人获得了该文件,那么保护您文件的唯一办法就是密码强度。 如果您选择了一个强密码 ,那可能就足够了; 但是,您需要仔细考虑您的情况。 有关更多详细信息,请参见此gocryptfs 上游问题

奖励:反向模式

gocryptfs的一个巧妙功能是反向模式功能。 在反向模式下,将gocryptfs指向未加密的数据,它将创建带有此数据的加密视图的安装点。 这对于创建加密备份等操作很有用。 这很容易做到:


   
   
$ gocryptfs -reverse -init my_files
Choose a password for protecting your files.
Password:
Repeat:

Your master key is:

    XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX-
    XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX

If the gocryptfs.conf file becomes corrupted or you ever forget your password,
there is only one hope for recovery: The master key. Print it to a piece of
paper and store it in a drawer. This message is only printed once.
The gocryptfs-reverse filesystem has been created successfully.
You can now mount it using: gocryptfs -reverse my_files MOUNTPOINT

$ gocryptfs -reverse my_files sekrit_files
Password:
Decrypting master key
Filesystem mounted and ready.

现在sekrit_files包含my_files一个未加密的数据加密视图。 可以根据需要进行备份,共享或处理。 该目录是只读的,因为除了备份它们之外,您对这些文件没有任何用处。

新文件.gocryptfs.reverse.conf已添加到my_files中,以提供稳定的加密视图。 该配置文件将确保每个反向安装将使用相同的加密密钥。 这样,例如,您可以仅备份更改的文件。

Gocryptfs是一种灵活的文件加密工具,可让您以加密方式存储数据,而无需大幅度更改工作流程或流程。 该设计经过了安全审核,并且开发人员具有其他系统(例如encfs)的经验 。 我鼓励您今天将gocryptfs添加到您的系统并开始保护您的数据。

翻译自: https://opensource.com/article/19/8/how-encrypt-files-gocryptfs

linux加密文件

 类似资料: