0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux系统中的FBE实现方案和特点

麦辣鸡腿堡 来源:OPPO内核工匠 作者:m0rgan 2023-11-29 11:23 次阅读

Linux系统FBE

从Linux系统软件架构看,典型FDE和FBE实现方案分布如下图,包括基于dm-crypt的软件FDE方案、基于通用文件系统的fscrypt FBE方案、基于VFS的eCryptfs FBE方案,以及众多基于FUSE的FBE方案。

前面章节已经简单介绍过基于dm-crypt的FDE方案在ubuntu虚拟机上的验证情况,这里先简单介绍Linux系统和内核的几种软件FBE实现方案和特点,后续章节会以eCryptfs为例做详细分析。

FUSE-Based

FUSE即Filesystem in Userspace,用户态文件系统。FUSE设计初衷就是为方便用户不修改编译内核的情况下,在user space实现定制文件系统。FUSE架构原理和实现如下图,内核态FUSE和用户态libfuse为App –》 VFS -》 用户文件系统链路服务,用户定制实现主要在User-Level Filesystem部分。

图片

由于天然的灵活性,基于FUSE实现FBE的方案有很多,例如gocryptfs、EncFS、CryFS、securefs等。但是,FUSE引入的多次系统调用和拷贝等开销,也导致基于FUSE的FBE方案通常性能都不好。gocryptfs项目有一个stackable FBE各方案的对比分析,该分析数据也验证说明了FUSE FBE方案的优缺点。

首先是各种stackable FBE方案介绍和整体特点,从数量上看,FUSE FBE方案占据绝大多数,非FUSE方案只有eCryptfs。

图片

其次,相比于eCryptfs,FUSE方案在性能上整体处于劣势。尽管gocryptfs在顺序读写上性能不错,但在其他测试如解压缩、MD5计算、目录递归访问/删除等测试项上看,劣势也比较明显。这和我们在3.2章节对比FDE和FBE、以及分析磁盘加密在软件栈不同层级实现的效果差异是一致的。

图片

eCryptfs

eCryptfs衍生于Cryptfs项目,早期方案和设计思想源自2005和2007的两篇论文,即《eCryptfs: an enterprise-class cryptographic filesystem forLinux》和《eCryptfs: a Stacked Cryptographic Filesystem》。eCryptfs项目分为内核部分和用户态部分,内核态代码于v2.6.19版本合入社区主线,用户态代码在软件包ecryptfs-utils中维护。

eCryptfs和上面介绍的FUSE方案一样,也属于stackable FBE类型,故不依赖于OS底层文件系统类型,可以堆叠在各种文件系统之上,灵活性很好。也支持对不同文件、目录加密,以及文件名加密。

当前eCryptfs项目开源社区活跃度不高,早期用户/产品也在迁移,但其方案和设计原理仍然值得深入学习分析。

fscrypt

fscrypt是在内核文件系统上实现的一个native FBE方案。fscrypt特性也包括内核态和用户态两部分,内核态部分是实现在fs/crypto目录的公用加解密模块,支持ext4、F2FS、UBIFS文件系统集成使用。用户态工具fscrypt则实现各种命令行工具方便用户使用。

fscrypt作为FBE方案,支持不同目录/文件采用不同密钥,对于metadata,fscrypt支持文件名filename加密,其他metadata如timestamp、size、attribute等不加密。fscrypt最大的应用即Android
采用的FBE方案,结合F2FS文件系统,对手机上的数据进行data at rest encryption保护。本文受限于篇幅,不做详细分析。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11102

    浏览量

    207653
  • 磁盘
    +关注

    关注

    1

    文章

    355

    浏览量

    25064
  • 虚拟机
    +关注

    关注

    1

    文章

    881

    浏览量

    27748
收藏 人收藏

    评论

    相关推荐

    Linux系统msg实现银行终端模拟系统

    今天主要聊一聊,如何使用 Linux 系统下的msg 实现银行终端 系统的模拟及运行。
    发表于10-26 09:27 1288次阅读

    Linux系统特点

    内核,并且使用GNU 工程各种工具和数据库的操作 系统Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是 系统 的所有都归结为一个文件,
    发表于01-16 08:55

    Linux系统特点

    内核,并且使用GNU 工程各种工具和数据库的操作 系统Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是 系统 的所有都归结为一个文件,
    发表于08-01 09:52

    Linux系统核心的定制怎么实现

    本文就如何对 Linux 系统的核心 实现定制进行论述,主要内容包括 Linux内核部分和文件 系统系统
    发表于03-05 07:44

    如何在嵌入式操作系统ARMLinux实现ZLG7290的驱动?

    I2C总线接口的工作模式和 特点如何在嵌入式操作 系统ARM Linux 实现ZLG7290的驱动?I2C总线在传送数据过程中有哪几种信号?
    发表于04-23 06:00

    求分享一种Linux嵌入式视频直播监控系统的设计和实现方案

    本文介绍了一种 Linux嵌入式视频直播监控 系统的设计和 实现 方案
    发表于06-03 07:00

    基于嵌入式Linux系统的LCD驱动实现Implementa

    本文首先介绍 Linux 系统设备驱动的 特点,然后以S3C2410 平台为硬件开发环境, 实现Linux2.6.14
    发表于05-26 09:55 28次下载

    基于Linux的RFID交互系统的设计与实现

    为了让射频识别的用户可以根据各自的权限进行相应的操作,本文提出了一款基于 Linux的RFID交互 系统的设计 实现 方案。该 系统的ID识别模块通过
    发表于10-10 14:39 67次下载
    基于<b class='flag-5'>Linux</b>的RFID交互<b class='flag-5'>系统</b>的设计与<b class='flag-5'>实现</b>

    通过安装该Linux-HA软件可以实现Linux双机系统的高可用性解决方案

    简介通过安装该 Linux-HA软件,可以 实现 Linux双机 系统的高可用性解决 方案实现双机
    的头像 发表于12-20 14:24 7470次阅读
    通过安装该<b class='flag-5'>Linux</b>-HA软件可以<b class='flag-5'>实现</b><b class='flag-5'>Linux</b>双机<b class='flag-5'>系统</b>的高可用性解决<b class='flag-5'>方案</b>

    关于Linux特点析以及在嵌入式操作系统的应用详解

    本文分析了 Linux特点,稳健性和局限性以及最重要的实时领域的应用。过去,因为非PC的嵌入式硬件平台价格昂贵,使得许多高性能要求的嵌入式 系统不能 实现。现在,因为廉价的PC硬件大力发
    发表于07-10 15:05 844次阅读

    linux系统特点

    本视频主要详细介绍了 linux 系统特点,分别有开放性、多用户、多任务、良好的用户界面、设备独立性。
    的头像 发表于03-01 16:22 5551次阅读

    怎样实现linux系统对windows系统的远程操作?

    在Windows ,我们经常使用ssh,vnc等工具对 Linux操作 系统进行远程控制,但是在 linux 系统
    的头像 发表于04-17 09:52 3066次阅读

    基于Linux的RFID交互系统的设计实现方案

    德赢Vwin官网 网站提供《基于 Linux的RFID交互 系统的设计 实现 方案.pdf》资料免费下载
    发表于10-23 10:32 0次下载
    基于<b class='flag-5'>Linux</b>的RFID交互<b class='flag-5'>系统</b>的设计<b class='flag-5'>实现</b><b class='flag-5'>方案</b>

    Linux的文件系统特点

    Linux的文件 系统 特点文件 系统要有严格的组织形式,使得文件能够以块为单位进行存储。 文件 系统
    的头像 发表于11-09 14:48 917次阅读
    <b class='flag-5'>Linux</b>的文件<b class='flag-5'>系统</b><b class='flag-5'>特点</b>

    FBE是什么 FDE和FBE有什么区别

    File-Based Encryption,又称Filesystem-Level Encryption,文件 系统加密。相比于 FBE,第二个名字更能体现 方案基于文件 系统的技术
    的头像 发表于11-29 11:08 3903次阅读
    <b class='flag-5'>FBE</b>是什么 FDE和<b class='flag-5'>FBE</b>有什么区别