EncFS

✍ dations ◷ 2025-12-11 00:16:27 #EncFS

EncFS是一个基于FUSE的加密文件系统(英语:cryptographic filesystem),为自由软件。通过它可以将任意目录作为存储空间来透明地加密并存储文件。

挂载一个EncFS文件系统涉及到两个目录:源目录和挂载点。挂载点中的每个文件都是加密存储在源目录中的一个与之对应的文件。挂载点中的文件呈现未加密的样子,对应源目录中已加密的文件。源目录中会加密文件名。

文件通过卷密钥加密,卷密钥可以存储在加密的源目录之内或之外。有一个密码机制用于解密该密钥。

与其他磁盘加密软件(英语:disk encryption software)相比,EncFS因在主机上单独存储每个被加密的文件而具有一些优势。

EncFS可在多个平台上使用,而eCryptfs与Linux内核绑定

EncFS在底层文件系统之上实现了数据腐烂(英语:Data rot)(bitrot)检测

EncFS不存在占用固定大小的“卷”——加密的目录占用的空间随着挂载点中的文件增加而增加,也随着文件被删除而缩小。

EncFS的加密目录可以位于普通的文件服务器上(通过NFS、SSHFS等),并且可以使用普通的文件系统工具(例如Rsync)高效地进行镜像和备份。

挂载点中的某些目录可能存在于其他的物理设备上。

文件同步、云存储等备份软件可以只备份源目录中已变更的文件。

数据损坏发生时,更不易波及多个文件。损坏也更可控,可能通过文件系统级别的维护工具来修复某些数据损坏。磁盘加密系统遭遇数据异常损坏时可能遭遇更多意外情况。

因为加密的文件仍基于底层文件系统来存储,某些操作系统优化机制仍然奏效,例如传递Trim命令来帮助提升固态硬盘的性能。不过dm-crypt也支持这一点。

支持文件的随机访问,无需解密整个被加密的卷。

EncFS也存在一些缺点。

挂载的EncFS目录与容纳源目录的文件系统享有相同的能力与限制。

因加密原因,EncFS产生的加密文件的文件名会比原始文件名长。因此,EncFS不能存储长度接近文件系统的文件名长度上限的文件名。大多数文件系统的一般文件名限制为255个字节,这种情况下EncFS最多支持190个字节的文件名。

尽管文件名和文件数据被加密,但任何有权访问源目录的人都可看到加密的文件系统内有多少文件、文件的权限、文件的大致大小,以及上次访问和上次修改文件的时间。

2014年2月进行的付费安全审计中发现了多个潜在的漏洞。给出的结论是:

EncFS is probably safe as long as the adversary only gets one copy of the ciphertext and nothing more. EncFS is not safe if the adversary has the opportunity to see two or more snapshots of the ciphertext at different times. EncFS attempts to protect files from malicious modification, but there are serious problems with this feature.

如果对手只能看到一版被加密的内容,EncFS可能是安全的。如果对手能看到密文在不同时间的两版或更多版本,则EncFS不安全。EncFS在尝试避免文件免遭恶意修改,但该功能存在严重问题。

EncFS 1.8的公告包括数项基础设计变更,以回应上次的审计中提出的安全问题。尽管如此,这些安全漏洞仍受到关注。

在新建EncFS卷时,有数个用来自定义文件系统的选项,以满足不同需求。

EncFS可使用若干种存在于系统中各加密库内的加解密算法。Blowfish和AES通常可用。

可以为支持“可变密钥长度”的密码算法选择密钥长度(keySize)。

每个文件均以块的形式加密,有选项控制这些块的大小。每次读取单个字节时,必须解密包含它的整个块。同样,每次写入都需要解密对应块、更改内容并重新加密。

默认的块大小1024(字节)足以满足大多数用途。

源目录中的文件名可以存储为明文、加密块或流模式加密。块模式在一定程度上掩盖了文件名长度,而流模式的文件名会尽可能短,这在某些文件系统中可能节省一些存储空间。

启用此选项后,加密文件名所用的初始化向量取自文件的父目录——这将使两个同名但位于不同目录的文件具有不同的加密后文件名。

如果重命名目录,则其中包含的所有文件和目录都需要重新加密其文件名,这可能花费不少时间和资源。如果经常重命名含有大量子项目的目录,则应该禁用此选项。

启用此选项后,每个文件都使用一个随机的8字节初始化向量来加密,该向量存储在源目录的加密文件中。如果禁用此选项,则每个文件都使用相同的初始化向量来加密,可能使卷密钥更容易被破解。

启用此选项可加强文件系统的安全性,但每个文件会多占用8个字节。

使文件数据的初始化向量派生自文件名的初始化向量链。相同数据但不同文件名或目录的文件将加密成不同的样子。

如此,此模式启用时重命名文件需要文件的随机初始化向量被文件名初始化向量链中的更改抵消,或者重新编码数据。 EncFS的作者选择了前一种方法,因为快得多,尤其是对于大文件。

使编码依赖于完整的路径名。因此重命名或移动文件将需要重新编码。不支持硬链接。

存储每个加密块的校验和,使EncFS能检测到加密文件的损坏或修改。校验和 (blockMACBytes)为8个字节,并可选择向每个块添加最多8个额外字节的随机数据 (blockMACRandBytes),以防止相同未加密数据的两个块有相同的校验和。因为必须在读取数据(验证完整性)与写入数据(更新校验和)时计算每个块的校验和,此选项会带来大量CPU开销。

相关

  • 劳巴赫米勒魏尔湖坐标:47°55′16″N 9°24′4″E / 47.92111°N 9.40111°E / 47.92111; 9.40111劳巴赫米勒魏尔湖(德语:Laubbacher Mühleweiher),是德国的湖泊,位于该国西南部,由巴登-符腾堡州负
  • 成禄成禄(越南语:Thành Lộc,1961年11月3日-)是越南戏剧艺术家。越南金梅奖历史上获奖最多的艺术家之一。1961年出生西贡在传统艺术家庭,父亲是人民艺术家成尊(Thành Tôn),母亲是越南
  • 蒋昊 (魔术师)蒋昊(1980年12月5日-),本名严晟华,台湾魔术师,专研大型幻术,自二十岁起开始职业魔术表演生涯。
  • 西米西米又称西谷米、硕硪米(英语:Sago),是由几种棕榈树树干内所储碳水化合物制造的食用淀粉。原料主要来自西米椰属棕榈,尤其是原产于印度尼西亚群岛的西谷椰子(),还有桄榔、酒假桄榔(,
  • 负频率正频率与负频率的概念可以简单地用顺时针或逆时针转动的轮子来阐释:带有正、负号的频率值能够显示出转动方向与变化率。变化率使用转数每秒(赫兹)或弧度每秒作为单位(1转为2弧度
  • 星际之门《星际之门》(英语:Stargate,缩写:SG),简称《星门》,指的是由1994年电影《星际之门》开始,并由其后继的作品发展成一个精心设计的虚拟宇宙组成的科幻影视系列。除了最初的电影以外,故
  • 无裤日无裤日(英语:No Pants Day)是一个在公众场合不穿外裤或裙子等衣物,仅穿着内裤的活动,并且不感到害羞或奇怪,打破社会禁忌,下空解放。由improve everywhere 的组织发起,在某些团体已
  • 你不在《你不在》(日语:.mw-parser-output ruby>rt,.mw-parser-output ruby>rtc{font-feature-settings:"ruby"1}.mw-parser-output ruby.large{font-size:250%}.mw-parser-output r
  • 嗨氏嗨氏(1997年12月29日-),本名江海涛,中国大陆《王者荣耀》玩家,原虎牙直播主播,现快手主播。嗨氏在13岁时开始接触《反恐精英》、《穿越火线》等游戏,在爱拍处制作视频。15岁时,嗨氏成
  • 1999年飓风艾琳飓风艾琳(英语:Hurricane Irene)是1999年大西洋飓风季期间对佛罗里达州构成较大破坏的一场飓风,也是该季第9场热带风暴和第6场飓风,于10月13日由西加勒比海的一股东风波发展而成。系统起初向北行进,以热带风暴强度吹袭古巴西部后达到飓风标准。艾琳以一级飓风强度袭击佛罗里达州,穿过该州后向北到达墨西哥湾暖流上空,风暴一度逼近南、北卡罗莱纳州,但一直位于近海没有登陆。接下来气旋向东转向并迅速强化,达到二级飓风标准后由于所经海域水温较低而转变成温带气旋。风暴在穿越古巴西部期间产生暴雨,造成4人遇难