fscrypt:只给手机里的某个文件夹加密,系统怎么做到?

TL;DR

Linux fscrypt 在支持的文件系统中为目录树、文件内容和文件名提供文件级加密。它与整盘加密保护的范围不同,也不会隐藏所有文件系统元数据;本文从解锁密钥说到备份与恢复的边界。

Linux fscrypt 在支持的文件系统中为目录树、文件内容和文件名提供文件级加密。它与整盘加密保护的范围不同,也不会隐藏所有文件系统元数据;本文从解锁密钥说到备份与恢复的边界。

fscrypt:只给手机里的某个文件夹加密,系统怎么做到?

整盘加密很像给整栋房子装上一把总锁:设备关机或磁盘被拆走时,锁住的范围很大。但有时系统希望更细地管理数据,例如只保护某个用户目录,或者在设备已解锁时仍让不同应用的文件按密钥策略隔开。Linux 的 fscrypt 就是面向支持文件系统的文件级加密框架。

加密发生在文件系统这一层

应用照常打开、读取和写入文件;文件系统在数据落到存储设备之前,根据目录策略和密钥完成加解密。fscrypt 可以保护文件内容,也能对文件名进行加密。密钥可由用户空间提供,再交给内核管理;目录策略决定新建文件如何继承加密设置。

可以把它想成带锁的文件柜,而不是整间仓库封死。你打开柜门并提供密钥后,应用仍以普通文件路径访问内容;数据写入底层存储时则以加密形式保存。对移动设备、用户目录和应用私有数据而言,这种透明性让上层软件不必自己实现整套磁盘加密流程。

文件加密不等于所有信息都消失

文件系统需要保留一些管理信息才能工作。即便文件内容和文件名受到保护,目录结构、文件大小、修改时间、访问模式或其他元数据是否暴露,仍取决于具体文件系统和实现。fscrypt 也不等于整盘加密:没有被加密策略覆盖的文件或分区仍可能以明文存储。

密钥管理同样是安全边界的一部分。设备运行且密钥已加载时,拥有相应权限的软件仍可能访问明文;若忘记密钥、没有正确备份恢复凭据,数据可能无法找回。加密能降低设备丢失、存储介质被离线读取的风险,却无法阻止已登录账户被恶意软件滥用。

实践中,使用前要确认文件系统支持 fscrypt、内核与用户空间工具配置正确,并理解目录策略如何继承。备份时也要考虑密钥恢复。把 fscrypt 看作“文件系统提供的一种数据静态保护机制”,比把它叫作“给文件加锁后万事无忧”更准确。

来源:Linux 内核文档:Filesystem-level encryption

KEEP READING