File-Based Encryption,又称Filesystem-Level Encryption,文件系统加密。相比于FBE,第二个名字更能体现方案基于文件系统的技术特点。而基于文件系统的特点,一方面决定了只能由软件实现,另一方面决定了各方案差异也主要围绕在文件系统。
常见FBE方案,一般分为Stackable cryptographic filesystem 和Native/General filesystem
with encryption两种。
第一种,新增一个加解密文件系统,堆叠在现有存储软件栈的某一层。例如Linux内核自v2.6.19开始支持,已很成熟稳定的eCryptfs方案,就是在VFS-》 Native FS层之间加入新加解密文件系统支持。类似还有基于用户态文件系统FUSE的各种方案。
第二种,在现有文件系统中引入加解密功能。例如Linux内核自v4.1支持的Ext4文件系统加密,自v4.2支持的F2FS文件系统加密,自v4.10后支持的UBIFS文件系统加密。需要说明的是,内核中Ext4、F2FS、ubifs共用加解密功能模块,即内核fscrypt特性。另外,Android系统引入的FBE方案,底层内核实现也是基于F2FS+fscrypt。
和FDE方案相比,FBE有几个显著的特点:
1、支持单独的目录或文件加密,方便灵活使用配置。只加密目标对象,不加密整个磁盘,降低了系统加解密负载开销。
2、支持不同目录/文件使用不同加密密钥。
3、加密目录和非加密目录并存(甚至一个加密目录中加密和非加密文件也可以并存)。加密目录文件的备份传输灵活方便。
FDE vs FBE
前面分析已经知道,软件FDE和FBE都是基于文件系统,差别主要在文件系统实现差异,整理对比如下:
【说明】软件FDE/FBE主要是指其加解密功能主体在软件(文件系统)实现,并不意味着不使用硬件,相反为了提高性能,也会利用类似Crypto Engine等硬件引擎来加速。
从整个系统软硬件架构分析,可将硬件FDE、软件FDE、以FBE实现和系统软硬件架构的关系位置描述如下图:
上图中,磁盘加密方案,越往上层实现用户使用配置越灵活,但性能差;越往下层实现越不灵活,但对用户越透明且性能越好。结合前文描述,将FDE和FBE两种方案的差异对比整理如下:
全部0条评论
快来发表一下你的评论吧 !